stimulsoft-dashboards-js-angular 2025.3.2 → 2025.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  /*
2
2
  Stimulsoft.Reports.JS
3
- Version: 2025.3.2
4
- Build date: 2025.07.17
3
+ Version: 2025.3.3
4
+ Build date: 2025.07.28
5
5
  License: https://www.stimulsoft.com/en/licensing/reports
6
6
  */
7
7
  import{Stimulsoft}from"./stimulsoft.reports.engine.mjs";function defaultsDeep(e,t){for(var i in t)i in e?defaultsDeep(e[i],t[i]):e[i]=t[i];return e}defaultsDeep(Stimulsoft||{},{Report:{Events:{},Chart:{},Components:{Design:{}}},Reflection:{}});var __={};__.a=Stimulsoft.Report,__.b=Stimulsoft.Reflection,__.c=__.a.Events,__.d=__.a.Chart,__.e=__.a.Components,__.f=__.e.Design;let EventArgs=Stimulsoft.System.EventArgs,StiReportObjectStringConverter=(__.c.StiGetTitleEventArgs=class extends EventArgs{constructor(){super(...arguments),this.series=null}},__.c.StiNewAutoSeriesEventArgs=class extends EventArgs{constructor(e,t,i){super(),this.seriesIndex=e,this.series=t,this.color=i}},Stimulsoft.System.Text.StiReportObjectStringConverter),StiMath=Stimulsoft.System.StiMath,StiNumber=Stimulsoft.System.StiNumber,StiArray=Stimulsoft.System.StiArray,StiString=Stimulsoft.System.StiString,StiNewAutoSeriesEventArgs=__.c.StiNewAutoSeriesEventArgs,StiGetTitleEventArgs=__.c.StiGetTitleEventArgs,DBNull=Stimulsoft.System.Data.DBNull,StiValueEventArgs=__.c.StiValueEventArgs,StiGetValueEventArgs=__.c.StiGetValueEventArgs,StiFilterMode=__.e.StiFilterMode,StiDataColumn=__.a.Dictionary.StiDataColumn,DateTime=Stimulsoft.System.DateTime,Color=Stimulsoft.System.Drawing.Color,StiFilterCondition=__.e.StiFilterCondition,StiFilterDataType=__.e.StiFilterDataType,StiFilterItem=__.e.StiFilterItem,Hashtable=Stimulsoft.System.Collections.Hashtable,TimeSpan=Stimulsoft.System.TimeSpan,PointD=Stimulsoft.System.Drawing.Point,StiText=__.e.StiText,StiParser=__.a.Engine.StiParser.StiParser,List=Stimulsoft.System.Collections.List,Exception=Stimulsoft.System.Exception;{class StiChartHelper{static fillSeriesData(i,s){i.values=StiArray.create(Number,s.length),i.arguments=StiArray.create(Object,s.length),i.tags=StiArray.create(Object,s.length);for(let t=0;t<s.length;t++){let e=s[t];i.values[t]="number"==typeof e.value?e.value:0,i.arguments[t]=e.argument,i.tags[t]=e.tag,i.is(__.d.IStiRangeSeries)&&(i.valuesEnd[t]="number"==typeof e.valueEnd?e.valueEnd:0),i.is(__.d.IStiFinancialSeries)&&(i.valuesOpen[t]="number"==typeof e.valueOpen?e.valueOpen:0,i.valuesClose[t]="number"==typeof e.valueClose?e.valueClose:0,i.valuesLow[t]="number"==typeof e.valueLow?e.valueLow:0,i.valuesHigh[t]="number"==typeof e.valueHigh?e.valueHigh:0),i.is(__.d.IStiHeatmapSeries)&&(i.xValues[t]=e.xValue,i.yValues[t]=e.yValue)}}static getFilterData(s,r,n){try{if(r.item==StiFilterItem.Expression){let e=n.substr(0,1).toLowerCase()+n.substr(1);if(null!=s[n])return s[n]();if(null!=s[e])return s[e]();let t=new StiText,i=(t.name="*Chart_Filter*",t.page=s.pages.getByIndex(0),StiParser.parseTextValue("{"+r.value+"}",t));return i}switch(r.dataType){case StiFilterDataType.String:return r.value;case StiFilterDataType.Numeric:return null!=r.value?r.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber():0;case StiFilterDataType.DateTime:{let e=DateTime.fromString(r.value);if(null!=e)return e;break}case StiFilterDataType.Boolean:return"true"==r.value.toLowerCase()}}catch(e){let t=`Problem when parsing Chart ${r} value
8
- `;throw new Exception(t,e)}return null}static getFilterResult(t,e,i,s,r,n,l,o,a){if(t.item==StiFilterItem.Expression)return a[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();let h=null;switch(t.item){case StiFilterItem.Argument:h=e;break;case StiFilterItem.Value:h=i;break;case StiFilterItem.ValueEnd:h=s;break;case StiFilterItem.ValueOpen:h=r;break;case StiFilterItem.ValueClose:h=n;break;case StiFilterItem.ValueLow:h=l;break;case StiFilterItem.ValueHigh:h=o;break}let u=!1;if(null!=h){if(t.dataType==StiFilterDataType.Numeric){let t=h[Stimulsoft.System.StiObject.stimulsoft]().as(String);if(null!=t){let e=StiNumber.tryParse(t);e.successfully&&(h=e.result)}}else if(t.dataType==StiFilterDataType.DateTime){let e=DateTime.fromString(h.toString(),!1);h=null!=e?e:DateTime.fromOADate(h[Stimulsoft.System.StiObject.stimulsoft]().toNumber())}let e=h;if(null!=e&&null!=a){h[Stimulsoft.System.StiObject.stimulsoft]().getType()!=a[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(h=h.toString(),a=a.toString(),e=h);try{switch(t.condition){case StiFilterCondition.EqualTo:return 0==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.NotEqualTo:return 0!=e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.GreaterThan:return 1==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.GreaterThanOrEqualTo:return 0<=e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.LessThan:return-1==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.LessThanOrEqualTo:return e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a)<=0;case StiFilterCondition.Containing:{let e=h.toString(),t=a.toString();return-1!=e.indexOf(t)}case StiFilterCondition.NotContaining:{let e=h.toString(),t=a.toString();return-1==e.indexOf(t)}case StiFilterCondition.BeginningWith:{let e=h.toString(),t=a.toString();return e.startsWith(t)}case StiFilterCondition.EndingWith:{let e=h.toString(),t=a.toString();return e.endsWith(t)}}}catch(e){}}}return u}static convertStringToColor(i){if(!StiString.isNullOrEmpty(i))try{return StiReportObjectStringConverter.convertStringToColor(i)}catch(e){let t=`Can't get color from '${i}'`;throw __.a.StiLogService.write(StiChartHelper,`ConvertStringToColor `+t),new Exception(t,e)}return null}static createChart(o,x){let A=new Hashtable,L=!1,T=0;while(T<x.series.count){let C=x.series.getByIndex(T),e=(this.setTitle(o,T,C),C.valuesStart=[],C.values=this.checkValueNaN(this.getValues(o,C)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiGanttSeries)),t=(null!=e&&(e.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,e,e.valueDataColumnEnd,e.invokeGetListOfValuesEnd,e.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeSeries)),i=(null!=t&&(t.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,t,t.valueDataColumnEnd,t.invokeGetListOfValuesEnd,t.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedRangeSeries)),s=(null!=i&&(i.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,i,i.valueDataColumnEnd,i.invokeGetListOfValuesEnd,i.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeBarSeries)),r=(null!=s&&(s.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,s,s.valueDataColumnEnd,s.invokeGetListOfValuesEnd,s.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineRangeSeries)),n=(null!=r&&(r.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,r,r.valueDataColumnEnd,r.invokeGetListOfValuesEnd,r.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCandlestickSeries)),p=(null!=n&&(n.valuesHigh=this.getValuesHigh(o,n),n.valuesLow=this.getValuesLow(o,n),n.valuesClose=this.getValuesClose(o,n),n.valuesOpen=this.getValuesOpen(o,n)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiHeatmapSeries)),w=(null!=p&&(p.xValues=this.getXValues(o,p),p.yValues=this.getYValues(o,p)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiBubbleSeries)),l=(null!=w&&(w.weights=this.getWeights(o,w)),C[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPieSeries));if(null!=l&&this.setCutPieList(o,l),o.cacheValues(!0),C.arguments=this.getArguments(o,C),C.tags=this.getTags(o,C),C.hyperlinks=this.getHyperlinks(o,C),C.toolTips=this.getToolTips(o,C),this.checkParetoValues(C),C.is(__.d.StiHistogramSeries)){let e=C.chart.area.xAxis.labels.formatService;__.d.StiHistogramHelper.checkValuesAndArguments(C,e)}o.cacheValues(!1);let b=this.getAutoSeriesKeysFromAutoSeriesKeyDataColumn(o,C),_=this.getAutoSeriesTitleFromAutoSeriesTitleDataColumn(o,C),y=this.getAutoSeriesColorFromautoSeriesColorDataColumn(o,C);if(C.sortBy!=__.d.StiSeriesSortType.None||0<C.filters.count||0<b.length){let e=(C.values.length>C.arguments.length?C.values:C.arguments).length,f=[];for(let g=0;g<e;g++){let e=C.values.length>g?C.values[g]:0,t=C.arguments.length>g?C.arguments[g]:null,i=b.length>g?b[g]:null,s=_.length>g?_[g]:null,r=y.length>g?y[g]:null,n=C.tags.length>g?C.tags[g]:0,l=null,o=(C.is(__.d.IStiRangeSeries)&&(l=C.valuesEnd.length>g?C.valuesEnd[g]:0),null),a=null,h=null,u=null,S=(C.is(__.d.IStiFinancialSeries)&&(o=C.valuesOpen.length>g?C.valuesOpen[g]:0,a=C.valuesClose.length>g?C.valuesClose[g]:0,h=C.valuesLow.length>g?C.valuesLow[g]:0,u=C.valuesHigh.length>g?C.valuesHigh[g]:0),null),d=(null!=w&&(S=w.weights.length>g?w.weights[g]:0),null),m=null,c=(null!=p&&(d=p.xValues.length>g?p.xValues[g]:g,m=p.yValues.length>g?p.yValues[g]:g),C.toolTips.length>g?C.toolTips[g]:"");f.push(new __.d.StiDataItem(g,t,e,l,d,m,S,o,a,h,u,s,i,r,c,n))}let r=new Hashtable,i=0;for(let t of C.filters.list){let e=`${x.name}Filters_${T}_`+i;r.set(t,this.getFilterData(x.report,t,e)),i++}let n=[],l=null,o=null;if(0<C.filters.count){try{l=StiDataColumn.getDataSourceFromDataColumn(x.report.dictionary,C.valueDataColumn)}catch(e){}if(null==l)try{l=StiDataColumn.getDataSourceFromDataColumn(x.report.dictionary,C.argumentDataColumn)}catch(e){}null==l&&(l=x.dataSource);try{o=StiDataColumn.getBusinessObjectFromDataColumn(x.report.dictionary,C.valueDataColumn)}catch(e){}if(null==o)try{o=StiDataColumn.getBusinessObjectFromDataColumn(x.report.dictionary,C.argumentDataColumn)}catch(e){}null==o&&(o=x.businessObject)}null!=l&&(l.saveState("ChartFilter"),l.first()),null!=o&&(o.saveState("ChartFilter"),o.createEnumerator());for(let e of f){let i=StiArray.create(Boolean,C.filters.count),s=0;for(let t of C.filters.list){if(i[s]=this.getFilterResult(t,e.argument,e.value,e.valueEnd,e.valueOpen,e.valueClose,e.valueLow,e.valueHigh,r.get(t)),t.item==StiFilterItem.Expression){let e=`${x.name}Filters_${T}_`+s;try{i[s]=this.getFilterData(x.report,t,e)[Stimulsoft.System.StiObject.stimulsoft]().toBoolean()}catch(e){}}s++}let t=!0;if(C.filterMode==StiFilterMode.And){for(let e of i)if(!e){t=!1;break}}else{t=!1;for(let e of i)if(e){t=!0;break}}t&&n.push(e),null!=l&&l.next(),null!=o&&o.next()}if(null!=l&&l.restoreState("ChartFilter"),null!=o&&o.restoreState("ChartFilter"),f=n,C.sortBy!=__.d.StiSeriesSortType.None){let e=new __.d.StiDataItemComparer(C.sortBy,C.sortDirection);f[Stimulsoft.System.StiObject.stimulsoft]().sort2(e)}if(this.fillSeriesData(C,f),0<b.length){let n=new Hashtable,d=null;if(null!=C.arguments&&0<C.arguments.length){let i=[],s=new Hashtable({ignoreCase:!1,checkType:!0});for(let t of f){let e=t.argument;s.containsKey(e)||(i.push(e),s.add(e,null))}s.clear(),d=i.slice(),C.sortBy==__.d.StiSeriesSortType.Argument&&(StiArray.sort(d),C.sortDirection==__.d.StiSeriesSortDirection.Descending)&&StiArray.reverse(d)}else{let s=new Hashtable;for(let t of f){let e=s.get(t.key);null==e&&(e=[],s.set(t.key,e)),e.push(t)}let r=0;for(let i of s.values){r=Math.max(r,i.count);let t=0;for(let e of i)e.argument=t.toString(),n.set(e,t.toString()),t++}d=[];for(let e=0;e<r;e++)d[e]=e.toString()}let t=new Hashtable;for(let e of b)t.set(e,e);let m=t.keys.toArray(),e={ref:m},c=(this.sortArray(e),m=e.ref,StiArray.create2(__.d.StiDataItem,d.length,m.length)),l=new Hashtable({ignoreCase:!1,checkType:!0});for(let e=0;e<d.length;e++)l.set(d[e],e);let o=new Hashtable;for(let e=0;e<m.length;e++)o.set(m[e],e);let g=new Hashtable,p=new Hashtable;for(let r of f){let e=this.getKey(r.key),t=r.argument,i=(null!=C.arguments&&0!=C.arguments.length||(t=n.get(r)),o.get(e)),s=l.get(t);if(null!=r.title?g.set(e,r.title):g.set(e,r.key),p.set(e,r.color),null!=c[s][i])c[s][i].push(r);else{let e=[];e.push(r),c[s][i]=e}}let _=null;null!=w&&(_=w.clone());for(let S=0;S<m.length;S++){let e=m[S],r=null,t=(0==S?r=C:(r=C.clone(),x.series.insert(T+S,r)),r.coreTitle=g.get(e),p.get(e)),n=(A.set(r,t),[]),l=[],o=[],a=[],h=[],u=[];if(r.is(__.d.IStiScatterSeries)){let s=new List;for(let t=0;t<d.length;t++){let e=c[t][S];null!=e&&s.addRange(e)}for(let i of s=s.orderBy(e=>e.index).toList()){let e=null,t=r.is(__.d.IStiScatterSeries);if(null!=i&&"number"==typeof i.value&&(e=i.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),t=!1),null==i.argument)continue;n.push(e),t||o.push(i.argument),r.is(__.d.IStiRangeSeries)&&l.push(i.valueEnd[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=_&&a.push(i.weight[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=i.toolTip&&h.push(i.toolTip.toString()),null!=i.tag&&u.push(i.tag)}}else for(let s=0;s<d.length;s++){let e=c[s][S];if(null==e){if(r.is(__.d.IStiScatterSeries))continue;n.push(null),a.push(0),h.push(null),u.push(null),r.is(__.d.IStiRangeSeries)&&l.push(null),o.push(d[s])}else for(let i of e){let e=null,t=r.is(__.d.IStiScatterSeries);if(null!=i&&"number"==typeof i.value&&(e=i.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),t=!1),r.is(__.d.IStiScatterSeries)&&null==d[s])continue;n.push(e),t||o.push(d[s]),r.is(__.d.IStiRangeSeries)&&l.push(i.valueEnd[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=_&&a.push(i.weight[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=i.toolTip&&h.push(i.toolTip.toString()),null!=i.tag&&u.push(i.tag)}}let i=n.slice(),s=(r.values=i,o.slice());if(r.arguments=s,r.is(__.d.IStiRangeSeries)){let e=l.slice();r.valuesEnd=e}if(r.is(__.d.StiBubbleSeries)){let e=a.slice();r.weights=e}r.toolTips=h,r.tags=u,this.checkArgumentsDateTimeStep(r),this.createTopN(r),r.filters=C.filters,L=!0}T+=m.length-1}else this.createTopN(C)}else this.checkArgumentsDateTimeStep(C),this.createTopN(C);T++}if(__.d.StiBoxAndWhiskerHelper.checkArgument(x),this.checkWaterfallTotals(x),Stimulsoft.StiOptions.Engine.allowInvokeProcessChartEventForTemplateOfChart&&x.invokeEvents(),L&&Stimulsoft.StiOptions.Engine.applyStylesInAutoSeries){x.series.applyStyle(x.style);let s=0;for(let i of x.series.list){let e=this.convertStringToColor(A.get(i)),t=new StiNewAutoSeriesEventArgs(s,i,null);null!=e&&(t.color=e),i.invokeNewAutoSeries(t),t.color instanceof Color&&i.core.applyStyle(x.style,t.color),s++}}}static getShorterListPoints(t){let i=[];for(let e=0;e<t.values.length;e++)i[e]=new PointD(t.values[e],e);let s=[.3,.6,1,5,9,15,20,25,30,40],r=[],n=[];for(let e=0;e<t.values.length;e++){if((r=__.d.StiSimplifyHelper.simplify(i,s[e],!0)).length/i.length<.02&&r.length<900&&null!=n){r=n;break}n=r}return r}static checkParetoValues(r){let e=r.as(__.d.StiParetoSeries);if(null!=e){let i=[],s=[];for(let t=0;t<r.values.length;t++){let e=r.values[t];0<e&&(i.push(e),null!=r.arguments&&t<r.arguments.length?s.push(r.arguments[t]):s.push(t+1))}e.values=i,e.arguments=s,e.valuesStart=[]}}static checkValueNaN(t){for(let e=0;e<t.length;e++)null!=t[e]&&isNaN(t[e])&&(t[e]=null);return t}static checkArgumentsDateTimeStep(_){let f=_.arguments;if(_.chart.area.is(__.d.StiAxisArea)){let c=_.chart.area.xAxis.dateTimeStep,g=c.step,p=c.numberOfValues;if(this.isArgumentsDateTime(f)&&g!=__.d.StiTimeDateStep.None){let o=StiArray.create(DateTime,f.length);for(let e=0;e<f.length;e++)o[e]=DateTime.fromString(f[e].toString());let a=this.maximumDate(o),e=this.minimumDate(o),t=(a=this.ceilDateTimeByStep(a,g),e=this.roundDateTimeByStep(e,g),StiMath.round2(this.getTotalTimeSpans(g,a,e))),h=[],u=[],S=e,i=this.getNextDate(e,g);for(let e=0;e<t;e++){let l=(i.toOADate()-S.toOADate())/p;for(let n=0;n<p;n++){let e=l*n;if(e>a.toOADate())continue;h.push(DateTime.fromOADate(S.toOADate()+e));let t=h[h.length-1],i=t,s=DateTime.fromOADate(t.toOADate()+l),r=this.getValueForDate(i,s,o,_.values,_);u.push(r)}S=i,i=this.getNextDate(i,g)}let s=StiArray.create(Object,h.length),r=StiArray.create(Number,u.length),n=(h[Stimulsoft.System.StiObject.stimulsoft]().copyTo(s),u[Stimulsoft.System.StiObject.stimulsoft]().copyTo(r),0),l=0,d=null,m=null;for(let e=0;e<r.length;e++){if(null!=r[e]&&null==d){n=e,d=r[e];continue}if(null!=r[e]&&null!=d){l=e,d=r[n],m=r[l];let t=(d-m)/(l-n);for(let e=n+1;e<l;e++)c.interpolation?r[e]=r[e-1]-t:r[e]=0;n=0,d=null,e--}}_.arguments=s,_.values=r}}}static ceilDateTimeByStep(e,t){switch(t){case __.d.StiTimeDateStep.Second:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,e.second).addSeconds(1);case __.d.StiTimeDateStep.Minute:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,0).addMinutes(1);case __.d.StiTimeDateStep.Hour:return new DateTime(e.year,e.month,e.day,e.hour,0,0).addHours(1);case __.d.StiTimeDateStep.Day:return new DateTime(e.year,e.month,e.day,0,0,0).addDays(1);case __.d.StiTimeDateStep.Month:return new DateTime(e.year,e.month,1,0,0,0).addMonths(1)}return e}static roundDateTimeByStep(e,t){switch(t){case __.d.StiTimeDateStep.Second:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,e.second);case __.d.StiTimeDateStep.Minute:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,0);case __.d.StiTimeDateStep.Hour:return new DateTime(e.year,e.month,e.day,e.hour,0,0);case __.d.StiTimeDateStep.Day:return new DateTime(e.year,e.month,e.day,0,0,0);case __.d.StiTimeDateStep.Month:return new DateTime(e.year,e.month,1,0,0,0);case __.d.StiTimeDateStep.Year:return new DateTime(e.year,1,1,0,0,0);default:return e}}static checkWaterfallTotals(e){let l=0;for(let t of e.series.toCast()){let e=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiWaterfallSeries);null!=e&&(l=Math.max(l,e.values.length))}for(let n=0;n<e.series.count;n++){let r=e.series.list[n][Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiWaterfallSeries);if(null!=r){let t=[],i=[],s=0;for(let e=0;e<l;e++)0==n&&(e<r.arguments.length?t.push(r.arguments[e]):t.push(e)),r.values.length>e?(i.push(r.values[e]),s+=r.values[e]):i.push(null);r.total.visible&&i.push(s),0==n&&t.push(r.total.text),r.values=i,r.arguments=t,r.valuesStart=[]}}}static createTopN(e){if(e.topN.mode==__.d.StiTopNMode.None||e.values.length<=e.topN.count)return;let t=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiBubbleSeries);null!=t?this.createValuesWeightsTopN(t):this.createValuesTopN(e)}static createValuesTopN(t){let e=t.topN.count,i=t.values.slice(),s=[];for(let e=0;e<t.values.length;e++)s[e]=e;StiArray.sort3(i,s),t.topN.mode==__.d.StiTopNMode.Top&&(StiArray.reverse(i),StiArray.reverse(s));let r=StiArray.create(Number,e),n=StiArray.create(Number,e),l=(StiArray.copy(i,0,r,e),StiArray.copy(s,0,n,e),[]),o=[],a=0;for(let e=0;e<t.values.length;e++)this.findIndex(n,e)?(l.push(t.values[e]),e<t.arguments.length?o.push(t.arguments[e]):o.push(e)):a+=t.values[e];t.topN.showOthers&&(t.is(__.d.StiClusteredBarSeries)?(l[Stimulsoft.System.StiObject.stimulsoft]().insert(0,a),o[Stimulsoft.System.StiObject.stimulsoft]().insert(0,t.topN.othersText)):(l.push(a),o.push(t.topN.othersText)));let h=StiArray.create(Number,l.length),u=(l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(h),StiArray.create(Object,o.length));o[Stimulsoft.System.StiObject.stimulsoft]().copyTo(u),t.values=h,t.arguments=u}static createValuesWeightsTopN(t){let e=t.topN.count,i=t.weights.slice(),s=[];for(let e=0;e<t.weights.length;e++)s[e]=e;StiArray.sort3(i,s),t.topN.mode==__.d.StiTopNMode.Top&&(StiArray.reverse(i),StiArray.reverse(s));let r=StiArray.create(Number,e),n=StiArray.create(Number,e),l=(StiArray.copy(i,0,r,e),StiArray.copy(s,0,n,e),[]),o=[],a=[];for(let e=0;e<t.weights.length;e++)this.findIndex(n,e)&&(l.push(t.weights[e]),e<t.values.length&&o.push(t.values[e]),e<t.arguments.length)&&a.push(t.arguments[e]);let h=StiArray.create(Number,l.length),u=(l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(h),StiArray.create(Number,o.length)),S=(o[Stimulsoft.System.StiObject.stimulsoft]().copyTo(u),StiArray.create(Object,a.length));a[Stimulsoft.System.StiObject.stimulsoft]().copyTo(S),t.weights=h,t.values=u,t.arguments=S}static getNextDate(e,t){switch(t){case __.d.StiTimeDateStep.Second:return e.addSeconds(1);case __.d.StiTimeDateStep.Minute:return e.addMinutes(1);case __.d.StiTimeDateStep.Day:return e.addDays(1);case __.d.StiTimeDateStep.Hour:return e.addHours(1);case __.d.StiTimeDateStep.Month:return e.addMonths(1);case __.d.StiTimeDateStep.Year:return e.addYears(1)}return e}static getKey(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(!isNaN(t)&&e.split(",").join(".").split(".").length<=2)return t.toString();return e.toString()}static sortArray(e){let i=e.ref,s=[],r=[];for(let t=0;t<i.length;t++){let e=i[t][Stimulsoft.System.StiObject.stimulsoft]().toNumber();!isNaN(e)&&i[t].split(",").join(".").split(".").length<=2?s.push(e):r.push(i[t])}s.sort(),r.sort();let t=StiArray.create(String,i.length),n=0;for(let e of s)t[n]=e.toString(),n++;for(let e of r)t[n]=e,n++;i=t,e.ref=i}static findIndex(t,i){for(let e=0;e<t.length;e++)if(t[e]==i)return!0;return!1}static getValueForDate(t,i,s,r,e){var n;if(!s||!r||0===s.length)return null;let l=null,o=0,a=0,h=null,u=null;for(let e=0;e<s.length;e++){const S=s[e];if(S.toOADate()>=t.toOADate()&&(e<s.length&&S.toOADate()<i.toOADate()||e===s.length-1&&S.toOADate()<=i.toOADate())&&null!=r[e]){o++;const d=r[e];a+=d,(null===h||d<h)&&(h=d),(null===u||d>u)&&(u=d)}}if(0<o){const m=e.chart.area,c=null==(n=null==m?void 0:m.xAxis)?void 0:n.dateTimeStep;if(null!=c)switch(c.aggregation){case __.d.StiDateTimeStepAggregation.Sum:l=a;break;case __.d.StiDateTimeStepAggregation.Min:l=h;break;case __.d.StiDateTimeStepAggregation.Max:l=u;break;case __.d.StiDateTimeStepAggregation.Count:l=o;break;case __.d.StiDateTimeStepAggregation.Average:default:l=a/o;break}else l=a/o}return StiMath.round2(l,15)}static getTotalTimeSpans(e,t,i){let s=TimeSpan.fromTicks(t.ticks-i.ticks),r=0;switch(e){case __.d.StiTimeDateStep.Second:r=s.totalSeconds;break;case __.d.StiTimeDateStep.Minute:r=s.totalMinutes;break;case __.d.StiTimeDateStep.Hour:r=s.totalHours;break;case __.d.StiTimeDateStep.Day:r=s.totalDays;break;case __.d.StiTimeDateStep.Month:r=12*(t.year-i.year)+t.month-i.month;break;case __.d.StiTimeDateStep.Year:r=t.year-i.year;break}return r}static isArgumentsDateTime(e){if(0==e.length)return!1;for(let t of e){if(null==t)return!1;let e=t.toString();if(!DateTime.fromString(e,!1))return!1}return!0}static maximumDate(t){let i=null;for(let e of t){if(null==i){i=e;continue}e.toOADate2(!1)>i.toOADate2(!1)&&(i=e)}return i}static minimumDate(t){let i=null;for(let e of t){if(null==i){i=e;continue}e.toOADate2(!1)<i.toOADate2(!1)&&(i=e)}return i}static getAutoSeriesColorFromautoSeriesColorDataColumn(n,l){if(null!=l.autoSeriesColorDataColumn&&0<l.autoSeriesColorDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesColorDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static getAutoSeriesTitleFromAutoSeriesTitleDataColumn(n,l){if(null!=l.autoSeriesTitleDataColumn&&0<l.autoSeriesTitleDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesTitleDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static getAutoSeriesKeysFromAutoSeriesKeyDataColumn(n,l){if(null!=l.autoSeriesKeyDataColumn&&0<l.autoSeriesKeyDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesKeyDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static setTitle(e,t,i){let s=new StiGetTitleEventArgs;s.series=i,s.index=t,i.invokeGetTitle(e,s),StiString.isNullOrEmpty(s.value)||(i.coreTitle=s.value)}static setCutPieList(e,t){let i=new StiGetValueEventArgs;t.invokeGetCutPieList(e,i),StiString.isNullOrEmpty(i.value)||(t.cutPieListValues=__.d.StiSeries.getValuesFromString(i.value))}static getArguments(e,t){let i=this.getArgumentsFromListOfArguments(e,t);if(null!=i)return i;if(null!=(i=this.getArgumentsFromArgumentDataColumn(e,t)))return i;if(null!=(i=this.getArgumentsFromArgumentExpression(e,t)))return i;return[]}static getArgumentsFromArgumentExpression(i,s){let r=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s.invokeGetArgument(i,e),r[t]=e.value,i.next()}return r}static getArgumentsFromArgumentDataColumn(s,r){if(null!=r.argumentDataColumn&&0<r.argumentDataColumn.trim().length){let e=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.argumentDataColumn);if(null!=e){e.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,e.count);e.first();for(let t=0;t<e.count;t++){try{i[t]=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.argumentDataColumn),null!=i&&i[t]instanceof DateTime&&(r.core.isDateTimeArguments=!0)}catch(e){i[t]=null}e.next()}return e.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.argumentDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn");let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.argumentDataColumn),t[e]instanceof DateTime&&(r.core.isDateTimeArguments=!0),i.next();return i.restoreState("ChartRender_DataColumn"),t}}return null}static getArgumentsFromListOfArguments(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfArguments(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getValues(e,t){let i=this.getValuesFromListOfValues(e,t);if(null!=i)return i;if(null!=(i=this.getValuesFromValueDataColumn(e,t)))return i;if(null!=(i=this.getValuesFromValueExpression(e,t)))return i;return[]}static getValuesFromValueExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValue(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesFromValueDataColumn(l,o){if(null!=o.valueDataColumn&&0<o.valueDataColumn.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumn),t=null;null!=(e=!o.is(__.d.StiGanttSeries)||null==e||e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))&&e instanceof DateTime?(t=e.toOADate2(!1),o.core.isDateTimeValues=!0):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumn),t=null;(e=e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesFromListOfValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValues(e,i,t),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesEnd(e,t,i,s,r){let n=this.getValuesEndFromListOfValuesEnd(e,t,s);if(null!=n)return n;if(null!=(n=this.getValuesEndFromValueDataColumnEnd(e,t,i)))return n;if(null!=(n=this.getValuesEndFromValueEndExpression(e,r,t)))return n;return[]}static getValuesEndFromValueEndExpression(i,s,r){let n=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s(i,e,r),n[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return n}static getValuesEndFromValueDataColumnEnd(l,o,a){if(null!=a&&0<a.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,a);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,a),t=null;(e=!o.is(__.d.StiGanttSeries)||null==e||e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,a);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,a),t=null;(e=e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesEndFromListOfValuesEnd(e,t,i){let s=new StiGetValueEventArgs;if(i(e,s,t),null!=s.value&&0<s.value.length)return __.d.StiSeries.getNullableValuesFromString(t,s.value);return null}static getValuesOpen(e,t){let i=this.getValuesOpenFromListOfValuesOpen(e,t);if(null!=i)return i;if(null!=(i=this.getValuesOpenFromValueDataColumnOpen(e,t)))return i;if(null!=(i=this.getValuesOpenFromValuesOpenExpression(e,t)))return i;return[]}static getValuesOpenFromValuesOpenExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueOpen(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesOpenFromValueDataColumnOpen(l,o){if(null!=o.valueDataColumnOpen&&0<o.valueDataColumnOpen.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnOpen);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnOpen),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnOpen);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnOpen),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesOpenFromListOfValuesOpen(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesOpen(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesClose(e,t){let i=this.getValuesCloseFromListOfValuesClose(e,t);if(null!=i)return i;if(null!=(i=this.getValuesCloseFromValueDataColumnClose(e,t)))return i;if(null!=(i=this.getValuesCloseFromValuesCloseExpression(e,t)))return i;return[]}static getValuesCloseFromValuesCloseExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueClose(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesCloseFromValueDataColumnClose(l,o){if(null!=o.valueDataColumnClose&&0<o.valueDataColumnClose.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnClose);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnClose),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnClose);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnClose),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesCloseFromListOfValuesClose(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesClose(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesHigh(e,t){let i=this.getValuesHighFromListOfValuesHigh(e,t);if(null!=i)return i;if(null!=(i=this.getValuesHighFromValueDataColumnHigh(e,t)))return i;if(null!=(i=this.getValuesHighFromValuesHighExpression(e,t)))return i;return[]}static getValuesHighFromValuesHighExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueHigh(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesHighFromValueDataColumnHigh(l,o){if(null!=o.valueDataColumnHigh&&0<o.valueDataColumnHigh.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnHigh);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnHigh),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnHigh);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnHigh),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesHighFromListOfValuesHigh(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesHigh(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesLow(e,t){let i=this.getValuesLowFromListOfValuesLow(e,t);if(null!=i)return i;if(null!=(i=this.getValuesLowFromValueDataColumnLow(e,t)))return i;if(null!=(i=this.getValuesLowFromValuesLowExpression(e,t)))return i;return[]}static getValuesLowFromValuesLowExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueLow(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesLowFromValueDataColumnLow(l,o){if(null!=o.valueDataColumnLow&&0<o.valueDataColumnLow.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnLow);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnLow),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnLow);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnLow),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesLowFromListOfValuesLow(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesLow(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getWeights(e,t){let i=this.getWeightsFromListOfWeights(e,t);if(null!=i)return i;if(null!=(i=this.getWeightsFromWeightDataColumn(e,t)))return i;if(null!=(i=this.getWeightsWeightExpression(e,t)))return i;return[]}static getWeightsWeightExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetWeight(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getWeightsFromWeightDataColumn(l,o){if(null!=o.weightDataColumn&&0<o.weightDataColumn.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.weightDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.weightDataColumn),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.weightDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.weightDataColumn),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getWeightsFromListOfWeights(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfWeights(e,i,t),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getXValues(e,t){let i=this.getXValuesFromListOfXValues(e,t);if(null!=i)return i;if(null!=(i=this.getXValuesFromXValueDataColumn(e,t)))return i;if(null!=(i=this.getXValuesFromXvalueExpression(e,t)))return i;return[]}static getXValuesFromXvalueExpression(i,e){let s=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s[t]=e.value,i.next()}return s}static getXValuesFromXValueDataColumn(s,r){if(null==r.xValuesDataColumn||r.xValuesDataColumn.trim().length<=0)return null;let n=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.xValuesDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,n.count);n.first();for(let t=0;t<n.count;t++){let e=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.xValuesDataColumn);i[t]=e,n.next()}return n.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.xValuesDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn"),i.createEnumerator(),i.specTotalsCalculation=!0;let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.xValuesDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}return null}static getXValuesFromListOfXValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfXValues(e,i),!StiString.isNullOrEmpty(i.value))return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getYValues(e,t){let i=this.getYValuesFromListOfYValues(e,t);if(null!=i)return i;if(null!=(i=this.getYValuesFromYValueDataColumn(e,t)))return i;if(null!=(i=this.getYValuesFromXvalueExpression(e,t)))return i;return[]}static getYValuesFromXvalueExpression(i,e){let s=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s[t]=e.value,i.next()}return s}static getYValuesFromYValueDataColumn(s,r){if(null==r.yValuesDataColumn||r.yValuesDataColumn.trim().length<=0)return null;let n=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.yValuesDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,n.count);n.first();for(let t=0;t<n.count;t++){let e=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.yValuesDataColumn);i[t]=e,n.next()}return n.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.yValuesDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn"),i.createEnumerator(),i.specTotalsCalculation=!0;let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.yValuesDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}return null}static getYValuesFromListOfYValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfYValues(e,i),!StiString.isNullOrEmpty(i.value))return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getHyperlinks(e,t){let i=this.getHyperlinksFromListOfHyperlinks(e,t);if(null!=i)return i;if(null!=(i=this.getHyperlinksFromHyperlinkDataColumn(e,t)))return i;if(null!=(i=this.getHyperlinksFromHyperlinkExpression(e,t)))return i;return[]}static getHyperlinksFromHyperlinkExpression(i,s){let r=StiArray.create(String,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetHyperlink(i,e),null!=e.value&&(r[t]=e.value.toString()),i.next()}return r}static getHyperlinksFromHyperlinkDataColumn(n,l){if(null!=l.hyperlinkDataColumn&&0<l.hyperlinkDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);null!=e&&(i[t]=e.toString()),s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.hyperlinkDataColumn);null!=e&&(i[t]=e.toString()),r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return null}static getHyperlinksFromListOfHyperlinks(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfHyperlinks(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getTags(e,t){let i=this.getTagsFromListOfTags(e,t);if(null!=i)return i;if(null!=(i=this.getTagsFromTagDataColumn(e,t)))return i;if(null!=(i=this.getTagsFromTagExpression(e,t)))return i;return[]}static getTagsFromTagExpression(i,s){let r=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetTag(i,e),r[t]=e.value,i.next()}return r}static getTagsFromTagDataColumn(r,n){if(null!=n.tagDataColumn&&0<n.tagDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(r.report.dictionary,n.tagDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(r.report.dictionary,n.tagDataColumn);i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(r.report.dictionary,n.tagDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn");let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(r.report.dictionary,n.tagDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}}return null}static getTagsFromListOfTags(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfTags(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getToolTips(e,t){let i=this.getToolTipsFromListOfToolTips(e,t);if(null!=i)return i;if(null!=(i=this.getToolTipsFromToolTipDataColumn(e,t)))return i;if(null!=(i=this.getToolTipsFromToolTipExpression(e,t)))return i;return[]}static getToolTipsFromToolTipExpression(i,s){let r=StiArray.create(String,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetToolTip(i,e),null!=e.value&&(r[t]=e.value.toString()),i.next()}return r}static getToolTipsFromToolTipDataColumn(n,l){if(null!=l.toolTipDataColumn&&0<l.toolTipDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.toolTipDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.toolTipDataColumn);null!=e&&(i[t]=e.toString()),s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.toolTipDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.toolTipDataColumn);null!=e&&(i[t]=e.toString()),r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return null}static getToolTipsFromListOfToolTips(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfToolTips(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getAnimationCompatibilitySeries(e,t){let i=StiChartHelper.getAnimationSeriesType(e),s=StiChartHelper.getAnimationSeriesType(t);if(i==__.d.StiSeriesAnimationType.None||s==__.d.StiSeriesAnimationType.None)return!1;return i==s}static getAnimationSeriesType(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().getType();if(t==__.d.StiClusteredColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiStackedColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiFullStackedColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiRangeBarSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiHistogramSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiWaterfallSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiStackedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiFullStackedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiStackedSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiFullStackedSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiSteppedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiScatterLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiScatterSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiClusteredBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiStackedBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiFullStackedBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiGanttSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiStackedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiFullStackedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiStackedSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiFullStackedSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSteppedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiRangeSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSplineRangeSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSteppedRangeSeries)return __.d.StiSeriesAnimationType.Range;return __.d.StiSeriesAnimationType.None}}StiChartHelper.globalDurationElement=new TimeSpan(0,0,1),StiChartHelper.globalBeginTimeElement=new TimeSpan(0,0,1),__.d.StiChartHelper=StiChartHelper}let StiStringMeta=Stimulsoft.Base.Meta.StiStringMeta,StiMetaHelper=Stimulsoft.Base.Meta.StiMetaHelper,StiBrushMeta=Stimulsoft.Base.Meta.StiBrushMeta,StiColorMeta=Stimulsoft.Base.Meta.StiColorMeta,StiBoolMeta=Stimulsoft.Base.Meta.StiBoolMeta,IStiJsonReportObject=Stimulsoft.Base.JsonReportObject.IStiJsonReportObject,ICloneable=Stimulsoft.System.ICloneable,StiSolidBrush=Stimulsoft.Base.Drawing.StiSolidBrush,StiService=Stimulsoft.Base.Services.StiService,StiNumberMeta=Stimulsoft.Base.Meta.StiNumberMeta,StiActivator=Stimulsoft.Base.StiActivator;{class StiArea extends StiService{constructor(){super(...arguments),this.chart=null,this._allowApplyStyle=!0,this.colorEach=!1,this.showShadow=!1,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.white)}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ColorEach"),new StiBoolMeta("ShowShadow"),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","br"])]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartAreas.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}static loadAreaFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.area=e),e}toString(){return this.serviceName}getDefaultSeriesType(){return null}getSeriesTypes(){return null}getDefaultSeriesLabelsType(){return null}getSeriesLabelsTypes(){return null}get serviceCategory(){return"Chart"}get serviceType(){return StiArea}get isDefaultSeriesTypeFullStackedColumnSeries(){return this.getDefaultSeriesType()==__.d.StiFullStackedColumnSeries}get isDefaultSeriesTypeFullStackedBarSeries(){return this.getDefaultSeriesType()==__.d.StiFullStackedBarSeries}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}}__.d.StiArea=StiArea}let StiEnumMeta=Stimulsoft.Base.Meta.StiEnumMeta,StiObjectMeta=Stimulsoft.Base.Meta.StiObjectMeta,RectangleD=(__.d.StiRadarArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_"),new StiObjectMeta("InterlacingVert","_"),new StiObjectMeta("GridLinesHor","_"),new StiObjectMeta("GridLinesVert","_"),new StiObjectMeta("XAxis","_").set(e=>{this._xAxis.loadFromJsonObject(e.value),1==this._xAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea&&(this._xAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea=!1,this._xAxis.area=this)}).setXml(e=>{this._xAxis.loadFromXml(e),this._xAxis.area=this}),new StiObjectMeta("YAxis","_").set(e=>{this._yAxis.loadFromJsonObject(e.value),1==this._yAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea&&(this._yAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea=!1,this._yAxis.area=this)}).setXml(e=>{this._yAxis.loadFromXml(e),this._yAxis.area=this}),new StiEnumMeta("RadarStyle","",__.d.StiRadarStyle,__.d.StiRadarStyle.Circle)]}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.xAxis=this.xAxis.clone(),e.yAxis=this.yAxis.clone(),e}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiValueAxisLabels]}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}constructor(){super(),this.radarStyle=__.d.StiRadarStyle.Circle,this.xAxis=new __.d.StiXRadarAxis,this.yAxis=new __.d.StiYRadarAxis,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert,this.gridLinesHor=new __.d.StiRadarGridLinesHor,this.gridLinesVert=new __.d.StiRadarGridLinesVert}},Stimulsoft.System.Drawing.Rectangle),IStiSeriesElement=__.d.IStiSeriesElement,StiStringNullOrEmptyMeta=(__.d.StiChartCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.chart.style=e,this.chart.allowApplyStyle&&(this.chart.brush=e.core.chartBrush),null!=this.chart.title&&this.chart.title.core.applyStyle(e),null!=this.chart.area&&this.chart.area.core.applyStyle(e),null!=this.chart.legend&&this.chart.legend.core.applyStyle(e),null!=this.chart.seriesLabels&&this.chart.seriesLabels.core.applyStyle(e),null!=this.chart.series&&this.chart.series.applyStyle(e),null!=this.chart.constantLines&&this.chart.constantLines.applyStyle(e),null!=this.chart.strips&&this.chart.strips.applyStyle(e),null!=this.chart.table&&this.chart.table.core.applyStyle(e)}render(n,t,e){let l=new __.d.StiChartGeom(t);l.createChildGeoms();let r;if(e){let e=n.options.zoom;r=new RectangleD(t.x+this.chart.horSpacing*e,t.y+this.chart.vertSpacing*e,t.width-2*this.chart.horSpacing*e,t.height-2*this.chart.vertSpacing*e)}else r=t.clone();this.fullRectangle=r;let i=this.chart.title.core.render(n,this.chart.title,r);if(null!=i){switch(this.chart.title.dock){case __.d.StiChartTitleDock.Top:r.y+=i.clientRectangle.height,r.height-=i.clientRectangle.height;break;case __.d.StiChartTitleDock.Right:r.width-=i.clientRectangle.width;break;case __.d.StiChartTitleDock.Bottom:r.height-=i.clientRectangle.height;break;case __.d.StiChartTitleDock.Left:r.x+=i.clientRectangle.width,r.width-=i.clientRectangle.width;break}l.childGeoms.push(i)}let o=null,a=null,h=r.clone();if(null!=this.chart.legend&&(o=this.chart.area.core.render(n,h.clone()),null!=(a=this.chart.legend.core.render(n,o.clientRectangle.clone())))){let e=a.clientRectangle.clone(),t={ref:r},i={ref:h},s={ref:e};this.setLegendRect(n,this.chart,t,i,s),r=t.ref,e=s.ref,h=i.ref}let u=0,S=0,s=(this.chart.table.core.showTable()&&(o=this.chart.area.core.render(n,h.clone()),u=this.chart.table.core.getWidthCellLegend(n)+o.clientRectangle.width,S=this.chart.table.core.getHeightTable(n,u),h.height-=S),null!=this.chart.area&&null!=(o=this.chart.area.core.render(n,h.clone()))&&l.childGeoms.push(o),l.getSeriesElementGeoms());for(let t=0;t<s.length;t++){let e=s[t][Stimulsoft.System.StiObject.stimulsoft]().as(IStiSeriesElement);null!=e&&(e.elementIndex=t.toString())}if(this.chart.table.core.showTable()){let e=this.chart.series,r=this.chart.area;if(null!=e&&0<e.count){let e=h.x,t=(this.chart.table.core.getWidthCellLegend(n)<o.clientRectangle.x-h.x&&(e=o.clientRectangle.x-this.chart.table.core.getWidthCellLegend(n)),r.reverseHor&&r.yRightAxis.visible&&(e=o.clientRectangle.left),o.clientRectangle.bottom),i=(this.chart.table.chart.area.is(__.d.IStiClusteredBarArea)&&(t=h.bottom),new RectangleD(e,t,u,S)),s=this.chart.table.core.render(n,i);l.childGeoms.push(s)}}if(l.createChildGeoms(),null!=a){h=o.clientRectangle.clone();let e=a.clientRectangle.clone(),t={ref:r},i={ref:h},s={ref:e};this.setLegendRect(n,this.chart,t,i,s),r=t.ref,e=s.ref,h=i.ref,a.clientRectangle=e.clone(),l.childGeoms.push(a)}return l}setLegendRect(e,t,i,s,r){let n=i.ref,l=s.ref,o=r.ref,a=t.horSpacing*e.options.zoom,h=t.vertSpacing*e.options.zoom;switch(t.area.is(__.d.IStiHeatmapArea)&&(a+=2),t.legend.horAlignment){case __.d.StiLegendHorAlignment.LeftOutside:o.x=n.x,l.width-=o.width+a,l.x+=o.width+a;break;case __.d.StiLegendHorAlignment.Left:o.x=l.x+a;break;case __.d.StiLegendHorAlignment.Center:o.x=l.x+(l.width-o.width)/2;break;case __.d.StiLegendHorAlignment.Right:o.x=l.right-a-o.width,t.legend.showShadow&&t.legend.vertAlignment==__.d.StiLegendVertAlignment.BottomOutside&&(o.x-=5,l.width-=5);break;case __.d.StiLegendHorAlignment.RightOutside:o.x=n.right-o.width,l.width-=o.width+a,t.legend.showShadow&&(o.x-=5,l.width-=5);break}switch(t.legend.vertAlignment){case __.d.StiLegendVertAlignment.TopOutside:o.y=n.y,l.height-=o.height+h,l.y+=o.height+h;break;case __.d.StiLegendVertAlignment.Top:o.y=l.y+h;break;case __.d.StiLegendVertAlignment.Center:o.y=l.y+(l.height-o.height)/2;break;case __.d.StiLegendVertAlignment.Bottom:o.y=l.bottom-h-o.height,!t.legend.showShadow||t.legend.horAlignment!=__.d.StiLegendHorAlignment.LeftOutside&&t.legend.horAlignment!=__.d.StiLegendHorAlignment.RightOutside||(o.y-=5,l.height-=5);break;case __.d.StiLegendVertAlignment.BottomOutside:o.y=n.bottom-o.height,l.height-=o.height+h,t.legend.showShadow&&(o.y-=5,l.height-=5);break}t.legend.vertAlignment==__.d.StiLegendVertAlignment.BottomOutside||t.legend.vertAlignment==__.d.StiLegendVertAlignment.TopOutside?(t.legend.horAlignment==__.d.StiLegendHorAlignment.Left&&(o.x-=a),t.legend.horAlignment==__.d.StiLegendHorAlignment.Right&&(o.x+=a)):t.legend.horAlignment!=__.d.StiLegendHorAlignment.RightOutside&&t.legend.horAlignment!=__.d.StiLegendHorAlignment.LeftOutside||(t.legend.vertAlignment==__.d.StiLegendVertAlignment.Top&&(o.y-=h),t.legend.vertAlignment==__.d.StiLegendVertAlignment.Bottom&&(o.y+=h)),i.ref=n,s.ref=l,r.ref=o}constructor(e){this.chart=e}},Stimulsoft.Base.Meta.StiStringNullOrEmptyMeta),StiFontMeta=(__.d.StiChartTable=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartTable,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("Visible"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("MarkerVisible","",!0),new StiColorMeta("GridLineColor","",Color.gray),new StiBoolMeta("GridLinesHor","",!0),new StiBoolMeta("GridLinesVert","",!0),new StiBoolMeta("GridOutline","",!0),new StiStringNullOrEmptyMeta("Format"),new StiObjectMeta("Header"),new StiObjectMeta("DataCells")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e.header=this.header.clone(),e.dataCells=this.dataCells.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.chartTable=e),e}get font(){return this.dataCells.font}set font(e){this.dataCells.font=e}get textColor(){return this.dataCells.textColor}set textColor(e){this.dataCells.textColor=e}constructor(){this.visible=!1,this.allowApplyStyle=!0,this.markerVisible=!0,this.gridLineColor=Color.gray,this.gridLinesHor=!0,this.gridLinesVert=!0,this.gridOutline=!0,this.format="",this.chart=null,this.header=new __.d.StiChartTableHeader,this.dataCells=new __.d.StiChartTableDataCells,this.core=new __.d.StiChartTableCoreXF(this)}},Stimulsoft.Base.Meta.StiFontMeta),StringAlignment=Stimulsoft.System.Drawing.StringAlignment,Font=Stimulsoft.System.Drawing.Font,FontStyle=Stimulsoft.System.Drawing.FontStyle,StiJson=(__.d.StiChartTitle=class{implements(){let e=[__.d.IStiChartTitle,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiFontMeta(["Font","fn"],"","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta(["Text","text"]),new StiBrushMeta(["Brush","bh"]),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Alignment","",StringAlignment,StringAlignment.Center),new StiEnumMeta("Dock","",__.d.StiChartTitleDock,__.d.StiChartTitleDock.Top),new StiNumberMeta("Spacing","",2),new StiBoolMeta("Visible")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.alignment=this.alignment,e.font=this.font.clone(),e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.chartTitle=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=new StiSolidBrush(Color.saddleBrown),s=!0,r=StringAlignment.Center,n=__.d.StiChartTitleDock.Top,l=2,o=!1,a=!0){this._allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.brush=new StiSolidBrush(Color.saddleBrown),this.antialiasing=!0,this.alignment=StringAlignment.Center,this.dock=__.d.StiChartTitleDock.Top,this.spacing=2,this.visible=!1,this.chart=null,this.core=new __.d.StiChartTitleCoreXF(this),this.font=e,this.text=t,this.brush=i,this.antialiasing=s,this.alignment=r,this.dock=n,this.spacing=l,this.visible=o,this.allowApplyStyle=a}},Stimulsoft.Base.StiJson),StiLocalization=Stimulsoft.Base.Localization.StiLocalization,CollectionBase=Stimulsoft.System.Collections.CollectionBase,StiSizeMeta=(__.d.StiStripsCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiStripsCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiStrips;e.chart=this.chart,this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(s){for(let i=0;i<s.childNodes.length;i++){let t=s.childNodes[i];if(null==t.attributes)continue;let e=t.attributes.getNamedItem("type");if(null!=e&&"Stimulsoft.Report.Chart.StiStrips"==t.attributes.getNamedItem("type").value){let e=new __.d.StiStrips;e.chart=this.chart,this.add(e),e.loadFromXml(t)}}}applyStyle(t){for(let e of this.list)e.core.applyStyle(t)}getStripsTitle(){let e=StiLocalization.get("Chart","Strip"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.text==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.text)&&(e.text=this.getStripsTitle()),e.chart=this.chart),super.add(e)}},__.d.StiConstantLinesCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiConstantLinesCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiConstantLines;e.chart=this.chart,this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(s){for(let i=0;i<s.childNodes.length;i++){let t=s.childNodes[i];if(null==t.attributes)continue;let e=t.attributes.getNamedItem("type");if(null!=e&&"Stimulsoft.Report.Chart.StiConstantLines"==t.attributes.getNamedItem("type").value){let e=new __.d.StiConstantLines;e.chart=this.chart,this.add(e),e.loadFromXml(t)}}}applyStyle(t){for(let e of this.list)e.core.applyStyle(t)}getConstantLineTitle(){let e=StiLocalization.get("Chart","ConstantLine"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.text==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.text)&&(e.text=this.getConstantLineTitle()),e.chart=this.chart),super.add(e)}},Stimulsoft.Base.Meta.StiSizeMeta),SizeD=Stimulsoft.System.Drawing.Size,StiFormatService=__.e.TextFormats.StiFormatService,StiGeneralFormatService=__.e.TextFormats.StiGeneralFormatService;{class StiSeriesLabels extends StiService{constructor(){super(...arguments),this.preventIntersection=!1,this._allowApplyStyle=!0,this.showZeros=!1,this.showNulls=!0,this.markerVisible=!1,this.markerSize=new SizeD(8,6),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.step=0,this.valueType=__.d.StiSeriesLabelsValueType.Value,this.valueTypeSeparator="-",this.legendValueType=__.d.StiSeriesLabelsValueType.Value,this.textBefore="",this.textAfter="",this.angle=0,this.format="",this.antialiasing=!0,this.visible=!0,this.drawBorder=!0,this.useSeriesColor=!1,this.labelColor=Color.black,this.borderColor=Color.black,this.brush=new StiSolidBrush(Color.white),this.font=new Font("Arial",7),this.chart=null,this.wordWrap=!1,this.width=0}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("PreventIntersection"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ShowZeros"),new StiBoolMeta("ShowNulls","",!0),new StiBoolMeta("MarkerVisible"),new StiSizeMeta("MarkerSize"),new StiEnumMeta("MarkerAlignment","",__.d.StiMarkerAlignment,__.d.StiMarkerAlignment.Left),new StiNumberMeta("Step"),new StiEnumMeta("ValueType","",__.d.StiSeriesLabelsValueType,__.d.StiSeriesLabelsValueType.Value),new StiStringNullOrEmptyMeta("ValueTypeSeparator"),new StiEnumMeta("LegendValueType","",__.d.StiSeriesLabelsValueType,__.d.StiSeriesLabelsValueType.Value),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiNumberMeta("Angle"),new StiStringNullOrEmptyMeta("Format"),new StiBoolMeta("Antialiasing","",!0),new StiBoolMeta("Visible","",!0),new StiBoolMeta("DrawBorder","",!0),new StiBoolMeta("UseSeriesColor"),new StiColorMeta("LabelColor","",Color.black),new StiColorMeta("BorderColor","",Color.black),new StiBrushMeta(["Brush","bh"]),new StiFontMeta("Font","","Arial",7),new StiBoolMeta("WordWrap"),new StiNumberMeta("Width"),new StiObjectMeta("FormatService").check(()=>null!=this.formatService&&!this.formatService.is(StiGeneralFormatService)).set(e=>this.formatService=StiFormatService.createFromJsonObject(e.value)).setXml(e=>this.formatService=StiFormatService.loadFormatFromXml(e))]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e,t){let i=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),s=Stimulsoft.StiOptions.Services.chartSerieLabels.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==i);if(null==s)throw StiString.format("Type {0} is not found!",i);let r=StiActivator.createObject(s[Stimulsoft.System.StiObject.stimulsoft]().getType());return r.chart=t,r.loadFromJsonObject(e),r}static loadLabelsFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.seriesLabels=e),e}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiSeriesLabels}get axisCore(){return this.core}get pieCore(){return this.core}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}get conditions(){if(null==this.chart)return null;return this.chart.seriesLabelsConditions}set conditions(e){if(null==this.chart)return;this.chart.seriesLabelsConditions=e}get showOnZeroValues(){return this.showZeros}set showOnZeroValues(e){this.showZeros=e}toString(){return this.serviceName}}__.d.StiSeriesLabels=StiSeriesLabels}__.d.StiAxisSeriesLabels=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterAxisLabels=class extends __.d.StiAxisSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterAxisLabelsCoreXF(this)}};let StiPenStyle=Stimulsoft.Base.Drawing.StiPenStyle,StiRemoveMeta=(__.d.StiAxis=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxis,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("LogarithmicScale"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("StartFromZero","",!0),new StiObjectMeta("Interaction"),new StiObjectMeta("Labels"),new StiObjectMeta("Range"),new StiBoolMeta("Visible","",!0),new StiEnumMeta("ArrowStyle","",__.d.StiArrowStyle,__.d.StiArrowStyle.None),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.gray),new StiNumberMeta("LineWidth","",1),new StiObjectMeta("Title"),new StiObjectMeta("Ticks")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.arrowStyle=this.arrowStyle,e.lineStyle=this.lineStyle,e.labels=this.labels.clone(),e.range=this.range.clone(),e.title=this.title.clone(),e.ticks=this.ticks.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get step(){if(null==this.labels)return 0;return this.labels.step}set step(e){null!=this.labels&&(this.labels.step=e)}get title(){return null==this._title&&(this._title=new __.d.StiAxisTitle,this.is(__.d.StiXBottomAxis)||this.is(__.d.StiXTopAxis)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYRightAxis)?this._title.direction=__.d.StiDirection.TopToBottom:this.is(__.d.StiYLeftAxis)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title}set title(e){null==this._title&&(this._title=new __.d.StiAxisTitle,this.is(__.d.StiXBottomAxis)||this.is(__.d.StiXTopAxis)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYRightAxis)?this._title.direction=__.d.StiDirection.TopToBottom:this.is(__.d.StiYLeftAxis)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title=e}get titleDirection(){if(null==this.title)return __.d.StiLegendDirection.BottomToTop;switch(this.title.direction){case __.d.StiDirection.BottomToTop:return __.d.StiLegendDirection.BottomToTop;case __.d.StiDirection.LeftToRight:return __.d.StiLegendDirection.LeftToRight;case __.d.StiDirection.RightToLeft:return __.d.StiLegendDirection.RightToLeft;case __.d.StiDirection.TopToBottom:return __.d.StiLegendDirection.TopToBottom}return __.d.StiLegendDirection.BottomToTop}set titleDirection(e){if(null==this.title)return;switch(e){case __.d.StiLegendDirection.BottomToTop:this.title.direction=__.d.StiDirection.BottomToTop;break;case __.d.StiLegendDirection.LeftToRight:this.title.direction=__.d.StiDirection.LeftToRight;break;case __.d.StiLegendDirection.RightToLeft:this.title.direction=__.d.StiDirection.RightToLeft;break;case __.d.StiLegendDirection.TopToBottom:this.title.direction=__.d.StiDirection.TopToBottom;break}}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=!0,d=!1){this._allowApplyStyle=!0,this.logarithmicScale=!1,this.startFromZero=!0,this.interaction=new __.d.StiAxisInteraction,this.labels=new __.d.StiAxisLabels,this.range=new __.d.StiAxisRange,this.ticks=new __.d.StiAxisTicks,this.arrowStyle=__.d.StiArrowStyle.None,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.gray,this.lineWidth=1,this.visible=!0,this.info=new __.d.StiAxisInfoXF,this.labels=e,this.range=t,this._title=i,this.ticks=s,this.interaction=r,this.arrowStyle=n,this.lineStyle=l,this.lineColor=o,this.lineWidth=a,this.visible=h,this.startFromZero=u,this._allowApplyStyle=S,this.logarithmicScale=d}},__.d.StiYAxis=class extends __.d.StiAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("ShowYAxis","",__.d.StiShowYAxis,__.d.StiShowYAxis.Both)]}get propName(){return""}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowYAxis.Both,d=!0,m=!1){super(e,t,i,s,r,n,l,o,a,h,u,d,m),this.showYAxis=__.d.StiShowYAxis.Both,this.showYAxis=S}},Stimulsoft.Base.Meta.StiRemoveMeta),StiHorAlignment=Stimulsoft.Base.Drawing.StiHorAlignment,Enum=(__.d.StiYRightAxis=class extends __.d.StiYAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis,__.d.IStiYRightAxis]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ShowYAxis"),new StiBoolMeta("Visible")]}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=!0,d=!1){super(e,t,i,s,r,n,l,o,a,h,u,__.d.StiShowYAxis.Both,S,d),this.visible=!1,this.labels.textAlignment=StiHorAlignment.Left,this.core=new __.d.StiYRightAxisCoreXF(this)}},__.d.StiXAxis=class extends __.d.StiAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxis,__.d.IStiXAxis,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowEdgeValues"),new StiEnumMeta("ShowXAxis","",__.d.StiShowXAxis,__.d.StiShowXAxis.Both),new StiObjectMeta("DateTimeStep")]}get propName(){return""}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=new __.d.StiAxisDateTimeStep,g=!1){super(e,t,i,s,r,n,l,o,a,h,u,m,g),this.showEdgeValues=!1,this.showXAxis=__.d.StiShowXAxis.Both,this.dateTimeStep=new __.d.StiAxisDateTimeStep,this.showXAxis=S,this.dateTimeStep=c,this.showEdgeValues=d}},__.d.StiXTopAxis=class extends __.d.StiXAxis{implements(){let e=super.implements().concat([__.d.IStiXTopAxis,ICloneable,__.d.IStiAxis,__.d.IStiXAxis,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["Range","ShowXAxis","DateTimeStep"]),new StiBoolMeta("Visible")]}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!1,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=!1){super(e,t,i,s,r,n,l,o,a,h,u,__.d.StiShowXAxis.Both,d,m,new __.d.StiAxisDateTimeStep,c),this.core=new __.d.StiXTopAxisCoreXF(this)}},__.d.StiYLeftAxis=class extends __.d.StiYAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis,__.d.IStiYLeftAxis]);return(this.implements=()=>e)()}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowYAxis.Both,d=!0,m=!1){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m),this.core=new __.d.StiYLeftAxisCoreXF(this)}},__.d.StiAxisLabels=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisLabels,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiNumberMeta("Angle"),new StiNumberMeta("Width"),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiFontMeta("Font","","Tahoma",8),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Placement","",__.d.StiLabelsPlacement,__.d.StiLabelsPlacement.OneLine),new StiColorMeta("Color","",Color.black),new StiEnumMeta("TextAlignment","",StiHorAlignment,StiHorAlignment.Right),new StiNumberMeta("Step"),new StiBoolMeta("WordWrap")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.placement=this.placement,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.labels=e),e}constructor(e="",t="",i="",s=0,r=new Font("Tahoma",8),n=!0,l=__.d.StiLabelsPlacement.OneLine,o=Color.black,a=0,h=StiHorAlignment.Right,u=0,S=!0,d=!1){this.allowApplyStyle=!0,this.format="",this.angle=0,this.width=0,this.textBefore="",this.textAfter="",this.font=new Font("Tahoma",8),this.antialiasing=!0,this.placement=__.d.StiLabelsPlacement.OneLine,this.color=Color.black,this.textAlignment=StiHorAlignment.Right,this.step=0,this.wordWrap=!1,this.format=e,this.textBefore=t,this.textAfter=i,this.angle=s,this.font=r,this.antialiasing=n,this.placement=l,this.color=o,this.width=a,this.textAlignment=h,this.step=u,this.allowApplyStyle=S,this.wordWrap=d,this.core=new __.d.StiAxisLabelsCoreXF(this)}},__.d.StiAxisRange=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxisRange];return(this.implements=()=>e)()}meta(){return[new StiNumberMeta("Minimum"),new StiNumberMeta("Maximum"),new StiBoolMeta("Auto","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(e=!0,t=0,i=0){this.minimum=0,this.maximum=0,this.auto=!0,this.auto=e,this.minimum=t,this.maximum=i}},__.d.StiAxisTicks=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisTicks,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiNumberMeta("LengthUnderLabels","_",5),new StiNumberMeta("Length","_",5),new StiNumberMeta("MinorLength","_",2),new StiNumberMeta("MinorCount","_",4),new StiNumberMeta("Step","_"),new StiBoolMeta("MinorVisible"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get lengthUnderLabels(){return this._lengthUnderLabels}set lengthUnderLabels(e){0<e&&(this._lengthUnderLabels=e)}get length(){return this._length}set length(e){0<e&&(this._length=e)}get minorLength(){return this._minorLength}set minorLength(e){0<e&&(this._minorLength=e)}get minorCount(){return this._minorCount}set minorCount(e){0<=e&&(this._minorCount=e)}get step(){return this._step}set step(e){0<=e&&(this._step=e)}constructor(e=!0,t=5,i=!1,s=2,r=4,n=0,l=5){this._lengthUnderLabels=5,this._length=5,this._minorLength=2,this._minorCount=4,this._step=0,this.minorVisible=!1,this.visible=!0,this.visible=e,this._length=t,this.minorVisible=i,this._minorLength=s,this._minorCount=r,this._step=n,this._lengthUnderLabels=l}},__.d.StiAxisInteraction=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisInteraction,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("ShowScrollBar"),new StiBoolMeta("RangeScrollEnabled","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}constructor(e=!1,t=!0){this.showScrollBar=!1,this.rangeScrollEnabled=!0,this.showScrollBar=e,this.rangeScrollEnabled=t}},__.d.StiAxisDateTimeStep=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxisDateTimeStep,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiEnumMeta("Step","",__.d.StiTimeDateStep,__.d.StiTimeDateStep.None),new StiNumberMeta("NumberOfValues","",1),new StiBoolMeta("Interpolation"),new StiEnumMeta("Aggregation","",__.d.StiDateTimeStepAggregation,__.d.StiDateTimeStepAggregation.Average)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(e=__.d.StiTimeDateStep.None,t=1,i=!1,s=__.d.StiDateTimeStepAggregation.Average){this.step=__.d.StiTimeDateStep.None,this.numberOfValues=1,this.interpolation=!1,this.aggregation=__.d.StiDateTimeStepAggregation.Average,this.step=e,this.numberOfValues=t,this.interpolation=i,this.aggregation=s}},__.d.StiXBottomAxis=class extends __.d.StiXAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiXAxis,ICloneable,__.d.IStiXBottomAxis,__.d.IStiAxis]);return(this.implements=()=>e)()}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=new __.d.StiAxisDateTimeStep,g=!1){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g),this.dateTimeStep=c,this.core=new __.d.StiXBottomAxisCoreXF(this)}},__.d.StiGridLines=class{implements(){let e=[IStiJsonReportObject,__.d.IStiGridLines,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiColorMeta("Color","",Color.silver),new StiColorMeta("MinorColor","",Color.gainsboro),new StiEnumMeta("Style","",StiPenStyle,StiPenStyle.Dot),new StiEnumMeta("MinorStyle","",StiPenStyle,StiPenStyle.Dot),new StiBoolMeta("Visible","",!0),new StiBoolMeta("MinorVisible"),new StiNumberMeta("MinorCount","_"),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.style=this.style,e.minorStyle=this.minorStyle,null!=this.core&&(e.core=this.core.clone(),e.core.gridLines=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get minorCount(){return this._minorCount}set minorCount(e){0<=e&&(this._minorCount=e)}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.color=Color.silver,this.minorColor=Color.gainsboro,this.style=StiPenStyle.Dot,this.minorStyle=StiPenStyle.Dot,this.visible=!0,this.minorVisible=!1,this._minorCount=0,this.color=e,this.style=t,this.visible=i,this.minorColor=s,this.minorStyle=r,this.minorVisible=n,this._minorCount=l,this._allowApplyStyle=o,this.core=new __.d.StiGridLinesCoreXF(this)}},__.d.StiGridLinesVert=class extends __.d.StiGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiGridLines,ICloneable,__.d.IStiGridLinesVert]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){super(e,t,i,s,r,n,l,o)}},__.d.StiGridLinesHor=class extends __.d.StiGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiGridLines,__.d.IStiGridLinesHor,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){super(e,t,i,s,r,n,l,o)}},__.d.StiInterlacing=class{implements(){let e=[__.d.IStiInterlacing,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiBrushMeta("InterlacedBrush"),new StiBoolMeta("Visible","",!0),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.interlacedBrush=this.interlacedBrush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.interlacing=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.interlacedBrush=new StiSolidBrush(Color.transparent),this.visible=!0,this.interlacedBrush=e,this.visible=t,this._allowApplyStyle=i,this.core=new __.d.StiInterlacingCoreXF(this)}},__.d.StiInterlacingVert=class extends __.d.StiInterlacing{implements(){let e=super.implements().concat([__.d.IStiInterlacing,__.d.IStiInterlacingVert,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){super(e,t,i)}},__.d.StiInterlacingHor=class extends __.d.StiInterlacing{implements(){let e=super.implements().concat([__.d.IStiInterlacing,__.d.IStiInterlacingHor,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){super(e,t,i)}},__.d.StiAxisArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxisArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_").set(e=>{this._interlacingHor.loadFromJsonObject(e.value),this._interlacingHor.needSetAreaJsonPropertyInternal&&(this._interlacingHor.needSetAreaJsonPropertyInternal=!1,this._interlacingHor.area=this)}).setXml(e=>{this._interlacingHor.loadFromXml(e),this._interlacingHor.area=this}),new StiObjectMeta("InterlacingVert","_").set(e=>{this._interlacingVert.loadFromJsonObject(e.value),this._interlacingVert.needSetAreaJsonPropertyInternal&&(this._interlacingVert.needSetAreaJsonPropertyInternal=!1,this._interlacingVert.area=this)}).setXml(e=>{this._interlacingVert.loadFromXml(e),this._interlacingVert.area=this}),new StiObjectMeta("GridLinesHor","_").set(e=>{this._gridLinesHor.loadFromJsonObject(e.value),this._gridLinesHor.needSetAreaJsonPropertyInternal&&(this._gridLinesHor.needSetAreaJsonPropertyInternal=!1,this._gridLinesHor.area=this)}).setXml(e=>{this._gridLinesHor.loadFromXml(e),this._gridLinesHor.area=this}),new StiObjectMeta("GridLinesHorRight","_").set(e=>{this._gridLinesHorRight.loadFromJsonObject(e.value),this._gridLinesHorRight.needSetAreaJsonPropertyInternal&&(this._gridLinesHorRight.needSetAreaJsonPropertyInternal=!1,this._gridLinesHorRight.area=this)}).setXml(e=>{this._gridLinesHorRight.loadFromXml(e),this._gridLinesHorRight.area=this}),new StiObjectMeta("GridLinesVert","_").set(e=>{this._gridLinesVert.loadFromJsonObject(e.value),this._gridLinesVert.needSetAreaJsonPropertyInternal&&(this._gridLinesVert.needSetAreaJsonPropertyInternal=!1,this._gridLinesVert.area=this)}).setXml(e=>{this._gridLinesVert.loadFromXml(e),this._gridLinesVert.area=this}),new StiObjectMeta("YAxis","_"),new StiObjectMeta("YRightAxis","_"),new StiObjectMeta("XAxis","_"),new StiObjectMeta("XTopAxis","_"),new StiBoolMeta("ReverseHor"),new StiBoolMeta("ReverseVert")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesHorRight=this.gridLinesHorRight.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.yAxis=this.yAxis.clone(),e.yRightAxis=this.yRightAxis.clone(),e.xAxis=this.xAxis.clone(),e.xTopAxis=this.xTopAxis.clone(),e}get axisCore(){return this.core}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesHorRight(){return this._gridLinesHorRight}set gridLinesHorRight(e){this._gridLinesHorRight=e,null!=this._gridLinesHorRight&&(this._gridLinesHorRight.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}get yRightAxis(){return this._yRightAxis}set yRightAxis(e){this._yRightAxis=e,null!=this._yRightAxis&&(this._yRightAxis.area=this)}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get xTopAxis(){return this._xTopAxis}set xTopAxis(e){this._xTopAxis=e,null!=this._xTopAxis&&(this._xTopAxis.area=this)}getDefaultSeriesLabelsType(){return __.d.StiCenterAxisLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiInsideEndAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiLeftAxisLabels,__.d.StiValueAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.reverseHor=!1,this.reverseVert=!1,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert,this.gridLinesHor=new __.d.StiGridLinesHor,this.gridLinesHorRight=new __.d.StiGridLinesHor,this.gridLinesVert=new __.d.StiGridLinesVert,this.gridLinesHorRight.visible=!1,this.xAxis=new __.d.StiXBottomAxis,this.yAxis=new __.d.StiYLeftAxis,this.xTopAxis=new __.d.StiXTopAxis,this.yRightAxis=new __.d.StiYRightAxis}},__.d.StiClusteredColumnArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiRoundValuesArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues"),new StiBoolMeta("SideBySide","",!1,!0)]}getDefaultSeriesType(){return __.d.StiClusteredColumnSeries}getSeriesTypes(){return[__.d.StiClusteredColumnSeries,__.d.StiLineSeries,__.d.StiSteppedLineSeries,__.d.StiSplineSeries,__.d.StiAreaSeries,__.d.StiSteppedAreaSeries,__.d.StiSplineAreaSeries]}constructor(){super(),this.roundValues=!1,this.sideBySide=!0,this.core=new __.d.StiClusteredColumnAreaCoreXF(this)}},__.d.StiSeriesCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiSeriesCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let r of e.properties()){let e=r.value,t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartSeries.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());s.chart=this.chart,this.list.push(s),s.loadFromJsonObject(r.value)}}loadFromXml(i,r){for(let t=0;t<i.childNodes.length;t++){let s=i.childNodes[t];if(null==s.attributes)continue;let e=s.attributes.getNamedItem("type");if(null!=e){let e=s.attributes.getNamedItem("type").value,t=e.split(".").pop(),i=new __.d[t];i.chart=r,this.list.push(i),i.loadFromXml(s)}}}applyStyle(i){if(null==i)return;let s=0;for(let t of this.list){let e=i.core.getColors(this.length,t.core.seriesColors);t.core.applyStyle(i,e[s++])}}getSeriesTitle(){let e=StiLocalization.get("Chart","Series"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.coreTitle==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.coreTitle)&&(e.coreTitle=this.getSeriesTitle()),e.chart=this.chart),super.add(e),this.invokeSeriesAdded(e)}insert(e,t){null!=this.chart&&(StiString.isNullOrEmpty(t.coreTitle)&&(t.coreTitle=this.getSeriesTitle()),t.chart=this.chart),super.insert(e,t),this.invokeSeriesAdded(t)}remove(e){this.invokeSeriesRemoved(e),super.remove(e)}removeAt(e){let t=this.getByIndex(e);this.invokeSeriesRemoved(t),super.removeAt(e)}getByName(t){for(let e of this.list)if(e.coreTitle==t)return e;return null}setByName(i,s){for(let t=0;t<this.list.length;t++){let e=this.list[t];if(e.coreTitle==i)return void(this.list[t]=s)}this.add(s)}invokeSeriesAdded(e){null!=this.seriesAdded&&this.seriesAdded(e,EventArgs.empty)}invokeSeriesRemoved(e){null!=this.seriesRemoved&&this.seriesRemoved(e,EventArgs.empty)}},Stimulsoft.System.Enum),XMLConvert=(__.d.StiChartFilter=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartFilter,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiEnumMeta("Condition","",StiFilterCondition,StiFilterCondition.EqualTo),new StiEnumMeta("DataType","",StiFilterDataType,StiFilterDataType.String),new StiEnumMeta("Item","",StiFilterItem,StiFilterItem.Argument),new StiStringNullOrEmptyMeta("Value")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get index(){if(null==this.filters)return-1;let e=this.filters.indexOf(this);return e}get value(){return this._valueObj}set value(e){this._valueObj=e}toString(){let e="";switch(this.condition){case StiFilterCondition.EqualTo:e="=";break;case StiFilterCondition.NotEqualTo:e="<>";break;case StiFilterCondition.GreaterThan:e=">";break;case StiFilterCondition.GreaterThanOrEqualTo:e=">=";break;case StiFilterCondition.LessThan:e="<";break;case StiFilterCondition.LessThanOrEqualTo:e="=<";break}let t=StiLocalization.get("PropertyMain","Argument");switch(Enum.parse(StiFilterItem,t)){case StiFilterItem.Value:t=StiLocalization.get("PropertyMain","Value");break;case StiFilterItem.ValueEnd:t=StiLocalization.get("PropertyMain","Value");break}return StiString.format("{0} {1} {2}",t,e,this.value)}constructor(e=StiFilterItem.Argument,t=StiFilterDataType.String,i=StiFilterCondition.EqualTo,s=""){this.condition=StiFilterCondition.EqualTo,this.dataType=StiFilterDataType.String,this.item=StiFilterItem.Argument,this._valueObj="",this.filters=null,this.item=e,this.dataType=t,this.condition=i,this._valueObj=s}},__.d.StiChartCondition=class extends __.d.StiChartFilter{implements(){let e=super.implements().concat([__.d.IStiChartCondition,__.d.IStiChartFilter,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("Color","",Color.white),new StiEnumMeta("MarkerType","",__.d.StiMarkerType,__.d.StiMarkerType.Circle),new StiNumberMeta("MarkerAngle")]}clone(){return super.clone()}constructor(e=Color.white,t=StiFilterItem.Argument,i=StiFilterDataType.String,s=StiFilterCondition.EqualTo,r="",n,l){super(t,i,s,r),this.color=Color.white,this.markerType=__.d.StiMarkerType.Circle,this.markerAngle=0,this.conditions=null,this.color=e,null!=n&&(this.markerType=n),null!=l&&(this.markerAngle=l)}},Stimulsoft.System.Text.XMLConvert);{class StiChartConditionsCollection extends CollectionBase{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiChartConditionsCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiChartCondition;e.loadFromJsonObject(t.value),this.list.push(e)}}loadFromXml(t){for(let e=0;e<t.childNodes.length;e++){let s=t.childNodes[e];if("value"==s.nodeName){let e=s.textContent.split(","),t=e[3],i=("GreaterThen"==t?t="GreaterThan":"GreaterThenOrEqualTo"==t?t="GreaterThanOrEqualTo":"LessThen"==t?t="LessThan":"LessThenOrEqualTo"==t&&(t="LessThanOrEqualTo"),new __.d.StiChartCondition(Stimulsoft.System.Text.StiReportObjectStringConverter.convertStringToColor(e[0]),Enum.parse(StiFilterItem,e[1]),Enum.parse(StiFilterDataType,e[2]),Enum.parse(StiFilterCondition,t),XMLConvert.decodeName(e[4])));this.add(i)}}}clone(){let t=new StiChartConditionsCollection;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e),null==e.conditions&&(e.conditions=this)}}__.d.StiChartConditionsCollection=StiChartConditionsCollection}let StiExpression=__.a.Expressions.StiExpression,StiExpressionMeta=Stimulsoft.Base.Meta.StiExpressionMeta,CultureInfo=Stimulsoft.System.Globalization.CultureInfo,XmlConvert=Stimulsoft.System.Text.XMLConvert,StiJsonSaveMode=Stimulsoft.Base.StiJsonSaveMode,StringBuilder=Stimulsoft.System.Text.StringBuilder,StiGuidUtils=Stimulsoft.Base.StiGuidUtils,StiGradientBrush=Stimulsoft.Base.Drawing.StiGradientBrush,StiGlareBrush=Stimulsoft.Base.Drawing.StiGlareBrush;{class StiSeries extends StiService{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiEnumMeta("SortBy","",__.d.StiSeriesSortType,__.d.StiSeriesSortType.None),new StiEnumMeta("SortDirection","",__.d.StiSeriesSortDirection,__.d.StiSeriesSortDirection.Ascending),new StiBoolMeta("ShowInLegend","",!0),new StiEnumMeta("ShowSeriesLabels","_",__.d.StiShowSeriesLabels,__.d.StiShowSeriesLabels.FromChart),new StiBoolMeta("ShowShadow","",!0),new StiEnumMeta("FilterMode","",StiFilterMode,StiFilterMode.And),new StiObjectMeta("Filters"),new StiObjectMeta("Conditions"),new StiObjectMeta("TopN"),new StiEnumMeta("YAxis","",__.d.StiSeriesYAxis,__.d.StiSeriesYAxis.LeftYAxis),new StiObjectMeta("SeriesLabels").set(e=>this.seriesLabels=__.d.StiSeriesLabels.loadFromJsonObjectInternal(e,this.chart)).setXml(e=>this.seriesLabels=__.d.StiSeriesLabels.loadLabelsFromXml(e,this.chart)),new StiObjectMeta("TrendLines"),new StiStringNullOrEmptyMeta("ValueDataColumn"),new StiStringNullOrEmptyMeta("ArgumentDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesTitleDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesKeyDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesColorDataColumn"),new StiStringNullOrEmptyMeta("ToolTipDataColumn"),new StiStringNullOrEmptyMeta("TagDataColumn"),new StiStringNullOrEmptyMeta("HyperlinkDataColumn"),new StiBoolMeta("DrillDownEnabled"),new StiStringNullOrEmptyMeta("DrillDownReport"),new StiStringNullOrEmptyMeta("DrillDownPageGuid"),new StiBoolMeta("AllowSeries","",!0),new StiBoolMeta("AllowSeriesElements","",!0),new StiObjectMeta("Interaction"),new StiExpressionMeta("Value"),new StiExpressionMeta("ListOfValues"),new StiExpressionMeta("Argument"),new StiExpressionMeta("ListOfArguments"),new StiExpressionMeta("Title").set(e=>{let t=new StiExpression;t.loadFromJsonObject(e),this.title=t.value,this.titleValue=t.value}).setXml(e=>{let t=new StiExpression;t.loadFromXml(e),this.title=t.value,this.titleValue=t.value}),new StiExpressionMeta("ToolTip"),new StiExpressionMeta("ListOfToolTips"),new StiExpressionMeta("Tag"),new StiExpressionMeta("ListOfTags"),new StiExpressionMeta("Hyperlink"),new StiExpressionMeta("ListOfHyperlinks"),new StiStringNullOrEmptyMeta("ValuesString"),new StiStringNullOrEmptyMeta("ArgumentsString"),new StiStringNullOrEmptyMeta("ToolTipsString"),new StiStringNullOrEmptyMeta("TagString"),new StiStringNullOrEmptyMeta("HyperlinkString"),new StiStringNullOrEmptyMeta("TitleValue"),new StiColorMeta("LegendColor","",null),new StiStringNullOrEmptyMeta("ValuesString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("ArgumentsString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("ToolTipsString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("TagString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("HyperlinkString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("TitleValue","",StiJsonSaveMode.Document),new StiColorMeta("LegendColor","",null,StiJsonSaveMode.Document)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=super.clone();return e.title=this.title,e.arguments=this.arguments.slice(),e.tags=this.tags.slice(),e.toolTips=this.toolTips.slice(),e.hyperlinks=this.hyperlinks.slice(),e.topN=this.topN.clone(),e.interaction=this.interaction.clone(),e.seriesLabels=this.seriesLabels.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.series=e),e}baseTransform(){}get parent(){return this.chart}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiSeries}get showLabels(){return!0}set showLabels(e){e&&(this.showSeriesLabels=__.d.StiShowSeriesLabels.FromChart)}get showSeriesLabels(){return this._showSeriesLabels}set showSeriesLabels(e){this._showSeriesLabels=e==__.d.StiShowSeriesLabels.None?__.d.StiShowSeriesLabels.FromChart:e}get seriesLabels(){return this._seriesLabels}set seriesLabels(e){this._seriesLabels=e,this._seriesLabels.chart=this.chart}get trendLine(){if(null!=this.trendLines&&0<this.trendLines.count)return this.trendLines.getByIndex(0);return new __.d.StiTrendLineNone}set trendLine(e){e.is(__.d.StiTrendLineNone)||this.trendLines.insert(0,e)}get chart(){return this._chart}set chart(e){this._chart!=e&&null!=(this._chart=e)&&(this.seriesLabels.chart=e)}get values(){if(null==this.chart||null!=this.chart&&!this.chart.isDesigning||this.isDashboard)return this._values;let e=this.chart.series.indexOf(this),t=[],i=this.as(__.d.StiWaterfallSeries);return t=null!=i?i.total.visible?[3,-1,2,4]:[3,-1,2]:this.is(__.d.IStiBoxAndWhiskerSeries)?[8,2,3,9,10]:this.is(__.d.IStiHistogramSeries)?[4,2,1]:StiString.isNullOrEmpty(this.listOfValues)||this.listOfValues.includes("{")?this.is(__.d.IStiSteppedRangeSeries)?[1+3*e,3+4*e,2+3*e,3+3*e,3+3*e]:this.is(__.d.IStiFunnelSeries)?[3,2,1]:this.is(__.d.IStiGanttSeries)?[1+3*e,3+4*e,7+3*e]:this.is(__.d.IStiScatterSeries)?[1+e,6+e,2+e]:this.is(__.d.IStiHeatmapSeries)?[1,2,3,2,3,2,3,2,1]:this.is(__.d.IStiPieSeries)?0==e?[1,3,2]:[1+e,3+e,4+e]:this.is(__.d.StiRadarSeries)?[1+e,2+e,3+e,4+e,5+e]:0==e?this._values:[1+e,3+e,2.5+e]:StiSeries.getNullableValuesFromString(this,this.listOfValues)}set values(t){let i,s=[];for(let e=0;e<t.length;e++)e<this.values.length&&0<(null==(i=this.valuesStart)?void 0:i.length)?s[e]=this.values[e]:s[e]=0;this.valuesStart=s,this._values=t}get valuesString(){let t=new StringBuilder,i=!0;for(let e of this._values)i?t.appendFormat("{0}",null==e?"":e):t.appendFormat(";{0}",null==e?"":e),i=!1;return t.toString()}set valuesString(e){if(null==e||0==e.trim().length)this._values=[];else{let t=e.split(";");this._values=[];for(let e of t)StiString.isNullOrEmpty(e)?this._values.push(null):this._values.push(e[Stimulsoft.System.StiObject.stimulsoft]().toNumber())}}get arguments(){return this.getArguments()}set arguments(e){this.setArguments(e)}getArguments(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._arguments;if(!StiString.isNullOrEmpty(this.listOfArguments))return StiSeries.getArgumentsFromString(this.listOfArguments);let e=this.as(__.d.StiWaterfallSeries);if(null!=e&&(null==this._arguments||0==this._arguments.length))return e.total.visible?["A","B","C",e.total.text]:["A","B","C"];if(this.is(__.d.IStiHistogramSeries))return["[1, 2]","(2, 3]","(3, 4]"];if((this.is(__.d.IStiTreemapSeries)||this.is(__.d.IStiGanttSeries)||this.is(__.d.IStiRangeBarSeries)||this.is(__.d.IStiCandlestickSeries)||this.is(__.d.StiSunburstSeries))&&(null==this._arguments||0==this._arguments.length))return["A","B","C"];if((this.is(__.d.IStiScatterSeries)||this.is(__.d.IStiScatterLineSeries)||this.is(__.d.IStiScatterSplineSeries))&&(null==this._arguments||0==this._arguments.length))return["1","5","4"];return this._arguments}setArguments(e){this._arguments=e}get argumentsString(){let i=new StringBuilder,s=!0;for(let t of this._arguments)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XmlConvert.encodeName(e)):i.appendFormat(";{0}",XmlConvert.encodeName(e)),s=!1}return i.toString()}set argumentsString(t){if(null==t||0==t.trim().length)this._arguments=[];else{let e=t.split(";");this._arguments=[];for(let i of e){let e=XmlConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._arguments.push(t.result):this._arguments.push(e)}}}get toolTips(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&!StiString.isNullOrEmpty(this.listOfToolTips))return StiSeries.getStringsFromString(this.listOfToolTips);return this._toolTips}set toolTips(e){this._toolTips=e}get toolTipsString(){let t=new StringBuilder,i=!0;for(let e of this._toolTips)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set toolTipsString(e){if(null==e||0==e.trim().length)this._toolTips=[];else{let t=e.split(";");this._toolTips=[];for(let e of t)this._toolTips.push(XmlConvert.decodeName(e))}}get tags(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&!StiString.isNullOrEmpty(this.listOfTags))return StiSeries.getArgumentsFromString(this.listOfTags);return this._tags}set tags(e){this._tags=e}get tagString(){let t=new StringBuilder,i=!0;for(let e of this.tags)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set tagString(e){if(null==e||0==e.trim().length)this._tags=[];else{let t=e.split(";");this._tags=[];for(let e of t)this._tags.push(XmlConvert.decodeName(e))}}get hyperlinks(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&null!=this.listOfHyperlinks&&0<this.listOfHyperlinks.length)return StiSeries.getStringsFromString(this.listOfHyperlinks);return this._hyperlinks}set hyperlinks(e){this._hyperlinks=e}get hyperlinkString(){let t=new StringBuilder,i=!0;for(let e of this._hyperlinks)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set hyperlinkString(e){if(null==e||0==e.trim().length)this._hyperlinks=[];else{let t=e.split(";");this._hyperlinks=[];for(let e of t)this._hyperlinks.push(XmlConvert.decodeName(e))}}get drillDownPage(){if(null==this.chart||null==this.chart.report)return null;for(let e of this.chart.report.pages.list)if(e.guid==this.drillDownPageGuid)return e;return null}set drillDownPage(e){null==e?this.drillDownPageGuid=null:(null==e.guid&&(e.guid=StiGuidUtils.newGuid()),this.drillDownPageGuid=e.guid)}get coreTitle(){let e=null;return e=null==(e=null!=this.chart&&this.chart.isDesigning?this.title:this.titleValue)?"":e}set coreTitle(e){this.title=e,this.titleValue=e}get interaction(){return this._interaction}set interaction(e){this._interaction!=e&&null!=(this._interaction=e)&&(this._interaction.parentSeries=this)}processSeriesColors(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.color;return e}processSeriesMarkerType(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.markerType;return e}processSeriesMarkerAngle(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.markerAngle;return e}processSeriesMarkerVisible(t){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return!0;return!1}processSeriesBrushes(t,i){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return i=this.allowApplyStyle&&null!=this.chart.style?this.chart.style.core.getColumnBrush(e.color):new StiSolidBrush(e.color),this.chart.area.is(__.d.IStiClusteredBarArea)&&(i.is(StiGradientBrush)&&(i.angle+=90),i.is(StiGlareBrush))&&(i.angle+=90),i;return i}getConditionResult(e,t){if((null==this.values||this.values.length<=e)&&!this.is(__.d.IStiFinancialSeries))return!1;let i=null,s=null,r=null,n=null,l=null,o=null,a=null,h=(this.chart.area.is(__.d.IStiAxisArea)&&this.chart.area.reverseHor&&!this.chart.area.is(__.d.IStiClusteredBarArea)||this.chart.area.is(__.d.IStiClusteredBarArea)&&this.chart.area.reverseVert?(null!=this.values&&e<this.values.length&&(i=this.values[this.values.length-e-1]),this.is(__.d.IStiRangeSeries)&&e<this.valuesEnd.length&&(s=this.valuesEnd[this.valuesEnd.length-e-1]),this.is(__.d.IStiFinancialSeries)&&(e<this.valuesOpen.length&&(r=this.valuesOpen[this.valuesOpen.length-e-1]),e<this.valuesClose.length&&(n=this.valuesClose[this.valuesClose.length-e-1]),e<this.valuesLow.length&&(l=this.valuesLow[this.valuesLow.length-e-1]),e<this.valuesHigh.length)&&(o=this.valuesHigh[this.valuesHigh.length-e-1]),null!=this.arguments&&e<this.arguments.length&&(a=this.arguments[this.arguments.length-e-1])):(null!=this.values&&e<this.values.length&&(i=this.values[e]),this.is(__.d.IStiRangeSeries)&&e<this.valuesEnd.length&&(s=this.valuesEnd[e]),this.is(__.d.IStiFinancialSeries)&&(e<this.valuesOpen.length&&(r=this.valuesOpen[e]),e<this.valuesClose.length&&(n=this.valuesClose[e]),e<this.valuesLow.length&&(l=this.valuesLow[e]),e<this.valuesHigh.length)&&(o=this.valuesHigh[e]),null!=this.arguments&&e<this.arguments.length&&(a=this.arguments[e])),__.d.StiChartHelper.getFilterData(null,t,null));return __.d.StiChartHelper.getFilterResult(t,a,i,s,r,n,l,o,h)}toString(){return this.serviceName}static tryParseValue(t,i,s){this.storedCulture=null;try{StiString.isNullOrEmpty(i)||(this.storedCulture=CultureInfo.currentCulture,CultureInfo.currentCulture=CultureInfo.cultures[i]);let e=StiNumber.tryParse(t);return s.ref=e.result,e.successfully}finally{null!=this.storedCulture&&(CultureInfo.currentCulture=this.storedCulture)}}static getNullableValuesFromString(s,e){let r=[],t=e.split(";");for(let i of t)if(null!=i&&0<i.trim().length){let t=0;try{t=i[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){}let e=i[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(0<i.length&&!isNaN(e))t=e;else{let e=DateTime.fromString(i,!1);null!=e&&(s.core.isDateTimeValues=!0,t=e.toOADate())}r.push(t)}return r}static getValuesFromString(e){let i=[],s=e.split(";");for(let t of s)if(null!=t&&0<t.trim().length){let e=0;try{e=t[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){}i.push(e)}return i}static getStringsFromString(e){let t=[],i=e.split(";");for(let e of i)null!=e&&0<e.trim().length&&t.push(e);return t}static getArgumentsFromString(e){return e.split(";")}getDefaultAreaType(){return null}getDefaultLegendType(){return __.d.StiLegend}invokeNewAutoSeries(e){null!=this.newAutoSeries&&this.newAutoSeries(e.series,e)}onGetValue(e){}invokeGetValue(i,s){try{if(this.onGetValue(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesValue**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.value,e));s.value=i.report.toString2(t)}null!=this.getValue&&this.getValue(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"value").isAll)throw s}}onGetListOfValues(e){}invokeGetListOfValues(i,s,r){try{if(this.onGetListOfValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValues,e));s.value=i.report.toString2(t)}null!=r.getListOfValues&&r.getListOfValues(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"ListOfValues").isAll)throw s}}onGetArgument(e){}invokeGetArgument(i,s){try{if(this.onGetArgument(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesArgument**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.argument,e));s.value=i.report.toString2(t)}null!=this.getArgument&&this.getArgument(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"argument").isAll)throw s}}onGetListOfArguments(e){}invokeGetListOfArguments(i,s){try{if(this.onGetListOfArguments(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfArguments**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfArguments,e));s.value=i.report.toString2(t)}null!=this.getListOfArguments&&this.getListOfArguments(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfArguments").isAll)throw s}}onGetTitle(e){}invokeGetTitle(i,s){try{if(this.onGetTitle(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesTitle**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.title,e));s.value=i.report.toString2(t)}null!=this.getTitle&&this.getTitle(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"title").isAll)throw s}}onGetToolTip(e){}invokeGetToolTip(i,s){try{if(this.onGetToolTip(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesToolTip**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.toolTip,e));s.value=StiString.isNullOrEmpty(this.toolTip)?null:i.report.toString2(t)}null!=this.getToolTip&&this.getToolTip(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"toolTip").isAll)throw s}}onGetListOfToolTips(e){}invokeGetListOfToolTips(i,s){try{if(this.onGetListOfToolTips(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfToolTips**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfToolTips,e));s.value=i.report.toString2(t)}null!=this.getListOfToolTips&&this.getListOfToolTips(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfToolTips").isAll)throw s}}onGetTag(e){}invokeGetTag(e,t){try{this.onGetTag(t),null!=this.getTag&&this.getTag(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"tag").isAll)throw t}}onGetListOfTags(e){}invokeGetListOfTags(e,t){try{this.onGetListOfTags(t),null!=this.getListOfTags&&this.getListOfTags(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"listOfTags").isAll)throw t}}onGetHyperlink(e){}invokeGetHyperlink(e,t){try{this.onGetHyperlink(t),null!=this.getHyperlink&&this.getHyperlink(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"hyperlink").isAll)throw t}}onGetListOfHyperlinks(e){}invokeGetListOfHyperlinks(i,s){try{if(this.onGetListOfHyperlinks(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfHyperlinks**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfHyperlinks,e));s.value=i.report.toString2(t)}null!=this.getListOfHyperlinks&&this.getListOfHyperlinks(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfHyperlinks").isAll)throw s}}get value(){return this.valueObj}set value(e){this.valueObj=e}constructor(){super(),this.allowApplyStyle=!0,this.format="",this.sortBy=__.d.StiSeriesSortType.None,this.sortDirection=__.d.StiSeriesSortDirection.Ascending,this.showInLegend=!0,this._showSeriesLabels=__.d.StiShowSeriesLabels.FromChart,this.showShadow=!0,this.filterMode=StiFilterMode.And,this.filters=new __.d.StiChartFiltersCollection,this.conditions=new __.d.StiChartConditionsCollection,this.topN=new __.d.StiSeriesTopN,this.yAxis=__.d.StiSeriesYAxis.LeftYAxis,this.trendLines=new __.d.StiTrendLinesCollection,this.isTotalLabel=!1,this.valuesStart=[],this._values=[1,3,2],this.valueDataColumn="",this._arguments=[],this.argumentDataColumn="",this.autoSeriesTitleDataColumn="",this.autoSeriesKeyDataColumn="",this.autoSeriesColorDataColumn="",this._toolTips=[],this.toolTipDataColumn="",this._tags=[],this.tagDataColumn="",this._hyperlinks=[],this.hyperlinkDataColumn="",this.drillDownEnabled=!1,this.drillDownReport="",this.drillDownPageGuid=null,this.allowSeries=!0,this.allowSeriesElements=!0,this.isDashboard=!1,this.valueObj="",this.listOfValues="",this.argument="",this.listOfArguments="",this.titleValue=null,this.title="",this.toolTip="",this.listOfToolTips="",this.tag="",this.listOfTags="",this.hyperlink="",this.listOfHyperlinks="",this.seriesLabels=new __.d.StiCenterAxisLabels,this.interaction=new __.d.StiSeriesInteraction}}__.d.StiSeries=StiSeries}let StiComponentInfo=__.a.Engine.StiComponentInfo,StiBaseStyle=(__.d.StiChartInfo=class extends StiComponentInfo{constructor(){super(...arguments),this.storedForProcessAtEndChart=null,this.interactiveComps=null}implements(){let e=[__.d.IStiChartInfo];return(this.implements=()=>e)()}},__.a.Styles.StiBaseStyle),StiElementStyleIdent=__.a.Dashboard.StiElementStyleIdent;{class StiChartStyle extends StiBaseStyle{constructor(){super(...arguments),this.isOffice2015Style=!1,this.allowDashboard=!1,this.styleIdent=StiElementStyleIdent.Blue}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiChartStyle,ICloneable]);return(this.implements=()=>e)()}saveToJsonObject(e){let t=new StiJson;return t.addPropertyStringNullOrEmpty("Ident",this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),t}loadFromJsonObject(e){}static loadFromXml(i){if(null!=i.attributes.getNamedItem("type")){let e=i.attributes.getNamedItem("type").value,t=e.split(".").pop();return new __.d[t]}return null}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString();if("StiCustomStyle"==t)return new __.d.StiCustomStyle;{let e=Stimulsoft.StiOptions.Services.chartStyles.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==e)throw StiString.format("Type {0} is not found!",t);return StiActivator.createObject(e[Stimulsoft.System.StiObject.stimulsoft]().getType())}}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiChartStyle}toString(){if(this.is(__.d.StiCustomStyle)&&null!=this.core.reportChartStyle)return this.core.reportChartStyle.name;return this.serviceName}compareChartStyle(e){if(null==e)return!1;let i=this[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCustomStyle),s=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCustomStyle);if(null!=i&&null!=s){let e=i.core.reportStyleName,t=(null!=i.core.reportStyle&&(e=i.core.reportStyle.name),s.core.reportStyleName);return null!=s.core.reportStyle&&(t=s.core.reportStyle.name),e==t}return this[Stimulsoft.System.StiObject.stimulsoft]().getType()==e[Stimulsoft.System.StiObject.stimulsoft]().getType()}}__.d.StiChartStyle=StiChartStyle}__.d.StiStyle25=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Green")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Green,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF25}},__.d.StiStyle29=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Blue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Blue,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF29}},__.d.StiLegend=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiLegend];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","_",!0),new StiBoolMeta("HideSeriesWithEmptyTitle"),new StiBoolMeta("ShowShadow","",!0),new StiColorMeta("BorderColor","",Color.gray),new StiBrushMeta(["Brush","bh"]),new StiColorMeta("TitleColor","",Color.gray),new StiColorMeta("LabelsColor","",Color.gray),new StiEnumMeta("Direction","",__.d.StiLegendDirection,__.d.StiLegendDirection.TopToBottom),new StiEnumMeta(["HorAlignment","ha"],"",__.d.StiLegendHorAlignment,__.d.StiLegendHorAlignment.Left),new StiEnumMeta(["VertAlignment","va"],"",__.d.StiLegendVertAlignment,__.d.StiLegendVertAlignment.Top),new StiFontMeta("TitleFont","","Arial",14,FontStyle.Bold),new StiFontMeta(["Font","fn"],"","Arial",8),new StiBoolMeta("Visible","",!0),new StiBoolMeta("MarkerVisible","",!0),new StiBoolMeta("MarkerBorder","",!0),new StiSizeMeta("MarkerSize"),new StiEnumMeta("MarkerAlignment","",__.d.StiMarkerAlignment,__.d.StiMarkerAlignment.Left),new StiNumberMeta("Columns","_"),new StiNumberMeta("HorSpacing","",4),new StiNumberMeta("VertSpacing","",2),new StiSizeMeta("Size"),new StiStringNullOrEmptyMeta("Title"),new StiNumberMeta("ColumnWidth")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){this.showShadow=!0,StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){this.showShadow=!0,StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e,t){let i=e.properties().firstOrDefault(e=>"Ident"==e.name),s=null!=i?i.value.toString():"StiLegend",r=Stimulsoft.StiOptions.Services.chartLegends.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==s);if(null==r)throw StiString.format("Type {0} is not found!",s);let n=StiActivator.createObject(r[Stimulsoft.System.StiObject.stimulsoft]().getType());return n.chart=t,n.loadFromJsonObject(e),n}static loadLabelsFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.brush=this.brush.clone(),e.font=this.font.clone(),e.titleFont=this.titleFont.clone(),e.direction=this.direction,e.horAlignment=this.horAlignment,e.vertAlignment=this.vertAlignment,e.markerAlignment=this.markerAlignment,null!=this.core&&(e.core=this.core.clone(),e.core.legend=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}get columns(){return this._columns}set columns(e){0<=e&&(this._columns=e)}constructor(){this._allowApplyStyle=!0,this.chart=null,this.hideSeriesWithEmptyTitle=!1,this.showShadow=!0,this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.white),this.titleColor=Color.gray,this.labelsColor=Color.gray,this.direction=__.d.StiLegendDirection.TopToBottom,this.horAlignment=__.d.StiLegendHorAlignment.Left,this.vertAlignment=__.d.StiLegendVertAlignment.Top,this.titleFont=new Font("Arial",14,FontStyle.Bold),this.font=new Font("Arial",8),this.visible=!0,this.markerVisible=!0,this.markerBorder=!0,this.markerSize=new SizeD(10,10),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.horSpacing=4,this.vertSpacing=2,this.title="",this.columnWidth=0,this._columns=0,this.size=new Stimulsoft.System.Drawing.Size(0,0),this.core=new __.d.StiLegendCoreXF(this)}};let IStiCornerRadius=__.e.IStiCornerRadius,StiCornerRadius=Stimulsoft.Base.Drawing.StiCornerRadius,StiFontIcons=__.a.Helpers.StiFontIcons,StiFont=(__.d.StiTreemapSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiTreemapSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.cornerRadius=this.cornerRadius.clone(),e}getDefaultAreaType(){return __.d.StiTreemapArea}constructor(){super(),this.borderColor=Color.gray,this.borderThickness=1,this.cornerRadius=new StiCornerRadius,this.brush=new StiSolidBrush(Color.gainsboro),this.icon=null,this.core=new __.d.StiTreemapSeriesCoreXF(this)}},__.d.StiPictorialSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPictorialSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.QuarterFull)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPictorialArea}constructor(){super(),this.icon=StiFontIcons.QuarterFull,this.core=new __.d.StiPictorialSeriesCoreXF(this)}},Stimulsoft.Base.StiFont),StiLegendHorAlignment=__.d.StiLegendHorAlignment,StiPictorialSeries=__.d.StiPictorialSeries,StiLegendVertAlignment=__.d.StiLegendVertAlignment,StiTreemapSeries=__.d.StiTreemapSeries,StiChartEditorType=__.d.StiChartEditorType,IStiGetFonts=Stimulsoft.Base.IStiGetFonts,StiAxisArea=__.d.StiAxisArea,IStiAxisArea=__.d.IStiAxisArea,StiSeriesLabels=__.d.StiSeriesLabels,StiChartStyle=__.d.StiChartStyle,StiArea=__.d.StiArea,StiJsonReportObjectHelper=Stimulsoft.Base.StiJsonReportObjectHelper,StiChartConditionsCollection=__.d.StiChartConditionsCollection,IStiChart=__.d.IStiChart,IStiClusteredColumnArea=__.d.IStiClusteredColumnArea,StiCenterAxisLabels=__.d.StiCenterAxisLabels,StiChartCoreXF=__.d.StiChartCoreXF,StiChartInfo=__.d.StiChartInfo,StiChartTitle=__.d.StiChartTitle,StiChartTable=__.d.StiChartTable,StiClusteredColumnArea=__.d.StiClusteredColumnArea,StiConstantLinesCollection=__.d.StiConstantLinesCollection,StiLegend=__.d.StiLegend,StiRadarArea=__.d.StiRadarArea,StiSeries=__.d.StiSeries,StiStripsCollection=__.d.StiStripsCollection,StiSeriesCollection=__.d.StiSeriesCollection,StiStyle29=__.d.StiStyle29,StiChartHelper=__.d.StiChartHelper,StiImageRotation=__.e.StiImageRotation,StiComponentPriority=__.e.StiComponentPriority,StiComponentType=__.e.StiComponentType,StiBorder=Stimulsoft.Base.Drawing.StiBorder,StiFilter=__.e.StiFilter,StiFiltersCollection=__.e.StiFiltersCollection,StiBrush=Stimulsoft.Base.Drawing.StiBrush,StiComponent=__.e.StiComponent,StiEvent=__.c.StiEvent;__.e.StiChart=class extends StiComponent{implements(){let e=super.implements().concat([__.e.IStiBorder,__.e.IStiBusinessObject,__.e.IStiBrush,__.e.IStiDataSource,__.e.IStiDataRelation,__.e.IStiMasterComponent,__.e.IStiSort,__.e.IStiFilter,__.e.IStiExportImage,__.e.IStiExportImageExtended,__.a.IStiIgnoryStyle,__.a.IStiGlobalizationProvider,IStiChart,IStiJsonReportObject,IStiGetFonts]);return(this.implements=()=>e)()}saveToJsonObject(e){let t,i=super.saveToJsonObject(e);return i.removeProperty("CanShrink"),i.removeProperty("CanGrow"),i.addPropertyBool("AllowApplyStyle",this.allowApplyStyle,!0),i.addPropertyEnum("FilterMode",__.e.StiFilterMode,this.filterMode,__.e.StiFilterMode.And),i.addPropertyBool("FilterOn",this.filterOn,!0),i.addPropertyStringNullOrEmpty("Border",StiJsonReportObjectHelper.Serialize.jBorder(this.border)),i.addPropertyStringNullOrEmpty("Brush",StiJsonReportObjectHelper.Serialize.jBrush(this.brush)),i.addPropertyStringNullOrEmpty("DataSourceName",this.dataSourceName),i.addPropertyStringNullOrEmpty("BusinessObjectGuid",this.businessObjectGuid),i.addPropertyNumber("CountData",this.countData),i.addPropertyStringNullOrEmpty("DataRelationName",this.dataRelationName),i.addPropertyBool("ProcessAtEnd",this.processAtEnd),i.addPropertyJObject("ProcessChartEvent",null==(t=this.processChartEvent)?void 0:t.saveToJsonObject(e)),i.addPropertyEnum("Rotation",StiImageRotation,this.rotation,StiImageRotation.None),i.addPropertyEnum("EditorType",StiChartEditorType,this.editorType,StiChartEditorType.Advanced),i.addPropertyStringNullOrEmpty("CustomStyleName",this.customStyleName),i.addPropertyNumber("HorSpacing",this.horSpacing,10),i.addPropertyNumber("VertSpacing",this.vertSpacing,10),null!=this.masterComponent&&i.addPropertyStringNullOrEmpty("MasterComponent",this.masterComponent.name),i.addPropertyJObject("Series",this._series.saveToJsonObject(e)),i.addPropertyJObject("Area",this._area.saveToJsonObject(e)),i.addPropertyJObject("Table",this.table.saveToJsonObject(e)),i.addPropertyJObject("SeriesLabels",this.seriesLabels.saveToJsonObject(e)),i.addPropertyJObject("Legend",this.legend.saveToJsonObject(e)),i.addPropertyJObject("Title",this._title.saveToJsonObject(e)),i.addPropertyJObject("Strips",this.strips.saveToJsonObject(e)),i.addPropertyJObject("ConstantLines",this.constantLines.saveToJsonObject(e)),i.addPropertyJObject("Style",this.style.saveToJsonObject(e)),e==StiJsonSaveMode.Report&&(i.addPropertyJObject("Filters",this.filters.saveToJsonObject(e)),i.addPropertyJObject("Sort",StiJsonReportObjectHelper.Serialize.stringArray(this.sort)),i.addPropertyJObject("SeriesLabelsConditions",this.seriesLabelsConditions.saveToJsonObject(e))),i}loadFromJsonObject(e){super.loadFromJsonObject(e);for(let t of e.properties())switch(t.name){case"FilterMode":this.filterMode=Enum.parse(__.e.StiFilterMode,t.value.toString());break;case"Filters":this.filters.loadFromJsonObject(t.value);break;case"FilterOn":this.filterOn=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"Border":case"br":this.border=StiJsonReportObjectHelper.Deserialize.border(t.value.toString());break;case"Brush":case"bh":this.brush=StiJsonReportObjectHelper.Deserialize.brush(t.value.toString());break;case"DataSourceName":this.dataSourceName=t.value.toString();break;case"BusinessObjectGuid":this.businessObjectGuid=t.value.toString();break;case"CountData":this.countData=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"DataRelationName":this.dataRelationName=t.value.toString();break;case"ProcessAtEnd":this.processAtEnd=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"ProcessChartEvent":{let e=new StiEvent;e.loadFromJsonObject(t.value),this.processChartEvent=e;break}case"SeriesLabelsConditions":this.seriesLabelsConditions.loadFromJsonObject(t.value);break;case"Rotation":this.rotation=Enum.parse(StiImageRotation,t.value.toString());break;case"EditorType":this.editorType=Enum.parse(StiChartEditorType,t.value.toString());break;case"AllowApplyStyle":this.allowApplyStyle=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"CustomStyleName":this.customStyleName=t.value.toString();break;case"HorSpacing":this._horSpacing=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"VertSpacing":this._vertSpacing=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"MasterComponent":this.jsonMasterComponentTemp=t.value.toString(),this.report.jsonLoaderHelper&&this.report.jsonLoaderHelper.masterComponents.push(this);break;case"Style":this.style=StiChartStyle.loadFromJsonObjectInternal(t.value);break;case"ConstantLines":this.constantLines.loadFromJsonObject(t.value);break;case"Strips":this.strips.loadFromJsonObject(t.value);break;case"Title":this.title.loadFromJsonObject(t.value);break;case"Legend":this.legend=StiLegend.loadFromJsonObjectInternal(t.value,this);break;case"SeriesLabels":this.seriesLabels=StiSeriesLabels.loadFromJsonObjectInternal(t.value,this);break;case"Table":this._table.loadFromJsonObject(t.value);break;case"Area":this._area=StiArea.loadFromJsonObjectInternal(t.value),this._area.chart=this;break;case"Series":this._series.loadFromJsonObject(t.value);break}null==this.report||this.report.isDocument||this.core.applyStyle(this.style)}loadFromXml(i){super.loadFromXml(i);let e=i.getAttribute("Ref");!StiString.isNullOrEmpty(e)&&this.report.jsonLoaderHelper&&(this.report.jsonLoaderHelper.refNames[e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()]=i.nodeName);for(let e=0;e<i.childNodes.length;e++){let t=i.childNodes[e];switch(t.nodeName){case"FilterMode":this.filterMode=Enum.parse(__.e.StiFilterMode,t.textContent);break;case"Filters":this.filters.loadFromXml(t);break;case"FilterOn":this.filterOn=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"Border":case"br":this.border=StiBorder.loadFromXml(t.textContent);break;case"Brush":this.brush=StiBrush.loadFromXml(t.textContent);break;case"DataSourceName":this._dataSourceName=t.textContent;break;case"BusinessObjectGuid":this._businessObjectGuid=t.textContent;break;case"CountData":this.countData=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"DataRelationName":this.dataRelationName=t.textContent;break;case"ProcessAtEnd":this.processAtEnd=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"ProcessChartEvent":{let e=new StiEvent;e.script=t.textContent,this.processChartEvent=e;break}case"Rotation":this.rotation=Enum.parse(StiImageRotation,t.textContent);break;case"EditorType":this.editorType=Enum.parse(StiChartEditorType,t.textContent);break;case"AllowApplyStyle":this.allowApplyStyle=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"CustomStyleName":this.customStyleName=t.textContent;break;case"HorSpacing":this._horSpacing=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"VertSpacing":this._vertSpacing=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"MasterComponent":this.jsonMasterComponentTemp=t.getAttribute("isRef"),this.report.jsonLoaderHelper&&this.report.jsonLoaderHelper.masterComponents.push(this);break;case"Style":{let e=__.d.StiChartStyle.loadFromXml(t);null!=e&&(this.style=e);break}case"ConstantLines":this.constantLines.loadFromXml(t);break;case"Strips":this.strips.loadFromXml(t);break;case"Title":{let e=new __.d.StiChartTitle;e.loadFromXml(t),(e.chart=this).title=e;break}case"Legend":{let e=__.d.StiLegend.loadLabelsFromXml(t,this);(e.chart=this).legend=e;break}case"Table":{let e=new __.d.StiChartTable;e.chart=this,e.loadFromXml(t),this._table=e;break}case"SeriesLabels":{let e=__.d.StiSeriesLabels.loadLabelsFromXml(t,this);e&&(this.seriesLabels=e);break}case"Area":this._area=StiArea.loadAreaFromXml(t,this);break;case"Series":this._series.loadFromXml(t,this);break;case"SeriesLabelsConditions":this.seriesLabelsConditions.loadFromXml(t);break}}this.core.applyStyle(this.style)}convert(e,t,i=!1){super.convert(e,t,i),this.legend.size=t.convertSizeFromHInches(e.convertSizeToHInches(this.legend.size))}convertToHInches(e){return null!=this.report?this.report.unit.convertToHInches(e):e}setString(s,r){switch(s){case"Title.Text":this.title.text=r;break;case"Legend.Title":this.legend.title=r;break;case"SeriesLabels.TextBefore":this.seriesLabels.textBefore=r;break;case"SeriesLabels.TextAfter":this.seriesLabels.textAfter=r;break}let e=this.area.as(IStiAxisArea);if(null!=e)switch(s){case"Area.XAxis.Labels.TextBefore":e.xAxis.labels.textBefore=r;break;case"Area.XAxis.Labels.TextAfter":e.xAxis.labels.textAfter=r;break;case"Area.XAxis.Title.Text":e.xAxis.title.text=r;break;case"Area.YAxis.Labels.TextBefore":e.yAxis.labels.textBefore=r;break;case"Area.YAxis.Labels.TextAfter":e.yAxis.labels.textAfter=r;break;case"Area.YAxis.Title.Text":e.yAxis.title.text=r;break;case"Area.XTopAxis.Labels.TextBefore":e.xTopAxis.labels.textBefore=r;break;case"Area.XTopAxis.Labels.TextAfter":e.xTopAxis.labels.textAfter=r;break;case"Area.XTopAxis.Title.Text":e.xTopAxis.title.text=r;break;case"Area.YRightAxis.Labels.TextBefore":e.yRightAxis.labels.textBefore=r;break;case"Area.YRightAxis.Labels.TextAfter":e.yRightAxis.labels.textAfter=r;break;case"Area.YRightAxis.Title.Text":e.yRightAxis.title.text=r;break}let n=0;for(let i of this.series.list){let e=`Series${n}.Title`,t=(s==e&&i.coreTitle!=r&&(i.coreTitle=r),`Series${n}.TopN.OtherText`);s==t&&(i.topN.othersText=r),s==`Series${n}.Value`&&(i.value=r),s==`Series${n}.ValueDataColumn`&&(i.valueDataColumn=r),s==`Series${n}.ListOfValues`&&(i.listOfValues=r),s==`Series${n}.Argument`&&(i.argument=r),s==`Series${n}.ArgumentDataColumn`&&(i.argumentDataColumn=r),s==`Series${n}.ListOfArguments`&&(i.listOfArguments=r),n++}}getString(s){switch(s){case"Title.Text":return this.title.text;case"Legend.Title":return this.legend.title;case"SeriesLabels.TextBefore":return this.seriesLabels.textBefore;case"SeriesLabels.TextAfter":return this.seriesLabels.textAfter}let e=this.area.as(IStiAxisArea);if(null!=e)switch(s){case"Area.XAxis.Labels.TextBefore":return e.xAxis.labels.textBefore;case"Area.XAxis.Labels.TextAfter":return e.xAxis.labels.textAfter;case"Area.XAxis.Title.Text":return e.xAxis.title.text;case"Area.YAxis.Labels.TextBefore":return e.yAxis.labels.textBefore;case"Area.YAxis.Labels.TextAfter":return e.yAxis.labels.textAfter;case"Area.YAxis.Title.Text":return e.yAxis.title.text;case"Area.XTopAxis.Labels.TextBefore":return e.xTopAxis.labels.textBefore;case"Area.XTopAxis.Labels.TextAfter":return e.xTopAxis.labels.textAfter;case"Area.XTopAxis.Title.Text":return e.xTopAxis.title.text;case"Area.YRightAxis.Labels.TextBefore":return e.yRightAxis.labels.textBefore;case"Area.YRightAxis.Labels.TextAfter":return e.yRightAxis.labels.textAfter;case"Area.YRightAxis.Title.Text":return e.yRightAxis.title.text}let r=0;for(let i of this.series.list){let e=`Series${r}.Title`;if(s==e)return i.coreTitle;let t=`Series${r}.TopN.OtherText`;if(s==t)return i.topN.othersText;if(s==`Series${r}.Value`)return i.value;if(s==`Series${r}.ValueDataColumn`)return i.valueDataColumn;if(s==`Series${r}.ListOfValues`)return i.listOfValues;if(s==`Series${r}.Argument`)return i.argument;if(s==`Series${r}.ArgumentDataColumn`)return i.argumentDataColumn;if(s==`Series${r}.ListOfArguments`)return i.listOfArguments;r++}throw StiString.format("Property with name {0}",s)}getAllStrings(){let t=[];t.push("Title.Text"),t.push("Legend.Title"),t.push("SeriesLabels.TextBefore"),t.push("SeriesLabels.TextAfter"),this.area.is(IStiAxisArea)&&(t.push("Area.XAxis.Labels.TextBefore"),t.push("Area.XAxis.Labels.TextAfter"),t.push("Area.XAxis.Title.Text"),t.push("Area.YAxis.Labels.TextBefore"),t.push("Area.YAxis.Labels.TextAfter"),t.push("Area.YAxis.Title.Text"),t.push("Area.XTopAxis.Labels.TextBefore"),t.push("Area.XTopAxis.Labels.TextAfter"),t.push("Area.XTopAxis.Title.Text"),t.push("Area.YRightAxis.Labels.TextBefore"),t.push("Area.YRightAxis.Labels.TextAfter"),t.push("Area.YRightAxis.Title.Text"));for(let e=0;e<this.series.count;e++)t.push(`Series${e}.Title`),t.push(`Series${e}.TopN.OtherText`),t.push(`Series${e}.Value`),t.push(`Series${e}.ValueDataColumn`),t.push(`Series${e}.ListOfValues`),t.push(`Series${e}.Argument`),t.push(`Series${e}.ArgumentDataColumn`),t.push(`Series${e}.ListOfArguments`);return t}clone(){let e,s=super.clone();s.chartInfo=this.chartInfo.clone(),s.brush=this.brush.clone(),s.border=this.border.clone(),null!=this.sort?s.sort=this.sort.slice():s.sort=null,null!=this.filters?s.filters=this.filters.clone():s.filters=null,null!=s.title&&(s.title=this.title.clone()),null!=s.area&&(s.area=this.area.clone()),null!=s.seriesLabels&&(s.seriesLabels=this.seriesLabels.clone()),null!=s.legend&&(s.legend=this.legend.clone()),null!=s.table&&(s.table=this.table.clone()),s.series=new StiSeriesCollection,s.series.seriesAdded=this.series_SeriesAdded,s.series.seriesRemoved=this.series_SeriesRemoved;for(let i of this.series.list){let e=i.clone(),t=e.title;s.series.add(e),e.title=t}s.constantLines=new StiConstantLinesCollection;for(let e of this.constantLines.list)s.constantLines.add(e.clone());s.strips=new StiStripsCollection;for(let e of this.strips.list)s.strips.add(e.clone());return null!=s.core&&(s.core=this.core.clone(),s.core.chart=s),s.processChartEvent=null==(e=this.processChartEvent)?void 0:e.clone(),s}saveState(e){super.saveState(e),this.states.pushInt(e,this,"positionValue",this.positionValue),this.states.pushBool(e,this,"isEofValue",this.isEofValue),this.states.pushBool(e,this,"isBofValue",this.isBofValue),null!=this.dataSource&&this.dataSource.saveState(e)}restoreState(e){super.restoreState(e),this.states.isExist(e,this)&&(this.isBofValue=this.states.popBool(e,this,"isBofValue"),this.isEofValue=this.states.popBool(e,this,"isEofValue"),this.positionValue=this.states.popInt(e,this,"positionValue")),null!=this.dataSource&&this.dataSource.restoreState(e)}getImage(e,t=__.a.StiExportFormat.None){if(null!=this.report&&null!=this.report.preparedExportImages){let e=this.report.preparedExportImages.get(this);if(null!=e)return e}let i=new __.a.Export.StiSvgData,s=(i.component=this,i.x=0,i.y=0,i.width=this.report.unit.convertToHInches(this.width),i.height=this.report.unit.convertToHInches(this.height),this.report.isExporting&&t!==__.a.StiExportFormat.Html&&t!==__.a.StiExportFormat.Html5&&t!==__.a.StiExportFormat.HtmlDiv&&t!==__.a.StiExportFormat.HtmlSpan&&t!==__.a.StiExportFormat.HtmlTable);return __.a.Export.StiChartSvgHelper.getImage(i,s)}isExportAsImage(e){if(e==__.a.StiExportFormat.Pdf)return!1;if(e==__.a.StiExportFormat.ImageSvg)return!1;return!0}get filter(){return 0==this.filters.count&&this.filters.add(new StiFilter),this.filters.getByIndex(0).item=__.e.StiFilterItem.Expression,this.filters.getByIndex(0).expression}set filter(e){0==this.filters.count&&this.filters.add(new StiFilter),this.filters.getByIndex(0).item=__.e.StiFilterItem.Expression,this.filters.getByIndex(0).expression=e}get sort(){return this._sort}set sort(e){this._sort=e}get dataSource(){if(this.isCacheValues)return this.cachedDataSource;if(null==this.page||null==this.report||null==this.report.dataSources||null==this.dataSourceName||0==this.dataSourceName.length)return null;return this.report.dataSources.getByName(this.dataSourceName)}get dataSourceName(){return this._dataSourceName}set dataSourceName(e){this._dataSourceName!=e&&(this._dataSourceName=e)}get isDataSourceEmpty(){if(this.isCacheValues)return this.cachedIsDataSourceEmpty;return StiString.isNullOrEmpty(this.dataSourceName)||null==this.dataSource}get isBusinessObjectEmpty(){if(this.isCacheValues)return this.cachedIsBusinessObjectEmpty;return StiString.isNullOrEmpty(this.businessObjectGuid)||null==this.businessObject}get businessObject(){if(this.isCacheValues)return this.cachedBusinessObject;if(null==this.page||null==this.report||null==this.businessObjectGuid||0==this.businessObjectGuid.length)return null;return __.a.Dictionary.StiBusinessObjectHelper.getBusinessObjectFromGuid(this.report,this.businessObjectGuid)}get businessObjectGuid(){return this._businessObjectGuid}set businessObjectGuid(e){this._businessObjectGuid!=e&&(this._businessObjectGuid=e,StiString.isNullOrEmpty(e)||(this.dataSourceName=null))}first(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isEofValue=!1,this.isBofValue=!0,this.positionValue=0):this.dataSource.first():this.businessObject.first()}prior(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isBofValue=!1,this.isEofValue=!1,this.positionValue<=0?this.isBofValue=!0:this.positionValue--):this.dataSource.prior():this.businessObject.prior()}next(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isBofValue=!1,this.isEofValue=!1,this.positionValue>=this.countData-1?this.isEofValue=!0:this.positionValue++):this.dataSource.next():this.businessObject.next()}last(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isEofValue=!0,this.isBofValue=!1,this.positionValue=this.countData-1):this.dataSource.last():this.businessObject.last()}get isEof(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isEofValue:this.dataSource.isEof:this.businessObject.isEof}set isEof(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isEofValue=e:this.dataSource.isEof=e:this.businessObject.isEof=e}get isBof(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isBofValue:this.dataSource.isBof:this.businessObject.isBof}set isBof(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isBofValue=e:this.dataSource.isBof=e:this.businessObject.isBof=e}get isEmpty(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?0==this.countData:this.dataSource.isEmpty:this.businessObject.isEmpty}get position(){if(!this.isBusinessObjectEmpty)return this.businessObject.position;if(!this.isDataSourceEmpty)return this.dataSource.position;return this.positionValue}set position(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.positionValue=e:this.dataSource.position=e:this.businessObject.position=e}get count(){if(this.isCacheValues)return this.cachedCount;return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.countData:this.dataSource.count:this.businessObject.count}cacheValues(e){e?(this.cachedCount=this.count,this.cachedIsBusinessObjectEmpty=this.isBusinessObjectEmpty,this.cachedIsDataSourceEmpty=this.isDataSourceEmpty,this.cachedDataSource=this.dataSource,this.cachedBusinessObject=this.businessObject):(this.cachedDataSource=null,this.cachedBusinessObject=null),this.isCacheValues=e}get dataRelation(){if(null==this.page||null==this.report||null==this.report.dictionary||null==this.report.dictionary.relations||null==this.dataRelationName||0==this.dataRelationName.length)return null;return this.report.dictionary.relations.getByName(this.dataRelationName)}getFonts(){let t=[...super.getFonts(),this.title.font,this.legend.font,this.table.dataCells.font,this.table.header.font,...this.constantLines.list.map(e=>e.font),...this.strips.list.map(e=>e.font)];this.area.is(StiAxisArea)&&t.push(this.area.xAxis.labels.font,this.area.xAxis.title.font,this.area.yAxis.labels.font,this.area.yAxis.title.font,this.area.xTopAxis.labels.font,this.area.xTopAxis.title.font,this.area.yRightAxis.labels.font,this.area.yRightAxis.title.font),this.area.is(StiRadarArea)&&t.push(this.area.xAxis.labels.font,this.area.yAxis.labels.font);for(let e of this.series.list)e.is(StiSeries)&&(t.push(...e.trendLines.list.map(e=>e.font)),null!=e.seriesLabels)&&t.push(e.seriesLabels.font);return StiFont.get(...t)}get priority(){return StiComponentPriority.Component}get localizedCategory(){return StiLocalization.get("Report","Components")}get componentType(){return StiComponentType.Simple}get localizedName(){return StiLocalization.get("Components","StiChart")}invokeEvents(){try{super.invokeEvents(),this.invokeProcessChart(this,EventArgs.empty)}catch(e){if(Exception.log(e,this,"invokeEvents").isAll)throw e}}onProcessChart(e){}invokeProcessChart(e,t){try{this.onProcessChart(t)}catch(t){if(Exception.logEvent(t,this,"processChart").isAll)throw t}}series_SeriesAdded(e){let t=e,i=t.chart;null!=i.area&&i.area.core.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())||(i.area=StiActivator.createObject(t.getDefaultAreaType()),null!=i.seriesLabels&&i.area.core.isAcceptableSeriesLabels(i.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().getType()))||(i.seriesLabels=StiActivator.createObject(i.area.getDefaultSeriesLabelsType())),null!=i.legend&&i.legend.core.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())||(i.legend=StiActivator.createObject(t.getDefaultLegendType())),1==i.series.length&&i.series.getByIndex(0).is(StiTreemapSeries)?i.legend.vertAlignment=StiLegendVertAlignment.TopOutside:1==i.series.length&&i.series.getByIndex(0).is(StiPictorialSeries)&&(i.legend.vertAlignment=StiLegendVertAlignment.TopOutside,i.legend.horAlignment=StiLegendHorAlignment.Center,i.legend.columns=1),i.core.applyStyle(i.style)}series_SeriesRemoved(e){let t=e,s=t.chart;if(0==s.series.count)return void(s.area.is(IStiClusteredColumnArea)||(s.area=new StiClusteredColumnArea,s.area.core.applyStyle(this.style)));if(null!=s.area){let i=s.area[Stimulsoft.System.StiObject.stimulsoft]().getType();for(let t of s.series.list){let e=t.getDefaultAreaType();if(e==i)return}}s.area=StiActivator.createObject(s.series.getByIndex(0).getDefaultAreaType()),this.allowApplyStyle&&this.core.applyStyle(s.style)}get chartType(){return this.area}set chartType(e){this.area=e}applyStyle(){this.allowApplyStyle&&this.core.applyStyle(this.style)}simplifyValues(){let e=0;while(e<this.series.count){let i=this.series.getByIndex(e);if(3e3<i.values.length){let t=StiChartHelper.getShorterListPoints(i);i.values=[],i.arguments=[];for(let e=1;e<t.length;e++)i.values[e]=t[e].x,i.arguments[e]=t[e].y}e++}}get series(){return this._series}set series(e){this._series=e,this._series.chart=this}get area(){return this._area}set area(e){this._area!=e&&(e.is(StiRadarArea)&&(this._area=e),null!=(this._area=e)?this._area.chart=this:this._area=null)}get table(){return this._table}set table(e){this._table!=e&&(this._table=e,this._table.chart=this)}get style(){return this._style}set style(e){this._style!=e&&null!=(this._style=e)&&(e.core.chart=this)}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&this.core.applyStyle(this.style)}get horSpacing(){return this._horSpacing}set horSpacing(e){0<=e&&(this._horSpacing=e)}get vertSpacing(){return this._vertSpacing}set vertSpacing(e){0<=e&&(this._vertSpacing=e)}get seriesLabels(){return this._seriesLabels}set seriesLabels(e){null!=(this._seriesLabels=e)&&(this._seriesLabels.chart=this)}get labels(){return this._seriesLabels}set labels(e){this._seriesLabels=e}get legend(){return this._legend}set legend(e){if(null==e)throw new Error("new NullReferenceException()");this._legend=e,this._legend.chart=this}get title(){return this._title}set title(e){this._title!=e&&(this._title=e,this._title.chart=this)}get strips(){return this._strips}set strips(e){this._strips=e,this._strips.chart=this}get constantLines(){return this._constantLines}set constantLines(e){this._constantLines=e,this._constantLines.chart=this}constructor(e=RectangleD.empty){super(e),this.filterMode=StiFilterMode.And,this.filters=new StiFiltersCollection,this.filterOn=!0,this.border=new StiBorder,this.brush=new StiSolidBrush(Color.transparent),this._sort=[],this._dataSourceName="",this._businessObjectGuid="",this.masterComponent=null,this.countData=0,this.isEofValue=!1,this.isBofValue=!1,this.isCacheValues=!1,this.cachedCount=0,this.cachedIsBusinessObjectEmpty=!1,this.cachedIsDataSourceEmpty=!1,this.cachedDataSource=null,this.cachedBusinessObject=null,this.dataRelationName="",this.processAtEnd=!1,this.defaultClientRectangle=new RectangleD(0,0,200,200),this.processChartEvent=null,this.seriesLabelsConditions=new StiChartConditionsCollection,this.rotation=StiImageRotation.None,this.editorType=StiChartEditorType.Advanced,this._style=new StiStyle29,this._allowApplyStyle=!0,this.customStyleName="",this._horSpacing=10,this._vertSpacing=10,this.isAnimation=!0,this.isAnimationChangingValues=!0,this.chartInfo=new StiChartInfo,this._allowApplyStyle=Stimulsoft.StiOptions.Engine.defaultValueOfAllowApplyStyleProperty,this.legend=new StiLegend,this.series=new StiSeriesCollection,this.series.seriesAdded=this.series_SeriesAdded,this.series.seriesRemoved=this.series_SeriesRemoved,this.area=new StiClusteredColumnArea,this.seriesLabels=new StiCenterAxisLabels,this.constantLines=new StiConstantLinesCollection,this.strips=new StiStripsCollection,this.title=new StiChartTitle,this.table=new StiChartTable,this.previousAnimations=new List,this.core=new StiChartCoreXF(this),this.core.applyStyle(this.style)}};{class Ip{static get oldChartPercentMode(){return Ip._oldChartPercentMode}static set oldChartPercentMode(e){Ip._oldChartPercentMode=e}}Ip._oldChartPercentMode=!1,__.d.StiChartOptions=Ip}__.d.StiInteractionOptions=class{constructor(){this.updateContext=!1,this.recallEvent=!1,this.recallTime=TimeSpan.zero,this.isRecalled=!1,this.mousePoint=PointD.empty,this.dragEnabled=!1,this.dragDelta=SizeD.empty,this.interactionToolTip=null,this.interactionHyperlink=null,this.seriesInteractionData=null}};{let l;(e=>{e[e["Left"]=0]="Left",e[e["Right"]=1]="Right",e[e["Beyond"]=2]="Beyond",e[e["Behind"]=3]="Behind",e[e["Between"]=4]="Between",e[e["Origin"]=5]="Origin",e[e["Destination"]=6]="Destination"})(l=l||{});class Lp{static getPointClassify(e,t,i){let s=new PointD(i.x-t.x,i.y-t.y),r=new PointD(e.x-t.x,e.y-t.y),n=s.x*r.y-r.x*s.y;if(0<n)return l.Left;if(n<0)return l.Right;if(s.x*r.x<0||s.y*r.y<0)return l.Behind;if(Math.sqrt(s.x*s.x+s.y*s.y)<Math.sqrt(r.x*r.x+r.y*r.y))return l.Beyond;if(t.equals(e))return l.Origin;if(i.equals(e))return l.Destination;return l.Between}static isPointInTriangle(e,t,i,s){return Lp.getPointClassify(e,t,i)!=l.Left&&Lp.getPointClassify(e,i,s)!=l.Left&&Lp.getPointClassify(e,s,t)!=l.Left}static isPointInPolygon(t,i){for(let e=0;e<i.length;e++)if(Lp.getPointClassify(t,i[e],e+1<i.length?i[e+1]:i[0])==l.Left)return!1;return!0}static getLineOffsetRectangle(e,t,i){let s=Math.atan2(t.y-e.y,t.x-e.x),r=i/2,n=StiArray.create(PointD,4,!0);return n[0]=new PointD(e.x+r*Math.cos(s+.5*Math.PI),e.y+r*Math.sin(s+.5*Math.PI)),n[1]=new PointD(t.x+r*Math.cos(s+.5*Math.PI),t.y+r*Math.sin(s+.5*Math.PI)),n[2]=new PointD(t.x+r*Math.cos(s+1.5*Math.PI),t.y+r*Math.sin(s+1.5*Math.PI)),n[3]=new PointD(e.x+r*Math.cos(s+1.5*Math.PI),e.y+r*Math.sin(s+1.5*Math.PI)),n}static isLineContainsPoint(e,t,i,s){let r=this.getLineOffsetRectangle(e,t,i);return Lp.isPointInPolygon(s,r)}static optimizePoints(s){if(s.length<800)return s;let r=1,n=0,l=0,o=0,a=0,h=[];while(n<s.length){if(null==s[n]){while(n<s.length&&null==s[n])n++;h.push(null);continue}let i=s[n];if(++n<s.length&&null!=s[n]&&null!=s[n]&&s[n].x-i.x<r){l=i.x,o=i.y,a=i.y;let e=i.y,t=i.y;while(n<s.length&&null!=s[n]&&null!=s[n]&&s[n].x-l<r)o=Math.min(o,s[n].y),a=Math.max(a,s[n].y),t=s[n].y,n++;t>e?(h.push(new PointD(l,o)),h.push(new PointD(l+r/2,a))):(h.push(new PointD(l,a)),h.push(new PointD(l+r/2,o)))}else h.push(i)}return h}}__.d.StiPointHelper=Lp}{class tq{static getSquareDistance(e,t){let i=e.x-t.x,s=e.y-t.y;return i*i+s*s}static getSquareSegmentDistance(t,e,i){let s=e.x,r=e.y,n=i.x-s,l=i.y-r;if(0!=n||0!=l){let e=((t.x-s)*n+(t.y-r)*l)/(n*n+l*l);1<e?(s=i.x,r=i.y):0<e&&(s+=n*e,r+=l*e)}return(n=t.x-s)*n+(l=t.y-r)*l}static simplifyRadialDistance(t,i){let s=t[0],r=[],n=(r.push(s),new PointD);for(let e=1;e<t.length;e++)n=t[e],tq.getSquareDistance(n,s)>i&&(r.push(n),s=n);return s!=n&&r.push(n),r}static simplifyDouglasPeucker(s,e){let t=s.length,r=StiArray.create(Number,t),n=0,l=t-1,o=0,a=[],i=[];r[n]=r[l]=1;while(null!=l){let i=0;for(let t=n+1;t<l;t++){let e=tq.getSquareSegmentDistance(s[t],s[n],s[l]);e>i&&(o=t,i=e)}if(i>e){r[o]=1;let e=[n,o,o,l];a.push(...e)}0<a.length?(l=a[a.length-1],a[Stimulsoft.System.StiObject.stimulsoft]().removeAt(a.length-1)):l=null,0<a.length?(n=a[a.length-1],a[Stimulsoft.System.StiObject.stimulsoft]().removeAt(a.length-1)):n=null}for(let e=0;e<t;e++)0!=r[e]&&i.push(s[e]);return i}static simplify(e,t,i){if(null==e||0==e.length)return[];let s=t*t;if(i)return tq.simplifyDouglasPeucker(e,s);let r=tq.simplifyRadialDistance(e,s);return tq.simplifyDouglasPeucker(r,s)}}__.d.StiSimplifyHelper=tq}__.d.StiBoxAndWhiskerHelper=class{static checkArgument(e){let i=[];for(let t of e.series.toCast()){let e=t.as(__.d.StiBoxAndWhiskerSeries);null!=e&&i.push(e.coreTitle)}for(let t of e.series.toCast()){let e=t.as(__.d.StiBoxAndWhiskerSeries);null!=e&&(e.arguments=i,e.originalArguments=i)}}};{class jr{static getColorFromRange(r,n,l,o){{let e=l-n,t=o-n,i=t/e,s=jr.getLinearGradientPoints(r.length);return jr.getColorAtOffset(r,s,i)}}static getColorAtOffset(t,i,s){if(isNaN(s))return Color.empty;if(0==t.length)return Color.empty;if(1==t.length)return t[0];let r,n,l,o;for(let e=0;e<t.length-1;e++)if(l=i[e],o=i[e+1],l<=s&&s<=o){r=t[e],n=t[e+1];break}let e=o-l,a=s-l,h=a/e,u=this.interpolate(r.r,n.r,h),S=this.interpolate(r.g,n.g,h),d=this.interpolate(r.b,n.b,h);return Color.fromArgb(255,u,S,d)}static interpolate(e,t,i){return Math.round(e+(t-e)*i)}static getLinearGradientPoints(t){let i=new List,s=1/(t-1);for(let e=0;e<t;e++)i[e]=s*e,e==t-1&&(i[e]=1);return i}}__.d.StiHeatmapHelper=jr}__.d.StiHistogramHelper=class{static checkValuesAndArguments(s,r){if(!s.is(__.d.StiHistogramSeries))return;let t=s.values,e=this.getStandardDeviation(t),n=3.5*e/Math.pow(t.length,1/3),i=(n=n||1,n=this.roundToSignificantDigits(n,6),t[Stimulsoft.System.StiObject.stimulsoft]().toList().min()),l=i-n/2,o=(i<0&&l<0?l=t[Stimulsoft.System.StiObject.stimulsoft]().toList().min():l<0&&(l=0),[]),a=[],h=0,u=0,S=0,d=l+n,m=s.chart.area.as(__.d.StiAxisArea);for(let e of t[Stimulsoft.System.StiObject.stimulsoft]().toList().orderBy(e=>e)){if(e>d||u==t.length-1){o.push(h);let e=null!=r?r.format(l):m.xAxis.core.getLabelText2(l,l,s),t=null!=r?r.format(d):m.xAxis.core.getLabelText2(d,d,s),i=0==S?"["+e+", "+t+"]":"("+e+", "+t+"]";a.push(i),h=0,S++,l+=n*S,d=l+n}u++,h++}s.values=o,s.arguments=a,s.originalArguments=a.slice(),s.valuesStart=[]}static roundToSignificantDigits(e,t){if(0==e)return 0;let i=Math.pow(10,Math.floor(StiMath.log10(Math.abs(e)))+1);return StiMath.round2(i*StiMath.round2(e/i,t),t)}static getStandardDeviation(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.length,i=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(e=>Math.pow(e-t,2));return Math.sqrt(i/(e.length-1))}};{class ls{static createColorWithCorrectedLightness(e,t){if(0==t)return e;let i=e.r,s=e.g,r=e.b;return t<0?(t=1+t,i*=t,s*=t,r*=t):(i=(255-i)*t+i,s=(255-s)*t+s,r=(255-r)*t+r),Color.fromArgb(e.a,i,s,r)}static getActualAngle(e,t){let i=e.height*Math.cos(t*Math.PI/180),s=e.width*Math.sin(t*Math.PI/180),r=180*Math.atan2(s,i)/Math.PI;if(r<0)return r+360;return r}static transformAngle(e,t){let i=e.width*Math.cos(t*Math.PI/180),s=e.height*Math.sin(t*Math.PI/180),r=180*Math.atan2(s,i)/Math.PI;if(r<0)return r+360;return r}}ls.brightnessEnhancementFactor1=.3,__.d.StiPie3dHelper=ls}let StiEmptyCellsAs=__.a.Dashboard.StiEmptyCellsAs,StiShowEmptyCellsAs=__.d.StiShowEmptyCellsAs,StiFontGeom=(__.d.StiShowEmptyCellsAsHelper=class{static convert(e){switch(e){case StiEmptyCellsAs.Zero:return StiShowEmptyCellsAs.Zero;case StiEmptyCellsAs.Gap:return StiShowEmptyCellsAs.Gap;case StiEmptyCellsAs.ConnectPointsWithLine:return StiShowEmptyCellsAs.ConnectPointsWithLine;default:return StiShowEmptyCellsAs.Zero}}static seriesIsEmtyCellsAs(e){return e.is(__.d.StiLineSeries)||e.is(__.d.StiSplineSeries)}},Stimulsoft.Base.Context.StiFontGeom),StiColorUtils=(__.d.StiTextContentHelper=class{static getMeasureText(e,t,i,s){return this.getMeasureText2(e,t,StiFontGeom.create(i),s)}static getMeasureText2(i,s,r,n){for(let t=0;s.length>t;t++){let e=s.substr(0,t);if(n<i.measureString(e,r).width){if(4<e.length)return e.substr(0,e.length-3)+`...`;if(1<e.length)return e.substr(0,1)+`...`}}return s}},__.d.StiAreaCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAreaCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.area.allowApplyStyle&&(this.area.brush=e.core.chartAreaBrush,this.area.borderColor=e.core.chartAreaBorderColor,this.area.borderThickness=e.core.chartAreaBorderThickness,this.area.showShadow=e.core.chartAreaShowShadow)}render(e,t){return null}prepareInfo(e){}checkInLabelsTypes(t){let i=this.area.getSeriesLabelsTypes();for(let e of i)if(e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName())return!0;return!1}getSeries(){let t=new Hashtable,i=this.area.getSeriesTypes();for(let e of i)t.set(e,e);let s=[];for(let e of this.area.chart.series.list){if(null==t.get(e[Stimulsoft.System.StiObject.stimulsoft]().getType()))continue;s.push(e)}return s}isAcceptableSeries(t){let i=this.area.getSeriesTypes();for(let e of i)if(e==t)return!0;return!1}isAcceptableSeriesLabels(t){let i=this.area.getSeriesLabelsTypes();for(let e of i)if(e==t)return!0;return!1}get localizedName(){return null}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Vertical}get position(){return null}constructor(e){this.area=e}},Stimulsoft.Base.Drawing.StiColorUtils),IStiShowNullsSeriesAs=__.d.IStiShowNullsSeriesAs,IStiShowZerosSeriesAs=__.d.IStiShowZerosSeriesAs;__.d.StiBaseLineSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative,__.d.IStiShowNullsSeries,IStiShowNullsSeriesAs,__.d.IStiShowZerosSeries,IStiShowZerosSeriesAs]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowZeros","",!0),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiNumberMeta("LabelsOffset"),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative"),new StiEnumMeta("ShowNullsAs","",StiShowEmptyCellsAs,StiShowEmptyCellsAs.Zero),new StiEnumMeta("ShowZerosAs","",StiShowEmptyCellsAs,StiShowEmptyCellsAs.Zero)]}clone(){let e=super.clone();return e.marker=this.marker.clone(),e.lineStyle=this.lineStyle,e}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineColor(){return this.getLineColor()}set lineColor(e){this.setLineColor(e)}getLineColor(){return this._lineColor}setLineColor(e){this._lineColor=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}get showNullsAs(){return this._showNullsAs}set showNullsAs(e){this._showNullsAs=e,this.showNulls=e==StiShowEmptyCellsAs.Zero}get showZerosAs(){return this._showZerosAs}set showZerosAs(e){this._showZerosAs=e,this.showZeros=e==StiShowEmptyCellsAs.Zero}constructor(){super(),this.showNulls=!0,this.showZeros=!0,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this._lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.labelsOffset=0,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this._showNullsAs=StiShowEmptyCellsAs.Zero,this._showZerosAs=StiShowEmptyCellsAs.Zero,this.seriesLabels=new __.d.StiOutsideEndAxisLabels}};{class tt extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiScatterSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}getLineColor(){if(this[Stimulsoft.System.StiObject.stimulsoft]().getType()==tt){if(this.marker.brush.is(StiSolidBrush))return this.marker.brush.color;if(this.marker.brush.is(StiGradientBrush))return this.marker.brush.startColor}return super.getLineColor()}setLineColor(e){super.setLineColor(e)}constructor(){super(),this.core=new __.d.StiScatterSeriesCoreXF(this)}}__.d.StiScatterSeries=tt}__.d.StiScatterLineSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([__.d.IStiScatterLineSeries,__.d.IStiBaseLineSeries,__.d.IStiScatterSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}constructor(){super(),this.core=new __.d.StiScatterLineSeriesCoreXF(this)}};{class zt extends __.d.StiAreaCoreXF{implements(){let e=[__.d.IStiAxisAreaCoreXF];return(this.implements=()=>e)()}applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.xTopAxis&&t.xTopAxis.core.applyStyle(e),null!=t.yAxis&&t.yAxis.core.applyStyle(e),null!=t.yRightAxis)&&t.yRightAxis.core.applyStyle(e)}render(l,o){let a=this.area,h=(a.yAxis.info.minimum=0,a.yAxis.info.maximum=0,a.yRightAxis.info.minimum=0,a.yRightAxis.info.maximum=0,a.xAxis.info.minimum=0,a.xAxis.info.maximum=0,a.xTopAxis.info.minimum=0,a.xTopAxis.info.maximum=0,this.prepareInfo(o.clone()),null),u=null,S=null,d=null,m=null,c=null,e=null,t=null,i=null,s=null,r=null,n=null,g=RectangleD.empty,p=RectangleD.empty,_=RectangleD.empty,f=RectangleD.empty,C=RectangleD.empty,w=RectangleD.empty,b=RectangleD.empty,y=a.core.getSeries();if(0<y.length){let i=0,s=0,r=0,n=0;if(g=(a.reverseHor?a.yRightAxis:a.yAxis).core.getAxisRect(l,o,!0,!0,!1,!0),this.area.chart.table.core.showTable()){let e=this.area.chart.table.core.getWidthCellLegend(l);e>g.width&&(g.width=e,g.x=-e,0==g.height)&&(g.height=1)}if(g.isEmpty||(g.x+=o.x,g.y+=o.y),g.isEmpty||(r=g.width,g.top<o.top&&(i=Math.abs(o.top-g.top)),o.bottom<g.bottom&&(s=Math.abs(g.bottom-o.bottom))),(p=a.yAxis.core.getCenterAxisRect(l,o,!0,!0,!1)).isEmpty||(p.x+=o.x,p.y+=o.y),(_=(a.reverseHor?a.yAxis:a.yRightAxis).core.getAxisRect(l,o,!0,!0,!1,!0)).isEmpty||(_.x+=o.x,_.y+=o.y),_.isEmpty||(n=_.width,_.top<o.top&&(i=Math.max(i,Math.abs(o.top-_.top))),o.bottom<_.bottom&&(s=Math.max(s,Math.abs(_.bottom-o.bottom)))),(f=a.xTopAxis.core.getAxisRect(l,o,!0,!0,!1,!0)).isEmpty||(f.x+=o.x,f.y+=o.y),f.isEmpty||(i=Math.max(f.height,i),f.x<o.x&&(r=Math.max(r,Math.abs(o.left-f.left))),o.right<f.right&&(n=Math.max(n,Math.abs(f.right-o.right)))),(C=a.xAxis.core.getCenterAxisRect(l,o,!0,!0,!1)).isEmpty||(C.x+=o.x,C.y+=o.y),a.reverseHor){let e={ref:r},t={ref:n};this.swap(e,t),r=e.ref,n=t.ref}let e=new RectangleD(o.x+r,o.y,o.width-r-n,o.height),t=(a.xAxis.info.dpi=e.width/a.xAxis.info.range,this.calculateStepX(a.xAxis,e.left,e.right),{ref:a.xAxis.info.labelsCollection});if(this.calculatePositions(a.xAxis,t,0<a.xAxis.labels.step?StiMath.trunc(a.xAxis.labels.step):1,!1),a.xAxis.info.labelsCollection=t.ref,(w=a.xAxis.core.getAxisRect(l,e,!0,!0,!1,!0)).isEmpty||this.area.chart.table.core.showTable()||(w.x+=o.x,w.y+=o.y),w.isEmpty||this.area.chart.table.core.showTable()&&!this.area.chart.table.chart.area.is(__.d.IStiClusteredBarArea)||(s=Math.max(w.height,s),w.x<o.x&&(r=Math.max(r,Math.abs(o.left-w.left))),o.right<w.right&&(n=Math.max(n,Math.abs(w.right-o.right)))),a.reverseHor){let e={ref:r},t={ref:n};this.swap(e,t),r=e.ref,n=t.ref}if(a.reverseVert){let e={ref:i},t={ref:s};this.swap(e,t),i=e.ref,s=t.ref}o.x+=r,o.width-=r+n,o.y+=i,o.height-=i+s,this.prepareInfo(o),h=a.yAxis.core.renderView(l,o),u=a.yAxis.core.renderCenterView(l,o),S=a.yRightAxis.core.renderView(l,o),d=a.xTopAxis.core.renderView(l,o),m=a.xAxis.core.renderCenterView(l,o),c=a.xAxis.core.renderView(l,o)}b=o.clone();let x=this.calculateScrollValuesX(o.clone(),a),A=this.calculateScrollValuesY(o.clone(),a),L=(o.x=-this.scrollDistanceX,o.y=-this.scrollDistanceY,o.width*=x,o.height*=A,this.prepareInfo(o.clone()),0<y.length&&(e=a.yAxis.core.render(l,o.clone()),t=a.yAxis.core.renderCenter(l,o.clone()),i=a.yRightAxis.core.render(l,o.clone()),s=a.xTopAxis.core.render(l,o.clone()),r=a.xAxis.core.renderCenter(l,o.clone()),n=a.xAxis.core.render(l,o.clone()),null!=e&&(e.view=h),null!=t&&(t.view=u),null!=i&&(i.view=S),null!=s&&(s.view=d),null!=r&&(r.view=m),null!=n)&&(n.view=c),null!=c&&a.xAxis.core.renderScrollBar(l,c.clientRectangle,c),null!=d&&a.xTopAxis.core.renderScrollBar(l,d.clientRectangle,d),null!=h&&a.yAxis.core.renderScrollBar(l,h.clientRectangle,h),null!=S&&a.yRightAxis.core.renderScrollBar(l,S.clientRectangle,S),new __.d.StiAxisAreaViewGeom(a,b)),T=new __.d.StiAxisAreaGeom(L,a,o.clone());L.createChildGeoms(),L.childGeoms.push(T);for(let e of this.area.chart.strips.list)e.showBehind&&e.core.render(l,T,o.clone());for(let e of this.area.chart.constantLines.list)e.showBehind&&e.core.render(l,T,o.clone());this.renderSeries(l,o.clone(),T,y);for(let e of this.area.chart.strips.list)e.showBehind||e.core.render(l,T,o.clone());for(let e of this.area.chart.constantLines.list)e.showBehind||e.core.render(l,T,o.clone());return null!=e&&(L.createChildGeoms(),h.createChildGeoms(),L.childGeoms.push(h),h.childGeoms.push(e)),null!=t&&(L.createChildGeoms(),u.createChildGeoms(),L.childGeoms.push(u),u.childGeoms.push(t)),null!=i&&(L.createChildGeoms(),S.createChildGeoms(),L.childGeoms.push(S),S.childGeoms.push(i)),null!=s&&(L.createChildGeoms(),d.createChildGeoms(),L.childGeoms.push(d),d.childGeoms.push(s)),null!=r&&(L.createChildGeoms(),m.createChildGeoms(),L.childGeoms.push(m),m.childGeoms.push(r)),null==n||this.area.chart.table.core.showTable()&&!this.area.chart.table.chart.area.is(__.d.IStiClusteredBarArea)||(L.createChildGeoms(),c.createChildGeoms(),L.childGeoms.push(c),c.childGeoms.push(n)),L}calculateScrollValuesX(e,t){let i,s,r=1;if((this.isAutoRangeXAxis(t.xAxis)||(i=t.xAxis.range.minimum,s=t.xAxis.range.maximum,i>s))&&(i=t.xAxis.info.minimum,s=t.xAxis.info.maximum),this._scrollRangeX=t.xAxis.info.maximum-t.xAxis.info.minimum,this._scrollViewX=s-i,!t.xAxis.core.getStartFromZero()||t.xAxis.logarithmicScale?this.blockScrollValueX=!0:this.blockScrollValueX=!1,!this.blockScrollValueX&&!t.xAxis.interaction.showScrollBar){let e=i+Math.abs(t.xAxis.info.minimum);0<t.xAxis.info.minimum&&0<i&&(e=Math.abs(i-t.xAxis.info.minimum)),this.scrollValueX=t.reverseHor?this._scrollRangeX-e-this._scrollViewX:e}return r=this.scrollRangeX/this.scrollViewX,this._scrollDpiX=e.width*r/this.scrollRangeX,r}calculateScrollValuesY(e,t){let i,s,r=1;if((this.isAutoRangeYAxis(t.yAxis)||(i=t.yAxis.range.minimum,s=t.yAxis.range.maximum,i>s))&&(i=t.yAxis.info.minimum,s=t.yAxis.info.maximum),this._scrollRangeY=t.yAxis.info.maximum-t.yAxis.info.minimum,this._scrollViewY=s-i,!t.yAxis.core.getStartFromZero()||t.yAxis.logarithmicScale?this.blockScrollValueY=!0:this.blockScrollValueY=!1,this.blockScrollValueY)this.scrollValueY=0;else{let e=i+Math.abs(t.yAxis.info.minimum);t.reverseVert?this.scrollValueY=e:this.scrollValueY=this._scrollRangeY-e-this._scrollViewY}return r=this.scrollRangeY/this.scrollViewY,this._scrollDpiY=e.height*r/this.scrollRangeY,r}prepareInfo(h){let u=this.getSeries();if(0<u.length){let e=this.area,t=(this.valuesCount=0,this.is(__.d.StiClusteredBarAreaCoreXF)?e.yAxis:e.xAxis),i=this.is(__.d.StiClusteredBarAreaCoreXF)?e.yRightAxis:e.xTopAxis,s=this.is(__.d.StiClusteredBarAreaCoreXF)?e.xAxis:e.yAxis,r=this.is(__.d.StiClusteredBarAreaCoreXF)?e.xTopAxis:e.yRightAxis,n=(t.info.stripLines=new __.d.StiStripLinesXF,s.info.stripLines=new __.d.StiStripLinesXF,r.info.stripLines=new __.d.StiStripLinesXF,!1);for(let t=0;t<u.length;t++){let e=u[t].values;null!=(e=u[t].is(__.d.StiCandlestickSeries)?u[t].valuesOpen:e)&&(this.valuesCount=Math.max(e.length,this.valuesCount)),u[t].core.isDateTimeValues&&(n=!0)}this.is(__.d.StiBoxAndWhiskerAreaCoreXF)&&(this.valuesCount=u.length),this.prepareRange(t,i,s,r),!s.range.auto&&s.range.maximum>s.info.maximum&&(s.info.maximum=s.range.maximum),!s.range.auto&&s.range.minimum<s.info.minimum&&(s.info.minimum=s.range.minimum),(!r.range.auto&&r.range.maximum>r.info.maximum||e.is(__.d.StiParetoArea))&&(r.info.maximum=r.range.maximum),!r.range.auto&&r.range.minimum<r.info.minimum&&(r.info.minimum=r.range.minimum);let l=0<this.area.chart.series.count&&this.area.chart.series.getByIndex(0).is(__.d.StiScatterSeries),o=(s.logarithmicScale&&l?this.calculateMinimumAndMaximumYAxisLog(s):(this.checkStartFromZeroYAxis(s),this.checkStartFromZeroYAxis(r),this.calculateMinimumAndMaximumYAxis(s),r.range.auto&&this.calculateMinimumAndMaximumYAxis(r)),this.calculateMinimumAndMaximumXAxis(t),this.createStripLinesXAxis(t),this.createStripLinesYAxis(s,n),this.createStripLinesYAxis(r,n),this.checkStripLinesAndMaximumMinimumXAxis(t),this.checkStripLinesAndMaximumMinimumYAxis(s),this.checkStripLinesAndMaximumMinimumYAxis(r),e.is(__.d.IStiClusteredBarArea)&&(zt.rotateStripLines(t),zt.rotateStripLines(s),zt.rotateStripLines(r)),i.info=t.info.clone(),this.checkShowEdgeValues(t),this.checkShowEdgeValues(i),e.reverseHor&&(zt.rotateStripLines(e.xAxis),zt.rotateStripLines(e.xTopAxis)),e.reverseVert&&(zt.rotateStripLines(e.yAxis),zt.rotateStripLines(e.yRightAxis)),e.xAxis.info.dpi=h.width/e.xAxis.info.range,e.xTopAxis.info.dpi=h.width/e.xTopAxis.info.range,e.yAxis.info.dpi=h.height/e.yAxis.info.range,e.yRightAxis.info.dpi=h.height/e.yRightAxis.info.range,this.calculateStepX(e.xAxis,h.left,h.right),this.calculateStepX(e.xTopAxis,h.left,h.right),this.calculateStepY(e.yAxis,h.top,h.bottom),this.calculateStepY(e.yRightAxis,h.top,h.bottom),{ref:e.xAxis.info.labelsCollection}),a=(this.calculatePositions(e.xAxis,o,0<e.xAxis.labels.step?StiMath.trunc(e.xAxis.labels.step):1,!1),e.xAxis.info.labelsCollection=o.ref,o={ref:e.xTopAxis.info.labelsCollection},this.calculatePositions(e.xTopAxis,o,0<e.xTopAxis.labels.step?StiMath.trunc(e.xTopAxis.labels.step):1,!1),e.xTopAxis.info.labelsCollection=o.ref,o={ref:e.yAxis.info.labelsCollection},this.calculatePositions(e.yAxis,o,0<e.yAxis.labels.step?StiMath.trunc(e.yAxis.labels.step):1,!1),e.yAxis.info.labelsCollection=o.ref,o={ref:e.yRightAxis.info.labelsCollection},this.calculatePositions(e.yRightAxis,o,0<e.yRightAxis.labels.step?StiMath.trunc(e.yRightAxis.labels.step):1,!1),e.yRightAxis.info.labelsCollection=o.ref,{ref:e.xAxis.info.ticksCollection});this.calculatePositions(e.xAxis,a,0<e.xAxis.ticks.step?StiMath.trunc(e.xAxis.ticks.step):1,!0),e.xAxis.info.ticksCollection=a.ref,a={ref:e.xTopAxis.info.ticksCollection},this.calculatePositions(e.xTopAxis,a,0<e.xTopAxis.ticks.step?StiMath.trunc(e.xTopAxis.ticks.step):1,!0),e.xTopAxis.info.ticksCollection=a.ref,a={ref:e.yAxis.info.ticksCollection},this.calculatePositions(e.yAxis,a,0<e.yAxis.ticks.step?StiMath.trunc(e.yAxis.ticks.step):1,!0),e.yAxis.info.ticksCollection=a.ref,a={ref:e.yRightAxis.info.ticksCollection},this.calculatePositions(e.yRightAxis,a,0<e.yRightAxis.ticks.step?StiMath.trunc(e.yRightAxis.ticks.step):1,!0),e.yRightAxis.info.ticksCollection=a.ref}}renderSeries(r,n,l,e){let i=[],s=new Hashtable;for(let t of e)if(this.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())){let e=s.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],i.push(e),s.add(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let e of i){let s=e;if(s[0].is(__.d.StiStackedBarSeries)||s[0].is(__.d.StiStackedColumnSeries)||s[0].is(__.d.StiStackedBaseLineSeries)){let t=[],i=[];for(let e of s)(e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?t:i).push(e);0<t.length&&t[0].core.renderSeries(r,n,l,t),0<i.length&&i[0].core.renderSeries(r,n,l,i)}else s[0].core.renderSeries(r,n,l,s)}}isAutoRangeXAxis(e){return e.range.auto||e.range.minimum>=e.range.maximum||e.logarithmicScale}isAutoRangeYAxis(e){return e.range.auto||e.range.maximum==e.range.minimum||this.area.isDefaultSeriesTypeFullStackedColumnSeries||e.logarithmicScale}calculateMinimumAndMaximumXAxis(e){e.range.auto||(e.info.maximum=e.range.maximum,e.info.minimum=e.range.minimum)}calculateMinimumAndMaximumYAxisLog(t){if(t.is(__.d.IStiYAxis)){let e=.05;t.info.minimum=t.info.minimum-e,t.info.maximum=t.info.maximum+e}}calculateMinimumAndMaximumYAxis(i){if(0<this.getSeries().length&&this.getSeries()[0].is(__.d.StiGanttSeries))return void(i.range.auto||(i.info.maximum=i.range.maximum,i.info.minimum=i.range.minimum));if(!i.startFromZero&&i.range.auto&&i.is(__.d.IStiYAxis)){let e=.05*(i.info.maximum-i.info.minimum);if(0!=e)i.info.minimum-=e,i.info.maximum+=e,i.info.minimum<0&&0<=i.info.minimum+e&&(i.info.minimum=0);else if(0===i.info.minimum&&0===i.info.maximum)i.info.maximum=1,i.info.minimum=-1;else{let e=zt.getNextLowerDigit(i.info.maximum);i.info.maximum+=e,i.info.minimum-=e}}else{let e=.1,t=(0<this.getSeries().length&&this.getSeries()[0].seriesLabels.is(__.d.StiOutsideEndAxisLabels)&&(e=.15),Math.min(e,Math.abs(4/((i.info.maximum+i.info.minimum)/2))));i.info.maximum*=1+t*Math.sign(i.info.maximum),i.info.minimum*=1-t*Math.sign(i.info.minimum)}i.info.minimum==i.info.maximum&&(0==i.info.maximum?i.info.maximum=100:(i.info.minimum-=.1*i.info.minimum,i.info.maximum+=.1*i.info.maximum))}static getNextLowerDigit(e){if(0===e)return 1;let t=Math.abs(e),i=Math.pow(10,Math.floor(Math.log10(t))),s=i/10;return s}getArgumentLabel(e,t){if(null==e)return"";let i=this.area;return(i.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?i.xAxis:i.yAxis).core.getLabelText(e,t)}switchOff(){let e=this.area;e.gridLinesHor.visible=!1,e.gridLinesVert.visible=!1,e.interlacingHor.visible=!1,e.interlacingVert.visible=!1,e.xAxis.visible=!1,e.yAxis.visible=!1,e.xTopAxis.visible=!1,e.yRightAxis.visible=!1,e.yAxis.range.auto=!0,e.xAxis.range.auto=!0,e.xAxis.startFromZero=!0,e.gridLinesHor.minorVisible=!1,e.gridLinesVert.minorVisible=!1,e.gridLinesHorRight.visible=!1}swap(e,t){let i=e.ref;e.ref=t.ref,t.ref=i}prepareRange(e,t,i,s){}createStripLinesXAxis(s){let r=s.core.getStartFromZero(),t=r?this.valuesCount+1:this.valuesCount;for(let e=r?0:1;e<=t;e++)s.info.stripLines.add2(e,e);let i=this.getSeries();for(let e of i)for(let i=0;i<this.valuesCount;i++){let t=null;if(null!=e.arguments&&i<e.arguments.length&&null==(t=e.arguments[i]))continue;if(null!=t){let e=r?1+i:i;e<s.info.stripLines.count&&(s.info.stripLines.getByIndex(e).valueObject=t)}}}checkShowEdgeValues(t){if(0<t.info.stripLines.count){let e=(t.is(__.d.IStiXTopAxis)?t.area.xTopAxis:t.area.xAxis).showEdgeValues;e&&!t.area.is(__.d.IStiClusteredBarArea)||(t.info.stripLines.getByIndex(0).valueObject=null,t.info.stripLines.getByIndex(t.info.stripLines.count-1).valueObject=null)}}createStripLinesYAxis(l,e){if(this.area.isDefaultSeriesTypeFullStackedColumnSeries||this.area.isDefaultSeriesTypeFullStackedBarSeries){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=(0==t&&0==r&&(r=100),l.labels.step);0==n&&(n=__.d.StiStripLineCalculatorXF.getInterval(t,r,6)),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let t=l.labels.step;if(0==(t=0<t&&0<l.info.range&&500<l.info.range/t?0:t)){t=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6);let e=this.area.chart;e.isDashboard&&(l.labels.calculatedStep=t)}l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines2(l,t,e)}}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}checkStripLinesAndMaximumMinimumYAxis(e){0<e.info.stripLines.count?(e.info.maximum=e.info.stripLines.getByIndex(0).value,e.info.minimum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.maximum=100,e.info.minimum=0)}calculateStepX(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(0).value-e.info.stripLines.getByIndex(1).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}calculateStepY(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}checkStartFromZeroYAxis(e){e.core.getStartFromZero()&&(e.info.maximum<0&&(e.info.maximum=0),0<e.info.minimum)&&(e.info.minimum=0)}calculatePositions(s,e,t,r){let n=[],i=this.area,l=!1,o=(this.area.is(__.d.IStiYAxis)?l=i.reverseVert:this.area.is(__.d.IStiXAxis)&&(l=i.reverseHor),0),a=s.info.stripPositions.length;for(let i=0;i<a;i++){if(0==o){let e=new __.d.StiStripPositionXF,t=l?a-i-1:i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],l?n[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):n.push(e)}if(this.area.core.is(__.d.StiScatterAreaCoreXF)&&s.is(__.d.IStiXAxis)&&!s.logarithmicScale)continue;if(this.area.core.is(__.d.StiClusteredBarAreaCoreXF)&&s.is(__.d.IStiXAxis)&&!r)continue;if(!this.area.core.is(__.d.StiClusteredBarAreaCoreXF)&&s.is(__.d.IStiYAxis)&&!r)continue;if(i==a-1){let e=s;if(null!=e&&e.showEdgeValues){let e=new __.d.StiStripPositionXF,t=l?0:a-1;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],l?n[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):n.push(e)}}++o==t&&(o=0)}e.ref=n}calculateDivider(t){let e=this.area,i=0;if(null!=t.info.stripLines)for(let e of t.info.stripLines.list){if(0==e.value)return t.info.stripPositions[i];i++}return t.is(__.d.IStiYAxis)?e.reverseVert?-t.info.minimum*t.info.dpi:null==t.info.stripPositions||0==t.info.stripPositions.length?t.info.minimum*t.info.dpi:t.info.stripPositions[t.info.stripPositions.length-1]+t.info.minimum*t.info.dpi:t.is(__.d.IStiXAxis)?e.reverseHor?null==t.info.stripPositions||0==t.info.stripPositions.length?t.info.minimum*t.info.dpi:t.info.stripPositions[t.info.stripPositions.length-1]+t.info.minimum*t.info.dpi:-t.info.minimum*t.info.dpi:0}static rotateStripLines(t){let i=new __.d.StiStripLinesXF;for(let e of t.info.stripLines.list)i.insert(0,e);t.info.stripLines=i}getDividerX(){let e=this.area;if(this.is(__.d.StiClusteredBarAreaCoreXF)||this.is(__.d.StiScatterAreaCoreXF))return this.calculateDivider(e.xAxis);return 0}getDividerTopX(){let e=this.area;if(this.is(__.d.StiClusteredBarAreaCoreXF))return this.calculateDivider(e.xTopAxis);return 0}getDividerY(){let e=this.area;return this.is(__.d.StiClusteredBarAreaCoreXF)&&!this.is(__.d.StiGanttAreaCoreXF)?0:this.calculateDivider(e.yAxis)}getDividerRightY(){let e=this.area;return this.is(__.d.StiClusteredBarAreaCoreXF)&&!this.is(__.d.StiGanttAreaCoreXF)?0:this.calculateDivider(e.yRightAxis)}get scrollDistanceX(){return this.scrollDpiX*this.scrollValueX}get scrollDistanceY(){return this.scrollDpiY*this.scrollValueY}get scrollRangeX(){return this._scrollRangeX}get scrollRangeY(){return this._scrollRangeY}get scrollViewX(){return this._scrollViewX}get scrollViewY(){return this._scrollViewY}get scrollDpiX(){return this._scrollDpiX}get scrollDpiY(){return this._scrollDpiY}constructor(e){super(e),this.valuesCount=0,this._scrollRangeX=0,this._scrollRangeY=0,this._scrollViewX=0,this._scrollViewY=0,this.blockScrollValueX=!1,this.blockScrollValueY=!1,this.scrollValueX=0,this.scrollValueY=0,this._scrollDpiX=1,this._scrollDpiY=1,this.scrollDragStartValue=0}}__.d.StiAxisAreaCoreXF=zt}__.d.StiClusteredColumnAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareRange(e,t,s,r){let n=!0,l=!0,o=!1,a=!1,h=(s.info.maximum=0,s.info.minimum=0,r.info.maximum=0,r.info.minimum=0,this.getSeries());for(let e=0;e<h.length;e++){let t=h[e],i=t.values;for(let e of i)t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?null!=e&&(n?(o=!0,s.info.maximum=e,s.info.minimum=e,n=!1):(o=!0,s.info.maximum=Math.max(e,s.info.maximum),s.info.minimum=Math.min(e,s.info.minimum))):null!=e&&(l?(a=!0,r.info.maximum=e,r.info.minimum=e,l=!1):(a=!0,r.info.maximum=Math.max(e,r.info.maximum),r.info.minimum=Math.min(e,r.info.minimum)))}o||(s.info.maximum=r.info.maximum,s.info.minimum=r.info.minimum),a||(r.info.maximum=s.info.maximum,r.info.minimum=s.info.minimum)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}get position(){return __.d.StiChartAreaPosition.ClusteredColumn}constructor(e){super(e)}};let StiChartAreaPosition=__.d.StiChartAreaPosition,StiConvert=(__.d.StiBoxAndWhiskerAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","BoxAndWhisker")}get position(){return StiChartAreaPosition.Bubble}constructor(e){super(e)}},Stimulsoft.Base.StiConvert),StiEmptyBrush=(__.d.StiScatterAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{isXAxisAutoRange(e){let t=this.area;return e.range.auto||t.xAxis.range.maximum==t.xAxis.range.minimum||e.logarithmicScale}prepareRange(e,t,i,s){super.prepareRange(e,t,i,s);let r=!0,n=(e.info.maximum=0,e.info.minimum=0,this.isArgumentDateTime=!1,this.getSeries());for(let s of n){if(0<s.arguments.length&&"string"==typeof s.arguments[0]){let e=s.arguments[0];if(e.endsWith("AM")||e.endsWith("PM"))for(let t=0;t<s.arguments.length;t++){let e=DateTime.fromString(s.arguments[t].toString(),!1);null!=e&&(s.arguments[t]=e)}}for(let i of s.arguments){let t=0;if(i instanceof DateTime)this.isArgumentDateTime=!0,t=i.toOADate();else if("string"==typeof i){let e={ref:0};__.d.StiSeries.tryParseValue(i,s.chart.report.culture,e)&&(t=e.ref)}else try{t=StiConvert.changeType(i,Number)}catch(e){t=0}r?(r=!1,e.info.maximum=t,e.info.minimum=t):(e.info.maximum=Math.max(e.info.maximum,t),e.info.minimum=Math.min(e.info.minimum,t))}}}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}createStripLinesXAxis(s){if(!this.isArgumentDateTime&&!s.logarithmicScale&&this.isXAxisAutoRange(s)){let e=.05*Math.abs(s.info.maximum-s.info.minimum);if(0!=e)s.info.maximum+=e,s.info.minimum-=e,s.info.minimum<0&&0<=s.info.minimum+e&&(s.info.minimum=0);else if(0==s.info.minimum&&0==s.info.maximum)s.info.maximum=1,s.info.minimum=-1;else{let e=__.d.StiAxisAreaCoreXF.getNextLowerDigit(s.info.maximum);s.info.maximum+=e,s.info.minimum-=e}s.core.getStartFromZero()&&(s.info.maximum<0?s.info.maximum=0:s.info.minimum=0),s.info.minimum==s.info.maximum&&(0==s.info.maximum?s.info.maximum=100:(s.info.minimum-=.1*s.info.minimum,s.info.maximum-=.1*s.info.maximum))}let e=s.labels.step;0==e&&(e=__.d.StiStripLineCalculatorXF.getInterval(s.info.minimum,s.info.maximum,6));let r;r=s.logarithmicScale?__.d.StiStripLineCalculatorXF.getStripLinesLogScale(s.info.minimum,s.info.maximum):this.isArgumentDateTime?__.d.StiStripLineCalculatorXF.getScatterXDateStripLines(s.info.minimum,s.info.maximum,e):__.d.StiStripLineCalculatorXF.getStripLines2(s,e,!1),s.info.stripLines.clear();for(let i=r.count-1;0<=i;i--){let e=r.getByIndex(i).value,t=r.getByIndex(i).valueObject;this.isArgumentDateTime&&(t=DateTime.fromOADate(e)),s.info.stripLines.add2(t,e)}}createStripLinesYAxis(l,t){if(this.area.isDefaultSeriesTypeFullStackedColumnSeries||this.area.isDefaultSeriesTypeFullStackedBarSeries){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=l.labels.step;0==n&&(n=__.d.StiStripLineCalculatorXF.getInterval(t,r,6)),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let e=l.labels.step;0==(e=l.range.auto&&0<e&&0<l.info.range&&500<l.info.range/e?0:e)&&(e=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6)),l.info.stripLines=l.logarithmicScale?__.d.StiStripLineCalculatorXF.getStripLinesLogScale(l.info.minimum,l.info.maximum):__.d.StiStripLineCalculatorXF.getStripLines2(l,e,t)}}get localizedName(){return StiLocalization.get("Chart","Scatter")}get position(){return __.d.StiChartAreaPosition.Scatter}constructor(e){super(e),this.isArgumentDateTime=!1}},__.d.StiBubbleAreaCoreXF=class extends __.d.StiScatterAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Bubble")}get position(){return StiChartAreaPosition.Bubble}constructor(e){super(e)}},__.d.StiCandlestickAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Candlestick")}get position(){return __.d.StiChartAreaPosition.Candlestick}createStripLinesXAxis(s){s.info.stripLines.clear(),s.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let i of e.arguments){let t=!0;for(let e of s.info.stripLines.list)e.valueObject.toString()==i.toString()&&(t=!1);t&&s.info.stripLines.add2(i,s.info.stripLines.count)}s.info.stripLines.add2("",s.info.stripLines.count)}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.valuesOpen)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesClose)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e));for(let e of t.valuesHigh)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e));for(let e of t.valuesLow)null!=e&&(i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}constructor(e){super(e)}},__.d.StiClusteredBarAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","ClusteredBar")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.ClusteredBar}constructor(e){super(e)}},__.d.StiAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Area")}get position(){return __.d.StiChartAreaPosition.Area}constructor(e){super(e)}},__.d.StiHistogramAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Histogram")}get position(){return __.d.StiChartAreaPosition.Histogram}constructor(e){super(e)}},__.d.StiLineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Line")}get position(){return __.d.StiChartAreaPosition.Line}constructor(e){super(e)}},__.d.StiParetoAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Pareto")}get position(){return __.d.StiChartAreaPosition.Pareto}constructor(e){super(e)}},__.d.StiSplineAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SplineArea")}get position(){return __.d.StiChartAreaPosition.SplineArea}constructor(e){super(e)}},__.d.StiSplineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Spline")}get position(){return __.d.StiChartAreaPosition.Spline}constructor(e){super(e)}},__.d.StiSteppedAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedArea")}get position(){return __.d.StiChartAreaPosition.SteppedArea}constructor(e){super(e)}},__.d.StiSteppedLineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedLine")}get position(){return __.d.StiChartAreaPosition.SteppedLine}constructor(e){super(e)}},__.d.StiWaterfallAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareRange(e,t,s,i){let r=!0,n=0,l=(s.info.maximum=0,s.info.minimum=0,this.getSeries());for(let t=0;t<l.length;t++){let i=l[t],e=i.total.visible?1:0;for(let t=0;t<i.values.length-e;t++){let e=i.values[t];i.yAxis==__.d.StiSeriesYAxis.LeftYAxis&&null!=e&&(r?(n=e,s.info.maximum=Math.max(0,e),s.info.minimum=Math.min(0,e),r=!1):(n+=e,s.info.maximum=Math.max(n,s.info.maximum),s.info.minimum=Math.min(n,s.info.minimum)))}}}get localizedName(){return StiLocalization.get("Chart","Waterfall")}get position(){return __.d.StiChartAreaPosition.Waterfall}constructor(e){super(e)}},__.d.StiPieAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){this.prepareInfo(t);let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){this.valuesCount=0;let i=this.getSeries();if(0<i.length)for(let t=0;t<i.length;t++){let e=i[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}}get localizedName(){return StiLocalization.get("Chart","Pie")}get position(){return __.d.StiChartAreaPosition.Pie}constructor(e){super(e),this.valuesCount=0}},__.d.StiDoughnutAreaCoreXF=class extends __.d.StiPieAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;null!=t&&(t.indicator.value.color==Color.transparent&&(t.indicator.value.styleColor=e.core.seriesLabelsColor),t.indicator.title.color==Color.transparent)&&(t.indicator.title.styleColor=e.core.seriesLabelsColor)}render(e,t){this.prepareInfo(t);let i=new __.d.StiDoughnutAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}get localizedName(){return StiLocalization.get("Chart","Doughnut")}get position(){return __.d.StiChartAreaPosition.Doughnut}constructor(e){super(e)}},__.d.StiStackedBarAreaCoreXF=class extends __.d.StiClusteredBarAreaCoreXF{prepareSeriesRange(e){let s=[],r=[],n=[],l=[],o=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of o)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e)if(t.yAxis==__.d.StiSeriesYAxis.LeftYAxis){if(s.push(0),r.push(0),i<t.values.length){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}}else if(n.push(0),l.push(0),i<t.values.length){let e=t.values[i];0<e?l[i]=l[i]+e:n[i]=n[i]+e}let t=[s,r,n,l];return t}prepareRange(e,t,i,s){let r=this.getSeries(),n=new Hashtable;for(let e of r)n.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let l=[],o=[],a=[],h=[];for(let e of n.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])l.length<=i?l.push(e):l[i]=Math.min(l[i],e),i++;i=0;for(let e of t[1])o.length<=i?o.push(e):o[i]=Math.max(o[i],e),i++;i=0;for(let e of t[2])a.length<=i?a.push(e):a[i]=Math.min(a[i],e),i++;i=0;for(let e of t[3])h.length<=i?h.push(e):h[i]=Math.max(h[i],e),i++}0==l.length&&(l=a),0==o.length&&(o=h),0==a.length&&(a=l),0==h.length&&(h=o);let u=!0;for(let e of l)u?(i.info.minimum=e,u=!1):i.info.minimum=Math.min(e,i.info.minimum);u=!0;for(let e of o)u?(i.info.maximum=e,u=!1):i.info.maximum=Math.max(e,i.info.maximum);u=!0;for(let e of a)u?(s.info.minimum=e,u=!1):s.info.minimum=Math.min(e,s.info.minimum);u=!0;for(let e of h)u?(s.info.maximum=e,u=!1):s.info.maximum=Math.max(e,s.info.maximum)}get localizedName(){return StiLocalization.get("Chart","StackedBar")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.StackedBar}constructor(e){super(e)}},__.d.StiFullStackedBarAreaCoreXF=class extends __.d.StiStackedBarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedBar")}get position(){return __.d.StiChartAreaPosition.FullStackedBar}constructor(e){super(e)}},__.d.StiStackedColumnAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareSeriesRange(e){let s=[],r=[],n=[],l=[],o=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of o)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e)if(t.yAxis==__.d.StiSeriesYAxis.LeftYAxis){if(s.push(0),r.push(0),i<t.values.length){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}}else if(n.push(0),l.push(0),i<t.values.length){let e=t.values[i];0<e?l[i]=l[i]+e:n[i]=n[i]+e}let t=[s,r,n,l];return t}prepareRange(e,t,i,s){let r=this.getSeries(),n=new Hashtable;for(let e of r)n.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let l=[],o=[],a=[],h=[];for(let e of n.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])l.length<=i?l.push(e):l[i]=Math.min(l[i],e),i++;i=0;for(let e of t[1])o.length<=i?o.push(e):o[i]=Math.max(o[i],e),i++;i=0;for(let e of t[2])a.length<=i?a.push(e):a[i]=Math.min(a[i],e),i++;i=0;for(let e of t[3])h.length<=i?h.push(e):h[i]=Math.max(h[i],e),i++}0==l.length&&(l=a),0==o.length&&(o=h),0==a.length&&(a=l),0==h.length&&(h=o);let u=!0;for(let e of l)u?(i.info.minimum=e,u=!1):i.info.minimum=Math.min(e,i.info.minimum);u=!0;for(let e of o)u?(i.info.maximum=e,u=!1):i.info.maximum=Math.max(e,i.info.maximum);u=!0;for(let e of a)u?(s.info.minimum=e,u=!1):s.info.minimum=Math.min(e,s.info.minimum);u=!0;for(let e of h)u?(s.info.maximum=e,u=!1):s.info.maximum=Math.max(e,s.info.maximum)}get localizedName(){return StiLocalization.get("Chart","StackedColumn")}get position(){return __.d.StiChartAreaPosition.StackedColumn}constructor(e){super(e)}},__.d.StiFullStackedColumnAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedColumn")}get position(){return __.d.StiChartAreaPosition.FullStackedColumn}constructor(e){super(e)}},__.d.StiFullStackedAreaAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedArea")}get position(){return __.d.StiChartAreaPosition.FullStackedArea}constructor(e){super(e)}},__.d.StiFullStackedLineAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedLine")}get position(){return __.d.StiChartAreaPosition.FullStackedLine}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSplineArea")}get position(){return __.d.StiChartAreaPosition.FullStackedSplineArea}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSpline")}get position(){return __.d.StiChartAreaPosition.FullStackedSpline}constructor(e){super(e)}},__.d.StiFunnelAreaCoreXF=class extends __.d.StiAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Funnel")}get position(){return __.d.StiChartAreaPosition.Funnel}render(e,t){let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){}constructor(e){super(e)}},__.d.StiGanttAreaCoreXF=class extends __.d.StiClusteredBarAreaCoreXF{createStripLinesXAxis(r){r.info.stripLines.clear(),r.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let s of e.arguments){let i=!0;for(let t of r.info.stripLines.list){let e=null==s?"":s.toString();null!=t.valueObject&&t.valueObject.toString()==e&&(i=!1)}i&&r.info.stripLines.add2(null!=s?s:"",r.info.stripLines.count)}r.info.stripLines.add2("",r.info.stripLines.count)}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.values)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesEnd)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}get localizedName(){return StiLocalization.get("Chart","Gantt")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.Gantt}constructor(e){super(e)}},__.d.StiHeatmapAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareInfo(h){let u=this.getSeries();if(0<u.length){let e=this.area,t=(this.xValuesCount=0,this.yValuesCount=0,e.xAxis),i=e.xTopAxis,s=e.yAxis,r=e.yRightAxis,n=(t.info.stripLines=new __.d.StiStripLinesXF,s.info.stripLines=new __.d.StiStripLinesXF,r.info.stripLines=new __.d.StiStripLinesXF,new List),l=new List;for(let s=0;s<u.length;s++){let e=u[s],t=e.xValues,i=(null!=t&&n.addRange(t),e.yValues);null!=i&&l.addRange(i)}this.xValuesCount=n.distinct().length,this.yValuesCount=l.distinct().length,this.createStripLinesXAxis(t),this.createStripLinesYAxis(s,!1),this.createStripLinesYAxis(r,!1),this.checkStripLinesAndMaximumMinimumXAxis(t),this.checkStripLinesAndMaximumMinimumXAxis(s),this.checkStripLinesAndMaximumMinimumXAxis(r),i.info=t.info.clone(),e.xAxis.info.dpi=h.width/e.xAxis.info.range,e.xTopAxis.info.dpi=h.width/e.xTopAxis.info.range,e.yAxis.info.dpi=h.height/e.yAxis.info.range,e.yRightAxis.info.dpi=h.height/e.yRightAxis.info.range,this.calculateStepX(e.xAxis,h.left,h.right),this.calculateStepX(e.xTopAxis,h.left,h.right),this.calculateStepY(e.yAxis,h.top,h.bottom),this.calculateStepY(e.yRightAxis,h.top,h.bottom);let o={ref:e.xAxis.info.labelsCollection},a=(this.calculatePositions(e.xAxis,o,0<e.xAxis.labels.step?e.xAxis.labels.step:1,!1),e.xAxis.info.labelsCollection=o.ref,o={ref:e.xTopAxis.info.labelsCollection},this.calculatePositions(e.xTopAxis,o,0<e.xTopAxis.labels.step?e.xTopAxis.labels.step:1,!1),e.xTopAxis.info.labelsCollection=o.ref,o={ref:e.yAxis.info.labelsCollection},this.calculatePositions(e.yAxis,o,1<e.yAxis.labels.step?e.yAxis.labels.step:1,!1),e.yAxis.info.labelsCollection=o.ref,o={ref:e.yRightAxis.info.labelsCollection},this.calculatePositions(e.yRightAxis,o,0<e.yRightAxis.labels.step?e.yRightAxis.labels.step:1,!1),e.yRightAxis.info.labelsCollection=o.ref,{ref:e.xAxis.info.ticksCollection});this.calculatePositions(e.xAxis,a,0<e.xAxis.ticks.step?e.xAxis.ticks.step:1,!0),e.xAxis.info.ticksCollection=a.ref,a={ref:e.xTopAxis.info.ticksCollection},this.calculatePositions(e.xTopAxis,a,0<e.xTopAxis.ticks.step?e.xTopAxis.ticks.step:1,!0),e.xTopAxis.info.ticksCollection=a.ref,a={ref:e.yAxis.info.ticksCollection},this.calculatePositions(e.yAxis,a,0<e.yAxis.ticks.step?e.yAxis.ticks.step:1,!0),e.yAxis.info.ticksCollection=a.ref,a={ref:e.yRightAxis.info.ticksCollection},this.calculatePositions(e.yRightAxis,a,0<e.yRightAxis.ticks.step?e.yRightAxis.ticks.step:1,!0),e.yRightAxis.info.ticksCollection=a.ref}}createStripLinesXAxis(t){let s=this.getSeries(),r=new List;for(let i=0;i<s.length;i++){let e=s[i],t=e.xValues;null!=t&&r.addRange(t)}let i=r.distinct();this.xValuesCount=i.length;for(let e=0;e<i.length;e++)t.info.stripLines.add2(i[e],e);t.info.stripLines.add2(this.xValuesCount,this.xValuesCount)}createStripLinesYAxis(t,e){let s=this.getSeries(),r=new List;for(let i=0;i<s.length;i++){let e=s[i],t=e.yValues;null!=t&&r.addRange(t)}let i=r.distinct();i.reverse(),this.yValuesCount=i.length;for(let e=0;e<i.length;e++)t.info.stripLines.add2(i[e],e);t.info.stripLines.add2(this.yValuesCount,this.yValuesCount)}calculatePositions(s,e,t,i){let r=[],n=this.area,l=!1,o=(this.area.is(__.d.IStiAxisArea)&&s.is(__.d.IStiYAxis)?l=n.reverseVert:this.area.is(__.d.IStiAxisArea)&&s.is(__.d.IStiXAxis)&&(l=n.reverseHor),0),a=s.info.stripPositions.length-1;for(let i=0;i<a;i++){if(0==o){let e=new __.d.StiStripPositionXF,t=l?a-i-1:i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t]+s.info.step/2,l?r[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):r.push(e)}++o==t&&(o=0)}e.ref=r}get localizedName(){return StiLocalization.get("Chart","Heatmap")}get position(){return __.d.StiChartAreaPosition.Heatmap}constructor(e){super(e),this.xValuesCount=0,this.yValuesCount=0}},__.d.StiPictorialAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiPictorialAreaGeom(this.area,t),s=this.getSeries();return e.pushTranslateTransform(t.x,t.y),0<s.length&&s[0].core.renderSeries(e,new RectangleD(0,0,t.width,t.height),i,s),e.popTransform(),i}get localizedName(){return StiLocalization.get("Chart","Pictorial")}get position(){return __.d.StiChartAreaPosition.Pictorial}constructor(e){super(e)}},__.d.StiPictorialStackedAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiPictorialAreaGeom(this.area,t),s=this.getSeries();return e.pushTranslateTransform(t.x,t.y),0<s.length&&s[0].core.renderSeries(e,new RectangleD(0,0,t.width,t.height),i,s),e.popTransform(),i}get localizedName(){return StiLocalization.get("Chart","PictorialStacked")}get position(){return __.d.StiChartAreaPosition.PictorialStacked}constructor(e){super(e)}},__.d.StiPie3dAreaCoreXF=class extends __.d.StiPieAreaCoreXF{render(e,t){this.prepareInfo(t);let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}get localizedName(){return StiLocalization.get("Chart","Pie")+"3D"}get position(){return __.d.StiChartAreaPosition.Pie3d}constructor(e){super(e)}},Stimulsoft.Base.Drawing.StiEmptyBrush);{class _B extends __.d.StiAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.yAxis&&t.yAxis.core.applyStyle(e),t.brush=new StiEmptyBrush)}render(e,t){let i=this.area,s=t.clone(),r=(s=_B.centerArea(s),this.prepareInfo(s),s=this.measureLabels(e,s).clone(),s=_B.centerArea(s).clone(),s=new RectangleD(t.x+(t.width-s.width)/2,t.y+(t.height-s.height)/2,s.width,s.height),this.prepareInfo(s),new __.d.StiRadarAreaGeom(this.area,s,this.valuesCount)),n=i.yAxis.yCore.render(e,s),l=(null!=n&&(r.createChildGeoms(),r.childGeoms.push(n)),0<this.area.chart.series.count&&this.renderArguments(e,r,this.area.chart.series.getByIndex(0)),this.getSeries());return this.renderSeries(e,s,r,l),r}static centerArea(e){return e.width>e.height?e.width=e.height:e.height=e.width,e}measureLabels(u,r){if(0==this.valuesCount)return r;let S=this.area;if(null!=S.xAxis&&S.xAxis.visible&&null!=S.yAxis.info.stripPositions){let n=S.yAxis.info.stripPositions[S.yAxis.info.stripPositions.length-1]+4*u.options.zoom,l=0,o=360/this.valuesCount,a=0,h=r.clone();for(let r of this.points){let e=l<this.arguments.length?this.arguments[l]:null,t=new PointD(this.centerPoint.x+n*r.x,this.centerPoint.y+n*r.y),i=S.xAxis.core.getLabelText(e),s=S.xAxis.xCore.getLabelRect(u,t,i,a).clone();s.isEmpty||(h=RectangleD.union(h,s)),a+=o,l++}let e=r.left-h.left,t=h.right-r.right,i=r.top-h.top,s=h.bottom-r.bottom;0<e&&(r.width-=e),0<t&&(r.width-=t),0<i&&(r.height-=i),0<s&&(r.height-=s)}return r}renderArguments(a,h,u){if(0==this.valuesCount)return;let S=this.area;if(null!=S.xAxis&&S.xAxis.visible&&null!=S.yAxis.info.stripPositions){let r=S.yAxis.info.stripPositions[S.yAxis.info.stripPositions.length-1]+4*a.options.zoom,n=0,l=360/this.valuesCount,o=0;for(let s of this.points){let e=n<this.arguments.length?this.arguments[n]:null,t=new PointD(this.centerPoint.x+r*s.x,this.centerPoint.y+r*s.y),i=(t.x-=h.clientRectangle.x,t.y-=h.clientRectangle.y,S.xAxis.xCore.renderLabel(a,u,t,e,o,n,this.valuesCount));null!=i&&(h.createChildGeoms(),h.childGeoms.push(i)),o+=l,n++}}}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){let t=this.area,s=(this.valuesCount=0,this.getSeries());if(0<s.length)for(let t=0;t<s.length;t++){let e=s[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}if(this.arguments=[],0<s.length){let i=s[0];for(let e of s)if(e.arguments.length==this.valuesCount){i=e;break}for(let t=0;t<this.valuesCount;t++)if(t<i.arguments.length){let e=null==i.arguments[t]?"":i.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);this.arguments.push(e)}}else this.arguments.push("1"),this.arguments.push("2"),this.arguments.push("3"),this.arguments.push("4"),this.arguments.push("5");this.centerPoint=new PointD(e.x+e.width/2,e.y+e.height/2);let i,r=(i=0<this.valuesCount?360/this.valuesCount:360/5,this.points=[],0);while(r<360){let e=(r-90)*Math.PI/180,t=new PointD(Math.cos(e),Math.sin(e));if(this.points.push(t),r+=i,this.points.length==this.valuesCount)break}let n=0,l=0;if(t.yAxis.range.auto){let i=!0;for(let e=0;e<s.length;e++){let t=s[e].values;if(null!=t)for(let e of t){if(null==e)continue;i?(n=e,l=e,i=!1):(n=Math.min(n,e),l=Math.max(l,e))}}0==s.length&&(l=1),0==(l=Math.abs(n)>l?Math.abs(n):l)&&0==n&&(l=1),n=0}else n=t.yAxis.range.minimum,l=t.yAxis.range.maximum;this.createStripLinesAxis(t.yAxis,n,l),null!=t.yAxis.info.stripLines&&0<t.yAxis.info.stripLines.count&&(t.yAxis.info.minimum=t.yAxis.info.stripLines.getByIndex(t.yAxis.info.stripLines.count-1).value,t.yAxis.info.maximum=t.yAxis.info.stripLines.getByIndex(0).value),t.yAxis.info.dpi=.5*e.height/t.yAxis.info.range,this.calculateStep(t.yAxis,0,e.height/2);let o={ref:t.yAxis.info.labelsCollection},a=(this.calculatePositions(t.yAxis,o,0<t.yAxis.labels.step?StiMath.trunc(t.yAxis.labels.step):1,!1),t.yAxis.info.labelsCollection=o.ref,{ref:t.yAxis.info.ticksCollection});this.calculatePositions(t.yAxis,a,0<t.yAxis.ticks.step?StiMath.trunc(t.yAxis.ticks.step):1,!0),t.yAxis.info.ticksCollection=a.ref}createStripLinesAxis(e,t,i){let s=this.area,r=s.yAxis.labels.step;0==r&&(r=__.d.StiStripLineCalculatorXF.getInterval(t,i,6)),s.yAxis.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,i,r,!1);for(let e of s.yAxis.info.stripLines.list)e.valueObject=StiString.format("{0}",e.valueObject)}calculateStep(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.yCore.calculateStripPositions(t,i)):e.info.step=1}calculatePositions(s,e,t,r){let n=[],l=0;if(null!=s.info.stripPositions){let e=s.info.stripPositions.length;for(let i=0;i<e;i++){if(0==l){let e=new __.d.StiStripPositionXF,t=i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],n.push(e)}++l!=t&&r||(l=0)}}e.ref=n}constructor(e){super(e),this.valuesCount=0,this.points=[],this.arguments=[],this.centerPoint=PointD.empty}}__.d.StiRadarAreaCoreXF=_B}__.d.StiRadarAreaAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarArea")}get position(){return __.d.StiChartAreaPosition.RadarArea}constructor(e){super(e)}},__.d.StiRadarLineAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarLine")}get position(){return __.d.StiChartAreaPosition.RadarLine}constructor(e){super(e)}},__.d.StiRadarPointAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarPoint")}get position(){return __.d.StiChartAreaPosition.RadarPoint}constructor(e){super(e)}},__.d.StiRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Range")}get position(){return __.d.StiChartAreaPosition.Range}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiRangeBarAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{createStripLinesXAxis(s){s.info.stripLines.clear(),s.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let i of e.arguments){let t=!0;for(let e of s.info.stripLines.list)e.valueObject.toString()==i.toString()&&(t=!1);t&&s.info.stripLines.add2(i,s.info.stripLines.count)}s.info.stripLines.add2("",s.info.stripLines.count),0<s.info.stripLines.count&&(s.area.xAxis.showEdgeValues||(s.info.stripLines.getByIndex(0).valueObject="",s.info.stripLines.getByIndex(s.info.stripLines.count-1).valueObject=""))}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.values)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesEnd)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}get localizedName(){return StiLocalization.get("Chart","RangeBar")}get position(){return __.d.StiChartAreaPosition.RangeBar}constructor(e){super(e)}},__.d.StiSplineRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SplineRange")}get position(){return __.d.StiChartAreaPosition.SplineRange}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiSteppedRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedRange")}get position(){return __.d.StiChartAreaPosition.SteppedRange}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiStackedAreaAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedArea")}get position(){return __.d.StiChartAreaPosition.StackedArea}constructor(e){super(e)}},__.d.StiStackedLineAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedLine")}get position(){return __.d.StiChartAreaPosition.StackedLine}constructor(e){super(e)}},__.d.StiStackedSplineAreaAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedSplineArea")}get position(){return __.d.StiChartAreaPosition.StackedSplineArea}constructor(e){super(e)}},__.d.StiStackedSplineAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedSpline")}get position(){return __.d.StiChartAreaPosition.StackedSpline}constructor(e){super(e)}},__.d.StiStockAreaCoreXF=class extends __.d.StiCandlestickAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Stock")}get position(){return __.d.StiChartAreaPosition.Stock}constructor(e){super(e)}},__.d.StiSunburstAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiSunburstAreaGeom(this.area,t),s=this.getSeries();return 0<s.length&&s[0].core.renderSeries(e,t,i,s),i}prepareInfo(e){}get localizedName(){return StiLocalization.get("Chart","Sunburst")}get position(){return __.d.StiChartAreaPosition.Sunburst}constructor(e){super(e)}};let StiValueHelper=Stimulsoft.Base.Helpers.StiValueHelper,StringTrimming=(__.d.StiTreemapAreaCoreXF=class extends __.d.StiAreaCoreXF{render(t,e){let i=new __.d.StiTreemapAreaGeom(this.area,e),s=this.getSeries(),r=[];for(let i of s){let t=[];for(let e of i.values)t.push(StiValueHelper.tryToNumber(e));r.push(t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum())}let n=new RectangleD(0,0,e.width,e.height),l=this.area.core.normalizeDataForArea(r,n.width*n.height),o=this.area.core.squarify(l,[],n,[]),a=!0;for(let e=0;e<s.length;e++)o.length-1>=e&&(s[e].core.renderSeries(t,o[e],i,s),a=!1);return a&&(i.createChildGeoms(),i.childGeoms.push(new __.d.StiTreemapEmptySeriesElementGeom(n))),i}renderSeries(t,i,e,s,r){for(let e=0;e<r.length;e++)i.length-1>=e&&r[e].core.renderSeries(t,i[e],s,r)}cutArea(i,s){let r;if(i.width>=i.height){let e=s/i.height,t=i.width-e;r=new RectangleD(i.x+e,i.y,t,i.height)}else{let e=s/i.width,t=i.height-e;r=new RectangleD(i.x,i.y+e,i.width,t)}return r}squarify(i,s,r,n){if(0==i.length)return n.push(...this.getCoordinates(r,s)),n;let e=Math.min(r.width,r.height),t=i[0];if(this.improvesRatio(s,t,e))s.push(t),this.squarify(i[Stimulsoft.System.StiObject.stimulsoft]().toList().skip(1),s,r,n);else{let e=this.cutArea(r,s[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()),t=(n.push(...this.getCoordinates(r,s)),[]);this.squarify(i,t,e,n)}return n}improvesRatio(e,t,i){if(0==e.length)return!0;let s=e.slice(),r=(s.push(t),this.calculateRatio(e,i)),n=this.calculateRatio(s,i);return n<=r}calculateRatio(e,t){let i=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(),s=Math.pow(t,2)*e[Stimulsoft.System.StiObject.stimulsoft]().toList().max()/Math.pow(i,2),r=Math.pow(i,2)/(Math.pow(t,2)*e[Stimulsoft.System.StiObject.stimulsoft]().toList().min());return Math.max(s,r)}normalizeDataForArea(t,e){let i=[],s=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum();if(0==s)return i;let r=e/s;for(let e=0;e<t.length;e++)i.push(t[e]*r);return i}getCoordinates(e,t){let i=[],s=e.x,r=e.y,n=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.height,l=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.width;if(e.height<=e.width)for(let e=0;e<t.length;e++)i.push(new RectangleD(s,r,n,t[e]/n)),r+=t[e]/n;else for(let e=0;e<t.length;e++)i.push(new RectangleD(s,r,t[e]/l,l)),s+=t[e]/l;return i}prepareInfo(e){}get localizedName(){return StiLocalization.get("Chart","Treemap")}get position(){return __.d.StiChartAreaPosition.Treemap}constructor(e){super(e)}},Stimulsoft.System.Drawing.StringTrimming),StringFormatFlags=Stimulsoft.System.Drawing.StringFormatFlags;{class AG{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAxisCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.axis.allowApplyStyle&&(this.axis.lineColor=e.core.axisLineColor,this.axis.labels.core.applyStyle(e),this.axis.title.core.applyStyle(e))}getStartFromZero(){if(1==this.axis.area.axisCore.valuesCount&&!this.axis.area.is(__.d.StiScatterArea))return!0;if(null!=this.axis&&null!=this.axis.range&&!this.axis.range.auto)return!0;return null==this.axis||this.axis.startFromZero}render(e,t){return null}renderView(e,t){return null}calculateStripPositions(r,n){if(n-=r,r=0,null==this.axis.info.stripLines||this.axis.info.stripLines.count<2)this.axis.info.stripPositions=[];else{let e=!1;if(0<this.axis.area.chart.series.count&&this.axis.area.chart.series.getByIndex(0).is(__.d.StiScatterSeries)&&(e=!0),this.axis.logarithmicScale&&e){let e=this.axis.info.stripLines.count,t=(this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=r,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=n,this.axis.info.stripLines.getByIndex(0).value),i=this.axis.info.stripLines.getByIndex(e-1).value,s=n/(StiMath.log10(i)-StiMath.log10(t));for(let t=1;t<this.axis.info.stripPositions.length-1;t++){let e=Math.abs(StiMath.log10(Math.abs(this.axis.info.stripLines.getByIndex(t).value))*s-StiMath.log10(Math.abs(this.axis.info.stripLines.getByIndex(t-1).value))*s);this.axis.info.stripPositions[t]=r+e,r=this.axis.info.stripPositions[t]}}else{this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=r,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=n;for(let e=1;e<this.axis.info.stripPositions.length-1;e++)this.axis.info.stripPositions[e]=r+e*this.axis.info.step}}}getTicksMaxLength(e){return this.axis.core.ticksMaxLength*e.options.zoom}getArrowHeight(e){return 4*this.axis.core.arrowHeight*e.options.zoom}getLabelsSpaceAxis(e){return 5*e.options.zoom}getLabelsTwoLinesDestination(e){return 2*this.axis.labels.font.sizeInPoints*e.options.zoom}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom);return t}getTextAlignment(){if(this.axis.is(__.d.IStiYAxis)){let e=this.axis;if(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines){if(e.core.isLeftSide)return StiHorAlignment.Right;if(e.core.isRightSide)return StiHorAlignment.Left}}return this.axis.labels.textAlignment}getStringFormatGeom(e,t){let i=e.getGenericStringFormat();if(i.trimming=StringTrimming.None,t||(i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),0<this.axis.labels.width){let e=this.getTextAlignment();e==StiHorAlignment.Left?i.alignment=StringAlignment.Near:e==StiHorAlignment.Right?i.alignment=StringAlignment.Far:e==StiHorAlignment.Center&&(i.alignment=StringAlignment.Center)}return i}getAxisTitleSize(e){if(StiString.isNullOrEmpty(this.axis.title.text))return SizeD.empty;let t=StiFontGeom.changeFontSize(this.axis.title.font,this.axis.title.font.size*e.options.zoom),i=e.measureString(this.axis.title.text,t);switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:return i;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:return new SizeD(i.height,i.width)}return SizeD.empty}getAngleTitle(){let e=0;switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:e=0;break;case __.d.StiDirection.RightToLeft:e=180;break;case __.d.StiDirection.BottomToTop:e=-90;break;case __.d.StiDirection.TopToBottom:e=90;break}return e}getCorrectionFontSize(e,t,i){switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:e.width<t.width&&(i=e.width/t.width*i);break;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:e.height<t.height&&(i=e.height/t.height*i);break}return i}checkUseMaxWidth(e,t,i){switch(i.ref=0,this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:if(e.width<t.width)return i.ref=e.width,!0;break;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:if(e.height<t.height)return i.ref=e.width,!0;break}return!1}get ticksMaxLength(){return this.axis.visible?Math.max(this.axis.ticks.visible?this.axis.ticks.length:0,this.axis.ticks.minorVisible?this.axis.ticks.minorLength:0):0}get arrowWidth(){return 3}get arrowHeight(){if(this.is(__.d.StiXAxisCoreXF))return this.axis.area.reverseHor?-5:5;if(this.is(__.d.StiYAxisCoreXF))return this.axis.area.reverseVert?-5:5;return 0}get info(){return this.axis.info}set info(e){this.axis.info=e}constructor(e){this.axis=e}}AG.defaultScrollBarSize=12,AG.defaultScrollBarSmallFactor=.01,AG.defaultScrollBarFirstRecallTime=.3,AG.defaultScrollBarOtherRecallTime=.05,__.d.StiAxisCoreXF=AG}__.d.StiAxisInfoXF=class{constructor(){this.dpi=0,this.step=0,this.stripPositions=null,this.ticksCollection=null,this.labelsCollection=null,this.minimum=0,this.maximum=0}implements(){let e=[ICloneable,__.d.IStiAxisInfoXF];return(this.implements=()=>e)()}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.stripLines=this.stripLines.clone(),e}get range(){return this.maximum-this.minimum}},__.d.StiAxisLabelInfoXF=class{constructor(){this.clientRectangle=RectangleD.empty,this.textPoint=PointD.empty}},__.d.StiAxisLabelsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisLabelsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor)}constructor(e){this.labels=e}},__.d.StiAxisTitleCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisTitleCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.title.allowApplyStyle&&(this.title.color=e.core.axisTitleColor)}constructor(e){this.title=e}};let StiRotationMode=Stimulsoft.Base.Drawing.StiRotationMode,StiDateFormatService=__.e.TextFormats.StiDateFormatService,StiTimeFormatService=__.e.TextFormats.StiTimeFormatService,StiNumberFormatService=__.e.TextFormats.StiNumberFormatService;__.d.StiXAxisCoreXF=class extends __.d.StiAxisCoreXF{getStartFromZero(){if(null!=this.axis.info.labelsCollection&&this.isArgumentDateTime1(this.axis.info.labelsCollection)&&(this.axis.area.is(__.d.StiScatterArea)||this.axis.area.is(__.d.StiGanttArea)))return!1;return super.getStartFromZero()}render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!1).clone(),s=(i.x=0,i.y=0,this.axis.interaction.showScrollBar&&this.axis.is(__.d.IStiXTopAxis)&&this.axis.area.reverseVert&&(i.y+=__.d.StiAxisCoreXF.defaultScrollBarSize*e.options.zoom),new __.d.StiXAxisGeom(this.axis,i,!1));return this.renderLabels(e,i,s),this.renderTitle(e,i,s),s}renderView(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!0).clone();return new __.d.StiXAxisViewGeom(this.axis,i,!1)}renderScrollBar(i,o,a){if(this.axis.interaction.showScrollBar){let r=o.clone(),n=(r.x=0,r.height=__.d.StiAxisCoreXF.defaultScrollBarSize*i.options.zoom,this.axis.is(__.d.IStiXTopAxis)&&!this.axis.area.reverseVert||this.axis.is(__.d.IStiXBottomAxis)&&this.axis.area.reverseVert?r.y=o.height-r.height:r.y=0,new __.d.StiHorzScrollBarGeom(this.axis,r));if(a.createChildGeoms(),a.childGeoms.push(n),r.x=0,r.y=0,r.inflate(-2,-2),this.axis.interaction.rangeScrollEnabled){let e=r.clone(),t=(e.width=r.height,new __.d.StiLeftButtonGeom(this.axis,e)),i=(n.createChildGeoms(),n.childGeoms.push(t),r.clone()),s=(i.width=r.height,i.x=r.right-i.width,new __.d.StiRightButtonGeom(this.axis,i));n.createChildGeoms(),n.childGeoms.push(s),r.inflate(-r.height-2,0)}let s=r.clone(),e=this.axis.area.xAxis,l=this.axis.area.core;if(!e.range.auto){let e=r.width/l.scrollRangeX,t=l.scrollValueX*e,i=l.scrollViewX<l.scrollRangeX?l.scrollViewX*e:l.scrollRangeX*e;s=new RectangleD(t+r.x,r.y,i,r.height)}let t=new __.d.StiHorzTrackBarGeom(this.axis,s,n);n.createChildGeoms(),n.childGeoms.push(t)}}renderCenter(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.yAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone();return i.x=0,i.y=0,new __.d.StiXAxisGeom(this.axis,i,!0)}renderCenterView(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.yAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=new __.d.StiXAxisViewGeom(this.axis,i,!0);return s}getLabelText(e,t){return this.getLabelText2(e.valueObject,e.value,t)}getLabelText2(i,e,s){var t;null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let r=null==(t=this.axis.area.chart.report)?void 0:t.getParsedCulture();try{if(null!=this.axis.labels.formatService&&!this.axis.labels.formatService.is(StiGeneralFormatService)){if(this.axis.area.is(__.d.StiClusteredBarArea)&&this.setTotalNumberCapacity(),i instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(i)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+i+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e)+this.axis.labels.textAfter}StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=CultureInfo.cultures[r]);let t="";if(null!=(t=null!=(t=null!=s?s.format:t)&&0!=t.trim().length?t:this.axis.labels.format)&&0!=t.trim().length){if("string"==typeof i){let e=Stimulsoft.System.StiNumber.tryParse(i);if(e.successfully)i=e.result;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,i,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+t+"}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.ceil(Math.abs(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}get isLabelsAngleByWidth(){return this.axis.labels.angle<30||150<this.axis.labels.angle}checkAutoAngleLabels(S,d){if(this.axis.labels.placement!=__.d.StiLabelsPlacement.AutoRotation)return!1;let m=[];if(null!=this.axis.info.labelsCollection){let r=this.getStringFormatGeom(S,this.axis.labels.wordWrap),n=this.getFontGeom(S),l=StiRotationMode.CenterCenter,o=-this.axis.labels.angle,a=PointD.empty,h=(l=this.isTopSide?StiRotationMode.CenterBottom:StiRotationMode.LeftCenter,0),t=0,u=this.axis.area.reverseVert?this.isBottomSide:this.isTopSide;for(let s of this.axis.info.labelsCollection){if(u&&this.axis.area.yRightAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==t){m.push(new __.d.StiAxisLabelInfoXF),t++;continue}if(u&&this.axis.area.yAxis.arrowStyle!=__.d.StiArrowStyle.None&&t==this.axis.info.stripLines.count-1){m.push(new __.d.StiAxisLabelInfoXF),t++;continue}let i=this.getLabelText(s.stripLine,null),e=s.position;if(a=this.isTopSide?new PointD(e,d.height-(this.getTicksMaxLength(S)+this.getLabelsSpaceAxis(S))):new PointD(e,this.getTicksMaxLength(S)+this.getLabelsSpaceAxis(S)),this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=S.measureRotatedString3(i,n,a,r,l,o,StiMath.trunc(this.axis.labels.width*S.options.zoom)),t=new __.d.StiAxisLabelInfoXF;t.angle=o,t.clientRectangle=e,t.rotationMode=l,t.textPoint=a,t.text=i,t.stripLine=s.stripLine,m.push(t),this.isLabelsAngleByWidth&&(h=Math.max(h,e.width))}else m.push(new __.d.StiAxisLabelInfoXF);t++}for(let i=1;i<m.length;i++){let e=m[i-1].clientRectangle,t=m[i].clientRectangle;if(e.intersectsWith(t))return!0}}return!1}measureStripLines(u,S){let d=[],m=null,c=-this.axis.labels.angle,g=this.axis.labels.width,p=this.axis.labels.wordWrap,e=this.checkAutoAngleLabels(u,S);if(e){c=-45,m=this.axis.is(__.d.IStiXTopAxis)?StiRotationMode.LeftBottom:StiRotationMode.RightTop,p=Stimulsoft.StiOptions.Engine.wordWrapAxisLabelsForPlacementAutoRotation;let e=this.axis.area.chart.core.fullRectangle.height;g=e/3.5}if(null!=this.axis.info.labelsCollection&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let a=0,h=0;for(let o of this.axis.info.labelsCollection){let e=this.axis.area.reverseVert?this.isBottomSide:this.isTopSide;if(e&&this.axis.area.yRightAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==h){d.push(new __.d.StiAxisLabelInfoXF),h++;continue}if(e&&this.axis.area.yAxis.arrowStyle!=__.d.StiArrowStyle.None&&h==this.axis.info.stripLines.count-1){d.push(new __.d.StiAxisLabelInfoXF),h++;continue}let n=this.getLabelText(o.stripLine,null),l=(!p&&0<g&&(n=__.d.StiTextContentHelper.getMeasureText(u,n,this.axis.labels.font,g)),o.position);if(this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.getStringFormatGeom(u,p),t=this.getFontGeom(u),i=(m=StiRotationMode.CenterCenter,PointD.empty),s=(m=this.isTopSide?(i=new PointD(l,S.height-(this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u))),0==c?StiRotationMode.CenterBottom:StiRotationMode.LeftCenter):(i=new PointD(l,this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u)),0==c?StiRotationMode.CenterTop:StiRotationMode.RightTop),this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&h)&&(this.isTopSide&&(i.y-=this.getLabelsTwoLinesDestination(u)),this.isBottomSide)&&(i.y+=this.getLabelsTwoLinesDestination(u)),u.measureRotatedString3(n,t,i,e,m,c,StiMath.trunc(g*u.options.zoom))),r=new __.d.StiAxisLabelInfoXF;r.angle=c,r.width=g,r.wordWrap=p,r.clientRectangle=s,r.rotationMode=m,r.textPoint=i,r.text=n,r.stripLine=o.stripLine,d.push(r),this.isLabelsAngleByWidth&&(a=Math.max(a,s.width))}else d.push(new __.d.StiAxisLabelInfoXF);h++}let r=1;if(this.axis.range.auto)if(e){let e=S.width/(this.axis.info.stripLines.count-1);r=Math.ceil(.66*a/e)}else{this.isLabelsAngleByWidth||(a=1.5*this.axis.labels.font.sizeInPoints*u.options.zoom);let e=S.width/this.axis.info.stripLines.count,t=a/e;1<t&&(r=StiMath.trunc(__.d.StiStripLineCalculatorXF.getInterval(0,this.axis.info.labelsCollection.length,6)),this.axis.logarithmicScale)&&(r=1)}else r=StiMath.trunc(Math.max(1,this.axis.step));let n=!1,l=0,o=0;if(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&1<d.length&&(o=d[0].textPoint.y,l=d[1].textPoint.y),1==r||0!=this.axis.labels.step)return d;{let i=0,s=[];for(let t=0;t<d.length;t++){let e=d[t];(0==i||t==d.length-1&&this.axis.showEdgeValues)&&(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&1<d.length&&(n=n?(e.textPoint.y=l,!1):(e.textPoint.y=o,!0)),s.push(e)),++i==r&&(i=0)}return s}}return d}getCenterAxisRect(e,t,i,s,r){if(0<=this.axis.area.yAxis.info.minimum)return RectangleD.empty;let n=-this.getTicksMaxLength(e);return new RectangleD(0,n,t.width,this.getTicksMaxLength(e))}getAxisRect(t,i,e,s,r,n){let l=RectangleD.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(t,i);if(0==o.length)l=this.isTopSide?new RectangleD(0,-this.getTicksMaxLength(t),i.width,this.getTicksMaxLength(t)):new RectangleD(0,i.height,i.width,this.getTicksMaxLength(t));else{for(let e of o){if(e.clientRectangle.isEmptyF)continue;l=l.isEmpty?e.clientRectangle:RectangleD.union(l,e.clientRectangle)}this.axis.interaction.showScrollBar&&n&&(l.height+=__.d.StiAxisCoreXF.defaultScrollBarSize*t.options.zoom),l.height+=this.getTicksMaxLength(t)+this.getLabelsSpaceAxis(t);let e=l.clone();this.isTopSide&&(l=new RectangleD(0,-l.height,i.width,l.height)),this.isBottomSide&&(l=new RectangleD(0,i.height,i.width,l.height)),s&&(l.x=e.x,l.width=e.width)}if(this.axis.arrowStyle!=__.d.StiArrowStyle.None&&e){let e=this.getArrowHeight(t);this.axis.area.reverseHor&&(e=-e),l=RectangleD.union(l,new RectangleD(i.width,l.y+l.height/2,e,1))}let a=this.getAxisTitleSize(t);return a.isEmpty||this.axis.title.position!=__.d.StiTitlePosition.Outside||(l.height+=a.height,0==l.width&&(l.width=a.width),this.isTopSide&&(l.y-=a.height)),l}renderLabels(u,t,s){if(null!=this.axis.info.stripLines&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(u,t),i=(s.createChildGeoms(),this.axis.area.xAxis);if(this.isArgumentDateTime2(e)&&null!=i&&i.dateTimeStep.step!=__.d.StiTimeDateStep.None){let e,t,r=i.info.labelsCollection,n=[],l="",o=!0,a=0;for(let s=0;s<r.length;s++){if(null==r[s].stripLine.valueObject)continue;if(e=r[s].stripLine.valueObject,t=s<r.length-2&&!i.area.is(__.d.StiScatterArea)?r[s+1].stripLine.valueObject:e,!e.ticks||!t.ticks)continue;switch(o&&(a=r[s].position,o=!1),this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMMdd")==t.toString("yyyyMMMMdd")&&s!=r.length-2||(l=e.toString("dd"));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMddHH")==t.toString("yyyyMMMMddHH")&&s!=r.length-2||(l=e.toString("HH"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddHHmm")==t.toString("yyyyMMMMddHHmm")&&s!=r.length-2||(l=e.toString("mm"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyyMMMM")==t.toString("yyyyMMMM")&&s!=r.length-2||(l=StiLocalization.get("A_WebViewer","Month"+e.toString("MMMM")));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddHHmmss")==t.toString("yyyyMMMMddHHmmss")&&s!=r.length-2||(l=e.toString("ss"));break;case __.d.StiTimeDateStep.Year:e.toString("yyyy")==t.toString("yyyy")&&s!=r.length-2||(l=e.toString("yyyy"));break}if(""!=l){l=``+this.axis.labels.textBefore+l+this.axis.labels.textAfter;let e=new PointD((r[s].position+a)/2,this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u)),t=0,i=new __.d.StiAxisLabelInfoXF;i.angle=t,i.clientRectangle=u.measureRotatedString3(l,this.getFontGeom(u),e,this.getStringFormatGeom(u,i.wordWrap),StiRotationMode.CenterCenter,t,StiMath.trunc(this.axis.labels.width*u.options.zoom)),i.rotationMode=StiRotationMode.CenterCenter,i.stripLine=r[s].stripLine,i.text=l,i.textPoint=e,n.push(i),o=!0,l=""}}o=!0;let h=[];for(let s=0;s<n.length-1;s++){switch(e=n[s].stripLine.valueObject,t=n[s+1].stripLine.valueObject,o&&(a=n[s].textPoint.x,o=!1),this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMM")==t.toString("yyyyMMMM")&&s!=n.length-2||(l=StiLocalization.get("A_WebViewer","Month"+e.toString("MMMM")));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMdd")==t.toString("yyyyMMMMdd")&&s!=n.length-2||(l=e.toString("dd"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddhh")==t.toString("yyyyMMMMddhh")&&s!=n.length-2||(l=e.toString("hh"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyy")==t.toString("yyyy")&&s!=n.length-2||(l=e.toString("yyyy"));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddhhmm")==t.toString("yyyyMMMMddhhmm")&&s!=n.length-2||(l=e.toString("mm"));break;case __.d.StiTimeDateStep.Year:if(e.toString("yyyy")!=t.toString("yyyy")||s==n.length-2)continue;break}if(""!=l){l=``+this.axis.labels.textBefore+l+this.axis.labels.textAfter;let e=new PointD((n[s+1].textPoint.x+a)/2,this.getTicksMaxLength(u)+2*this.getLabelsSpaceAxis(u)),t=0,i=new __.d.StiAxisLabelInfoXF;i.angle=t,i.clientRectangle=u.measureRotatedString3(l,this.getFontGeom(u),e,this.getStringFormatGeom(u,i.wordWrap),StiRotationMode.CenterCenter,t,StiMath.trunc(this.axis.labels.width*u.options.zoom)),i.rotationMode=StiRotationMode.CenterTop,i.stripLine=n[s].stripLine,i.text=l,i.textPoint=e,h.push(i),o=!0,l=""}}n.push(...h);for(let t of n)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.width,t.rotationMode,t.wordWrap);s.childGeoms.push(e)}}else for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.width,t.rotationMode,t.wordWrap);s.childGeoms.push(e)}}}renderTitle(e,t,i){if(StiString.isNullOrEmpty(this.axis.title.text))return;let s=this.getAxisTitleSize(e),r=RectangleD.empty;if(this.isTopSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,0,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD((t.width-s.width)/2,0,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,0,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.y+=t.height)}if(this.isBottomSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,t.height-s.height,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD((t.width-s.width)/2,t.height-s.height,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,t.height-s.height,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.y-=t.height)}let n=this.axis.title.font.size*e.options.zoom,l={ref:0},o=(this.axis.area.chart.isDashboard&&this.checkUseMaxWidth(t,r,l)&&(n=this.getCorrectionFontSize(t,r,n)),StiFontGeom.changeFontSize(this.axis.title.font,n)),a=this.getAngleTitle(),h=new __.d.StiAxisTitleGeom(this.axis,r,a,this.axis.title.alignment,o);i.createChildGeoms(),i.childGeoms.push(h)}isArgumentDateTime1(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}isArgumentDateTime2(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}get dock(){return null}get isTopSide(){return this.dock==__.d.StiXAxisDock.Top&&!this.axis.area.reverseVert||this.dock==__.d.StiXAxisDock.Bottom&&this.axis.area.reverseVert}get isBottomSide(){return this.dock==__.d.StiXAxisDock.Bottom&&!this.axis.area.reverseVert||this.dock==__.d.StiXAxisDock.Top&&this.axis.area.reverseVert}constructor(e){super(e)}},__.d.StiXBottomAxisCoreXF=class extends __.d.StiXAxisCoreXF{get dock(){return __.d.StiXAxisDock.Bottom}constructor(e){super(e)}},__.d.StiXTopAxisCoreXF=class extends __.d.StiXAxisCoreXF{get dock(){return __.d.StiXAxisDock.Top}constructor(e){super(e)}},__.d.StiYAxisCoreXF=class extends __.d.StiAxisCoreXF{render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!1).clone(),s=(i.x=0,i.y=0,this.axis.interaction.showScrollBar&&this.axis.is(__.d.IStiYLeftAxis)&&this.axis.area.reverseHor&&(i.x+=__.d.StiAxisCoreXF.defaultScrollBarSize*e.options.zoom),new __.d.StiYAxisGeom(this.axis,i.clone(),!1));return this.renderLabels(e,i.clone(),s),this.axis.range.auto||(this.axis.area.reverseVert?i.y=(this.axis.info.minimum-this.axis.range.minimum)*this.axis.info.dpi:i.y=(this.axis.info.maximum-this.axis.range.maximum)*this.axis.info.dpi,i.height=(this.axis.range.maximum-this.axis.range.minimum)*this.axis.info.dpi),this.renderTitle(e,i,s),s}renderView(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!0).clone();return new __.d.StiYAxisViewGeom(this.axis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiYAxis),i,!1)}renderScrollBar(e,t,i){}renderCenter(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.xAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=(i.x=0,i.y=0,new __.d.StiYAxisGeom(this.axis,i,!0));return s}renderCenterView(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.xAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=new __.d.StiYAxisViewGeom(this.axis,i,!0);return s}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.ceil(Math.abs(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}getLabelText(e,t){let i,s=e.valueObject;null==s&&(s="");try{if(null!=this.axis.labels.formatService){if(this.setTotalNumberCapacity(),s instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(s)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+s+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e.value)+this.axis.labels.textAfter}if(null!=this.axis.labels.format&&0!=this.axis.labels.format.trim().length){this.storedCulture=CultureInfo.currentCulture;let e=null==(i=this.axis.area.chart.report)?void 0:i.getParsedCulture();StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=CultureInfo.cultures[e]);try{if("string"==typeof s&&(s=s[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),!__.d.StiChartOptions.oldChartPercentMode&&this.axis.labels.format.startsWith("P")){let e=0;return 1<this.axis.labels.format.length&&(e=parseInt(this.axis.labels.format[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1))),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,s,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+this.axis.labels.format+"}{2}",this.axis.labels.textBefore,s,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,s,this.axis.labels.textAfter)}catch(e){}return s.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}measureStripLines(g,p){let _=[];if(null!=this.axis.info.labelsCollection&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let m=this.getAxisTitleSize(g),c=0;for(let d of this.axis.info.labelsCollection){let e=this.axis.area.reverseHor?this.isLeftSide:this.isRightSide;if(e&&this.axis.area.xTopAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==c){_.push(new __.d.StiAxisLabelInfoXF),c++;continue}if(e&&this.axis.area.xAxis.arrowStyle!=__.d.StiArrowStyle.None&&c==this.axis.info.stripLines.count-1){_.push(new __.d.StiAxisLabelInfoXF),c++;continue}let t=this.getLabelText(d.stripLine,null),i=d.position,s=g.getGenericStringFormat(),r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*g.options.zoom),n=this.getTextAlignment(),l=StiRotationMode.LeftCenter,o=-this.axis.labels.angle,a=PointD.empty,h=(a=this.isLeftSide?n==StiHorAlignment.Left?(l=StiRotationMode.LeftCenter,new PointD(m.width,i)):n==StiHorAlignment.Center?(l=StiRotationMode.CenterCenter,new PointD((p.width-m.width)/2,i)):(l=StiRotationMode.RightCenter,new PointD(p.width-this.getTicksMaxLength(g)-this.getLabelsSpaceAxis(g),i)):n==StiHorAlignment.Left?(l=StiRotationMode.LeftCenter,new PointD(this.getTicksMaxLength(g)+this.getLabelsSpaceAxis(g),i)):n==StiHorAlignment.Center?(l=StiRotationMode.CenterCenter,new PointD((p.width-m.width)/2,i)):(l=StiRotationMode.RightCenter,new PointD(p.width-m.width,i)),this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&c)&&(this.isLeftSide&&(a.x-=this.getLabelsTwoLinesDestination(g)),this.isRightSide)&&(a.x+=this.getLabelsTwoLinesDestination(g)),g.measureRotatedString3(t,r,a,s,l,o,this.axis.labels.width*g.options.zoom)),u=this.axis.labels.width*g.options.zoom;if(0!=u){switch(l.toString()){case"3":case"4":case"5":h.x-=(u-h.width)/2;break;case"6":case"7":case"8":h.x-=u-h.width;break}h.width=u}let S=new __.d.StiAxisLabelInfoXF;S.angle=o,S.clientRectangle=h,S.rotationMode=l,S.textPoint=a,S.text=t,S.stripLine=d.stripLine,_.push(S),c++}}if(this.axis.range.auto){let e=this.axis.labels.font.getHeight()*g.options.zoom,t=p.height/this.axis.info.stripLines.count,i=Math.ceil(e/t),s=0,r=new List;_.reverse();for(let e=0;e<_.length;e++)0==s&&r.push(_[e]),++s==i&&(s=0);return r}return _}getCenterAxisRect(e,t,i,s,r){if(0<=this.axis.area.xAxis.info.minimum)return RectangleD.empty;let n=-this.getTicksMaxLength(e);return new RectangleD(n,0,this.getTicksMaxLength(e),t.height)}getAxisRect(t,i,e,s,r,n){let l=RectangleD.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(t,i);if(0==o.length)l=this.isLeftSide?new RectangleD(-this.getTicksMaxLength(t),0,this.getTicksMaxLength(t),i.height):new RectangleD(i.width,0,this.getTicksMaxLength(t),i.height);else{for(let e of o){if(e.clientRectangle.isEmpty)continue;l=l.isEmpty?e.clientRectangle.clone():RectangleD.union(l,e.clientRectangle)}this.axis.interaction.showScrollBar&&n&&(l.width+=__.d.StiAxisCoreXF.defaultScrollBarSize*t.options.zoom),l.width+=this.getTicksMaxLength(t)+this.getLabelsSpaceAxis(t);let e=l.clone();this.isLeftSide&&(l=new RectangleD(-l.width,0,l.width,i.height)),this.isRightSide&&(l=new RectangleD(i.width,0,l.width,i.height)),s&&(l.y=e.y,l.height=e.height)}if(this.axis.arrowStyle!=__.d.StiArrowStyle.None&&e){let e=this.getArrowHeight(t);this.axis.area.reverseVert&&(e=-e),l=RectangleD.union(l,new RectangleD(l.x,-e,1,e))}let a=this.getAxisTitleSize(t);return a.isEmpty||this.axis.title.position!=__.d.StiTitlePosition.Outside||(l.width+=a.width,this.isLeftSide&&(l.x-=a.width)),l}renderLabels(t,i,s){if(this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,this.axis.labels.width,t.rotationMode,this.axis.labels.wordWrap);s.childGeoms.push(e)}}}renderTitle(e,t,i){if(StiString.isNullOrEmpty(this.axis.title.text))return;let s=this.getAxisTitleSize(e),r=RectangleD.empty;if(this.isLeftSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,t.height-s.height+t.y,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD(0,(t.height-s.height)/2+t.y,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(0,t.y,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.x+=t.width)}if(this.isRightSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(t.width-s.width,t.height-s.height+t.y,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD(t.width-s.width,(t.height-s.height)/2+t.y,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,t.y,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.x-=t.width)}let n=this.axis.title.font.size*e.options.zoom,l={ref:0},o=(this.axis.area.chart.isDashboard&&this.checkUseMaxWidth(t,r,l)&&(n=this.getCorrectionFontSize(t,r,n)),StiFontGeom.changeFontSize(this.axis.title.font,n)),a=this.getAngleTitle(),h=new __.d.StiAxisTitleGeom(this.axis,r,a,this.axis.title.alignment,o);i.createChildGeoms(),i.childGeoms.push(h)}get dock(){return null}get isLeftSide(){return this.dock==__.d.StiYAxisDock.Left&&!this.axis.area.reverseHor||this.dock==__.d.StiYAxisDock.Right&&this.axis.area.reverseHor}get isRightSide(){return this.dock==__.d.StiYAxisDock.Right&&!this.axis.area.reverseHor||this.dock==__.d.StiYAxisDock.Left&&this.axis.area.reverseHor}constructor(e){super(e)}},__.d.StiYLeftAxisCoreXF=class extends __.d.StiYAxisCoreXF{get dock(){return __.d.StiYAxisDock.Left}constructor(e){super(e)}},__.d.StiYRightAxisCoreXF=class extends __.d.StiYAxisCoreXF{get dock(){return __.d.StiYAxisDock.Right}getStartFromZero(){if(1==this.axis.area.axisCore.valuesCount)return!0;if(null!=this.axis&&null!=this.axis.range&&!this.axis.range.auto)return!1;return null==this.axis||this.axis.startFromZero}constructor(e){super(e)}};{class aM{static getInterval1(e){let t=Math.abs(e),i=0;if(1<e){while(1<t)t/=10,i++;t=t<.15?.1:t<.3?.2:t<.75?.5:1;while(0<i)t*=10,i--}else if(0<e){while(10*t<1)t*=10,i++;t=t<.15?.1:t<.3?.2:t<.75?.5:1;while(0<i)t/=10,i--}return t}static getInterval(e,t,i){if(t==e)return 0;return aM.getInterval1((t-e)/i)}static getStripLines(e,t,i,s){let r=new __.d.StiStripLinesXF;if(e==t)return r;let n=e,l=t,o=i,a=0;a=StiMath.trunc(n/o)*(1e3*o)/1e3;while(n<a+o)a-=o;let h=this.getCountAfterComma(o),u=this.getCountAfterComma(a),S=Math.max(h,u);while(a<l)a+=o,0<S&&(a=StiMath.round2(a,S)),s?r.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(a),a)):r.insert(0,new __.d.StiStripLineXF(a.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),a));return r}static getStripLines2(e,t,i){let s=e.info.minimum,r=e.info.maximum,n=new __.d.StiStripLinesXF;if(s==r)return n;let l=s,o=r,a=t,h=0;h=e.startFromZero||e.range.auto?StiMath.trunc(l/a)*(1e3*a)/1e3:e.range.minimum;while(l<h+a)h-=a;let u=this.getCountAfterComma(a),S=this.getCountAfterComma(h),d=Math.max(u,S);while(h<o)h+=a,0<d&&(h=StiMath.round2(h,d)),i?n.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(h),h)):n.insert(0,new __.d.StiStripLineXF(h.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),h));return n}static getScatterXDateStripLines(e,t,i){let s=new __.d.StiStripLinesXF;if(e==t)return s;let r=e,n=t,l=i,o=0;o=r;while(r<=o+l)o-=l;while(o<n)o+=l,s.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(o),o));return s}static getCountAfterComma(e){let t=e.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",","."),i=t.indexOf("."),s=0;return s=0<i?t.substring(i).length-1:s}static getStripLinesLogScale(e,t){let i=new __.d.StiStripLinesXF;if(e==t)return i;let s=e,r=t,n=1,l=1;if(0<e&&e<1)while(s<n)n/=10;if(1<e){while(s>n)n*=10;n/=10}if(0<r&&r<1){while(l>r)l/=10;l*=10}if(1<r)while(r>l)l*=10;let o=n,a=o,h=1;while(o<=l)i.insert(0,new __.d.StiStripLineXF(o.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),o)),o+=a,10==++h&&(h=1,a=o);return i}}__.d.StiStripLineCalculatorXF=aM}__.d.StiStripLineXF=class{implements(){let e=[ICloneable,__.d.IStiStripLinesXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get value(){return this.valueObj}set value(e){this.valueObj=e}constructor(e,t){this.valueObject=null,this.valueObj=0,this.valueObject=e,this.valueObj=t}};{class eN extends CollectionBase{implements(){let e=[ICloneable,__.d.IStiStripLinesXF];return(this.implements=()=>e)()}clone(){let i=new eN;for(let t of this.list){let e=t.clone();i.add(e)}return i}add2(e,t){this.add(new __.d.StiStripLineXF(e,t))}}__.d.StiStripLinesXF=eN}__.d.StiStripPositionXF=class{implements(){let e=[__.d.IStiStripPositionXF];return(this.implements=()=>e)()}},__.d.StiChartTitleCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartTitleCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.chartTitle.allowApplyStyle&&(this.chartTitle.brush=new StiSolidBrush(e.core.axisTitleColor))}render(e,t,i){if(!t.visible)return null;let s=new StiFontGeom(t.font.fontFamily.name,t.font.size,t.font.style,t.font.unit),r=e.getDefaultStringFormat(),n=(r.alignment=t.alignment,e.measureRotatedString2(t.text,s,i,r,StiRotationMode.CenterCenter,t.dock,0));switch(t.dock){case __.d.StiChartTitleDock.Top:n.height+=t.spacing,n.height*=e.options.zoom,n.y=i.y,t.alignment!=StringAlignment.Center&&(n.width*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.x=i.x),t.alignment==StringAlignment.Center&&(n.x=i.x+i.width/2-n.width/2),t.alignment==StringAlignment.Far&&(n.x=i.x+i.width-n.width);break;case __.d.StiChartTitleDock.Right:n.width+=t.spacing,n.width*=e.options.zoom,n.x=i.x+i.width-n.width,t.alignment!=StringAlignment.Center&&(n.height*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.y=i.y),t.alignment==StringAlignment.Center&&(n.y=i.y+i.height/2-n.height/2),t.alignment==StringAlignment.Far&&(n.y=i.y+i.height-n.height);break;case __.d.StiChartTitleDock.Bottom:n.height+=t.spacing,n.height*=e.options.zoom,n.y=i.y+i.height-n.height,t.alignment!=StringAlignment.Center&&(n.width*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.x=i.x+i.width-n.width),t.alignment==StringAlignment.Center&&(n.x=i.x+i.width/2-n.width/2),t.alignment==StringAlignment.Far&&(n.x=i.x);break;case __.d.StiChartTitleDock.Left:n.width+=t.spacing,n.width*=e.options.zoom,n.x=i.x,t.alignment!=StringAlignment.Center&&(n.height*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.y=i.y+i.height-n.height),t.alignment==StringAlignment.Center&&(n.y=i.y+i.height/2-n.height/2),t.alignment==StringAlignment.Far&&(n.y=i.y);break}return new __.d.StiChartTitleGeom(t,n)}constructor(e){this.chartTitle=e}};let StiReportParser=__.a.Dashboard.StiReportParser,RectangleF=(__.d.StiConstantLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiConstantLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.constantLines.allowApplyStyle&&(this.constantLines.lineColor=e.core.seriesLabelsColor)}renderXConstantLines(e,l){let o=e.area;if(null==o)return;let a,t=DateTime.fromString(this.constantLines.axisValue,!1);if(null!=t)a=t.toOADate();else try{let e=StiReportParser.parse2(this.constantLines.axisValue,o.chart.report);a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}o.reverseVert&&(a=-a);let h=0;if(o.xAxis.logarithmicScale&&0<o.xAxis.info.stripLines.count){let e=o.xAxis.info.stripLines.count,t=o.reverseHor?e-1:0,i=o.reverseHor?0:e-1,s=o.xAxis.info.stripLines.getByIndex(t).value,r=o.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(l.width/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(a)*n-StiMath.log10(o.xAxis.info.stripLines.getByIndex(t).value)*n)}else{h=o.axisCore.getDividerX()+a*o.xAxis.info.dpi;for(let e of o.xAxis.info.stripLines.list)null!=e.valueObject&&e.valueObject.toString()==this.constantLines.axisValue&&(a=e.value,o.reverseHor&&(a=-a),h=a*o.xAxis.info.dpi+o.axisCore.getDividerX())}let i=new PointD(0,0),s=StiRotationMode.LeftTop;switch(this.constantLines.position){case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new PointD(h+this.constantLines.lineWidth/2,0);break;case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new PointD(h-this.constantLines.lineWidth/2,0);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new PointD(h+this.constantLines.lineWidth/2,l.height/2);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new PointD(h-this.constantLines.lineWidth/2,l.height/2);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new PointD(h+this.constantLines.lineWidth/2,l.height);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new PointD(h-this.constantLines.lineWidth/2,l.height);break}let r=new __.d.StiConstantLinesVerticalGeom(this.constantLines,new RectangleD(h,0,h,l.height),i,s);e.createChildGeoms(),e.childGeoms.push(r)}renderYConstantLines(e,l){let o=e.area;if(null==o)return;let a;try{let e=StiReportParser.parse2(this.constantLines.axisValue,o.chart.report);a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}o.reverseVert&&(a=-a);let h;if(o.yAxis.logarithmicScale){let e=o.yAxis.info.stripLines.count,t=0,i=e-1,s=o.yAxis.info.stripLines.getByIndex(t).value,r=o.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(l.height/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(o.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(a)*n)}else h=this.constantLines.orientation==__.d.StiConstantLines_StiOrientation.Horizontal?o.axisCore.getDividerY()-a*o.yAxis.info.dpi:o.axisCore.getDividerRightY()-a*o.yRightAxis.info.dpi;let t=new PointD(0,0),i=StiRotationMode.LeftTop;switch(this.constantLines.position){case __.d.StiConstantLines_StiTextPosition.LeftTop:i=StiRotationMode.LeftBottom,t=new PointD(-l.x,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.LeftBottom:i=StiRotationMode.LeftTop,t=new PointD(-l.x,h+this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:i=StiRotationMode.CenterBottom,t=new PointD(l.width/2,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:i=StiRotationMode.CenterTop,t=new PointD(l.width/2,h+this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.RightTop:i=StiRotationMode.RightBottom,t=new PointD(l.width,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:i=StiRotationMode.RightTop,t=new PointD(l.width,h+this.constantLines.lineWidth/2);break}let s=new __.d.StiConstantLinesYGeom(this.constantLines,new RectangleD(0,h,l.width,h),t,i);e.createChildGeoms(),e.childGeoms.push(s)}render(e,t,i){if(!this.constantLines.visible)return;this.constantLines.orientation==__.d.StiConstantLines_StiOrientation.Vertical&&this.renderXConstantLines(t,i),this.constantLines.orientation!=__.d.StiConstantLines_StiOrientation.Horizontal&&this.constantLines.orientation!=__.d.StiConstantLines_StiOrientation.HorizontalRight||this.renderYConstantLines(t,i)}constructor(e){this.constantLines=e}},__.d.StiGridLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiGridLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.gridLines.allowApplyStyle&&(this.gridLines[Stimulsoft.System.StiObject.stimulsoft]().is(__.d.IStiGridLinesVert)?(this.gridLines.color=e.core.gridLinesVertColor,this.gridLines.minorColor=e.core.gridLinesVertColor):(this.gridLines.color=e.core.gridLinesHorColor,this.gridLines.minorColor=e.core.gridLinesHorColor))}constructor(e){this.gridLines=e}},__.d.StiRadarGridLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiRadarGridLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.gridLines.allowApplyStyle&&(this.gridLines[Stimulsoft.System.StiObject.stimulsoft]().is(__.d.IStiRadarGridLinesVert)?this.gridLines.color=e.core.gridLinesVertColor:this.gridLines.color=e.core.gridLinesHorColor)}constructor(e){this.gridLines=e}},__.d.StiInterlacingCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiInterlacingCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.interlacing.allowApplyStyle&&(this.interlacing.is2(__.d.IStiInterlacingVert)?this.interlacing.interlacedBrush=e.core.interlacingVertBrush:this.interlacing.interlacedBrush=e.core.interlacingHorBrush)}constructor(e){this.interlacing=e}},Stimulsoft.System.Drawing.Rectangle),StiChartSeriesOrientation=__.d.StiChartSeriesOrientation,Point=(__.d.StiLegendCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiLegendCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.legend.allowApplyStyle&&(this.legend.brush=e.core.legendBrush.clone(),this.legend.labelsColor=e.core.legendLabelsColor,this.legend.titleColor=e.core.legendTitleColor,this.legend.borderColor=e.core.legendBorderColor,this.legend.showShadow=e.core.legendShowShadow,this.legend.font=e.core.legendFont)}isAcceptableSeries(e){return e!=__.d.StiHeatmapSeries}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}render(u,e){let S,t={ref:S},d=this.getLegendItems(t);if(S=t.ref,!this.legend.visible||0==d.length)return null;let h,m,i={ref:h},s={ref:m},r=this.getLegendSize(u,e,i,s),n=(h=i.ref,m=s.ref,new RectangleD(e.x,e.y,r.width,r.height)),c=n.clone(),l=(c.location=new PointD(0,0),null);if(!StiString.isNullOrEmpty(this.legend.title)){let e=this.getTitleSize(u),t=n.clone();t.location=new PointD(0,0),t.height=e.height,l=new __.d.StiLegendTitleGeom(this.legend,t),c.y+=t.height,c.height-=t.height}let g=new __.d.StiLegendGeom(this.legend,n,d),p=(null!=l&&(g.createChildGeoms(),g.childGeoms.push(l),g.legendTitleGeom=l),this.legend.horSpacing*u.options.zoom),_=this.legend.vertSpacing*u.options.zoom;if(0<n.width&&0<n.height)if(0==this.legend.columns){let e=p+c.x,i=_+c.y,n=e,l=i,s=this.getMatrixIndexItem(h,m,d.length),o=0,r=new List;for(let t=0;t<s.length;t++)for(let e=0;e<s[0].length;e++){let i=s[t][e];if(0<=i){let e=d[i],t=this.getItemRealSize(u,e);o=Math.max(o,t.height),r.add(t)}}let a=0;for(let t=0;t<s.length;t++){for(let e=0;e<s[0].length;e++){let r=s[t][e];if(0<=r){let e=d[r],t=this.getItemRealSize(u,e),i=(a=Math.max(a,t.width),new RectangleF(n,l,t.width,o)),s=new __.d.StiLegendItemGeom(this.legend,e,i,e.colorIndex,S,e.index);g.createChildGeoms(),g.childGeoms.push(s)}l+=o+_}l=i,n+=a+p,a=0}}else{let s=0,r=0,n=this.getItemSize1(u,d,0),l=(this.legend.direction==__.d.StiLegendDirection.LeftToRight||this.legend.direction==__.d.StiLegendDirection.TopToBottom?(s=p+c.x,r=_+c.y):this.legend.direction==__.d.StiLegendDirection.RightToLeft?(s=c.right-p-n.width,r=_+c.y):this.legend.direction==__.d.StiLegendDirection.BottomToTop&&(s=p+c.x,r=c.bottom-_-n.height),s),o=r,a=0,h=0;for(let i of d){n=this.getItemSize2(u,d,i);let e=new RectangleD(l,o,n.width,n.height),t=new __.d.StiLegendItemGeom(this.legend,i,e,i.colorIndex,S,i.index);g.createChildGeoms(),g.childGeoms.push(t),a++,this.legend.direction==__.d.StiLegendDirection.TopToBottom?(o+=_+e.height,a==this.legend.columns&&(o=r,l+=n.width+p,a=0)):this.legend.direction==__.d.StiLegendDirection.LeftToRight?(l+=p+e.width,a==this.legend.columns&&(l=s,o+=n.height+_,a=0)):this.legend.direction==__.d.StiLegendDirection.RightToLeft?(n=this.getItemSize1(u,d,h+1),l-=p+n.width,a==this.legend.columns&&(l=s,o+=n.height+_,a=0)):this.legend.direction==__.d.StiLegendDirection.BottomToTop&&(o-=_+e.height,a==this.legend.columns)&&(o=r,l+=n.width+p,a=0),h++}}return g}getMatrixIndexItem(s,r,n){let l=StiArray.create2(Number,s,r);if(this.legend.direction==__.d.StiLegendDirection.TopToBottom){let i=0;for(let t=0;t<r;t++)for(let e=0;e<s;e++)l[e][t]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.BottomToTop){let i=0;for(let t=r-1;0<=t;t--)for(let e=0;e<s;e++)l[e][t]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.LeftToRight){let i=0;for(let t=0;t<s;t++)for(let e=0;e<r;e++)l[t][e]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.RightToLeft){let i=0;for(let t=s-1;0<=t;t--)for(let e=0;e<r;e++)l[t][e]=i<n?i:-1,i++}return l}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getLegendItemColumn(t,i){let s=0,r=0;for(let e of t){if(e==i)break;++s>=this.legend.columns&&(s=0,r++)}if(this.legend.direction==__.d.StiLegendDirection.TopToBottom||this.legend.direction==__.d.StiLegendDirection.BottomToTop)return r;return s}getTitleSize(e){if(StiString.isNullOrEmpty(this.legend.title))return new SizeD(0,0);let t=StiFontGeom.changeFontSize(this.legend.titleFont,this.legend.titleFont.size*e.options.zoom),i=e.getDefaultStringFormat(),s=(i.formatFlags=0,e.measureString(this.legend.title,t));return s.width++,s}getItemSize1(t,i,s){if(0<=s&&s<i.length){let e=i[s];return this.getItemSize2(t,i,e)}return new SizeD(0,0)}getItemSize2(i,e,t){let s=0,r=0,n=this.getLegendItemColumn(e,t),l=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom);for(let t of e)if(this.getLegendItemColumn(e,t)==n){let e=t.measureString(i,l);s=Math.max(e.width,s+2),r=Math.max(e.height,r)}return this.legend.markerVisible&&(s=Math.max(this.legend.markerSize.width*i.options.zoom,s)+this.legend.markerSize.width*i.options.zoom,r=Math.max(this.legend.markerSize.height*i.options.zoom,r)),new SizeD(s,r)}getItemRealSize(e,t){let i=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),s=t.measureString(e,i),r=s.width,n=s.height;return this.legend.markerVisible&&(r+=this.legend.markerSize.width*e.options.zoom,n=Math.max(this.legend.markerSize.height*e.options.zoom,n)),new SizeD(r,n)}getItemsSize(i,s){let r=this.legend.horSpacing*i.options.zoom,n=0,l=0,t=this.legend.columns;this.legend.direction!=__.d.StiLegendDirection.TopToBottom&&this.legend.direction!=__.d.StiLegendDirection.BottomToTop||(t=StiMath.trunc((s.length-1)/this.legend.columns)+1);for(let e=0;e<t;e++)for(let t of s)if(this.getLegendItemColumn(s,t)==e){let e=this.getItemSize2(i,s,t);n+=e.width+r,l=Math.max(e.height,l);break}return new SizeD(n,l)}getItemsAutoSize(n,l,o,e,t){let a=this.legend.direction==__.d.StiLegendDirection.TopToBottom||this.legend.direction==__.d.StiLegendDirection.BottomToTop,h=this.legend.horSpacing*n.options.zoom,u=this.legend.vertSpacing*n.options.zoom,S=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*n.options.zoom),d=0,m=0,c=new List,g=new List,p=0,_=null;for(let r=0;r<l.length;r++){let e=l[r],t=e.measureString(n,S),i=t.width+h,s=t.height+u;if(this.legend.markerVisible&&(i+=this.legend.markerSize.width*n.options.zoom,s=Math.max(this.legend.markerSize.height*n.options.zoom+u,s)),p=Math.max(s,p),a){if(c.length-1<d&&null==_||c.length-1<d&&null!=_&&d<=_)c.push(i);else if(c[d]<i){c[d]=i,c.removeRange(d+1,c.length-(d+1)),r=-1,d=0,m=0;continue}d++,null!=_&&_<=d&&(d=0,m++),c.sum()+h>o.width&&1<c.length&&(d=0,m++,0<r&&r--,0<c.length)&&(c.removeAt(c.length-1),_=c.length)}else g.length-1<m&&g.push(s),m++,c.length-1<d?c.push(i):c[d]=Math.max(c[d],i),g.sum()+u>o.height&&1<g.length&&(d++,(m=0)<r&&r--,0<g.length)&&g.removeAt(g.length-1)}return e.ref=c.length,t.ref=a?Math.ceil(l.length/c.length):g.length,new SizeD(c.sum()+h,t.ref*p+u)}getSeriesSize(i,t,s,r){let n=this.legend.horSpacing*i.options.zoom,l=this.legend.vertSpacing*i.options.zoom,e={ref:0},o=this.getLegendItems(e),a=e.ref,h=0,u=0;if(0==this.legend.columns){let e=this.getItemsAutoSize(i,o,t,s,r);h=e.width,u=e.height}else{r.ref=0,s.ref=this.legend.columns;let t=this.getItemsSize(i,o);switch(this.legend.direction){case __.d.StiLegendDirection.TopToBottom:case __.d.StiLegendDirection.BottomToTop:{h=t.width+n;let e=this.legend.columns;e>a&&(e=a),u=(t.height+l)*e+l;break}case __.d.StiLegendDirection.LeftToRight:case __.d.StiLegendDirection.RightToLeft:{let e=Math.ceil(a/this.legend.columns);e*this.legend.columns<a&&e++,h=t.width+n,u=(t.height+l)*e+l;break}}}return new SizeD(h,u)}getLegendSize(e,t,i,s){let r=this.getTitleSize(e),n={ref:i},l={ref:s},o=this.getSeriesSize(e,t,n,l),a=(i.ref=n.ref,s.ref=l.ref,new SizeD(Math.max(r.width,o.width),r.height+o.height)),h=0,u=0;return u=null!=this.legend.chart?(h=this.legend.chart.convertToHInches(this.legend.size.width*e.options.zoom),this.legend.chart.convertToHInches(this.legend.size.height*e.options.zoom)):(h=this.legend.size.width*e.options.zoom,this.legend.size.height*e.options.zoom),0!=h&&(a.width=h),0!=u&&(a.height=u),a.width=Math.round(a.width),a.height=Math.round(a.height),a}getLegendItems(e){let r=0,o=this.legend.chart.area.core.getSeries()[Stimulsoft.System.StiObject.stimulsoft]().toList(),a=this.legend.chart.area.as(__.d.IStiAxisArea),h=[];if(this.legend.chart.area.colorEach||o.any(e=>e.is(__.d.IStiFunnelSeries))||o.any(e=>e.is(__.d.IStiPictorialSeries))||o.any(e=>e.is(__.d.IStiDoughnutSeries))){let i=0;for(let e of o)i=Math.max(e.values.length,i);let l=0;for(let n of o)if(this.legend.chart.area.core.isAcceptableSeries(n[Stimulsoft.System.StiObject.stimulsoft]().getType()))for(let t=0;t<i;t++){if(n.showInLegend&&null!=n.values){let e=null!=a&&(a.reverseHor||a.axisCore.seriesOrientation==StiChartSeriesOrientation.Horizontal);if(t>=n.values.length)continue;let s=e?n.values.length-t-1:t,r=n.values[s];if(null!=r){let e=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeries),t=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeries),i=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiDoughnutSeries);(null!=e&&!e.showZeros||null!=i&&!i.showZeros||null!=t&&!t.showZeros)&&0==r||h.push(new __.d.StiLegendItemCoreXF(this.legend.chart.seriesLabels.core.getLabelText(n,r,this.getArgumentText(n,s),n.core.getTag(s),n.coreTitle,!0),n,s,l))}}r++,l++}}else if(this.legend.chart.area.is2(__.d.IStiSunburstArea)){if(1<=o.length){let i=o[0],e=i.arguments[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy(e=>e).select(e=>e.key).toList(),s=0;for(let t of e){if(null!=t){let e=t.toString();StiString.isNullOrEmpty(e)||h.push(new __.d.StiLegendItemCoreXF(e,i,s,s))}s++,r++}}}else if(this.legend.chart.area.is2(__.d.IStiBoxAndWhiskerArea)){if(1<=o.length){let t=o[0],i=0;for(let e of o)h.push(new __.d.StiLegendItemCoreXF(e.coreTitle,t,i,i)),i++,r++}}else if(this.legend.chart.area.is2(__.d.IStiWaterfallArea)){if(1<=o.length){let e=o[0];h.push(new __.d.StiLegendItemCoreXF(StiLocalization.get("PropertyMain","Positive"),e,0,0)),h.push(new __.d.StiLegendItemCoreXF(StiLocalization.get("PropertyMain","Negative"),e,0,1)),h.push(new __.d.StiLegendItemCoreXF(e.total.text,e,0,2)),r=3}}else for(let e of o)!this.legend.chart.area.core.isAcceptableSeries(e[Stimulsoft.System.StiObject.stimulsoft]().getType())||!e.showInLegend||this.legend.hideSeriesWithEmptyTitle&&StiString.isNullOrEmpty(e.coreTitle)&&!this.legend.chart.isDesigning||(h.push(new __.d.StiLegendItemCoreXF(e.coreTitle,e,-1,0)),r++);return e.ref=r,h}constructor(e){this.legend=e}},Stimulsoft.System.Drawing.Point),Rectangle=Stimulsoft.System.Drawing.Rectangle,StiPathGeom=(__.d.StiHeatmapLegendCoreXF=class extends __.d.StiLegendCoreXF{render(i,e){let l=this.getItemCores();if(!this.legend.visible||0==l.length)return null;let t=this.getLegendSize(i,e),s=new Rectangle(e.x,e.y,t.width,t.height),o=s,r=(o.location=new Point(0,0),null);if(!StiString.isNullOrEmpty(this.legend.title)){let e=this.getTitleSize(i),t=s.clone();t.location=new Point(0,0),t.height=e.height,r=new __.d.StiLegendTitleGeom(this.legend,t),o.y+=t.height,o.height-=t.height}let a=new __.d.StiHeatmapLegendGeom(this.legend,s),n=(null!=r&&(a.createChildGeoms(),a.childGeoms.push(r),a.legendTitleGeom=r),this.legend.chart.series.getByIndex(0).core),h=this.getSpacingVertical(i),u=(o=new Rectangle(o.x,o.y+h/2,o.width,o.height-h)).height/(l.length-1);for(let n=0;n<l.length;n++){let e=0==n?l[n]:null,t=n<l.length-1?l[n+1]:null,i=n<l.length?u*n:0,s=new Rectangle(o.x,o.y+i,o.width,u),r=new __.d.StiHeatmapLegendItemGeom(this.legend,s,e,t);a.createChildGeoms(),a.childGeoms.push(r)}let S=n.getHeatmapColors(),d=new __.d.StiHeatmapLegendMarkerGeom(this.legend,S.slice().reverse(),o);return a.createChildGeoms(),a.childGeoms.push(d),a}getSpacingVertical(e){let t=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),i=e.getDefaultStringFormat();return i.formatFlags=StringFormatFlags.NoWrap,e.measureString2("0",t,0,i).height}getLegendSize(e,t){let i=this.getTitleSize(e),s=this.getBodyValueTextSize(e,t),r=this.getMarkerSize(e,t),n=new SizeD(Math.max(i.width,s.width+r.width),s.height),l=0,o=0;return o=null!=this.legend.chart?(l=this.legend.chart.convertToHInches(this.legend.size.width*e.options.zoom),this.legend.chart.convertToHInches(this.legend.size.height*e.options.zoom)):(l=this.legend.size.width*e.options.zoom,this.legend.size.height*e.options.zoom),0!=l&&(n.width=l),0!=o&&(n.height=o),n.width=Math.round(n.width),n.height=Math.round(n.height),n}getMarkerSize(e,t){let i=this.legend.markerSize.width*e.options.zoom;return new SizeD(i,t.height)}getBodyValueTextSize(i,e){let s=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom),r=0,n=this.getItemCores();for(let t of n){let e=t.measureString(i,s);r=Math.max(r,e.width)}return new SizeD(r,e.height)}getItemCores(){let n=new List,l=this.legend.chart.area.core.getSeries()[0],e=l.core,t=e.getAllValues();if(0==t.length)return n;let i=t.min(),s=t.max(),o=e.getHeatmapColors(),r=new List,a=(s-i)/(o.length+1);for(let e=0;e<=o.length;e++)0==e?r.add(i):e==o.length?r.add(s):r.add(r[e-1]+a);let h=this.roundValues(r);for(let r=0;r<h.length;r++){let e=this.legend.chart.seriesLabels.core,t=e.getFormattedValue(l,h[r]),i=r<o.length?o[r]:Color.empty,s=new __.d.StiHeatmapLegendItemCoreXF(t,l,i);n.add(s)}return n.reverse(),n}roundValues(e){let i=new List;for(let t of e){let e=this.naiveRound(t,2);while(i.contains(e))e+=.01;i.add(e)}return i}naiveRound(e,t){let i=Math.pow(10,t);return Math.round(e*i)/i}isAcceptableSeries(e){return e==__.d.StiHeatmapSeries}constructor(e){super(e)}},__.d.StiHeatmapLegendItemCoreXF=class{getText(e,t){let i=this.series.chart.legend.columnWidth*e.options.zoom;if(0==i||this.series.chart.legend.wordWrap)return this.text;return __.d.StiTextContentHelper.getMeasureText2(e,this.text,t,i)}measureString(e,t){let i=this.getText(e,t),s=this.series.chart.legend.columnWidth*e.options.zoom,r=e.getDefaultStringFormat(),n=(this.series.chart.legend.wordWrap||(r.formatFlags=StringFormatFlags.NoWrap),e.measureString2(i,t,s,r));return n.width<s&&(n.width=s),n}constructor(e,t,i){this.text=e,this.series=t,this.color=i}},__.d.StiLegendItemCoreXF=class{getText(e,t){let i=this.series.chart.legend.columnWidth*e.options.zoom;if(0==i)return this.text;return __.d.StiTextContentHelper.getMeasureText2(e,this.text,t,i)}measureString(e,t){let i=this.getText(e,t),s=this.series.chart.legend.columnWidth*e.options.zoom,r=e.getDefaultStringFormat(),n=(r.formatFlags=StringFormatFlags.NoWrap,e.measureString2(i,t,s,r));return n.width<s&&(n.width=s),n}constructor(e,t,i,s){this.index=-1,this.colorIndex=0,this.text=e,this.series=t,this.index=i,this.colorIndex=s}},Stimulsoft.Base.Context.StiPathGeom),StiPenGeom=Stimulsoft.Base.Context.StiPenGeom,StiLinesSegmentGeom=Stimulsoft.Base.Context.StiLinesSegmentGeom,StiScaleAnimation=Stimulsoft.Base.Context.Animation.StiScaleAnimation,StiArcSegmentGeom=Stimulsoft.Base.Context.StiArcSegmentGeom,StiLineSegmentGeom=Stimulsoft.Base.Context.StiLineSegmentGeom,SizeF=Stimulsoft.System.Drawing.Size;{class wT{implements(){let e=[ICloneable,__.d.IStiMarkerCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}drawMarkers(i,s,r){if(0==s.length)return;if(null!=this.marker&&this.marker.visible){i.pushSmoothingModeToAntiAlias();let t=i.options.zoom;for(let e of s)this.marker.core.draw(i,this.marker,e,t,r,!1,!1,!1,"",null,null);i.popSmoothingMode()}}static getMarkerRect(e,t,i){let s=t*i/2;return new RectangleD(e.x-s,e.y-s,2*s,2*s)}draw(e,t,i,s,r,n,l,o,a,h,u){let S=new StiSolidBrush(Color.fromArgb3(55,Color.black)),d=wT.getMarkerRect(i,t.size,s).clone(),m=(r&&t.visible&&(d.x+=2*s,d.y+=2*s,this.drawPoint(e,d.x+d.width/2,d.y+d.height/2,s,S,null,t.type,t.icon,t.size,t.angle,!1,o,a,null,null),d.x-=2*s,d.y-=2*s),t.brush);if(o&&l&&!t.visible){let e=null==t.brush?Color.lightGray:StiBrush.toColor(t.brush);m=new StiSolidBrush(Color.fromArgb(0,e.r,e.g,e.b)),o=!1}let c=l?null:new StiPenGeom(t.borderColor);(t.visible||l)&&this.drawPoint(e,d.x+d.width/2,d.y+d.height/2,s,m,c,t.type,t.icon,t.size,t.angle,n,o,a,h,u)}drawLine(e,t,i,s,r,n,l,o,a,h,u,S){this.drawLines(e,[new PointD(t,i),new PointD(s,r)],n,l,o,a,h,u,S)}drawLines(S,d,m,c,g,p,_,f,C){if(S.pushSmoothingModeToAntiAlias(),d.length<2)return;let w=0;for(let u=0;u<d.length-1;u++){let e=d[u],t=d[u+1];if(null==e||null==t)continue;let i=e.x,s=e.y,r=t.x,n=t.y,l=r-i,o=n-s,a=Math.sqrt(l*l+o*o),h=_;while(w<a){let e=i+l*w/a,t=s+o*w/a;this.drawPoint(S,e,t,m,c,g,p,this.marker.icon,f,C,!1,!1,"",null,null),w+=h*m}w-=a}S.popSmoothingMode()}drawPoint(s,e,t,i,r,n,l,o,a,h,u,S,d,m,c){let g=a*i/2,p=e-g,_=e+g,f=t-g,C=t+g;if(null!=o){let e=new Rectangle(p,f,a*i,a*i);return void __.a.StiFontIconsHelper.drawDirectionIcons(s,r,e,new SizeF(e.height,e.height),o,d,c,!1)}switch(l){case __.d.StiMarkerType.Star5:this.drawPolygon(s,r,n,e,t,g,10,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star6:this.drawPolygon(s,r,n,e,t,g,12,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star7:this.drawPolygon(s,r,n,e,t,g,14,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star8:this.drawPolygon(s,r,n,e,t,g,16,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Hexagon:this.drawPolygon(s,r,n,e,t,g,6,30+h,!1,u,S,d,m,c);break;case __.d.StiMarkerType.Rectangle:this.drawPolygon(s,r,n,e,t,g,4,45+h,!1,u,S,d,m,c);break;case __.d.StiMarkerType.Circle:if(S){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);s.fillDrawAnimationEllipse(r,n,p,f,_-p,C-f,d,m,e,c)}else null!=r&&s.fillEllipse3(r,p,f,_-p,C-f,d,c),u&&s.fillEllipse3(__.d.StiMouseOverHelper.getMouseOverColor(),p,f,_-p,C-f,d,null),null!=n&&s.drawEllipse(n,p,f,_-p,C-f);break;case __.d.StiMarkerType.HalfCircle:{let t=new Rectangle(p,f,_-p,C-f),e=new Rectangle(0,0,_-p,C-f),i=new List;if(i.push(new StiArcSegmentGeom(new Rectangle(e.x,e.top+e.height/4,e.width,e.height),360,-180)),i.push(new StiLineSegmentGeom(new Point(e.x,e.bottom-e.height/4),new Point(e.right,e.bottom-e.height/4))),s.pushTranslateTransform(t.x+t.width/2,t.y+t.height/2),s.pushRotateTransform(h),s.pushTranslateTransform(-t.width/2,-t.height/2),S){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);s.fillDrawAnimationPath(r,n,i,t,m,e,c)}else null!=r&&s.fillPath2(r,i,e,null,d.toString()),u&&s.fillPath2(__.d.StiMouseOverHelper.getMouseOverColor(),i,t,null,d.toString()),null!=n&&s.drawPath(n,i,e);s.popTransform(),s.popTransform(),s.popTransform();break}case __.d.StiMarkerType.Triangle:this.drawPolygon(s,r,n,e,t,g,3,h,!1,u,S,d,m,c);break}}drawPolygon(t,i,s,r,n,l,o,e,a,h,u,S,d,m){let c=[],g=-90+(e=-e),p=StiArray.create(PointD,o+1,!0);if(a)for(let e=0;e<o;e+=2)p[e].x=r+l*Math.cos(g*Math.PI/180),p[e].y=n+l*Math.sin(g*Math.PI/180),g+=360/o,p[e+1].x=r+l/2*Math.cos(g*Math.PI/180),p[e+1].y=n+l/2*Math.sin(g*Math.PI/180),g+=360/o;else for(let e=0;e<o;e++)p[e].x=r+l*Math.cos(g*Math.PI/180),p[e].y=n+l*Math.sin(g*Math.PI/180),g+=360/o;if(p[o]=p[0],c.push(new StiLinesSegmentGeom(p)),u){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);t.fillDrawAnimationPath(i,s,c,StiPathGeom.getBoundsState,d,e,m)}else{let e=null!=S?S.toString():null;null!=i&&t.fillPath2(i,c,StiPathGeom.getBoundsState,null,e),h&&t.fillPath2(__.d.StiMouseOverHelper.getMouseOverColor(),c,StiPathGeom.getBoundsState,null,e),null!=s&&t.drawPath(s,c,null)}}constructor(e){this.marker=e}}__.d.StiMarkerCoreXF=wT}__.d.StiRadarAxisCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiRadarAxisCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){}constructor(e){this.axis=e}},__.d.StiRadarAxisLabelsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiRadarAxisLabelsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor,this.labels.brush=new StiEmptyBrush)}constructor(e){this.labels=e}},__.d.StiXRadarAxisCoreXF=class extends __.d.StiRadarAxisCoreXF{implements(){let e=[__.d.IStiXRadarAxisCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.axis.allowApplyStyle&&this.axis.labels.core.applyStyle(e)}renderLabel(e,t,i,s,r,n,l){let o=this.getLabelText(s),a=this.getLabelRect(e,i,o,0).clone(),h=(a.x=-a.width/2,a.y=-a.height/2,this.getLabelRect(e,i,o,r).clone()),u=this.axis.labels.borderColor,S=new StiSolidBrush(this.axis.labels.color);return new __.d.StiXRadarAxisLabelGeom(this.axis,o,S,u,r,a,h,i)}getLabelText(i){try{null==i&&(i="");let t=this.axis;if(null!=t.labels.format&&0!=t.labels.format.trim().length)try{if(!__.d.StiChartOptions.oldChartPercentMode&&t.labels.format.startsWith("P")){let e=0;return t.labels.format.length,StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",t.labels.textBefore,i,"%",t.labels.textAfter)}return StiString.format("{0}{1:"+t.labels.format+"}{2}",t.labels.textBefore,i,t.labels.textAfter)}catch(e){}return StiString.format("{0}{1}{2}",t.labels.textBefore,i,t.labels.textAfter)}catch(e){}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getLabelRect(e,t,i,s){let r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom),n=e.getGenericStringFormat();return n.trimming=StringTrimming.None,this.axis.labels.wordWrap||(n.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),e.measureRotatedString3(i,r,t,n,StiRotationMode.CenterBottom,s,StiMath.trunc(this.axis.labels.width*e.options.zoom))}get xAxis(){return this.axis}constructor(e){super(e)}},__.d.StiYRadarAxisCoreXF=class extends __.d.StiRadarAxisCoreXF{implements(){let e=[__.d.IStiYRadarAxisCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.axis.allowApplyStyle&&(this.yAxis.lineColor=e.core.axisLineColor,this.yAxis.labels.core.applyStyle(e))}render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t).clone(),s=new __.d.StiRadarAxisGeom(this.axis,i);return this.renderLabels(e,i,s),s}measureStripLines(d,m){let c=[];if(null!=this.yAxis.info.labelsCollection&&this.yAxis.labels.placement!=__.d.StiLabelsPlacement.None){let S=0;for(let u of this.yAxis.info.labelsCollection){let e=this.getLabelText(u.stripLine),t=u.position,i=d.getGenericStringFormat(),s=StiFontGeom.changeFontSize(this.yAxis.labels.font,this.yAxis.labels.font.size*d.options.zoom),r=this.getTextAlignment(),n,l=-this.yAxis.labels.angle,o=PointD.empty,a=(r==StiHorAlignment.Left?(n=StiRotationMode.LeftCenter,o=new PointD(0,t),l=0):(n=StiRotationMode.RightCenter,o=new PointD(m.width-this.getTicksMaxLength(d)-this.getLabelsSpaceAxis(d),t)),this.yAxis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&S)&&(o.x-=this.getLabelsTwoLinesDestination(d)),d.measureRotatedString3(e,s,o,i,n,l,StiMath.trunc(this.yAxis.labels.width*d.options.zoom))),h=new __.d.StiAxisLabelInfoXF;h.angle=l,h.clientRectangle=a.clone(),h.rotationMode=n,h.textPoint=o,h.text=e,h.stripLine=u.stripLine,c.push(h),S++}}return c}renderLabels(t,i,s){if(this.yAxis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiYRadarAxisLabelGeom(this.yAxis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.rotationMode);s.childGeoms.push(e)}}}calculateStripPositions(t,e){if(e-=t,t=0,null==this.yAxis.info.stripLines||this.yAxis.info.stripLines.count<2)this.yAxis.info.stripPositions=[];else{this.yAxis.info.stripPositions=StiArray.create(Number,this.yAxis.info.stripLines.count),this.yAxis.info.stripPositions[0]=t,this.yAxis.info.stripPositions[this.yAxis.info.stripPositions.length-1]=e;for(let e=1;e<this.yAxis.info.stripPositions.length-1;e++)this.yAxis.info.stripPositions[e]=t+e*this.yAxis.info.step}}getAxisRect(e,t){let i=new RectangleD(t.width/2-this.getTicksMaxLength(e),0,this.getTicksMaxLength(e),t.height/2);return i}getTicksMaxLength(e){return this.yAxis.yCore.ticksMaxLength*e.options.zoom}getLabelsSpaceAxis(e){return 5*e.options.zoom}getLabelsTwoLinesDestination(e){return 2*this.yAxis.labels.font.sizeInPoints*e.options.zoom}getTextAlignment(){if(this.yAxis.labels.placement==__.d.StiLabelsPlacement.TwoLines)return StiHorAlignment.Right;return this.yAxis.labels.textAlignment}setTotalNumberCapacity(){let i=this.yAxis.labels.formatService.as(StiNumberFormatService);if(null!=i){let e=this.yAxis.labels.calculatedStep;if(0==e)return;let t=Math.abs(Math.trunc(Math.log10(e)));i.totalNumberCapacity=t,null!=(i=this.yAxis.area.chart.seriesLabels.formatService.as(StiNumberFormatService))&&(i.totalNumberCapacity=t)}}getLabelText(e){let t,i=null!=(t=null==e?void 0:e.valueObject)?t:"";try{if(null!=this.yAxis.labels.formatService)return this.setTotalNumberCapacity(),``+this.yAxis.labels.textBefore+this.yAxis.labels.formatService.format(e.value)+this.yAxis.labels.textAfter;if(null!=this.yAxis.labels.format&&0!=this.yAxis.labels.format.trim().length)try{if(!__.d.StiChartOptions.oldChartPercentMode&&this.yAxis.labels.format.startsWith("P")){let e=0;return this.yAxis.labels.format.length,StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.yAxis.labels.textBefore,i,"%",this.yAxis.labels.textAfter)}return StiString.format("{0}{1:"+this.yAxis.labels.format+"}{2}",this.yAxis.labels.textBefore,i,this.yAxis.labels.textAfter)}catch(e){}return StiString.format("{0}{1}{2}",this.yAxis.labels.textBefore,i,this.yAxis.labels.textAfter)}catch(e){}return i.toString().replace(".",",")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getStringFormatGeom(e){let t=e.getGenericStringFormat();if(t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,0<this.yAxis.labels.width){let e=this.getTextAlignment();e==StiHorAlignment.Left?t.alignment=StringAlignment.Near:e==StiHorAlignment.Right?t.alignment=StringAlignment.Far:e==StiHorAlignment.Center&&(t.alignment=StringAlignment.Center)}return t}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.yAxis.labels.font,this.yAxis.labels.font.size*e.options.zoom);return t}get yAxis(){return this.axis}get info(){return this.yAxis.info}set info(e){this.yAxis.info=e}get ticksMaxLength(){return this.axis.visible?Math.max(this.yAxis.ticks.visible?this.yAxis.ticks.length:0,this.yAxis.ticks.minorVisible?this.yAxis.ticks.minorLength:0):0}constructor(e){super(e)}};let StiSeriesInteractionData=Stimulsoft.Base.Context.StiSeriesInteractionData;{class aX{implements(){let e=[ICloneable,__.d.IStiApplyStyleSeries,__.d.IStiSeriesCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e,t){this.series.allowApplyStyle&&(this.series.showShadow=e.core.seriesShowShadow,null!=this.series.seriesLabels)&&this.series.seriesLabels.core.applyStyle(e)}checkLabelsRect(e,t,i){return this.checkLabelsRect2(e,t.clientRectangle,i)}checkLabelsRect2(t,i,s){if(null!=t&&t.preventIntersection){s.x<0&&(s.x=0),s.y<0&&(s.y=14),s.right>i.width&&(s.x=i.width-s.width),i.height<s.bottom&&(s.y=i.height-s.height);let e=this.getDrawRectangle(s.clone(),t.angle);if(e.y<0)return s.y=e.height/2,s;e.y+e.height>i.height&&(s.y-=e.height/2)}return s}getDrawRectangle(e,t){let i=new PointD(e.left,e.top),s=new PointD(e.right,e.top),r=new PointD(e.right,e.bottom),n=new PointD(e.left,e.bottom),l=new PointD((e.left+e.right)/2,(e.top+e.bottom)/2),o=this.rotatePoint(i,l,t),a=this.rotatePoint(s,l,t),h=this.rotatePoint(r,l,t),u=this.rotatePoint(n,l,t),S=Math.min(Math.min(o.y,a.y),Math.min(h.y,u.y)),d=Math.max(Math.max(o.y,a.y),Math.max(h.y,u.y)),m=Math.min(Math.min(o.x,a.x),Math.min(h.x,u.x)),c=Math.max(Math.max(o.x,a.x),Math.max(h.x,u.x));return new RectangleD(m,S,c-m,d-S)}rotatePoint(e,t,i){let s=i*(Math.PI/180),r=Math.cos(s),n=Math.sin(s);return new PointD(StiMath.trunc(r*(e.x-t.x)-n*(e.y-t.y)+t.x),StiMath.trunc(n*(e.x-t.x)+r*(e.y-t.y)+t.y))}checkIntersectionLabels(o){let t=o.childGeoms,a=[];if(null!=t)for(let e of t)e.is(__.d.StiSeriesLabelsGeom)&&a.push(e);let e=a.length,i=!0,s=0;while(i&&s<29){s++;for(let l=0;l<e;l++)for(let n=0;n<e;n++){if(n==l)continue;let e=this.getDrawRectangle(a[l].clientRectangle.clone(),a[l].seriesLabels.angle),t=this.getDrawRectangle(a[n].clientRectangle.clone(),a[n].seriesLabels.angle),i=!1,s=!1,r=e.height-Math.abs(t.y-e.y)+2;e.intersectsWith(t)&&(s=(i=(e.y>t.y?(e.y+=r/2,t.y-=r/2):(e.y-=r/2,t.y+=r/2),!0),!0)),e.y<0&&(e.y=0,i=!0),t.y<2&&(t.y=0,s=!0),e.y+e.height>o.clientRectangle.height&&(e.y=o.clientRectangle.height-e.height-2,i=!0),t.y+r/2+t.height>o.clientRectangle.height&&(t.y=o.clientRectangle.height-t.height-2,s=!0),i&&(a[l].clientRectangle=this.getDrawRectangle(e.clone(),-a[l].seriesLabels.angle)),s&&(a[n].clientRectangle=this.getDrawRectangle(t.clone(),-a[n].seriesLabels.angle))}}}getLabelRectangle(e,t){let i=Math.pow(Math.pow(t.width,2)+Math.pow(t.height,2),.5),s=Math.atan(t.height/t.width)/Math.PI*180;return e+=s,new RectangleD(t.x,t.y,i*Math.cos(e*Math.PI/180),i*Math.sin(e*Math.PI/180))}renderSeries(e,t,i,s){}getSeriesBrush(s,r){if(null==this.series.chart||null==this.series.chart.area)return null;if((this.series.chart.area.colorEach||this.is(__.d.StiBoxAndWhiskerSeriesCoreXF)||this.is(__.d.StiDoughnutSeriesCoreXF)||this.is(__.d.StiSunburstSeriesCoreXF)||this.is(__.d.StiPictorialSeriesCoreXF)||this.is(__.d.StiPictorialStackedSeriesCoreXF)||this.is(__.d.StiWaterfallSeriesCoreXF))&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=e.getColorByIndex(s,r,this.seriesColors),i=e.getColumnBrush(t);return this.series.chart.area.is(__.d.IStiClusteredBarArea)&&(i.is(StiGradientBrush)&&(i.angle+=90),i.is(StiGlareBrush))&&(i.angle+=90),i}return null}getSeriesBorderColor(i,s){if(null==this.series.chart||null==this.series.chart.area)return null;if(this.series.chart.area.colorEach&&this.series.allowApplyStyle||this.is(__.d.StiBoxAndWhiskerSeriesCoreXF)||this.is(__.d.StiDoughnutSeriesCoreXF)||this.is(__.d.StiSunburstSeriesCoreXF)||this.is(__.d.StiPictorialStackedSeriesCoreXF)||this.is(__.d.StiHeatmapSeriesCoreXF)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=e.getColorByIndex(i,s,this.seriesColors);return e.getColumnBorder(t)}return null}getSeriesLabels(){if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart)return this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisSeriesLabels);if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries)return this.series.seriesLabels[
9
- Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisSeriesLabels);return null}getTag(e){return null!=this.series.tags&&e<this.series.tags.length&&null!=this.series.tags[e]?this.series.tags[e].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator):""}getInteraction(e,t,i){if(null!=t.core.interaction&&t.core.interaction.drillDownEnabled)return new StiSeriesInteractionData(e,t,i);return null}get localizedName(){return null}get interaction(){return this.series.interaction}set interaction(e){this.series.interaction=e}constructor(e){this.isDateTimeValues=!1,this.isDateTimeArguments=!1,this.series=e}}aX.falseObject={},aX.trueObject={},__.d.StiSeriesCoreXF=aX}let PointF=Stimulsoft.System.Drawing.Point,StiOpacityAnimation=Stimulsoft.Base.Context.Animation.StiOpacityAnimation,StiLabelAnimation=(__.d.StiBoxAndWhiskerSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderThickness=e.core.seriesBorderThickness)}renderSeries(w,b,y,x){let e=y.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBoxAndWhiskerArea),A=e.xAxis.info.dpi,L=e.yAxis.info.dpi,T=e.xAxis.startFromZero?0:-1,D=e.axisCore.getDividerY(),v=1;for(let e of x){let _=e,f=[],C=_.brush;if(_.allowApplyBrush&&(C=_.core.getSeriesBrush(v-1,x.length),C=_.processSeriesBrushes(v-1,C)),0<_.values.length){let i=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min(),s=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max(),e=this.getMedian(_.values),t=this.getFirstQuartile(_.values),r=this.getThirdQuartile(_.values),n=(v+T)*A,l=Math.abs(D-s*L),o=Math.abs(D-i*L),a=Math.abs(D-e*L),h=Math.abs(D-t*L),u=Math.abs(D-r*L),S=new Rectangle(n-A/4,o,A/2,l-o),d=StiBrush.toColor(StiBrush.dark(C,30)),m=(f.push([i,new PointF(n,o)]),f.push([s,new PointF(n,l)]),f.push([e,new PointF(n,a)]),f.push([t,new PointF(n,h)]),f.push([r,new PointF(n,u)]),[]);if(_.showInnerPoints)for(let e of _.values){let t=e;if(t!=i&&t!=s&&!m.includes(t)){let e=Math.abs(D-t*L);m.push(e),f.push([t,new PointF(n,e)])}}let c=null;if(_.showMeanMarkers){let e=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(),t=e/_.values.length;c=Math.abs(D-t*L),f.push([t,new PointF(n,c)])}let g=new __.d.StiBoxAndWhiskerSeriesElementGeom(y,_,n,o,l,h,u,a,m,c,S,C,d,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/x.length*v)),p=(y.createChildGeoms(),y.childGeoms.push(g),_.core.getSeriesLabels());if(null!=p&&p.visible)for(let i of f){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero),t=p.core.renderLabel(_,w,i[1],i[1],v,i[0],i[0],i[0].toString(),null,0,1,b,e);null!=t&&(y.createChildGeoms(),y.childGeoms.push(t))}}v++}}getFirstValues(e){let t=this.getMedianIndices(e),i=[],s=1==t.length?t[0]+1:t[1];return StiArray.copy2(e,0,i,0,s),i}getSecondValues(e){let t=this.getMedianIndices(e),i=[],s=1==t.length?t[0]+1:t[1];return StiArray.copy2(e,s-1,i,0,s),i}getThirdQuartile(e){e.sort((e,t)=>e-t);let t=this.getSecondValues(e);return this.getMedian(t)}getFirstQuartile(e){e.sort((e,t)=>e-t);let t=this.getFirstValues(e);return this.getMedian(t)}getMedian(t){t.sort((e,t)=>e-t);let i=this.getMedianIndices(t),s=0;for(let e of i)s+=t[e];return s/i.length}getMedianIndices(t){let i=t.length%2==0?[0,1]:[0];if(1==i.length){let e=Math.ceil(t.length/2)-1;i[0]=e}else{let e=t.length/2-1;i[0]=e,i[1]=e+1}return i}get localizedName(){return StiLocalization.get("Chart","BoxAndWhisker")}constructor(e){super(e)}},Stimulsoft.Base.Context.Animation.StiLabelAnimation),StiChart=(__.d.StiBaseLineSeriesCoreXF=class extends __.d.StiSeriesCoreXF{implements(){let e=super.implements().concat([__.d.IStiApplyStyleSeries]);return(this.implements=()=>e)()}applyStyle(t,i){super.applyStyle(t,i);let s=this.series;if(s.allowApplyStyle){if(s.lineColor=i,s.lighting=t.core.seriesLighting,null!=s.marker){let e=s.marker[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiMarker);null!=e&&e.extendedVisible!=__.d.StiExtendedStyleBool.FromStyle?s.marker.visible=e.extendedVisible==__.d.StiExtendedStyleBool.True:s.marker.visible=t.core.markerVisible,s.marker.brush=new StiSolidBrush(StiColorUtils.light(i,100)),s.marker.borderColor=StiColorUtils.dark(i,100)}null!=s.lineMarker&&(s.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(i,50)),s.lineMarker.borderColor=StiColorUtils.dark(i,150))}}clipLinePoints(e,i,s,t,r){let n=t.ref,l=r.ref;if(this.series.chart.area.xAxis.range.auto)return n=0,l=s.length,t.ref=n,r.ref=l,s;n=-1,l=-1;let o=i.view.clientRectangle.clone(),a=(o.x=0,o.y=0,0);for(let t of s){if(null!=t){let e=t;if(e.x+=i.clientRectangle.x,e.y+=i.clientRectangle.y,o.x<=e.x&&e.x<o.right&&-1==n&&(n=a),!(o.x<=e.x&&e.x<o.right)&&-1!=n){l=a;break}}a++}-1==l&&(l=s.length-1),n--,l++,n<0&&(n=0);let h=(l=l>=s.length?s.length-1:l)-n+1;if(h==s.length)return t.ref=n,r.ref=l,s;let u=StiArray.create(PointD,h,!0);return StiArray.copy(s,n,u,h),t.ref=n,r.ref=l,u}renderMarkers(n,l,e){let o=l.area,a=this.series;if(0==e.length)return;let h=!a.marker.visible&&0<a.toolTips.length;if(null!=a.marker){let r=0;for(let s of e){if(null!=s){let e=o.reverseHor?a.values[a.values.length-r-1]:a.values[r],t=(null==e&&a.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(this.series,r,e,s,a.marker,a.showShadow,n.options.zoom,h);if(null!=t){if(null!=a.core.interaction){let e=this.getInteraction(o,a,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}getInteractions(e,s,r){if(null!=this.series.core.interaction&&this.series.core.interaction.drillDownEnabled){let i=[];for(let t=0;t<r.length;t++){let e=this.getInteraction(s.area,this.series,t);e.point=r[t],i.push(e)}return i}return null}renderLines(e,t,i){}renderAreas(e,t,i){}renderSeries(m,d,c,g){let p,e=c.area;if(null==g||0==g.length||null==this.series.chart)return;let _=e,n=_.xAxis.core.getStartFromZero(),f=(d.width+=.001,0),i=[],C=[],w=[],b=[],y=[];for(let t=0;t<g.length;t++){let o=g[t],e=o.values.length,a=StiArray.create(PointD,e,!0),h=StiArray.create(PointD,e,!0),u=StiArray.create(String,e,!0),r=o.valuesStart;for(let s=0;s<e;s++){let e=n?s+1:s;if(e>=_.xAxis.info.stripPositions.length)break;let t=_.xAxis.info.stripPositions[e],i=(a[s]=this.getPointValue(s,o,o.values,_,t),h[s]=this.getPointValue(s,o,r,_,t),_.xAxis.info.stripLines.getByIndex(e).valueObject);u[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let S=this.getPointsZeroConnect(o,o.values,_),d=this.getPointsNullConnect(o,o.values,_);if(w.push(S),b.push(d),y.push(u),0<a.length){a=__.d.StiPointHelper.optimizePoints(a);let e,t,i={ref:e},s={ref:t},r=this.clipLinePoints(m,c,a,i,s),n=this.clipLinePoints(m,c,h,i,s),l=(e=i.ref,t=s,new __.d.StiSeriesPointsInfo);l.pointsFrom=n,l.points=r,l.pointsZeroConnect=S,l.pointsNullConnect=d,l.pointsIds=u,o.core.renderAreas(m,c,l),this.isTopmostLine(o)||o.core.renderLines(m,c,l)}i.push(a),C.push(h)}let x=0;for(let S of i){let e,t,i={ref:e},s={ref:t},r=this.clipLinePoints(m,c,S,i,s),n=this.clipLinePoints(m,c,C[x],i,s),l=(e=i.ref,t=s.ref,y[x]),o=this.clipLinePoints(m,c,w[x],i,s),a=this.clipLinePoints(m,c,b[x],i,s),h=g[x];if(this.isTopmostLine(g[x])){let e=new __.d.StiSeriesPointsInfo;e.pointsFrom=n,e.points=r,e.pointsZeroConnect=o,e.pointsNullConnect=a,e.pointsIds=l,h.core.renderLines(m,c,e)}h.as(__.d.StiSeries).trendLines.list.forEach(e=>{null!=e&&e.core.renderTrendLine(c,r,_.axisCore.getDividerY())});let u=h.core.getSeriesLabels();if(null!=u&&u.visible)for(let o=e;o<=t;o++)if(h.values.length>o){let r=_.reverseHor?h.values[h.values.length-o-1]:h.values[o],n=r=null==r&&h.showNulls?0:r,l=(_.reverseVert&&null!=r&&(n=-n),f=h.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),S[o]);if(null!=l){let t=0,i=(null!=h.valuesStart&&h.valuesStart.length>o&&(t=_.reverseHor?h.valuesStart[h.values.length-o-1]:h.valuesStart[o]),new PointD(l.x,f)),s=null;if(this.series.chart.isAnimationChangingValues&&u.valueType==__.d.StiSeriesLabelsValueType.Value)if(u.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(u.format)&&null!=(p=u.formatService)&&p.is(StiGeneralFormatService)){let e=C[x].length>o?C[x][o]:null;s=new StiLabelAnimation(t,r,e,l,__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero)}else s=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==u.step||o%u.step==0){let e=_.xAxis.startFromZero?o+1:o,t=u.core.renderLabel(h,m,this.correctPoint(l,d,h.labelsOffset*m.options.zoom),this.correctPoint(i,d,h.labelsOffset*m.options.zoom),o,n,r,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(e),h),h.core.getTag(o),0,1,d,s);null!=t&&(c.createChildGeoms(),c.childGeoms.push(t),t.clientRectangle=this.checkLabelsRect(u,c,t.clientRectangle))}}}x++}c.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(c)}getPointsZeroConnect(e,i,t){let s=[];if(__.d.StiShowEmptyCellsAsHelper.seriesIsEmtyCellsAs(e.as(__.d.StiSeries))&&e.is(IStiShowZerosSeriesAs)&&e.showZerosAs!=__.d.StiShowEmptyCellsAs.ConnectPointsWithLine)return s;let r=new List,n=new List;for(let t=0;t<i.length;t++){let e=i[t];0==e?(n.add(t),1==n.length&&r.add(n)):n=new List}return s=this.getPointConnect(e,i,t,r)}getPointsNullConnect(e,i,t){let s=[];if(__.d.StiShowEmptyCellsAsHelper.seriesIsEmtyCellsAs(e.as(__.d.StiSeries))&&e.is(IStiShowNullsSeriesAs)&&e.showNullsAs!=__.d.StiShowEmptyCellsAs.ConnectPointsWithLine)return s;let r=new List,n=new List;for(let t=0;t<i.length;t++){let e=i[t];null==e?(n.add(t),1==n.length&&r.add(n)):n=new List}return s=this.getPointConnect(e,i,t,r)}getPointConnect(o,a,h,e){let u=[];for(let l of e){let t=l[0]-1,i=l[l.length-1]+1,s=0,r=0;if(0<=t&&t<a.length){s=a[t];let e=this.getPointValue2(o,h,s,t);u.push(e)}let n=((r=0<=i&&i<a.length?a[i]:r)-s)/(l.length+1);for(let i=0;i<l.length;i++){let e=s+n*(i+1),t=this.getPointValue2(o,h,e,l[i]);u.push(t)}if(0<=i&&i<a.length){let e=this.getPointValue2(o,h,r,i);u.push(e)}u.push(null)}return u}getPointValue2(e,t,i,s){if((s=t.xAxis.core.getStartFromZero()?s+1:s)>=t.xAxis.info.stripPositions.length)return PointD.empty;let r=t.xAxis.info.stripPositions[s],n=0;return n=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-i*t.yAxis.info.dpi+t.axisCore.getDividerY():-i*t.yRightAxis.info.dpi+t.axisCore.getDividerRightY(),new PointD(r,n)}getPointValue(e,t,i,s,r){let n=0;return i.length>e&&(n=s.reverseHor?i[i.length-e-1]:i[e]),this.getPointValue1(n,t,s,r)}getPointValue1(e,t,i,s){let r=t.is(__.d.StiStackedAreaSeries)||t.is(__.d.StiStackedSplineAreaSeries)||t.is(__.d.StiSteppedAreaSeries);if(0==e&&!t.showZeros&&!r)return null;if(null==e&&!t.showNulls&&!r)return null;null==e&&t.showNulls&&(e=0),i.reverseVert&&null!=e&&(e=-e);let n=0;return n=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-e*i.yAxis.info.dpi+i.axisCore.getDividerY():-e*i.yRightAxis.info.dpi+i.axisCore.getDividerRightY(),new PointD(s,n)}isTopmostLine(e){if(e.is(__.d.IStiSplineAreaSeries))return e.topmostLine;if(e.is(__.d.IStiSteppedAreaSeries))return e.topmostLine;if(e.is(__.d.IStiAreaSeries))return e.topmostLine;return!0}correctPoint(e,t,i){if(e.y+i<0)return new PointD(e.x,0);if(e.y+i>t.height)return new PointD(e.x,t.height);return new PointD(e.x,e.y+i)}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s){if(this.series.is(__.d.StiBubbleSeries)){let e=this.series;return e.brush}return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20))}if(null==s)return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20));return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s){if(this.series.is(__.d.StiBubbleSeries)){let e=this.series;return e.borderColor}return i.lineColor}return s}constructor(e){super(e)}},__.d.StiScatterSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries);i.allowApplyStyle&&!e.core.markerVisible&&(i.marker.visible=!0)}renderLines(e,t,i){this.renderMarkers(e,t,i.points)}renderSeries(h,u,S,d){if(null==d||0==d.length||null==this.series.chart)return;let m=S.area,c=0,l=[],g=[];for(let i=0;i<d.length;i++){let s=d[i],e=Math.min(s.values.length,s.arguments.length),t=StiArray.create(PointD,e,!0),r=StiArray.create(String,e,!0),n=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let i=0;i<e;i++){let h=s.values[i];if(0==(h=null==h&&this.series.showNulls?0:h)&&!this.series.showZeros){t[i]=null,r[i]="_zero_";continue}if(null!=h){m.reverseVert&&null!=h&&!m.yAxis.logarithmicScale&&(h=-h);let l=0;if(m.yAxis.logarithmicScale){let e=m.yAxis.info.stripLines.count,t=0,i=e-1,s=m.yAxis.info.stripLines.getByIndex(t).value,r=m.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(u.height/(StiMath.log10(r)-StiMath.log10(s)));l=Math.abs(StiMath.log10(m.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(h)*n)}else l=s.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-h*m.yAxis.info.dpi+m.axisCore.getDividerY():-h*m.yRightAxis.info.dpi+m.axisCore.getDividerRightY();let o=null;if(s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n)instanceof DateTime){let e=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n);o=e.toOADate()[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}else try{if(null==s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n))o=null;else{let t=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n);if(null==t)o=null;else if("string"==typeof t){let e={ref:0};o=__.d.StiSeries.tryParseValue(t,s.chart.report.getParsedCulture(),e)?e.ref:null}else o=StiConvert.changeType(t,Number)}}catch(e){o=null}if(null==(o=null==o&&this.series.showNulls?0:o)||0==o&&!this.series.showZeros){t[i]=null,r[i]="_zero_";continue}let a=0;if(m.xAxis.logarithmicScale&&0<m.xAxis.info.stripLines.count){let e=m.xAxis.info.stripLines.count,t=m.reverseHor?e-1:0,i=m.reverseHor?0:e-1,s=m.xAxis.info.stripLines.getByIndex(t).value,r=m.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(u.width/(StiMath.log10(r)-StiMath.log10(s)));a=StiMath.log10(o)*n-StiMath.log10(m.xAxis.info.stripLines.getByIndex(t).value)*n}else a=(o-m.xAxis.info.minimum)*m.xAxis.info.dpi;m.reverseHor&&(a=u.width-a),Number.isFinite(a)&&Number.isFinite(l)?(t[i]=new PointD(a,l),r[i]=o[Stimulsoft.System.StiObject.stimulsoft]().toString()):(t[i]=null,r[i]="_zero_")}else t[i]=null,r[i]="_zero_"}s.showNullsAs==__.d.StiShowEmptyCellsAs.ConnectPointsWithLine&&(t=t.filter(e=>null!=e),r=r.filter(e=>null!=e)),l.push(t),g.push(r)}let i=0;for(let t of l){let l=d[i],o=l.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys(),e=new __.d.StiSeriesPointsInfo,a=(e.points=t,e.pointsIds=g[i],l.core.renderLines(h,S,e),l[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).trendLines.list.forEach(e=>{null!=e&&e.core.renderTrendLine(S,t,m.axisCore.getDividerY())}),l.core.getSeriesLabels());if(null!=a&&a.visible)for(let n=0;n<t.length;n++){let i=l.values[n],s=i,r=(m.reverseVert&&null!=i&&(s=-s),c=l.yAxis==__.d.StiSeriesYAxis.LeftYAxis?m.axisCore.getDividerY():m.axisCore.getDividerRightY(),t[n]);if(null!=r){let t=new PointD(r.x,c);if((u.contains(t.x,t.y)||t.y==u.bottom||u.contains(r.x,r.y))&&(0==a.step||n%a.step==0)){let e=a.core.renderLabel(l,h,this.correctPoint(r,u,l.labelsOffset*h.options.zoom),this.correctPoint(t,u,l.labelsOffset*h.options.zoom),n,s,i,l.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(n,o).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),l.core.getTag(n),0,1,u);null!=e&&(S.createChildGeoms(),S.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(a,S,e.clientRectangle.clone()))}}}i++}S.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(S)}get localizedName(){return StiLocalization.get("Chart","Scatter")}constructor(e){super(e)}},__.d.StiBubbleSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderColor=e.core.getColumnBorder(t),this.series.borderThickness=e.core.seriesBorderThickness)}renderLines(e,t,i){}renderBubbles(e,o,a,h,t){let i=0,u=0;for(let e of a.chart.series.list){let t=e;if(null==t)continue;for(let e of t.weights)i=0==u?e:Math.max(e,i),u++}let S=o.area,s=Math.min(S.xAxis.info.step,S.yAxis.info.step)*a.bubbleScale/100,d=s/i,m=__.d.StiChartHelper.globalBeginTimeElement;u=0;for(let l of t){let n=h[u];if(null!=n&&0<l){let e=l*d,t=new RectangleD(n.x-e/2,n.y-e/2,e,e),i=this.getSeriesBrush(u,h.length),s=a.core.getSeriesBorderColor(u,h.length),r=new __.d.StiBubbleSeriesElementGeom(o,l,u,i,s,a,t,new TimeSpan(m.ticks/S.core.valuesCount*u));if(null!=a.core.interaction){let e=this.getInteraction(S,a,u);r.interaction=e}o.createChildGeoms(),o.childGeoms.push(r)}u++}}renderSeries(h,u,S,d){if(null==d||0==d.length||null==this.series.chart)return;let m=S.area,c=0,g=[],p=[];for(let t=0;t<d.length;t++){let r=d[t],e=Math.min(r.values.length,r.arguments.length),n=[],l=[];for(let s=0;s<e;s++){let e=r.values[s],t=(null==e&&r.showNulls&&(e=0),m.reverseVert&&null!=e&&(e=-e),0),i=(t=r.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-e*m.yAxis.info.dpi+m.axisCore.getDividerY():-e*m.yRightAxis.info.dpi+m.axisCore.getDividerRightY(),null);if(r.arguments[s]instanceof DateTime){let e=r.arguments[s];i=e.toOADate()[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}else try{null!=r.arguments[s]&&r.arguments[s]!=DBNull.value&&(i=r.arguments[s][Stimulsoft.System.StiObject.stimulsoft]().toNumber())}catch(e){i=null}if(null==i&&r.showNulls&&(i=0),null!=e&&null!=i){let e=(i-m.xAxis.info.minimum)*m.xAxis.info.dpi;m.reverseHor&&(e=u.width-e),n.push(new PointD(e,t))}else n.push(null);l.push(s<r.weights.length?r.weights[s]:0)}g.push(n),p.push(l)}for(let s=0;s<g.length;s++){let e=p[s],l=g[s],o=d[s],t=(o.core.renderBubbles(h,S,o,l,e),o[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).trendLines),i=StiArray.create(PointD,l.length,!0);l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i);for(let e of t.list)e.core.renderTrendLine(S,i,m.axisCore.getDividerY());let a=o.core.getSeriesLabels();if(null!=a&&a.visible)for(let n=0;n<l.length;n++){let i=o.values[n],s=i,r=(m.reverseVert&&null!=s&&(s=-s),c=o.yAxis==__.d.StiSeriesYAxis.LeftYAxis?m.axisCore.getDividerY():m.axisCore.getDividerRightY(),l[n]);if(null!=r){let t=new PointD(r.x,c);if((u.contains(t.x,t.y)||t.y==u.bottom||u.contains(r.x,r.y))&&(0==a.step||n%a.step==0)){let e=a.core.renderLabel2(o,h,this.correctPoint(r,u,o.labelsOffset*h.options.zoom),this.correctPoint(t,u,o.labelsOffset*h.options.zoom),n,s,i,o.arguments[n].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),o.core.getTag(n),o.weights[n],n,l.length,u);null!=e&&(S.createChildGeoms(),S.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(a,S,e.clientRectangle))}}}}}get localizedName(){return StiLocalization.get("Chart","Bubble")}constructor(e){super(e)}},__.d.StiClusteredColumnSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderColor=e.core.getColumnBorder(t),this.series.borderThickness=e.core.seriesBorderThickness,this.series.cornerRadius=e.core.seriesCornerRadius)}renderSeries(m,c,g,t){let p,_=[],i=g.area;if(null==t||0==t.length||null==this.series.chart)return;let f=i,s=!0;if(i.is2(__.d.IStiClusteredColumnArea)){let e=i;s=e.sideBySide}let r=f.xAxis.core.getStartFromZero(),C=f.axisCore.getDividerY(),w=0,b=f.axisCore.valuesCount*t.length,y=[];for(let e=0;e<t.length;e++)y.push([]);let n=0;if(s)for(let e of t)n+=f.xAxis.info.step/t.length*e.width;for(let d=0;d<f.axisCore.valuesCount;d++){let u=this.measureLeftPosition(f,d,n,r),S=0;f.reverseHor&&(S=t.length-1);while(S<t.length&&!f.reverseHor||0<=S&&f.reverseHor){let o=t[S],a=s?f.xAxis.info.step/t.length*o.width:f.xAxis.info.step*o.width,e=2*m.options.zoom;if(a<e&&(a=e),!s){let e=r?d+1:d;u=f.xAxis.info.step*e-a/2}let h=o.valuesStart;if(d<o.values.length){let l=this.getSeriesCurrentValue(f,o,d),s=this.getColumnRect(m,o,l,u,a),t=this.getSeriesValueStart(f,o.valuesStart,d),e=this.getSeriesValueStart(f,h,d),r=this.getColumnRect(m,o,null!=e?e:0,u,a);for(let e of o.as(__.d.StiSeries).trendLines.list)if(!e.is(__.d.IStiTrendLineNone)){y[S].push(new PointD(u+a/2,s.y));break}let i=g.view.clientRectangle.clone(),n=(i.x=0,i.y=0,s.clone());if(n.x+=g.clientRectangle.x,n.y+=g.clientRectangle.y,n.right>i.x&&n.x<i.right||this.series.chart.area.xAxis.range.auto){let e=this.getSeriesBrush2(o,l,w,b,d),i=o.core.getSeriesBorderColor(w,b);if(null!=this.series.chart&&null!=this.series.chart.style&&0<s.height){let t=new __.d.StiClusteredColumnSeriesElementGeom(g,l,d,e,i,o,s,r);if(null!=o.core.interaction){let e=this.getInteraction(f,o,d);t.interaction=e}g.createChildGeoms(),g.childGeoms.push(t)}let n=o.core.getSeriesLabels();if(null!=n&&n.visible){let i=this.getPointEnd(o,l,u,a),s=0,r=(null!=l&&(s=f.reverseVert?-l:l),null);if(this.series.chart.isAnimationChangingValues)if(n.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(n.format)&&null!=(p=n.formatService)&&p.is(StiGeneralFormatService)){let e=this.getPointEnd(o,t,u,a);r=new StiLabelAnimation(t,l,new PointD(e.x,e.y),new PointD(i.x,i.y),__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero)}else r=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==n.step||d%n.step==0){let e=f.xAxis.startFromZero?d+1:d,t=n.core.renderLabel(o,m,this.correctPoint(i,c),this.correctPoint(new PointD(i.x,C),c),d,l,s,f.axisCore.getArgumentLabel(f.xAxis.info.stripLines.getByIndex(e),o),o.core.getTag(d),w,b,c,r);null!=t&&(_.push(t),t.clientRectangle=this.checkLabelsRect(n,g,t.clientRectangle))}}}}u+=a,w++,f.reverseHor?S--:S++}}for(let i=0;i<t.length;i++)t[i].trendLines.list.forEach(t=>{if(!t.is2(__.d.IStiTrendLineNone)){let e=y[i];null!=t&&t.core.renderTrendLine(g,e,f.axisCore.getDividerY())}});for(let e of _)g.createChildGeoms(),g.childGeoms.push(e);g.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(g)}getPointEnd(e,t,i,s){let r,n=e.chart.area,l=n.axisCore.getDividerY(),o=n.axisCore.getDividerRightY();return r=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?new PointD(i+s/2,-(t*n.yAxis.info.dpi)+l):new PointD(i+s/2,-(t*n.yRightAxis.info.dpi)+o)}getColumnRect(e,t,i,s,r){let n=t.chart.area,l=0,o=0,a=n.axisCore.getDividerY(),h=n.axisCore.getDividerRightY();return o=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?(n.reverseVert,-(l=i*n.yAxis.info.dpi)+a):-(l=i*n.yRightAxis.info.dpi)+h,!t.showZeros||0!=i&&null!=i||(l=Math.max(e.options.zoom,2),n.reverseVert)||(o-=l),i<0&&(o=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?a:h,l=-l),new RectangleD(s,o,r,l)}correctPoint(e,t){if(e.y<0)return new PointD(e.x,0);if(e.y>t.height)return new PointD(e.x,t.height);return e}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}measureLeftPosition(e,t,i,s){let r=s?e.xAxis.info.stripPositions[t+1]:e.xAxis.info.stripPositions[t],n=(r-=e.xAxis.info.step/2)+(e.xAxis.info.step-i)/2;return n}getSeriesCurrentValue(e,t,i){let s=e.reverseHor?t.values[t.values.length-i-1]:t.values[i];return s=e.reverseVert&&null!=s?-s:s}getSeriesValueStart(e,t,i){let s=null;return s=this.series.chart.isAnimationChangingValues&&(null!=t&&t.length>i&&(s=e.reverseHor?t[t.length-i-1]:t[i]),e.reverseVert)&&null!=s?-s:s}getSeriesBrush2(e,t,i,s,r){let n=e.core.getSeriesBrush(i,s);return e.allowApplyBrushNegative&&t<0&&(n=e.brushNegative),n=e.processSeriesBrushes(r,n)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}constructor(e){super(e)}},__.d.StiClusteredBarSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{implements(){let e=super.implements().concat([__.d.IStiApplyStyleSeries]);return(this.implements=()=>e)()}applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.brush.is(StiGradientBrush)&&(i.brush.angle+=90),i.brush.is(StiGlareBrush)&&(i.brush.angle+=90),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(p,_,n,s){let l,f,C=[],e=n.area;if(null==s||0==s.length||null==this.series.chart)return;let w=e,o=!0,t=e,b=(t&&(o=t.sideBySide),w.yAxis.core.getStartFromZero()),y=w.axisCore.getDividerX(),x=w.axisCore.getDividerTopX(),A=w.axisCore.valuesCount*s.length,L=w.reverseVert?A-1:0,T=w.axisCore.valuesCount,D=[];for(let e=0;e<s.length;e++)D.push([]);let r=s[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let g=0;g<T;g++){let e=b?w.yAxis.info.stripPositions[g+1]-w.yAxis.info.step/2:w.yAxis.info.stripPositions[g]-w.yAxis.info.step/2,t=0;if(o)for(let e of s)t+=w.yAxis.info.step/s.length*e.width;let m=e+(w.yAxis.info.step-t)/2,i=0,c=(w.reverseVert&&(i=s.length-1),__.d.StiChartHelper.globalBeginTimeElement);while(i<s.length&&!w.reverseVert||0<=i&&w.reverseVert){let S=s[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,r),d=o?w.yAxis.info.step/s.length*S.width:w.yAxis.info.step*S.width;if(g<S.values.length){let a=-(w.reverseVert?S.values[g]:S.values[S.values.length-g-1]);if(!o){let e=b?g+1:g;m=w.yAxis.info.step*e-d/2}let t=a*w.xAxis.info.dpi,s=this.getBarRect(p,S,a,m,d),r=Rectangle.empty,h=null;this.series.chart.isAnimationChangingValues&&((null==(l=S.valuesStart)?void 0:l.length)>g&&(h=-(w.reverseVert?S.valuesStart[g]:S.valuesStart[S.valuesStart.length-g-1])),r=w.reverseHor?a<0?Rectangle.fromLTRB(s.right,s.top,s.right,s.bottom):Rectangle.fromLTRB(s.left,s.top,s.left,s.bottom):0<=a?Rectangle.fromLTRB(s.right,s.top,s.right,s.bottom):Rectangle.fromLTRB(s.left,s.top,s.left,s.bottom));for(let e of S.as(__.d.StiSeries).trendLines.list)if(!e.is(__.d.IStiTrendLineNone)){D[i].push(new PointD(t,m+d/2));break}let u=n.view.clientRectangle.clone(),e=(u.x=0,u.y=0,s.clone());if(e.x+=n.clientRectangle.x,e.y+=n.clientRectangle.y,e.bottom>u.y&&e.y<u.bottom||this.series.chart.area.yAxis.range.auto){if(null!=this.series.chart&&null!=this.series.chart.style&&0<s.width){let e=S.core.getSeriesBrush(L,A),t=(S.allowApplyBrushNegative&&0<a&&(e=S.brushNegative),e=S.processSeriesBrushes(T-1-g,e),S.core.getSeriesBorderColor(L,A)),i=new __.d.StiClusteredBarSeriesElementGeom(n,h,w.reverseHor?-a:a,g,e,t,S,r,s);if(null!=S.core.interaction){let e=this.getInteraction(w,S,T-1-g);i.interaction=e}n.createChildGeoms(),n.childGeoms.push(i)}let o=S.core.getSeriesLabels();if(null!=o&&o.visible){let i=a,s=(null!=a&&(i=w.reverseHor?a:-a),S.yAxis==__.d.StiSeriesYAxis.RightYAxis?x:y),r=(S.yAxis==__.d.StiSeriesYAxis.RightYAxis?w.xTopAxis:w.xAxis).info.dpi,n=new PointD(i*r+s,m+d/2),l=null;if(this.series.chart.isAnimationChangingValues)if(o.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(o.format)&&null!=(f=o.formatService)&&f.is(StiGeneralFormatService)){let e=new PointD(-(h*r)+s,m+d/2),t=null,i=null;null!=h&&(t=w.reverseHor?h:-h),null!=a&&(i=w.reverseHor?a:-a),l=new StiLabelAnimation(t,i,new PointD(e.x,e.y),new PointD(n.x,n.y),c,TimeSpan.zero)}else l=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==o.step||g%o.step==0){let e=w.yAxis.startFromZero?g+1:g,t=o.core.renderLabel(S,p,this.correctPoint(n,_),this.correctPoint(new PointD(y,n.y),_),g,a,w.reverseHor?-i:i,w.axisCore.getArgumentLabel(w.yAxis.info.stripLines.getByIndex(e),S),S.core.getTag(T-1-g),L,A,_,l);null!=t&&(C.push(t),t.clientRectangle=this.checkLabelsRect2(o,u,t.clientRectangle))}}}}m+=d,L=w.reverseVert?L-1:L+1,w.reverseVert?i--:i++}}for(let i=0;i<s.length;i++)s[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,r).trendLines.list.forEach(t=>{if(!t.is2(__.d.IStiTrendLineNone)){let e=D[i];null!=t&&t.core.renderTrendLine(n,e,w.axisCore.getDividerY())}});for(let e of C)n.createChildGeoms(),n.childGeoms.push(e)}getBarRect(e,t,i,s,r){let n=t.chart.area,l=n.axisCore.getDividerX(),o=n.axisCore.getDividerTopX(),a=t.yAxis==__.d.StiSeriesYAxis.RightYAxis?o:l,h=(t.yAxis==__.d.StiSeriesYAxis.RightYAxis?n.xTopAxis:n.xAxis).info.dpi,u=i*h,S=-u+a;return!this.series.showZeros||0!=i&&null!=i||(u=Math.max(e.options.zoom,2)),i<0&&(S=a,u=-u),new Rectangle(S,s,u,r)}correctPoint(e,t){if(e.x<0)return new PointD(0,e.y);if(e.x>t.width)return new PointD(t.width,e.y);return e}get localizedName(){return StiLocalization.get("Chart","ClusteredBar")}constructor(e){super(e)}},__.d.StiLineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(t,i,s){if(null!=s.points&&1<s.points.length){let e=new __.d.StiLineSeriesGeom(i,s,this.series);i.createChildGeoms(),i.childGeoms.push(e),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers(t,i,s.points)}get localizedName(){return StiLocalization.get("Chart","Line")}constructor(e){super(e)}},__.d.StiAreaSeriesCoreXF=class extends __.d.StiLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","Area")}constructor(e){super(e)}},__.d.StiHistogramSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","Histogram")}constructor(e){super(e)}},__.d.StiParetoSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;this.series.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.lighting=e.core.seriesLighting,i.marker.visible=e.core.markerVisible,i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius,null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100)),null!=i.lineMarker)&&(i.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(t,50)),i.lineMarker.borderColor=StiColorUtils.dark(t,150)),i.allowApplyLineColor||(i.lineColor=StiColorUtils.light(t,50))}renderSeries(e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;super.renderSeries(e,t,i,s),this.renderLinePareto(e,t,i,s)}renderLinePareto(e,t,i,s){let r=i.area,d=r,m=d.xAxis.core.getStartFromZero(),n=(t.width+=.001,[]),l=[],c=[];for(let t=0;t<s.length;t++){let o=s[t],a=this.getParetoValues(o.values),e=o.values.length,h=StiArray.create(PointD,e,!0),u=StiArray.create(PointD,e,!0),S=StiArray.create(String,e,!0);for(let l=0;l<e;l++){let e=m?l+1:l;if(e>=d.xAxis.info.stripPositions.length)break;let t=d.xAxis.info.stripPositions[e],i=d.reverseHor?a[a.length-l-1]:a[l],s=(h[l]=this.getPointValue(i,o,d,t),this.getParetoValues(o.valuesStart)),r=0,n=(s.length>l&&(r=d.reverseHor?s[s.length-l-1]:s[l]),u[l]=this.getPointValue(r,o,d,t),d.xAxis.info.stripLines.getByIndex(e).valueObject);S[l]=null==n?"":n[Stimulsoft.System.StiObject.stimulsoft]().toString()}if(0<h.length){h=__.d.StiPointHelper.optimizePoints(h);let e=new __.d.StiSeriesPointsInfo;e.pointsFrom=u,e.points=h,e.pointsIds=S,this.renderLines(i,e,o)}n.push(h),this.series.chart.isAnimationChangingValues&&(l.push(u),c.push(S))}}renderLines(t,i,s){if(null!=i.points&&1<i.points.length){let e=new __.d.StiLineSeriesGeom(t,i,s);t.createChildGeoms(),t.childGeoms.push(e)}}getParetoValues(t){let i=new List,s=new List,r=0;for(let e of t)r+=e,i.push(r);for(let t of i){let e=t/r*100;s.push(e)}return s}getPointValue(e,t,i,s){let r=-(e=i.reverseVert&&null!=e?-e:e)*i.yRightAxis.info.dpi+i.axisCore.getDividerRightY();return new PointD(s,r)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}constructor(e){super(e)}},__.d.StiSplineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiSplineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),null!=this.interaction&&(s.interactions=this.getInteractions(e,t,i.points)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","Spline")}constructor(e){super(e)}},__.d.StiSplineAreaSeriesCoreXF=class extends __.d.StiSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiSplineAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","SplineArea")}constructor(e){super(e)}},__.d.StiSteppedLineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(t,i,s){let e=this.series;if(1<s.points.length||e.pointAtCenter&&0<s.points.length){let e=new __.d.StiSteppedLineSeriesGeom(i,s,this.series);null!=e&&(i.createChildGeoms(),i.childGeoms.push(e)),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers(t,i,s.points)}get localizedName(){return StiLocalization.get("Chart","SteppedLine")}constructor(e){super(e)}},__.d.StiSteppedAreaSeriesCoreXF=class extends __.d.StiSteppedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){let s=this.series;if(null==i.points||0==i.points.length||1==i.points.length&&!s.pointAtCenter)return;let r=new __.d.StiSteppedAreaSeriesGeom(t,i,this.series);null!=r&&(t.createChildGeoms(),t.childGeoms.push(r))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","SteppedArea")}constructor(e){super(e)}},__.e.StiChart),StiPieSegmentGeom=(__.d.StiWaterfallSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{renderSeries(e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;this.renderColumns(e,t,i,s)}getSumSeriesWidth(t,i){let s=0;for(let e of i)s+=t.xAxis.info.step/i.length*e.width;return s}getDividerYSeries(e,t){let i=e.axisCore.getDividerY(),s=[];for(let e=0;e<t.length;e++)s[e]=i;return s}renderColumns(c,g,p,t){let _=p.area,f=new List,C=_,w=this.getDividerYSeries(C,t),b=0,y=C.axisCore.valuesCount*t.length,i=this.getSumSeriesWidth(C,t);for(let m=0;m<C.axisCore.valuesCount;m++){let e=C.xAxis.core.getStartFromZero()?C.xAxis.info.stripPositions[m+1]:C.xAxis.info.stripPositions[m],S=(e-=C.xAxis.info.step/2)+(C.xAxis.info.step-i)/2,d=C.reverseHor?t.length-1:0;while(d<t.length&&!C.reverseHor||0<=d&&C.reverseHor){let h=t[d],u=C.xAxis.info.step/t.length*h.width;if(m<h.values.length){let o=C.reverseHor?h.values[h.values.length-m-1]:h.values[m],a=(null==o&&(u=0),C.reverseVert&&null!=o&&(o=-o),m==h.values.length-1),e=a&&h.total.visible?C.axisCore.getDividerY():w[d],t={ref:e},i={ref:w[d]},r=a&&h.total.visible?this.getColumnRect(c,h,o,S,u,t):this.getColumnRect(c,h,o,S,u,i);e=t.ref,w[d]=i.ref;let s,n=(s=o<0?Rectangle.fromLTRB(r.left,r.top,r.right,r.top):Rectangle.fromLTRB(r.left,r.bottom,r.right,r.bottom),p.as(__.d.StiAxisAreaGeom).view.clientRectangle.clone()),l=(n.x=0,n.y=0,r);if(l.x+=p.clientRectangle.x,l.y+=p.clientRectangle.y,n.x<l.right&&l.x<n.right||this.series.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea).xAxis.range.auto){let t,i;if(i=_.colorEach?(t=h.core.getSeriesBrush(b,y),h.allowApplyBrushNegative&&o<0&&(t=h.brushNegative),t=h.processSeriesBrushes(m,t),h.core.getSeriesBorderColor(b,y)):(t=!h.connectorLine.visible||a&&h.total.visible?h.core.getSeriesBrush(2,3):h.core.getSeriesBrush(0,3),o<0&&(t=h.allowApplyBrushNegative?h.brushNegative:h.core.getSeriesBrush(1,3)),t=h.processSeriesBrushes(m,t),t=StiBrush.light(t,10*d),h.core.getSeriesBorderColor(0,3)),null!=this.series.chart&&null!=this.series.chart.style&&0<r.height){let e=null;if(0<r.height&&(e=new __.d.StiClusteredColumnSeriesElementGeom(p,o,m,t,i,h,r,s)),h.connectorLine.visible&&!a){let e=new StiPenGeom(h.connectorLine.lineColor,h.connectorLine.lineWidth),t=(e.penStyle=h.connectorLine.lineStyle,0<o?r.top:r.bottom),i=r.right+C.xAxis.info.step-u,s=new __.d.StiWaterfallLineGeom(new PointF(r.right,t),new PointF(i,t),e,new Rectangle(r.right,t,i-r.right,t),h.chart[Stimulsoft.System.StiObject.stimulsoft]().as(StiChart).isAnimation);p.createChildGeoms(),p.childGeoms.push(s)}null!=e&&(p.createChildGeoms(),p.childGeoms.push(e))}let l=h.core.getSeriesLabels();if(null!=l&&l.visible&&null!=o){let i=a&&h.total.visible?C.axisCore.getDividerY():e,s=this.getPointEnd(h,o,S,u,i),r=C.reverseVert?-o:o,n=null;if(0==l.step||m%l.step==0){let e=C.xAxis.startFromZero?m+1:m,t=l.core[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAxisSeriesLabelsCoreXF).renderLabel(h,c,this.correctPoint(s,g),this.correctPoint(new PointF(s.x,i),g),m,o,r,C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(e),h),h.core.getTag(m),b,y,g,n);null!=t&&(f.push(t),t.clientRectangle=this.checkLabelsRect(l,p,t.clientRectangle))}}}}S+=u,b++,C.reverseHor?d--:d++}}for(let e of f)p.createChildGeoms(),p.childGeoms.push(e);p.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(p)}getPointEnd(e,t,i,s,r=null){let n,l=e.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea),o=l.axisCore.getDividerRightY();return n=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?new PointF(i+s/2,-(t*l.yAxis.info.dpi)+r):new PointF(i+s/2,-(t*l.yRightAxis.info.dpi)+o)}getColumnRect(e,t,i,s,r,n=null){let l=t.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea),o=0,a=0,h=l.axisCore.getDividerRightY();return a=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?(l.reverseVert,-(o=i*l.yAxis.info.dpi)+n.ref):-(o=i*l.yRightAxis.info.dpi)+h,!t.showZeros||0!=i&&null!=i||(o=Math.max(e.options.zoom,2),l.reverseVert)||(a-=o),i<0&&(a=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?n.ref:h,o=-o),n.ref=0<i?a:a+o,new Rectangle(s,a,r,o)}get localizedName(){return StiLocalization.get("Chart","Waterfall")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiPieSegmentGeom),StiCloseFigureSegmentGeom=(__.d.StiPieSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lighting=e.core.seriesLighting,i.borderThickness=e.core.seriesBorderThickness,i.allowApplyBrush&&(i.brush=e.core.getColumnBrush(t)),i.allowApplyBorderColor)&&(i.borderColor=e.core.getColumnBorder(t))}correctBrush(e){return e.is(StiGradientBrush)&&((e=e.clone()).angle=-45),e.is(StiGlareBrush)&&((e=e.clone()).angle=-45),e}renderPieElement(e,t,i,s,r,n,l,o,a,h,u,S,d){let m,c,g=RectangleD.empty,p=(r=this.correctBrush(r),{ref:m}),_={ref:c},f={ref:g},C=this.measurePieElementCore(e,t,i,n,l,h,u,p,_,f);if(C.isEmpty)return null;return new __.d.StiPieSeriesElementGeom(S,o,a,h,g=f.ref,m=p.ref,c=_.ref,s,r,n,n+l,i)}renderPieElementShadow(t,e,i,s,r,n,l,o){if(this.series.chart.isAnimation)return;let a,h,u=RectangleD.empty,S=(s=this.correctBrush(s),{ref:a}),d={ref:h},m={ref:u},c=this.measurePieElementCore(t,e,i,r,n,l,o,S,d,m);if(a=S.ref,h=d.ref,u=m.ref,c.isEmpty)return;if(t.pushSmoothingModeToAntiAlias(),t.fillPath(s,a,u,null),null!=h){let e=new StiGradientBrush(Color.fromArgb3(100,Color.white),Color.fromArgb3(50,Color.black),45);t.fillPath(e,h,u,null)}t.popSmoothingMode()}measurePieElement(e,t,i,s,r,n,l){let o,a,h=RectangleD.empty,u={ref:o},S={ref:a},d={ref:h},m=this.measurePieElementCore(e,t,i,s,r,n,l,u,S,d);return o=u.ref,a=S.ref,h=d.ref,m}measurePieElementCore(e,t,i,s,r,n,l,o,a,h){let u=[],S=null,d=RectangleD.empty;if(0==r||isNaN(r))return RectangleD.empty;if(0<l&&(t=this.getPoint(t,l*e.options.zoom,s+r/2)),(d=new RectangleD(t.x-i,t.y-i,2*i,2*i)).width<=0&&d.height<=0)return RectangleD.empty;if(u.push(new StiPieSegmentGeom(new RectangleD(d.x,d.y,d.width,d.height),s,r,null,null,null)),n.lighting&&!Color.transparent.equals(n.borderColor)){let e=0;e=.02*i,(S=[]).push(new StiArcSegmentGeom(d,s,r)),S.push(new StiLineSegmentGeom(this.getPoint(t,i-e,s+r),this.getPoint(t,i-e,s+r))),S.push(new StiArcSegmentGeom(new RectangleD(d.x+e,d.y+e,d.width-2*e,d.height-2*e),s+r,-r)),S.push(new StiLineSegmentGeom(this.getPoint(t,i-e,s),this.getPoint(t,i-e,s)))}return o.ref=u,a.ref=S,h.ref=d,e.getPathBounds(u)}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return i.ref=o,t.ref=n,s.ref=h,a}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(u,h,S,t){let d=this.getRadius(u,h),m=this.getPointCenter(h);if(null==t||0==t.length||null==this.series.chart)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiPieEmptySeriesElementGeom(new Rectangle(m.x-d,m.y-d,2*d,2*d)));let c=__.d.StiChartHelper.globalDurationElement,g=__.d.StiChartHelper.globalBeginTimeElement,p=this.series.chart,_=this.getColorCount(t),e={ref:0},i=(this.checkNonZerovalue(t,e,{ref:-1},{ref:null}),e.ref),f=this.getGradPerValue(t),C=this.getPercentPerValue(t),w=t[0],s=w.core.getPieSeriesLabels(),b=w.startAngle,y=new RectangleD(0,0,h.width,h.height);for(let e of t)if(1<i){let s=e,r=0;for(let i of e.values){let e=f*Math.abs(i),t=this.measurePieElement(u,m,d,b,e,s,this.getPieDistance(r));0!=i&&(y=RectangleD.union(y,t)),b+=e,r++}}let r=Math.max(-y.left,y.right-h.width),n=Math.max(-y.top,y.bottom-h.height),l=Math.max(r,n),x=(d-=1.2*l,StiArray.create(RectangleD,_)),A=StiArray.create(Number,_),L=StiArray.create(Number,4),o=(StiArray.clear(L,0,L.length),b=w.startAngle,(y=new RectangleD(10*u.options.zoom,10*u.options.zoom,h.width-20*u.options.zoom,h.height-20*u.options.zoom)).clone()),T=0;for(let h of t){let o=h,a=0;for(let l of h.values){let r=f*Math.abs(l),n=o.core.getPieSeriesLabels();if(null!=n&&n.visible){let e=d,t=(0<this.getPieDistance(a)&&(e+=o.distance*u.options.zoom),b+r/2),i={ref:null},s=(n.core.renderLabel(o,u,m,e,0,t,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!0,a,_,C,i,!1,0),i.ref);s.isEmpty||(y=RectangleD.union(y,s)),(0!=l||n.showZeros)&&(x[T]=s,A[T]=s.y,0<=t&&t<=90&&L[0]++,90<t&&t<=180&&L[1]++,180<t&&t<=270&&L[2]++,270<t)&&t<=360&&L[3]++}b+=r,a++,0==l&&!this.series.chart.seriesLabels.showZeros||T++}}if(0==w.diameter){let e=0;e=Math.min(e,y.left-o.left),e=Math.min(e,o.right-y.right),e=Math.min(e,y.top-o.top),e=Math.min(e,o.bottom-y.bottom),d+=e}T=0;for(let h of t){let o=h,a=0;for(let l of h.values){let r=f*l,n=o.core.getPieSeriesLabels();if(null!=n&&n.visible){let e=d,t=(0<this.getPieDistance(a)&&(e+=o.distance*u.options.zoom),b+r/2),i={ref:null},s=(n.core.renderLabel(this.series,u,m,e,0,t,a,l,l,this.getArgumentText(h,a),o.core.getTag(a),!0,a,_,C,i,!1,0),i.ref);0==l&&!n.showZeros||(x[T]=s,A[T]=s.y)}b+=r,a++,0==l&&!this.series.chart.seriesLabels.showZeros||T++}}if(null!=this.series.chart&&null!=this.series.chart.seriesLabels){let e=this.series.chart.seriesLabels.as(__.d.IStiTwoColumnsPieLabels);if(null!=e&&e.preventIntersection){let t=0;if(0<L[0]){let e=StiArray.create(RectangleD,L[0],!0);if(StiArray.copy(x,0,e,L[0]),this.isIntersectionLabels(e)){t=y.height/2/L[0],x[0].y=y.y+y.height/2+t/2-x[0].height/2;for(let e=1;e<L[0];e++)x[e].y=x[e-1].y+t}}let i=L[0];if(0<L[1]){let e=StiArray.create(RectangleD,L[1],!0);if(StiArray.copy(x,0,e,L[1]),this.isIntersectionLabels(e)){t=y.height/2/L[1],x[i].y=y.y+y.height-t/2-x[i].height/2;for(let e=i+1;e<i+L[1];e++)x[e].y=x[e-1].y-t}}if(i+=L[1],0<L[2]){let e=StiArray.create(RectangleD,L[2],!0);if(StiArray.copy(x,0,e,L[2]),this.isIntersectionLabels(e)){t=y.height/2/L[2],x[i].y=y.y+y.height/2-t/2-x[i].height/2;for(let e=i+1;e<i+L[2];e++)x[e].y=x[e-1].y-t}}if(i+=L[2],0<L[3]){let e=StiArray.create(RectangleD,L[3],!0);if(StiArray.copy(x,0,e,L[3]),this.isIntersectionLabels(e)){t=y.height/2/L[3],x[i].y=y.y+t/2-x[i].height/2;for(let e=i+1;e<i+L[3];e++)x[e].y=x[e-1].y+t}}for(let e=0;e<T;e++){if(null==x[e])continue;A[e]=x[e].y-A[e]}}}if(d<=5)return;if(w.showShadow){b=w.startAngle;for(let e of t){if(1==i){let e=new RectangleD(m.x-d,m.y-d,2*d,2*d),t=new RectangleD(0,0,2*d,2*d),i=u.createShadowGraphics(),s=(null!=i&&i.fillEllipse2(Color.fromArgb3(100,Color.black),t,null),new __.d.StiPieSeriesShadowElementGeom(w,e,.01*d+2*u.options.zoom,i,c,g));S.createChildGeoms(),S.childGeoms.push(s);break}{let o=e,a=0;for(let l of e.values){let e=f*Math.abs(l),t=m,i=new StiSolidBrush(Color.fromArgb3(100,Color.black)),s=u.createShadowGraphics(),r=h.clone(),n=(r.x=0,r.y=0,p.isAnimation&&(r.x=m.x-d,r.y=m.y-d,r.height=2*d,r.width=2*d),this.renderPieElementShadow(s,t,d,i,b,e,o,this.getPieDistance(a)),new __.d.StiPieSeriesShadowElementGeom(w,r,.01*d+2*u.options.zoom,s,c,g));S.createChildGeoms(),S.childGeoms.push(n),b+=e,a++}}}}let a=this.getPieElementGeoms(u,S,d,h,t);if(a.length<1)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiPieEmptySeriesElementGeom(new RectangleD(m.x-d,m.y-d,2*d,2*d)));for(let t=0;t<a.length;t++){let e=a[t];e.is(__.d.StiPieSeriesFullElementGeom)?(null!=e.series.core.interaction&&(e.interaction=this.getInteraction(S.area,e.series,e.index)),S.createChildGeoms(),S.childGeoms.push(e)):e.is(__.d.StiPieSeriesElementGeom)&&(e.count=a.length,null!=e.series.core.interaction&&(e.interaction=this.getInteraction(S.area,e.series,e.index)),S.createChildGeoms(),S.childGeoms.push(e))}b=w.startAngle;let D=this.getPieLabelGeoms(u,d,h,t,A);if(this.series.chart.isAnimationChangingValues&&null!=s&&s.valueType==__.d.StiSeriesLabelsValueType.Value){let e=d/1.75,t=new RectangleD;t.x=m.x-e,t.y=m.y-e,t.width=2*e,t.height=2*e;for(let t=0;t<a.length;t++){let e=D.length>t?D[t]:null;null!=e&&(S.createChildGeoms(),S.childGeoms.push(e))}}else for(let e of D)this.series.chart.isAnimationChangingValues&&e.is(__.d.StiCenterPieLabelsGeom)&&(e.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement)),S.createChildGeoms(),S.childGeoms.push(e);let v=this.getPieSeriesLabels();null!=v&&v.preventIntersection&&(v.is(__.d.IStiTwoColumnsPieLabels)?this.checkIntersectionTwoColumnsLabels(S,o):v.is(__.d.IStiOutsidePieLabels)?this.checkIntersectionOutLabels(S):this.checkIntersectionLabels(S))}getColorCount(t,i=!1){let s=0;for(let e of t)i&&null!=e.valuesStart&&(s+=e.valuesStart.length),i||null==e.values||(s+=e.values.length);return s}isIntersectionLabels(i){for(let t=0;t<i.length;t++)for(let e=0;e<i.length;e++){if(t==e)continue;if(i[t].intersectsWith(i[e]))return!0}return!1}getPieLabelGeoms(u,S,e,t,d,i=!1){let m=[],c=0,g=0,s=t[0],r=this.getGradPerValue(t,i),p=this.getPercentPerValue(t,i),_=this.getPointCenter(e),f=s.startAngle,C=this.getColorCount(t,i);for(let h of t){let o=h,a=0,e=i?h.valuesStart:h.values;for(let l of e){let t=r*Math.abs(l),i=o.core.getPieSeriesLabels();if(null!=i&&i.visible){let n=i,e=i;if(null!=n){let i=S,s=(0<this.getPieDistance2(o,a)&&(i+=o.distance*u.options.zoom),f+t/2),r=0;if(null!=e&&e.preventIntersection&&(r+=d[g]),0==n.step||a%n.step==0){let e={ref:null},t=n.core.renderLabel(o,u,_,i,0,s,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!1,c,C,p,e,!1,r);null!=t&&m.push(t),n.is(__.d.IStiOutsidePieLabels)&&n.showValue&&null!=(t=n.core.renderLabel(o,u,_,i,0,s,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!1,c,C,p,e,!0,0))&&m.push(t)}}}c++,f+=t,a++,(0!=l||null!=i&&i.showZeros)&&g++}}return m}getPieSeriesLabels(){var e,t;if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart)return null==(e=this.series.chart.seriesLabels)?void 0:e.as(__.d.IStiPieSeriesLabels);if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries)return null==(t=this.series.seriesLabels)?void 0:t.as(__.d.IStiPieSeriesLabels);return null}getPieElementGeoms(h,u,S,e,t,i=!1){let d=[],s=t[0],m=this.getGradPerValue(t,i),c=this.getPointCenter(e),g=s.startAngle,p=this.getColorCount(t,i),r={ref:0},n={ref:-1},l={ref:null},o=(this.checkNonZerovalue(t,r,n,l,i),r.ref),_=0;for(let a of t){if(0==o)break;{let e=i?a.valuesStart:a.values;for(let o=0;o<e.length;o++){let l=e[o];if(0!=l){let e=m*Math.abs(l),t=a.brush,i=(a.allowApplyBrush&&(t=a.core.getSeriesBrush(_,p),t=a.processSeriesBrushes(o,t)),a.borderColor),s=(a.allowApplyBorderColor&&(i=a.core.getSeriesBorderColor(_,p)),0==a.values.length?0:__.d.StiChartHelper.globalBeginTimeElement.ticks/a.values.length*o),r=new TimeSpan(s),n=this.renderPieElement(h,c,S,i,t,g,e,Math.abs(l),o,a,this.getPieDistance2(a,o),u,r);null!=n&&d.push(n),g+=e}_++}}}return d}checkIntersectionOutLabels(n){let t=n.childGeoms,l=[];if(null!=t)for(let e of t)e.is(__.d.StiOutsidePieLabelsGeom)&&l.push(e);let e=l.length,i=!0,s=0;while(i&&s<29){s++;for(let r=0;r<e;r++)for(let s=0;s<e;s++){if(s==r)continue;if(l[r].labelRect.intersectsWith(l[s].labelRect)){let t=l[r].labelRect,i=l[s].labelRect;if(t.intersectsWith(i)){let e=t.height-Math.abs(l[s].labelRect.y-l[r].labelRect.y)+2;t.y>i.y?(t.y+=e/2,i.y-=e/2):(t.y-=e/2,i.y+=e/2),t.y<0&&(t.y=0),i.y<0&&(i.y=0),t.y+t.height>n.clientRectangle.height&&(t.y=n.clientRectangle.height-t.height),i.y+e/2+i.height>n.clientRectangle.height&&(i.y=n.clientRectangle.height-i.height),l[r].labelRect=t,l[s].labelRect=i}}}}}checkIntersectionTwoColumnsLabels(e,t){let i=e.childGeoms;if(null==i)return;let s=this.getPointCenter(t),r=[],n=[];for(let e of i)e.is(__.d.StiTwoColumnsPieLabelsGeom)&&(e.clientRectangle.x<s.x?r:n).push(e);this.isIntersectionLabels(r.map(e=>e.clientRectangle))&&this.checkLabelPosition(r,t),this.isIntersectionLabels(n.map(e=>e.clientRectangle))&&this.checkLabelPosition(n,t)}checkIntersectionLabels(n){let t=n.childGeoms,l=[];if(null!=t)for(let e of t)e.is(__.d.StiCenterPieLabelsGeom)&&l.push(e);let e=l.length,i=!0,s=0;while(i&&s<29){s++;for(let r=0;r<e;r++)for(let s=0;s<e;s++){if(s==r)continue;if(l[r].clientRectangle.intersectsWith(l[s].clientRectangle)){let t=l[r].labelRect,i=l[s].labelRect;if(t.intersectsWith(i)){let e=t.height-Math.abs(l[s].clientRectangle.y-l[r].clientRectangle.y)+2;t.y>i.y?(t.y+=e/2,i.y-=e/2):(t.y-=e/2,i.y+=e/2),t.y<0&&(t.y=0),i.y<0&&(i.y=0),t.y+t.height>n.clientRectangle.height&&(t.y=n.clientRectangle.height-t.height),i.y+e/2+i.height>n.clientRectangle.height&&(i.y=n.clientRectangle.height-i.height),l[r].labelRect=t,l[s].labelRect=i}}}}}checkLabelPosition(t,e){let i=e.height;for(let e of t=t[Stimulsoft.System.StiObject.stimulsoft]().toList().orderBy(e=>e.clientRectangle.y))i-=e.clientRectangle.height;let s=i/(t.length+1),r=e.y;for(let e of t)e.clientRectangle=new RectangleD(e.clientRectangle.x,r+s,e.clientRectangle.width,e.clientRectangle.height),e.endPoint=new PointD(e.endPoint.x,e.clientRectangle.y+e.clientRectangle.height/2),r=e.clientRectangle.y+e.clientRectangle.height}getGradPerValue(t,i=!1){let s=0,r=0;for(let e of t){let t=i?e.valuesStart:e.values;for(let e of t)s+=Math.abs(e),r++}return 0==r&&(r=1),0<s?360/s:360/r}getPercentPerValue(t,i=!1){let s=0;for(let e of t){let t=i?e.valuesStart:e.values;for(let e of t)s+=Math.abs(e)}return 1/s*100}getPointCenter(e){return new PointD(e.width/2,e.height/2)}getRadius(e,t){let i=this.series;if(0<i.diameter)return i.diameter/2*e.options.zoom;return.95*Math.min(t.width/2,t.height/2)}getPoint(e,t,i){let s=Math.PI*i/180;return new PointD(e.x+Math.cos(s)*t,e.y+Math.sin(s)*t)}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getPieDistance(e){return this.getPieDistance2(this.series,e)}getPieDistance2(t,i){if(0==t.distance)return 0;if(0==t.cutPieListValues.length)return t.distance;for(let e of t.cutPieListValues)if(e==i+1)return t.distance;return 0}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}get localizedName(){return StiLocalization.get("Chart","Pie")}constructor(e){super(e)}},__.d.StiDoughnutSeriesCoreXF=class extends __.d.StiPieSeriesCoreXF{renderDoughnutElement(t,e,i,s,r,n,l,o,a,h,u,S,d,m){if(s<0&&(s=1),0==o||isNaN(o))return null;let c=new RectangleD(e.x-i,e.y-i,2*i,2*i),g=new RectangleD(e.x-s,e.y-s,2*s,2*s);if(c.width<=0&&c.height<=0)return null;S||(n.is(StiGradientBrush)&&((n=n.clone()).angle=-45),n.is(StiGlareBrush)&&((n=n.clone()).angle=-45));let p=[],_=null,f=null,C=null,w=null,b=0,y=(u.lighting&&!S&&(C=[],w=[],b=.02*i,_=new StiGradientBrush(Color.fromArgb3(100,Color.white),Color.fromArgb3(50,Color.black),45),f=new StiGradientBrush(Color.fromArgb3(50,Color.black),Color.fromArgb3(100,Color.white),45)),this.series.chart);if(p.push(new StiArcSegmentGeom(c,l,o)),o-l!=360&&p.push(new StiLineSegmentGeom(this.getPoint(e,i,l+o),this.getPoint(e,s,l+o))),p.push(new StiArcSegmentGeom(g,l+o,-o)),o-l!=360&&p.push(new StiLineSegmentGeom(this.getPoint(e,s,l),this.getPoint(e,i,l))),S)if(y.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),m);t.fillDrawAnimationPath(n,null,p,c,null,e,null)}else t.fillPath(n,p,c,null);if(null==_||S||(C.push(new StiLineSegmentGeom(this.getPoint(e,i-b,l),this.getPoint(e,i,l))),C.push(new StiArcSegmentGeom(c,l,o)),C.push(new StiLineSegmentGeom(this.getPoint(e,i,l+o),this.getPoint(e,i-b,l+o))),C.push(new StiArcSegmentGeom(new RectangleD(c.x+b,c.y+b,c.width-2*b,c.height-2*b),l+o,-o)),w.push(new StiLineSegmentGeom(this.getPoint(e,s+b,l),this.getPoint(e,s,l))),w.push(new StiArcSegmentGeom(g,l,o)),w.push(new StiLineSegmentGeom(this.getPoint(e,s,l+o),this.getPoint(e,s+b,l+o))),w.push(new StiArcSegmentGeom(new RectangleD(g.x-b,g.y-b,g.width+2*b,g.height+2*b),l+o,-o))),!S){let e=new __.d.StiDoughnutSeriesElementGeom(d,a,h,u,c,g,p,C,w,r,n,_,f,l,l+o,i,s,m);return e}return null}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(u,e,S,a){let t=this.getRadius(u,e),d=this.getPointCenter(e);if(null==a||0==a.length||null==this.series.chart||null!=a&&!this.isNotNullValues(a))return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiDoughnutEmptySeriesElementGeom(new Rectangle(d.x-t,d.y-t,2*t,2*t)));let m=__.d.StiChartHelper.globalDurationElement,c=__.d.StiChartHelper.globalBeginTimeElement,g=t/(a.length+1),i=g,p=0;for(let e of a)null!=e.values&&(p+=e.values.length),i+=0!=e.width?e.width:g;if(i<t&&(t=i),0==p)return;let _=a[0],f=0,h=new RectangleD(10*u.options.zoom,10*u.options.zoom,e.width-20*u.options.zoom,e.height-20*u.options.zoom),s=h.clone(),C=0,w=0,b=t;for(let o of a){let l=0,t=(w=o.startAngle,this.getGradPerValue([o]));for(let n of o.values){let s=this.getPercentPerValue([o]),r=t*Math.abs(n),e=null;if(o.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),o.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=_.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let i=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeriesLabels);if(null!=i&&i.visible){C=0!=o.width?b-o.width:b-g;let e,t={ref:e};i.core.renderLabel(o,u,d,b,C,w+r/2,l,Math.abs(n),n,this.getArgumentText(o,l),_.core.getTag(l),!0,f,p,s,t,!1,0),(e=t.ref).isEmpty||(h=RectangleD.union(h,e))}}f++,w+=r,l++}b-=0!=o.width?o.width+.2*g:1.2*g}let r=0,o=(r=Math.min(r,h.left-s.left),r=Math.min(r,s.right-h.right),r=Math.min(r,h.top-s.top),r=Math.min(r,s.bottom-h.bottom),t+=r,this.series.chart);if(_.showShadow&&!o.isAnimation){let n=new RectangleD(d.x-t,d.y-t,2*t,2*t),l=u.createShadowGraphics(),o=new StiSolidBrush(Color.fromArgb3(100,Color.black));g=t/(a.length+1),b=t;for(let r of a){w=r.startAngle;let i=this.getGradPerValue([r]),s=0;for(let t of r.values){let e=i*Math.abs(t);C=0!=r.width?b-r.width:b-g,this.renderDoughnutElement(l,new PointD(n.width/2,n.height/2),b,C,Color.black,o,w,e,Math.abs(t),s,r,!0,S,new TimeSpan(c.ticks)),w+=e,s++}b-=0!=r.width?r.width+.2*g:1.2*g}let e=new __.d.StiPieSeriesShadowElementGeom(_,n,.01*t+2*u.options.zoom,l,m,c);S.createChildGeoms(),S.childGeoms.push(e)}g=t/(a.length+1),f=0,b=t;let y=0;for(let o of a){let l=0,e=(o.chart.area.colorEach||(f=0),w=o.startAngle,this.getGradPerValue([o])),t={ref:null},i={ref:null},s={ref:null},r=(this.checkNonZerovalue(a,t,i,s),t.ref),n=i.ref;if(0!=r){if(1==r){let e=o.brush,t=(o.allowApplyBrush&&(e=o.core.getSeriesBrush(n,p),e=o.processSeriesBrushes(n,e)),_.core.getSeriesBorderColor(f,p));if(n>=o.values.length)continue;C=0!=o.width?b-o.width:b-g;let i=this.renderDoughnutElement(u,d,b,C,t,e,0,360,o.values[n],n,o,!1,S,new TimeSpan(c.ticks));null!=i&&(null!=o.core.interaction&&(i.interaction=this.getInteraction(S.area,o,0)),S.createChildGeoms(),S.childGeoms.push(i)),b-=1.2*g,l++,f++,y++;continue}{let n=0;for(let r of o.values){let s=e*Math.abs(r);if(0!=r){let e=o.brush,t=(o.allowApplyBrush&&(e=o.core.getSeriesBrush(f,p),e=o.processSeriesBrushes(l,e)),o.borderColor),i=(o.allowApplyBorderColor&&(t=o.core.getSeriesBorderColor(f,p)),C=0!=o.width?b-o.width:b-g,this.renderDoughnutElement(u,d,b,C,t,e,w,s,Math.abs(r),n,o,!1,S,new TimeSpan(c.ticks/o.values.length*f)));if(null!=i){if(null!=o.core.interaction){let e=this.getInteraction(S.area,o,n);i.interaction=e}S.createChildGeoms(),S.childGeoms.push(i)}w+=s}l++,f++,y++,n++}}}b-=0!=o.width?o.width+.2*g:1.2*g}let x=S.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiDoughnutArea);if(null!=x&&x.indicator.visible){let e=x.indicator,t=1.414*C,i=t/2,s=new Rectangle(d.x-i,d.y-i,t,t),r=StiReportParser.parse(e.value.value,o),n=StiReportParser.parse(e.title.text,o),l=new __.d.StiDoughnutAreaIndicatorGeom(s,r,n,e);S.createChildGeoms(),S.childGeoms.push(l)}if(0==y)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiDoughnutEmptySeriesElementGeom(new Rectangle(d.x-t,d.y-t,2*t,2*t)));f=0,b=t;for(let h of a){let a=0,t=(w=h.startAngle,this.getGradPerValue([h]));for(let o of h.values){let n=this.getPercentPerValue([h]),l=t*Math.abs(o),e=null;if(h.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),h.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=_.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let r=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeriesLabels);if(null!=r&&r.visible&&(0==r.step||a%r.step==0)){let e,t=0!=h.width?b-h.width:b-g,i={ref:e},s=r.core.renderLabel(h,u,d,b,t,w+l/2,a,Math.abs(o),o,this.getArgumentText(h,a),this.getTag(a),!1,f,p,n,i,!1,0);e=i.ref,null!=s&&(s.duration=m,s.beginTime=new TimeSpan(c.ticks/h.values.length*f),S.createChildGeoms(),S.childGeoms.push(s))}}f++,w+=l,a++}b-=0!=h.width?h.width+.2*g:1.2*g}}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getGradPerValue(t){let i=0;for(let e of t[0].values)i+=Math.abs(e);return 360/i}getPercentPerValue(t){let i=0;for(let e of t[0].values)i+=Math.abs(e);return 1/i*100}getArgumentText(e,t){if(e.arguments.length>t)return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}get localizedName(){return StiLocalization.get("Chart","Doughnut")}constructor(e){super(e)}},__.d.StiCandlestickSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(i,s){if(super.applyStyle(i,s),this.series.allowApplyStyle){let e=i.core.getColumnBrush(s),t=(this.series.brush=e,i.core.getColumnBorder(s));Color.transparent.equals(t)&&(t=StiBrush.toColor(e)),this.series.borderColor=t}}renderSeries(e,t,A,i){var L,T;if(null==i||0==i.length||null==this.series.chart)return;let D=A.area,v=D.axisCore.getDividerY(),F=__.d.StiChartHelper.globalBeginTimeElement;for(let x of i){let _=x.valuesOpen,f=x.valuesClose,C=x.valuesHigh,w=x.valuesLow,b=Math.min(Math.min(_.length,f.length),Math.min(C.length,w.length)),e=x.arguments.length,t=Math.min(b,e),y=x.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let p=0;p<t;p++){let t=_[p],i=f[p],s=C[p],r=w[p];if(null==t||null==i||null==s||null==r)continue;let n=0;for(let e of D.xAxis.info.stripLines.list){if((null==(L=x.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,y))?void 0:L.toString())==(null==(T=e.valueObject)?void 0:T.toString()))break;n++}let e=D.xAxis.info.dpi,l=new StiSolidBrush,o;if(t>i?(l=x.brush,o=x.borderColor,s<t&&(s=t),i<r&&(r=i)):(l=x.brushNegative,o=x.borderColorNegative,r>t&&(r=t),i>s&&(s=i),t=f[p],i=_[p]),D.reverseVert&&t>i){let e=t;t=i,i=e,e=r,r=s,s=e}let a=D.yAxis.info.dpi,h=Math.abs(v-t*a),u=Math.abs(v-i*a),S=Math.abs(v-s*a),d=Math.abs(v-r*a),m=n*e,c=new RectangleD(m-e/4,h,e/2,u-h),g=(l=x.processSeriesBrushes(p,l),new __.d.StiCandlestickSeriesElementGeom(A,x,c,h,u,S,d,m,n-1,l,o,new TimeSpan(F.ticks/b*p)));if(null!=g&&null!=x.core.interaction){let e=this.getInteraction(A.area,x,p);g.interaction=e}A.createChildGeoms(),A.childGeoms.push(g)}}}get localizedName(){return StiLocalization.get("Chart","Candlestick")}constructor(e){super(e)}},__.d.StiStockSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.lineColor=t)}renderSeries(e,t,x,i){var A,L;if(null==i||0==i.length||null==this.series.chart)return;let T=x.area,D=T.axisCore.getDividerY(),v=__.d.StiChartHelper.globalBeginTimeElement;for(let y of i){let _=y.valuesOpen,f=y.valuesClose,C=y.valuesHigh,w=y.valuesLow,b=Math.min(Math.min(_.length,f.length),Math.min(C.length,w.length)),e=y.arguments.length,t=Math.min(b,e);for(let p=0;p<t;p++){let e=_[p],t=f[p],i=C[p],s=w[p],r=0,n=y.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let e of T.xAxis.info.stripLines.list){if((null==(A=y.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,n))?void 0:A.toString())==(null==(L=e.valueObject)?void 0:L.toString()))break;r++}let l=T.xAxis.info.dpi,o=y.lineColor;if(!y.allowApplyColorNegative&&e<t&&(o=y.lineColorNegative),null==e||null==t||null==i||null==s)continue;let a=T.yAxis.info.dpi,h=Math.abs(D-e*a),u=Math.abs(D-t*a),S=Math.abs(D-i*a),d=Math.abs(D-s*a),m=r*l;if(T.reverseHor){let e=h;h=u,u=e}let c=new RectangleD(m-l/3,Math.min(S,d),2*l/3,Math.abs(d-S)),g=(o=y.processSeriesColors(p,o),new __.d.StiStockSeriesElementGeom(x,y,c,h,u,S,d,m,r-1,o,new TimeSpan(v.ticks/b*p)));if(null!=g&&null!=y.core.interaction){let e=this.getInteraction(x.area,y,p);g.interaction=e}x.createChildGeoms(),x.childGeoms.push(g)}}}get localizedName(){return StiLocalization.get("Chart","Stock")}constructor(e){super(e)}},__.d.StiStackedBarSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.brush.is(StiGradientBrush)&&(i.brush.angle+=90),i.brush.is(StiGlareBrush)&&(i.brush.angle+=90),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(C,w,b,y){if(null==y||0==y.length||null==this.series.chart)return;let x=[],A=[],e=b.area,L=e,r=this.series,T=L.axisCore.getDividerX(),D=L.xAxis.info.dpi,v=L.axisCore.valuesCount,F=[],s=0;for(let i=0;i<y.length;i++){let t=[];for(let e=0;e<y[i].values.length;e++)t.push(s),s++;F.push(t)}let B=s;for(let f=0;f<v;f++){let d=0,m=0,e={ref:d},t={ref:m},i=(this.calculateTotalWidth(y,f,e,t),d=e.ref,m=t.ref,L.yAxis.info.stripPositions[L.yAxis.startFromZero?f+1:f]-L.yAxis.info.step/2),c=L.yAxis.info.step-L.yAxis.info.step*(1-r.width),g=i+(L.yAxis.info.step-c)/2,p=0,_=0;if(0==y.length)return;let s=y[0].showShadow;if(s=y[0].chart.isAnimation&&!y[0].chart.report.isDesigning?!1:s){for(let i=0;i<y.length;i++)if(f<y[i].values.length){let e=y[i],t=L.reverseVert?e.values[f]:e.values[e.values.length-f-1];0<(t=L.reverseHor&&null!=t?-t:t)?p+=t:_+=t}if(this.series.is(__.d.IStiFullStackedBarSeries)){let e=L.reverseHor?m:d,t=L.reverseHor?d:m;if(0<e&&0<t){let e=new RectangleD(-8,g,w.width+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}else if(0<e){let e=new RectangleD(L.axisCore.getDividerX()-8,g,w.width-L.axisCore.getDividerX()+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e.clone(),!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}else if(0<t){let e=new RectangleD(-8,g,L.axisCore.getDividerX()+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e.clone(),!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}}else{if(0<p){let e=new RectangleD(T,g,p*D,c),t=(e.x-=7,e.width+=7,new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!1,!0));b.createChildGeoms(),b.childGeoms.push(t)}if(_<0){let e=new RectangleD(T+_*D,g,-_*D,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!0,!1);b.createChildGeoms(),b.childGeoms.push(t)}}}p=0;for(let l=_=0;l<y.length;l++){let S=y[l];if(f<S.values.length){let o=F[l][f],a=L.reverseVert?S.values[f]:S.values[S.values.length-f-1],h=null!=a?-a:a,u=L.reverseHor?y[Stimulsoft.System.StiObject.stimulsoft]().toList().take(l+1).cast().sum(e=>e.values[f]):y[Stimulsoft.System.StiObject.stimulsoft]().toList().take(l+1).cast().sum(e=>e.values[S.values.length-f-1]),e=(!this.series.is(__.d.IStiFullStackedBarSeries)||0==d&&0==m||null==h||(D=0<h?L.axisCore.getDividerX()/m:(w.width-L.axisCore.getDividerX())/d),(h=L.reverseHor&&null!=h?-h:h)*D),t=-e+T,s=(0<h?t-=p:(t=_+T,e=-e),!S.showZeros||0!=h&&null!=h||(e=Math.max(C.options.zoom,1),L.reverseHor)||(t-=e),new RectangleD(t,g,e,c));s=this.correctRect(s,w.clone());let r,i=(r=h<0?RectangleD.fromLTRB(s.left,s.top,s.left,s.bottom):RectangleD.fromLTRB(s.right,s.top,s.right,s.bottom),b.view.clientRectangle.clone()),n=(i.x=0,i.y=0,s.clone());if(n.x+=b.clientRectangle.x,n.y+=b.clientRectangle.y,n.bottom>i.y&&n.y<i.bottom||this.series.chart.area.yAxis.range.auto){let i=S.core.getSeriesBrush(o,B);if(S.allowApplyBrushNegative&&0<h&&(i=S.brushNegative),i=S.processSeriesBrushes(v-1-f,i),0!=s.height&&0<StiMath.round2(s.width,2)&&null!=i){let e=S.core.getSeriesBorderColor(o,B),t=new __.d.StiStackedBarSeriesElementGeom(b,h,f,i,e,S,s,r);if(null!=S.core.interaction){let e=this.getInteraction(L,S,v-1-f);t.interaction=e}A.push(t)}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&0<StiMath.round2(s.width,2)){let r=new PointD(s.x,s.y+s.height/2),n=new PointD(s.right,s.y+s.height/2);if(h<0&&(n.x=s.x,r.x=s.right),h<0&&(n.x=s.x,r.x=s.right),0==l.step||f%l.step==0){let e=h,t=(!S[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).isTotalLabel&&l.valueType!=__.d.StiSeriesLabelsValueType.Total||(e=a=u),L.yAxis.startFromZero?f+1:f),i=L.yAxis.info.stripLines.count>f?L.yAxis.info.stripLines.getByIndex(t):null,s=l.core.renderLabel(S,C,r,n,f,e,a,L.axisCore.getArgumentLabel(i,S),S.core.getTag(v-1-f),o,B,w);null!=s&&x.push(s)}}}0<h?p+=e:_+=e,o++}}}for(let t=A.length-1;0<=t;t--){let e=A[t];b.createChildGeoms(),b.childGeoms.push(e)}for(let e of x)b.createChildGeoms(),b.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,b,e.clientRectangle.clone())}calculateTotalWidth(e,i,t,s){let r=0,n=0;if(this.series.is(__.d.IStiFullStackedBarSeries))for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseVert?t.values[i]:t.values[t.values.length-i-1];0<e?r+=e:n+=Math.abs(e)}t.ref=r,s.ref=n}correctRect(t,i){if(t.x>i.width||t.right<0)return t.width=0,t;if(t.x<0){let e=-t.x;t.x+=e,t.width-=e}if(i.width<t.right){let e=t.right-i.width;t.width-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","StackedBar")}constructor(e){super(e)}},__.d.StiFullStackedBarSeriesCoreXF=class extends __.d.StiStackedBarSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedBar")}constructor(e){super(e)}},__.d.StiStackedBaseLineSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lineColor=t,i.lighting=e.core.seriesLighting,i.marker.visible=e.core.markerVisible,null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100)),null!=i.lineMarker)&&(i.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(t,50)),i.lineMarker.borderColor=StiColorUtils.dark(t,150))}clipLinePoints(e,i,s,t,r,n,l,o){let a=r.ref,h=n.ref,u=l.ref,S=o.ref;if(this.series.chart.area.xAxis.range.auto)return u=0,S=s.length,a=s,h=t,r.ref=a,n.ref=h,l.ref=u,void(o.ref=S);u=-1,S=-1;let d=i.view.clientRectangle.clone(),m=(d.x=0,d.y=0,0);for(let t of s){let e=new PointD(t.x,t.y);if(e.x+=i.clientRectangle.x,e.y+=i.clientRectangle.y,d.x<=e.x&&e.x<d.right&&-1==u&&(u=m),!(d.x<=e.x&&e.x<d.right)&&-1!=u){S=m;break}m++}-1==S&&(S=s.length-1),u--,S++,u<0&&(u=0);let c=(S=S>=s.length?s.length-1:S)-u+1;if(c==s.length)return a=s,h=t,r.ref=a,n.ref=h,l.ref=u,void(o.ref=S);a=StiArray.create(PointD,c,!0),StiArray.copy(s,u,a,c),null!=t?(h=StiArray.create(PointD,c,!0),StiArray.copy(t,u,h,c)):h=null,r.ref=a,n.ref=h,l.ref=u,o.ref=S}renderMarkers(n,l,e){let o=l.area,a=this.series;if(0==e.length)return;let h=!a.marker.visible&&0<a.toolTips.length;if(null!=a.marker&&(a.marker.visible||h)){let r=0;for(let s of e){if(null!=s){let e=o.reverseHor?this.series.values[this.series.values.length-r-1]:this.series.values[r],t=(null==e&&a.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(this.series,r,e,s,a.marker,this.series.showShadow,n.options.zoom,h);if(null!=t){if(null!=a.core.interaction){let e=this.getInteraction(o,a,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}renderLines(e,t,i){}renderAreas(e,t,i){}renderSeries(c,g,p,_){let f=this.series,d=[],e=p.area;if(null==_||0==_.length||null==this.series.chart)return;let C=e,w=this.series.yAxis==__.d.StiSeriesYAxis.LeftYAxis?C.axisCore.getDividerY():C.axisCore.getDividerRightY(),b=C.xAxis.core.getStartFromZero(),y=new Hashtable,x=new Hashtable,i=[],A=[],L=[],T=C.yAxis.info.dpi;this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(T=C.yRightAxis.info.dpi);for(let t=0;t<_.length;t++){let u=_[t],e=u.values.length,S=StiArray.create(PointD,e,!0),d=StiArray.create(PointD,e,!0),m=StiArray.create(String,e,!0);for(let h=0;h<e;h++){let o=b?C.xAxis.info.stripPositions[h+1]:C.xAxis.info.stripPositions[h],a=C.reverseHor?u.values[u.values.length-h-1]:u.values[h];if(null!=a||u.showNulls){null==a&&u.showNulls&&(a=0);let e=0,t=0,i={ref:e},s={ref:t},r=(this.calculateTotalHeight(_,h,i,s),e=i.ref,t=s.ref,!f.core.isFullStacked||0==e&&0==t||null==a||(T=0<=a?w/e:(g.height-w)/t),-(a=C.reverseVert&&null!=a?-a:a)*T),n=0,l=(0<=a?null!=y.get(h)&&(n=y.get(h)):null!=x.get(h)&&(n=x.get(h)),r+=n,(0<=a?y:x).set(h,r),d[h]=new PointD(o,n+w),S[h]=new PointD(o,r+w),(b?C.xAxis.info.stripLines.getByIndex(h+1):C.xAxis.info.stripLines.getByIndex(h)).valueObject);m[h]=null==l?"":l[Stimulsoft.System.StiObject.stimulsoft]().toString()}else d[h]=null,S[h]=null,m[h]=null}if(0<S.length&&0<d.length){let e,t,i=null,s=null,r={ref:i},n={ref:s},l={ref:e},o={ref:t},a=(this.clipLinePoints(c,p,d,S,r,n,l,o),i=r.ref,s=n.ref,e=l.ref,t=o.ref,new __.d.StiSeriesPointsInfo);a.pointsStart=i,a.pointsEnd=s,a.pointsIds=m,u.core.renderAreas(c,p,a)}i.push(S),A.push(d),L.push(m)}let m=0,D=StiArray.create(Number,C.axisCore.valuesCount),v=StiArray.create(Number,C.axisCore.valuesCount);for(let e=0;e<C.axisCore.valuesCount;e++)D[e]=w,v[e]=w;for(let S of i){let e,t,i=null,s=null,r={ref:i},n={ref:s},l={ref:e},o={ref:t},a=(this.clipLinePoints(c,p,S,null,r,n,l,o),i=r.ref,s=n.ref,e=l.ref,t=o.ref,_[m]),h=new __.d.StiSeriesPointsInfo,u=(h.points=i,h.pointsFrom=A[m],h.pointsIds=L[m],a.core.renderLines(c,p,h),a.core.getSeriesLabels());if(null!=u&&u.visible)for(let n=e;n<=t;n++)if(n<a.values.length){let i=a.values[n],e=w,s=(0<(i=null==i&&f.showNulls?0:i)?(e=D[n],null!=S[n]&&(D[n]=S[n].y)):(e=v[n],null!=S[n]&&(v[n]=S[n].y)),i),r=(C.reverseVert&&null!=i&&(s=-s),S[n]);if(null!=r){let t=new PointD(r.x,e);if(0==u.step||n%u.step==0){let e=u.core.renderLabel(a,c,r,t,n,s,i,C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(n),a),a.core.getTag(n),0,1,g);null!=e&&d.push(e)}}}m++}for(let e of d)p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,p,e.clientRectangle.clone())}calculateTotalHeight(e,i,t,s){let r=this.series,n=0,l=0;if(r.core.isFullStacked)for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseHor?t.values[t.values.length-i-1]:t.values[i];0<(e=null==e&&r.showNulls?0:e)?n+=e:l+=Math.abs(e)}t.ref=n,s.ref=l}correctPoint(e,t){if(e.y<0)return new PointD(e.x,0);if(e.y>t.height)return new PointD(e.x,t.height);return e}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20));return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.lineColor;return s}get isFullStacked(){return this.is2(__.d.StiFullStackedAreaSeriesCoreXF)||this.is2(__.d.StiFullStackedLineSeriesCoreXF)||this.is2(__.d.StiFullStackedSplineSeriesCoreXF)||this.is2(__.d.StiFullStackedSplineAreaSeriesCoreXF)}constructor(e){super(e)}},__.d.StiStackedLineSeriesCoreXF=class extends __.d.StiStackedBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiStackedLineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","StackedLine")}constructor(e){super(e)}},__.d.StiStackedAreaSeriesCoreXF=class extends __.d.StiStackedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.pointsStart||i.pointsStart.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let s=new __.d.StiStackedAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","StackedArea")}constructor(e){super(e)}},__.d.StiFullStackedAreaSeriesCoreXF=class extends __.d.StiStackedAreaSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedArea")}constructor(e){super(e)}},__.d.StiStackedColumnSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(f,C,w,b){if(null==b||0==b.length||null==this.series.chart)return;let y=[],x=[],e=w.area,A=e,L=this.series,r=A.xAxis.core.getStartFromZero(),T=A.axisCore.getDividerY(),D=A.yAxis.info.dpi,v=(this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(D=A.yRightAxis.info.dpi),[]),s=0;for(let i=0;i<b.length;i++){let t=[];for(let e=0;e<b[i].values.length;e++)t.push(s),s++;v.push(t)}let F=s;for(let _=0;_<A.axisCore.valuesCount;_++){let l=0,d=0,e={ref:l},t={ref:d},i=(this.calculateTotalHeight(b,_,e,t),l=e.ref,d=t.ref,r?A.xAxis.info.stripPositions[_+1]:A.xAxis.info.stripPositions[_]),m=(i-=A.xAxis.info.step/2,A.xAxis.info.step-A.xAxis.info.step*(1-L.width)),c=i+(A.xAxis.info.step-m)/2,g=0,p=0;if(0==b.length)return;let s=b[0].showShadow;if(s=b[0].chart.isAnimation&&!b[0].chart.report.isDesigning?!1:s){for(let i=0;i<b.length;i++)if(_<b[i].values.length){let e=b[i],t=A.reverseHor?e.values[e.values.length-_-1]:e.values[_];null!=t&&(0<(t=A.reverseVert?-t:t)?g+=t:p+=t)}if(this.is(__.d.StiFullStackedColumnSeriesCoreXF)){let e=A.reverseVert?d:l,t=A.reverseVert?l:d;if(0<e&&0<t){let e=new RectangleD(c,-8,m,C.height+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}else if(0<e){let e=new RectangleD(c,-8,m,A.axisCore.getDividerY()+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}else if(0<t){let e=new RectangleD(c,A.axisCore.getDividerY()-8,m,C.height-A.axisCore.getDividerY()+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}}else{if(0<g){let e=new RectangleD(c,-g*D+T,m,g*D),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!0,!1);w.createChildGeoms(),w.childGeoms.push(t)}if(p<0){let e=new RectangleD(c,T,m,-p*D),t=(e.y-=7,e.height+=7,new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!0));w.createChildGeoms(),w.childGeoms.push(t)}}}g=0;for(let n=p=0;n<b.length;n++){let S=b[n];if(_<S.values.length){let o=v[n][_],a=A.reverseHor?S.values[S.values.length-_-1]:S.values[_],h=A.reverseHor?b[Stimulsoft.System.StiObject.stimulsoft]().toList().take(n+1).cast().sum(e=>e.values[S.values.length-_-1]):b[Stimulsoft.System.StiObject.stimulsoft]().toList().take(n+1).cast().sum(e=>e.values[_]),e=(!this.series.is(__.d.IStiFullStackedColumnSeries)||0==l&&0==d||null==a||(D=0<=a?A.axisCore.getDividerY()/l:(C.height-A.axisCore.getDividerY())/d),(a=A.reverseVert&&null!=a?-a:a)*D),t=-e+T,u=(0<a?t-=g:(t=p+T,e=-e),!L.showZeros||0!=a&&null!=a||(e=Math.max(f.options.zoom,1),A.reverseVert)||(t-=e),new RectangleD(c,t,m,e));u=this.correctRect(u,C);let s,i=(s=a<0?RectangleD.fromLTRB(u.left,u.top,u.right,u.top):RectangleD.fromLTRB(u.left,u.bottom,u.right,u.bottom),w.view.clientRectangle.clone()),r=(i.x=0,i.y=0,u.clone());if(r.x+=w.clientRectangle.x,r.y+=w.clientRectangle.y,r.right>i.x&&r.x<i.right||this.series.chart.area.xAxis.range.auto){let i=S.core.getSeriesBrush(o,F);if(S.allowApplyBrushNegative&&a<0&&(i=S.brushNegative),i=S.processSeriesBrushes(_,i),0!=u.width&&0<StiMath.round2(u.height,2)&&null!=i){let e=S.core.getSeriesBorderColor(o,F),t=new __.d.StiStackedColumnSeriesElementGeom(w,a,_,i,e,S,u,s);if(null!=S.core.interaction){let e=this.getInteraction(A,S,_);t.interaction=e}x.push(t)}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&0<StiMath.round2(u.height,2)){let s=new PointD(u.x+u.width/2,u.y),r=new PointD(u.x+u.width/2,u.bottom),n=S.values[_];if(A.reverseVert&&null!=n&&(n=-a),a<0&&(r.y=u.y,s.y=u.bottom),0==l.step||_%l.step==0){let e=a,t=(!S[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).isTotalLabel&&l.valueType!=__.d.StiSeriesLabelsValueType.Total||(e=n=h),A.xAxis.startFromZero?_+1:_),i=l.core.renderLabel(S,f,s,r,_,e,n,A.axisCore.getArgumentLabel(A.xAxis.info.stripLines.getByIndex(t),S),S.core.getTag(_),o,F,C);null!=i&&y.push(i)}}}0<a?g+=e:p+=e,o++}}}for(let t=x.length-1;0<=t;t--){let e=x[t];w.createChildGeoms(),w.childGeoms.push(e)}for(let e of y)w.createChildGeoms(),w.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,w,e.clientRectangle.clone())}calculateTotalHeight(e,i,t,s){let r=0,n=0;if(this.series.is(__.d.IStiFullStackedColumnSeries))for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseHor?t.values[t.values.length-i-1]:t.values[i];0<e?r+=e:n+=Math.abs(e)}t.ref=r,s.ref=n}correctRect(t,i){if(t.y>i.height||t.bottom<0)return t.height=0,t;if(t.top<0){let e=-t.top;t.y+=e,t.height-=e}if(i.height<t.bottom){let e=t.bottom-i.height;t.height-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","StackedColumn")}constructor(e){super(e)}},__.d.StiFullStackedColumnSeriesCoreXF=class extends __.d.StiStackedColumnSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedColumn")}constructor(e){super(e)}},__.d.StiFullStackedLineSeriesCoreXF=class extends __.d.StiStackedLineSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedLine")}constructor(e){super(e)}},__.d.StiStackedSplineSeriesCoreXF=class extends __.d.StiStackedBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiStackedSplineSeriesGeom(t,i,this.series);t.createChildGeoms(),t.childGeoms.push(s),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","StackedSpline")}constructor(e){super(e)}},__.d.StiStackedSplineAreaSeriesCoreXF=class extends __.d.StiStackedSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.pointsStart||i.pointsStart.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let s=new __.d.StiStackedSplineAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","StackedSplineArea")}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaSeriesCoreXF=class extends __.d.StiStackedSplineAreaSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSplineArea")}constructor(e){super(e)}},__.d.StiFullStackedSplineSeriesCoreXF=class extends __.d.StiStackedSplineSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSpline")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiCloseFigureSegmentGeom),Dictionary=(__.d.StiFunnelSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(d,m,c,n){var r,l,g;if(null==n||0==n.length||null==this.series.chart)return void this.renderFunnelEmpty(c,m);let t=n,p=this.getAllValues(t),_=this.getAllTrueValues(t),f=0;for(let e of n)null!=e.values&&(f+=e.values.length);if(0==f)return void this.renderFunnelEmpty(c,m);let C=this.getSingleValueHeight(f,m),w=this.getSingleValueWidth(p,m),b=(this.labels=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeriesLabels),m.clone()),y=m.clone();for(let S of n){let e=S;if(null!=this.labels&&this.labels.visible){for(let s=0;s<e.values.length;s++)if(S.values.length>s){let t=null!=(r=e.values[s])?r:0,i=s==e.values.length-1?null!=t?t:0:null!=(l=e.values[s+1])?l:0;if(0==this.labels.step||s%this.labels.step==0){let e={ref:b};this.labels.core.renderLabel(S,d,s,t,i,this.getArgumentText(S,s),S.core.getTag(s),0,f,m,C,w,1,e),b=e.ref,y=b.width<y.width?b:y}}b=y.clone()}C=this.getSingleValueHeight(f,b),w=this.getSingleValueWidth(p,b);let o=0,a=0,h,u=(h=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?b.width/2+b.x:b.width/2,__.d.StiChartHelper.globalBeginTimeElement);for(let l of t){let e={ref:null},t={ref:null},i={ref:null},s=(this.checkNonZerovalue(n,e,t,i),e.ref),r=t.ref;if(0!=s)if(1==s){let e=l.brush,t=(l.allowApplyBrush&&(e=l.core.getSeriesBrush(r,l.values.length),e=l.processSeriesBrushes(r,e)),l.borderColor),i=(l.allowApplyBorderColor&&(t=l.core.getSeriesBorderColor(a,f)),this.renderFunnelElement(t,e,null!=(g=l.values[r])?g:0,0,a,r,l,c,b,C,w,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks)));if(null!=i){if(null!=l.core.interaction){let e=this.getInteraction(c.area,l,r);i.interaction=e}c.createChildGeoms(),c.childGeoms.push(i)}}else for(let n=0;n<l.values.length;n++){let i=this.getCurrentValue(l,o,_);if(0==i&&!l.showZeros){o++;continue}let s=this.getNextCurrentValue(l,o,_),e=l.brush,t=(l.allowApplyBrush&&(e=l.core.getSeriesBrush(o,f),e=l.processSeriesBrushes(o,e)),l.borderColor),r=(l.allowApplyBorderColor&&(t=l.core.getSeriesBorderColor(a,f)),this.renderFunnelElement(t,e,null!=i?i:0,null!=s?s:0,a,n,l,c,b,C,w,new TimeSpan(u.ticks/p.length*n)));if(null!=r){if(null!=S.core.interaction){let e=this.getInteraction(c.area,S,n);r.interaction=e}c.createChildGeoms(),c.childGeoms.push(r)}if(null!=this.labels&&this.labels.visible&&(0==this.labels.step||n%this.labels.step==0)){let e={ref:b},t=this.labels.core.renderLabel(l,d,a,null!=i?i:0,null!=s?s:0,this.getArgumentText(l,n),l.core.getTag(n),a,f,m,C,w,h,e);b=e.ref,null!=t&&(c.createChildGeoms(),c.childGeoms.push(t),t.clientRectangle=this.checkLabelsRect(this.labels,c,t.clientRectangle))}a++,o++}}}}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getSeriesBorderColor(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors);return i.getColumnBorder(s)}getSeriesBrush(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors),r=i.getColumnBrush(s);return r}getCurrentValue(e,t,i){var s;return null!=(s=i[t])?s:0}getNextCurrentValue(t,i,s){if(i!=s.length-1){let e=s[i+1];if(0==e&&!t.showZeros)while(0==e&&i<s.length-2)i++,e=s[i+1];return e}return s[i]}getAllValues(e){let i=[];for(let t of e)for(let e of t.values){if(0==(null!=e?e:0)&&!t.showZeros)continue;i.push(null!=e?e:0)}return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(null!=e?e:0);return i}getValues(t){let i=[];for(let e of t.values){if(!t.showZeros&&0==e)continue;i.push(e)}return i}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}renderFunnelEmpty(r,n){let l,o=[3,2,1],a=.9*n.height/o.length,h=.9*n.width/o.length;for(let s=0;s<o.length;s++){let e=null!=(l=o[s])?l:0,t=s!=o.length-1?o[s+1]:o[s],i=this.measureFunnelElementCore(e,null!=t?t:0,s,n,a,h);r.createChildGeoms(),r.childGeoms.push(new __.d.StiFunnelEmptySeriesElementGeom(n,i))}}renderFunnelElement(e,t,i,s,r,n,l,o,a,h,u,S){let d=this.measureFunnelElementCore(i,s,r,a,h,u);return new __.d.StiFunnelSeriesElementGeom(o,i,n,l,a,t,e,d,S)}getSingleValueHeight(e,t){return.9*t.height/e}getSingleValueWidth(t,e){let i=Number.NEGATIVE_INFINITY;for(let e of t)i=i>(null!=e?e:0)?i:null!=e?e:0;return.9*e.width/i}measureFunnelElementCore(e,t,i,s,r,n){let l=new List,o=.05*s.height,a,h=(a=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?s.width/2+s.x:s.width/2,new PointD(a-e/2*n,r*i+o)),u=new PointD(a+e/2*n,r*i+o),S=new PointD(a+t/2*n,r*(i+1)+o),d=new PointD(a-t/2*n,r*(i+1)+o),m=[h,u,S,d,h];return l.push(new StiLinesSegmentGeom(m)),l.push(new StiCloseFigureSegmentGeom),l}get localizedName(){return StiLocalization.get("Chart","Funnel")}constructor(e){super(e)}},__.d.StiFunnelWeightedSlicesSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(a,h,u,S){if(null==S||0==S.length||null==this.series.chart)return void this.renderFunnelEmpty(u,h);let e=S,d=0;for(let e of S)null!=e.values&&(d+=e.values.length);if(0==d)return void this.renderFunnelEmpty(u,h);let m=new List,c=this.getAllValues(e),g=this.getAllTrueValues(e),p=.9*h.height/this.getSumValues(g),_=0,f=0,C,w=(C=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?h.width/2+h.x:h.width/2,__.d.StiChartHelper.globalBeginTimeElement);for(let o of S){let n=o,l=this.getValues(n),e=(this.labels=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiFunnelSeriesLabels),{ref:null}),t={ref:null},i={ref:null},s=(this.checkNonZerovalue(S,e,t,i),e.ref),r=t.ref;if(0!=s)if(1==s){let e=n.brush,t=(n.allowApplyBrush&&(e=n.core.getSeriesBrush(r,n.values.length),e=n.processSeriesBrushes(r,e)),n.borderColor),i=(n.allowApplyBorderColor&&(t=n.core.getSeriesBorderColor(_,d)),this.renderFunnelElement(t,e,n.values[r],c,_,r,n,u,h,p,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks)));if(null!=i){if(null!=n.core.interaction){let e=this.getInteraction(u.area,n,r);i.interaction=e}u.createChildGeoms(),u.childGeoms.push(i)}}else for(let r=0;r<l.length;r++){let s=l[r];if(!n.showZeros&&0==s){_++;continue}let e=n.brush,t=(n.allowApplyBrush&&(e=n.core.getSeriesBrush(_,d),e=n.processSeriesBrushes(_,e)),n.borderColor),i=(n.allowApplyBorderColor&&(t=n.core.getSeriesBorderColor(_,d)),this.renderFunnelElement(t,e,s,c,f,r,o,u,h,p,new TimeSpan(w.ticks/o.values.length*r)));if(null!=i){if(null!=o.core.interaction){let e=this.getInteraction(u.area,o,r);i.interaction=e}u.createChildGeoms(),u.childGeoms.push(i)}if(null!=this.labels&&this.labels.visible){let i=_==g.length-1?s:g[r+1];if(0==this.labels.step||r%this.labels.step==0){let e={ref:h},t=this.labels.core.renderLabel(n,a,_,s,i,this.getArgumentText(n,r),n.core.getTag(r),_,d,h,p,0,C,e);h=e.ref,null!=t&&m.push(t)}}f++,_++}}for(let e of m)u.createChildGeoms(),u.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(this.labels,u,e.clientRectangle)}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getSeriesBorderColor(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors);return i.getColumnBorder(s)}getSeriesBrush(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors),r=i.getColumnBrush(s);return r}getAllValues(e){let i=[];for(let t of e)for(let e of t.values){if(0==e&&!t.showZeros)continue;i.push(e)}return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(e);return i}getValues(t){let i=[];for(let e of t.values){if(!t.showZeros&&0==e)continue;i.push(e)}return i}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}renderFunnelEmpty(i,s){let r=[3,2,1],n=.9*s.height/this.getSumValues(r);for(let t=0;t<r.length;t++){let e=this.measureFunnelElementCore(t,s,n,r);i.createChildGeoms(),i.childGeoms.push(new __.d.StiFunnelEmptySeriesElementGeom(s,e))}}getPathFunnelEmpty(e){let t=new List,i=.05*e.height,s=e.width/2,r=new PointD(s-.9*e.width/2,i),n=new PointD(s+.9*e.width/2,i),l=new PointD(s-.1*e.width/2,e.height+i-e.height/5),o=new PointD(s+.1*e.width/2,e.height+i-e.height/5),a=new PointD(s+.1*e.width/2,e.height+i),h=new PointD(s-.1*e.width/2,e.height+i),u=[r,n,o,a,h,l];return t.push(new StiLinesSegmentGeom(u)),t.push(new StiCloseFigureSegmentGeom),t}renderFunnelElement(e,t,i,s,r,n,l,o,a,h,u){let S=this.measureFunnelElementCore(r,a,h,s);return new __.d.StiFunnelSeriesElementGeom(o,i,n,l,a,t,e,S,u)}getSumValues(t){let i=0;for(let e of t)i+=Math.abs(e);return i}getSumLastValues(t,i){let s=0;for(let e=0;e<t;e++){if(e>=i.length)break;s+=Math.abs(i[e])}return s}measureFunnelElementCore(e,t,i,s){let r=[],n=.05*t.height,l;l=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?t.width/2+t.x:t.width/2;let o,a,h=new PointD,u=new PointD,S,d,m=!1,c=this.getSumLastValues(e,s),g=!1,p=t.height-i*c,_=(p<t.height/5&&(p=t.height/5,g=!0),.9*t.width*p/t.height);o=new PointD(l-_/2,i*c+n),a=new PointD(l+_/2,i*c+n),c=this.getSumLastValues(e+1,s),(p=t.height-i*c)<t.height/5&&(p=t.height/5,g||(_=.9*t.width*p/t.height,h=new PointD(l-_/2,t.height+n-p),u=new PointD(l+_/2,t.height+n-p),m=!0)),_=.9*t.width*p/t.height,S=new PointD(l+_/2,i*c+n),d=new PointD(l-_/2,i*c+n);let f;return f=m?[o,a,u,S,d,h,o]:[o,a,S,d,o],r.push(new StiLinesSegmentGeom(f)),r.push(new StiCloseFigureSegmentGeom),r}get localizedName(){return StiLocalization.get("Chart","FunnelWeightedSlices")}constructor(e){super(e)}},__.d.StiGanttSeriesCoreXF=class extends __.d.StiClusteredBarSeriesCoreXF{renderSeries(C,w,b,e){let y,x=[];if(null==e||0==e.length||null==this.series.chart)return;let A=b.area,L=A.axisCore.getDividerX(),T=A.axisCore.getDividerY();for(let f of e){let e=f.values.length,t=(f.valuesEnd.length<e&&(e=f.valuesEnd.length),f.arguments.length),c=Math.min(e,t),g=t-1,p=0,_=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();while(p<c){let r=f.values[p],n=f.valuesEnd[p],e=(null==r&&(r=0),null==n&&(n=0),Math.abs(r-n)*A.xAxis.info.dpi),t=L,l=Math.min(r,n),i=(A.reverseHor?t-=l*A.xAxis.info.dpi+e:t+=l*A.xAxis.info.dpi,A.yAxis.info.stripLines.count-1);for(let t of A.yAxis.info.stripLines.list){let e=null!=(y=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_))?y:"";if(null==e&&null==t.valueObject||null!=e&&null!=t.valueObject&&e.toString()==t.valueObject.toString())break;i--}A.reverseVert&&(i=A.yAxis.info.stripLines.count-1-i);let o=A.yAxis.info.step/2,a=T-o/2,s=(A.reverseVert?a+=A.yAxis.info.step*i:a-=A.yAxis.info.step*i,new RectangleD(t,a,e,o)),h=RectangleD.fromLTRB(s.left,s.top,s.left,s.bottom),u=f.core.getSeriesBrush(g,c),S=f.processSeriesBrushes(p,u),d=new __.d.StiGanttSeriesElementGeom(b,l,p,f,s,h,S);if(null!=f.core.interaction){let e=this.getInteraction(A,f,p);d.interaction=e}b.createChildGeoms(),b.childGeoms.push(d);let m=f.core.getSeriesLabels();if(null!=m&&m.visible)if(m.is(__.d.StiValueAxisLabels)){let i=new PointD(t,a+o/2),s=new PointD(t+e,a+o/2);if(0==m.step||p%m.step==0){if(n<r){let e=r;r=n,n=e}let e=m.core.renderLabel(f,C,s,s,p,n,n,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w),t=m.core.renderLabel(f,C,i,i,p,r,r,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w);null!=t&&(x.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone())),null!=e&&(x.push(e),e.clientRectangle=this.checkLabelsRect(m,b,e.clientRectangle.clone()))}}else if(!m.is(__.d.StiNoneLabels)){let i,s,r=(s=m.is(__.d.StiCenterAxisLabels)?(i=new PointD(t,a+o/2),new PointD(t+e,a+o/2)):(i=new PointD(t+e/2,a),new PointD(t+e/2,a)),l);if(0==m.step||p%m.step==0){let e=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_),t=(e=null==e?"":e,m.core.renderLabel(f,C,s,i,p,l,r,e.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w));null!=t&&(x.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone()))}}g-=1,p++}}for(let e of x)b.createChildGeoms(),b.childGeoms.push(e)}get localizedName(){return StiLocalization.get("Chart","Gantt")}constructor(e){super(e)}},Stimulsoft.System.Collections.Dictionary);__.d.StiHeatmapSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}renderSeries(S,e,d,t){let m=__.d.StiChartHelper.globalDurationElement,c=__.d.StiChartHelper.globalBeginTimeElement,g=d.area,o=g.xAxis.info,a=g.yAxis.info,p=new Dictionary;for(let e=0;e<o.labelsCollection.length;e++){let l=o.labelsCollection[e];for(let n=0;n<a.labelsCollection.length;n++){let e=a.labelsCollection[n],t=l.position-o.step/2,i=e.position-a.step/2,s=new Rectangle(t,i,o.step,a.step),r=l.stripLine.valueObject[Stimulsoft.System.StiObject.stimulsoft]().toString()+` , `+e.stripLine.valueObject[Stimulsoft.System.StiObject.stimulsoft]().toString();p.containsKey(r)||p.add(r,s)}}let i=this.getAllValues();if(0==i.length)return;let _=i.min(),f=i.max(),C=new List;for(let e of t){let u=e;for(let h=0;h<u.values.length;h++){let o=u.values[h];if(h>=u.xValues.length||h>=u.yValues.length)break;let e=u.xValues[h],t=u.yValues[h],a=e+` , `+t;if(p.containsKey(a)){let s=p.get(a),r=o,e=this.getHeatmapColors(),t=__.d.StiHeatmapHelper.getColorFromRange(e,_,f,r),n=new StiSolidBrush(t),l=this.series.core.getSeriesBorderColor(h,u.values.length);if(0!=l.a||this.series.chart.area.colorEach||(l=Color.white),null!=this.series.chart&&null!=this.series.chart.style&&0<s.height){let e=new TimeSpan(c.ticks/u.values.length*h),t=new StiOpacityAnimation(m,e),i=new __.d.StiHeatmapSeriesElementGeom(d,r,h,n,l,u,s,t);null!=u.core.interaction&&(i.interaction=this.getInteraction(g,u,h)),d.createChildGeoms(),d.childGeoms.push(i)}let i=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCenterHeatmapLabels);if(null!=i&&i.visible){let e=i.core.renderLabel(this.series,S,h,r,this.getArgumentText(this.series,h),this.series.core.getTag(h),0,u.values.length,s,null);null!=e&&C.add(e)}}}}for(let e of C)d.createChildGeoms(),d.childGeoms.push(e);d.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(d)}getArgumentText(e,t){let i=e,s=new StringBuilder;return i.xValues.length>t&&null!=i.xValues[t]&&s.append(i.xValues[t]),i.yValues.length>t&&null!=i.yValues[t]&&(s.append(e.seriesLabels.valueTypeSeparator),s.append(i.yValues[t])),s.toString()}getAllValues(){let t=new List;for(let e of this.series.chart.series.list)t.addRange(e.values);let i=new List;for(let e of t)null==e||i.contains(e)||i.add(e);return i}getHeatmapColors(){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=null!=this.seriesColors?this.seriesColors:e.styleColors;return t}getSeriesBrush(e,t){return new StiSolidBrush(Color.transparent)}get localizedName(){return StiLocalization.get("Chart","Heatmap")}constructor(e){super(e)}};{class Kwa{constructor(e,t,i){this.value=e,this.series=t,this.index=i}}__.d.DataPictorial=Kwa,__.d.StiPictorialSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t))}get localizedName(){return StiLocalization.get("Chart","Pictorial")}getSingleSize(e){return new SizeD(this.singleSizeConst.width*e.options.zoom,this.singleSizeConst.height*e.options.zoom)}showEmptyGeom(t){for(let e of t)if(0<e.values.length)return!1;return!0}renderSeries(e,u,S,t){let d=this.getSingleSize(e),i=Math.floor(u.width/d.width),s=Math.floor(u.height/d.height),r=i*d.width,n=s*d.height,l=u.x+(u.width-r)/2,o=u.y+(u.height-n)/2,m=new RectangleD(l,o,r,n),a=i*s;if(this.showEmptyGeom(t)&&0<t.length){let e=new __.d.StiPictorialEmptySeriesElementGeom(S,1,0,new StiSolidBrush(Color.lightGray),t[0],StiFontIcons.Circle,new List([m]),new List([m]),m,null);return S.createChildGeoms(),void S.childGeoms.push(e)}let c=this.series.chart.area,g=[];for(let e of t){let i=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPictorialSeries),s=0;for(let t of e.values){let e=null==t?0:c.roundValues?Math.round(t):t;g.push(new Kwa(Math.abs(e),i,s)),s++}}let h=0;for(let e of g)h+=e.value;let p=a/h,_=(1<p&&c.actual&&(p=1),new PointD(m.x,m.y)),f=0;for(let l=0;l<g.length;l++){let e=Math.abs(g[l].value);if(0==e)continue;let t=p*e,i=c.roundValues?this.roundPictirialValue(t,f):t,s=(f+=t-i,i*d.width*d.height),r=s/d.height,o=r,a=[],h=[];do{let e=0,t=_,i=m.right-_.x,s=(_=i>o?(e=o,new PointD(_.x+o,_.y)):(e=i,new PointD(m.x,_.y+d.height)),o-=e,(t.x-m.x)/d.width),r=(s-Math.floor(s))*d.width,n=new RectangleD(t.x-r,t.y,e+r,d.height),l=new RectangleD(t.x,t.y,e,d.height);a.push(n),h.push(l)}while(0<o&&_.y<m.bottom);let n=new __.d.StiPictorialSeriesElementGeom(S,e,g[l].index,this.getSeriesBrush(l,g.length),g[l].series,g[l].series.icon,a,h,u,null);if(null!=g[l].series.core.interaction){let e=this.getInteraction(c,g[l].series,l);n.interaction=e}S.createChildGeoms(),S.childGeoms.push(n)}}roundPictirialValue(e,t){return 0<t?Math.ceil(e):t<0?Math.floor(e):Math.round(e)}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}constructor(e){super(e),this.singleSizeConst=new SizeD(25,25)}}}{let o=Stimulsoft.Base.Drawing.PointD;__.d.StiPictorialStackedSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}renderSeries(o,a,h,e){if(a.width<=0||a.height<=0)return;if(null==e||0==e.length||null==this.series.chart||null!=e&&!this.isNotNullValues(e))return h.createChildGeoms(),void h.childGeoms.push(new __.d.StiPictorialStackedEmptySeriesElementGeom(h,1,0,new StiSolidBrush(Color.fromArgb2(240,240,240)),e[0],StiFontIcons.Coffee,a,a,null));let u=e,t=this.getAllTrueValues(u),S=0,d=0;for(let e of u)null!=e.values&&(d+=e.values.length);let m=this.series.chart.seriesLabels,i=m.width*o.options.zoom,l=0,c=(0!=i?l=i:e.forEach(n=>{if(null!=m&&m.visible)for(let r=0;r<n.values.length;r++)if(n.values.length>r){let s=n.values[r];if(0==m.step||r%m.step==0){let e=m.core.getLabelText(n,s,this.getArgumentText(n,r),n.core.getTag(r),n.coreTitle,!1),t=StiFontGeom.changeFontSize(m.font,m.font.size*o.options.zoom),i=o.measureString(e,t);l=Math.max(l,Math.ceil(i.width))}}}),l*=1.1,m.is(__.d.StiOutsideLeftPictorialStackedLabels)?a=new Rectangle(a.x+l,a.y,a.width-l,a.height):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(a=new Rectangle(a.x,a.y,a.width-l,a.height)),e[0].icon),s=this.getRectangle(o,a,c),r=this.correctionMainPoint(s,c),g=(s=new Rectangle(s.x+r.x,s.y,s.width,s.height),a.clone()),p=4,_=((a=new Rectangle(a.x+r.x,a.y+r.y,a.width,a.height)).height>=a.width?m.is(__.d.StiOutsideLeftPictorialStackedLabels)?g=new Rectangle(a.x-l,s.y,l,s.height):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(g=new Rectangle(a.right-p,s.y,l,s.height)):m.is(__.d.StiOutsideLeftPictorialStackedLabels)?(g=new Rectangle(a.x-l,s.y,l,s.height),p=s.left-g.right-l-s.width*this.correctionAlfa):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(g=new Rectangle(s.right,s.y,l,s.height),p=a.right-s.right),s.height/this.getSumValues(t)*1.23),f=new List,C=a.x,w=s.y;for(let o=0;o<u.length;o++){let l=u[o];for(let n=0;n<l.values.length;n++){let e=l.values[n];if(0==e||null==e){S++;continue}let t=l.core.getSeriesBrush(S,d),i=(t=l.processSeriesBrushes(S,t),t=new StiSolidBrush(StiBrush.toColor(t)),_*Math.abs(e)),s=(o==u.length-1&&n==l.values.length-1&&(i=a.bottom-w),new Rectangle(C,w,a.width,i)),r=new __.d.StiPictorialStackedSeriesElementGeom(h,e,S,t,l,c,a,s,null);null!=r&&(null!=l.core.interaction&&(r.interaction=this.getInteraction(h.area,l,n)),h.createChildGeoms(),h.childGeoms.push(r)),w+=i,S++}}C=s.x,w=s.y;for(let e=S=0;e<u.length;e++){let l=u[e];for(let n=0;n<l.values.length;n++){let s=l.values[n];if(0==s||null==s){S++;continue}let r=_*Math.abs(s);if(null!=m&&m.visible&&(0==m.step||n%m.step==0)){let i=m.core[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPictorialStackedLabelsCoreXF);if(null!=i){let e=new Rectangle(g.x,w,g.width,r),t=i.renderLabel(l,o,S,s,this.getArgumentText(l,n),l.core.getTag(n),S,d,p,e);null!=t&&f.add(t)}}w+=r,S++}}for(let e of f)h.createChildGeoms(),h.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(m,h,e.clientRectangle)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}correctionMainPoint(e,t){let i=__.a.StiFontIconsHelper.getIconPadding(t),s=i[0],r=i[1],n=i[2],l=i[3];return new o((n-s)/100*e.width/2,(l-r)/100*e.height/2)}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString();return""}getRectangle(u,S,d){{let e=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),t=.76*this.measureFontSize(u,S,e,d);if(t<=0)return Rectangle.empty;let i=new StiFontGeom("Stimulsoft",t,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),s=__.a.StiFontIconsHelper.getContent(d),r=u.measureRotatedString2(s,i,S,this.getStringFormatGeom(u),StiRotationMode.CenterCenter,0,S.width),n=__.a.StiFontIconsHelper.getIconPadding(d),l=n[0],o=n[1],a=n[2],h=n[3];return new Rectangle(S.x+r.x+l/100*r.width,S.y+r.y+o/100*r.height,r.width*(1-(l+a)/100),r.height*(1-(o+h)/100))}}getStringFormatGeom(e){let t=e.getDefaultStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}measureFontSize(e,s,t,i){let r=__.a.StiFontIconsHelper.getContent(i),n=e.measureString(r,t),l=null;if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==l||l>i)&&(l=i)}else{let e=s.width/n.width*n.width/n.height;(null==l||l>e)&&(l=e)}return 1e3*l}getSumValues(t){let i=0;for(let e of t)i+=Math.abs(e);return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(e);return i}get localizedName(){return StiLocalization.get("Chart","PictorialStacked")}constructor(e){super(e),this.correctionAlfa=.22}}}{class StiPie3dSlice{get endAngle(){return(this.startAngle+this.sweepAngle)%360}drawLabels(i,s){let e=this.series.core.getPieSeriesLabels();if(null!=e&&!e.is(__.d.StiNoneLabels)&&e.visible){let t=e.core;if(null!=t){let e=t.renderLabel2(this.series,s,this);i.createChildGeoms(),i.childGeoms.push(e)}}}drawTopPieSliceGeom(e){let t=new __.d.StiPie3dMainSideSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle);e.createChildGeoms(),e.childGeoms.push(t)}drawBottomPieSliceGeom(e){let t=new Rectangle(this.rectPieSlilce.x,this.rectPieSlilce.y+this.pieHeight,this.rectPieSlilce.width,this.rectPieSlilce.height),i=new __.d.StiPie3dMainSideSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,t,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle);e.createChildGeoms(),e.childGeoms.push(i)}drawSides(e){let t=new __.d.StiPie3dSidesSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle,this.pieHeight,this.startSideExists,this.endSideExists);this.textPosition=t.getTextPosition(),e.createChildGeoms(),e.childGeoms.push(t)}split(e){if(this.startAngle==e||this.endAngle==e)return[this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()];let t=this.startAngle,i=(e-t+360)%360,s=this.getNewModified(t,i),r=(s.startSideExists=!0,s.endSideExists=!1,i=this.endAngle-e,this.getNewModified(e,i));return r.startSideExists=!1,r.endSideExists=!0,[s,r]}initTextPosition(e){let t=new __.d.StiPie3dSidesSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle,this.pieHeight,this.startSideExists,this.endSideExists);this.textPosition=t.getTextPosition()}getNewModified(e,t){let i=new StiPie3dSlice(this.area,this.value,this.argumentText,this.tag,this.index,this.series,this.rectPieSlilce,this.pieHeight,e,t,this.seriesBrush,this.borderColor,this.colorIndex,this.colorCount);return i.textPosition=this.textPosition,i}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){this.textPosition=new PointF(0,0),this.startSideExists=!0,this.endSideExists=!0,this.value=t,this.argumentText=i,this.tag=s,this.index=r,this.colorIndex=d,this.colorCount=m,this.area=e,this.series=n,this.rectPieSlilce=l,this.pieHeight=o,this.startAngle=a,this.sweepAngle=h,this.seriesBrush=u,this.borderColor=S,null!=n.core.interaction&&(this.interaction=new StiSeriesInteractionData(e,n,d))}}__.d.StiPie3dSlice=StiPie3dSlice}let StiPie3dSlice=__.d.StiPie3dSlice,Size=Stimulsoft.System.Drawing.Size;__.d.StiPie3dSeriesCoreXF=class extends __.d.StiPieSeriesCoreXF{renderSeries(e,t,i,s){this.initializePieSlices(i.area,t,s,e.options.zoom),null!=this.mPieSlices&&0!=this.mPieSlices.length||this.initializeEmptyPieSlices(i.area,t,s,e.options.zoom),this.drawBottoms(i),0<this.pieHeight&&this.drawSliceSides(i),this.drawTops(i),this.drawLabels(i,e)}drawLabels(i,s){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawLabels(i,s)}}drawTops(i){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawTopPieSliceGeom(i)}}drawSliceSides(r){if(null==this.mPieSlices)return;let n=this.mPieSlices[Stimulsoft.System.StiObject.stimulsoft]().toList();if(0==n.length)return;let t=null;if(90<this.mPieSlices[0].startAngle&&this.mPieSlices[0].startAngle<=270&&450<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle){let e=(t=n[0]).split(0);n[0]=e[0],t.initTextPosition(r),0<Math.abs(e[1].sweepAngle)&&n.insert(1,e[1])}else if(270<this.mPieSlices[0].startAngle&&450<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle||this.mPieSlices[0].startAngle<90&&270<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle){let e=(t=n[0]).split(180);n[0]=e[1],t.initTextPosition(r),0<Math.abs(e[1].sweepAngle)&&n.add(e[0])}(t=n[0]).drawSides(r);let l=1,o=n.length-1;while(l<o){let e=n[o],t=e.startAngle-90,i=((180<t||t<0)&&(t=0),n[l]),s=(450-i.endAngle)%360;(s=180<s||s<0?0:s)>=t?(i.drawSides(r),++l):s<t&&(e.drawSides(r),--o)}(t=n[o]).drawSides(r)}drawBottoms(i){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawBottomPieSliceGeom(i)}}measureBoundingRect(t){let i=1.61,s=Rectangle.empty;if(t.width/t.height>i){let e=t.height*i;s=new Rectangle((t.width-e)/2,0,e,t.height)}else{let e=t.width/i;s=new Rectangle(0,(t.height-e)/2,t.width,e)}return s=new Rectangle(s.x+.025*s.width,s.y+.025*s.height,.95*s.width,.95*s.height)}initializePieSlices(u,e,t,S){let d=this.measureBoundingRect(e),m=new List,c=this.getGradPerValue(t),i=t[0],g=i.startAngle%360,p=this.getColorCount(t),_=(this.pieHeight=i.options3D.height*S,this.getLargestDisplacement(S)),f=this.getTopEllipseSize(d,S),C=0,w=-1;for(let h of t[Stimulsoft.System.StiObject.stimulsoft]().toList())for(let a=0;a<h.values.length;a++){let o=h.values[a];if(0!=o&&null!=o){let t=c*Math.abs(o),i=h.brush;if(h.allowApplyBrush&&(i=h.core.getSeriesBrush(C,p),i=h.processSeriesBrushes(a,i)),0<=h.options3D.opacity&&h.options3D.opacity<1){let e=StiBrush.toColor(i);e=Color.fromArgb(255*h.options3D.opacity,e.r,e.g,e.b),i=new StiSolidBrush(e)}let e=h.borderColor,s=(h.allowApplyBorderColor&&(e=h.core.getSeriesBorderColor(C,p)),this.getLargestDisplacement(S)),r=this.getLargestDisplacement(S);if(0<s){let e=this.getSliceDisplacement(g+t/2,s,r);s=e.width,r=e.height}let n=new Rectangle(d.x+2*_+s,d.y+2*_+r,f.width,f.height),l=new StiPie3dSlice(u,o,this.getArgumentText(h,a),h.core.getTag(a),a,h,n,this.pieHeight,g%360,t,i,e,C,p);-1<w||g<=270&&270<g+t||270<=g&&630<g+t?(++w,m.insert(w,l)):m.add(l),g+=t}C++,360<g&&(g-=360)}this.mPieSlices=m}initializeEmptyPieSlices(h,e,t,u){let S=this.measureBoundingRect(e),d=new List,i=new StiChart,m=(i.isAnimation=!1,new __.d.StiPie3dSeries),s=(m.chart=i,[1,3]),c=360/4,g=0,p=(this.pieHeight=20*u,this.getLargestDisplacement(u)),_=this.getTopEllipseSize(S,u),f=-1;for(let a=0;a<s.length;a++){let o=s[a];if(0!=o&&null!=o){let t=c*Math.abs(o),e=new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),i=Color.lightGray,s=this.getLargestDisplacement(u),r=this.getLargestDisplacement(u);if(0<s){let e=this.getSliceDisplacement(g+t/2,s,r);s=e.width,r=e.height}let n=new Rectangle(S.x+2*p+s,S.y+2*p+r,_.width,_.height),l=new StiPie3dSlice(h,o,"",null,a,m,n,this.pieHeight,g%360,t,e,i,0,0);-1<f||g<=270&&270<g+t||270<=g&&630<g+t?(++f,d.insert(f,l)):d.add(l),g+=t}360<g&&(g-=360)}this.mPieSlices=d}getTopEllipseSize(e,t){let i=this.getLargestDisplacement(t),s=e.width-4*i,r=e.height-4*i-this.pieHeight;return s<1&&(s=1),r<1&&(r=1),new Size(s,r)}getSliceDisplacement(e,t,i){if(0==t)return Size.empty;let s=t*Math.cos(e*Math.PI/180),r=i*Math.sin(e*Math.PI/180);return new Size(s,r)}getLargestDisplacement(e){return this.series.options3D.distance*e}get localizedName(){return"3D "+StiLocalization.get("Chart","Pie")}constructor(e){super(e)}},__.d.StiRadarSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100))}getPointsList(e,n,t){let i=[],l=n.area,o=l.core;for(let r of t){let s=[],e=(i.push(s),0);for(let i of o.points){let t=e<r.values.length?r.values[e]:null;if(null==(t=null==t&&r.showNulls?0:t))s.push(null);else{null!=t&&(t=(t-l.yAxis.info.minimum)*l.yAxis.info.dpi);let e=new PointD(o.centerPoint.x+t*i.x,o.centerPoint.y+t*i.y);e.x-=n.clientRectangle.x,e.y-=n.clientRectangle.y,s.push(e)}e++}}return i}renderSeries(l,e,o,t){if(null==t||0==t.length||null==this.series.chart)return;let a=this.getPointsList(this.series.values,o,t),h=this.getPointsList(this.series.valuesStart,o,t),u=0;for(let n of t){let e=a[u],t=(e.push(e[0]),n.arguments.map(e=>e)),i=((t=t.length<e.length-1?e.map((e,t)=>t.toString()):t).push(t[0]+"_e"),h[u]),s=(i.push(i[0]),new PointD(o.clientRectangle.width/2,o.clientRectangle.height/2)),r=new __.d.StiSeriesPointsInfo;r.pointsFrom=i.map(e=>null!=e?e:s),r.points=e.map(e=>null!=e?e:s),r.pointsIds=t.map(e=>e),this.renderAreas(l,n,r,o),this.renderLines(l,n,r,o),e.splice(e.length-1,1),this.renderPoints(l,n,e,o),e.splice(e.length-1,1),u++}}renderAreas(e,t,i,s){}renderLines(e,t,i,s){}renderPoints(n,l,e,o){let a=0;for(let r of e){if(null!=r){let i=a<l.values.length?l.values[a]:null,e=new __.d.StiRadarPointSeriesElementGeom(o,i,a,l.marker.brush,l,r,n.options.zoom),s=(null!=o&&(o.createChildGeoms(),o.childGeoms.push(e)),l.core.getSeriesLabels());if(null!=s&&s.visible&&null!=i){let t=r;if(0==s.step||a%s.step==0){let e=s.core.renderLabel(l,n,t,t,a,i,i,this.getArgument(l,a),l.core.getTag(a),0,1,o.clientRectangle);null!=e&&(o.createChildGeoms(),o.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(s,o,e.clientRectangle.clone()))}}}a++}}getArgument(t,i){let s,r,n=t.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(t.arguments.length>i){let e=null!=(r=null==(s=t.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n))?void 0:s.toString())?r:"";return e.replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}return""}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return new StiSolidBrush(StiColorUtils.dark(Color.white,20));return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return Color.black;return i}constructor(e){super(e)}},__.d.StiRadarAreaSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t),i.lineColor=t)}get localizedName(){return StiLocalization.get("Chart","RadarArea")}renderLines(e,t,i,s){let r=new __.d.StiLineSeriesGeom(s,i,t);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}renderAreas(e,t,i,s){let r=new __.d.StiRadarAreaSeriesGeom(t,i);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}constructor(e){super(e)}},__.d.StiRadarLineSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lineColor=t)}get localizedName(){return StiLocalization.get("Chart","RadarLine")}renderLines(e,t,i,s){let r=new __.d.StiLineSeriesGeom(s,i,t);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}constructor(e){super(e)}},__.d.StiRadarPointSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarPointSeries);i.allowApplyStyle&&!e.core.markerVisible&&(i.marker.visible=!0)}get localizedName(){return StiLocalization.get("Chart","RadarPoint")}constructor(e){super(e)}},__.d.StiRangeBarSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{renderSeries(C,w,b,y){let x,A,L=[];if(null==y||0==y.length||null==this.series.chart)return;let T=b.area,D=T.axisCore.getDividerX(),v=T.axisCore.getDividerY();for(let f of y){let e=f.values.length,t=(f.valuesEnd.length<e&&(e=f.valuesEnd.length),f.arguments.length),c=Math.min(e,t),g=T.reverseHor?c-1:0,p=0,_=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();while(p<c){let r=f.values[p],n=f.valuesEnd[p],e=(null==r&&(r=0),null==n&&(n=0),Math.abs(r-n)*T.yAxis.info.dpi),t=v,i=Math.max(r,n),s=(T.reverseVert?t+=Math.min(r,n)*T.yAxis.info.dpi:t-=i*T.yAxis.info.dpi,T.xAxis.info.stripLines.count-1);for(let e of T.xAxis.info.stripLines.list){if((null==(x=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_))?void 0:x.toString())==(null==(A=e.valueObject)?void 0:A.toString()))break;s--}s=T.xAxis.info.stripLines.count-1-s;let l=(T.xAxis.info.step-T.xAxis.info.step*(1-f.width))/y.length,o=D-l/2,a=(o+=T.xAxis.info.step*s,new RectangleD(o,t,l,e)),h=RectangleD.fromLTRB(a.left,a.bottom,a.right,a.bottom),u=f.core.getSeriesBrush(g,c),S=f.processSeriesBrushes(g,u),d=new __.d.StiRangeBarElementGeom(b,i,p,f,S,a,h);if(null!=f.core.interaction){let e=this.getInteraction(T,f,p);d.interaction=e}b.createChildGeoms(),b.childGeoms.push(d);let m=f.core.getSeriesLabels();if(null!=m&&m.visible){let i=new PointD(o+l/2,t),s=new PointD(o+l/2,t+e);if(0==m.step||p%m.step==0){if(n<r){let e=r;r=n,n=e}let e=m.core.renderLabel(f,C,s,s,p,r,r,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w),t=m.core.renderLabel(f,C,i,i,p,n,n,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w);null!=t&&(L.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone())),null!=e&&(L.push(e),e.clientRectangle=this.checkLabelsRect(m,b,e.clientRectangle.clone()))}}g=T.reverseHor?g-1:g+1,p++}}for(let e of L)b.createChildGeoms(),b.childGeoms.push(e)}get localizedName(){return StiLocalization.get("Chart","RangeBar")}constructor(e){super(e)}},__.d.StiRangeSeriesCoreXF=class extends __.d.StiLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,l=f.xAxis.core.getStartFromZero();for(let m of e){let r=Math.min(m.values.length,m.valuesEnd.length),h=StiArray.create(PointD,r,!0),u=StiArray.create(PointD,r,!0),n=StiArray.create(String,r,!0);m.valuesEnd.length<r&&(r=m.valuesEnd.length);for(let s=0;s<r;s++){let e=_.reverseHor?m.values[r-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[r-s-1]:m.valuesEnd[s],i=(m.showZeros||0!=e||(e=null),m.showZeros||0!=t||(t=null),e==t?h[s]=u[s]=this.getYPoint(e,m,_,s):(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s)),(l?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);n[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let e=new __.d.StiSeriesPointsInfo,t=(e.points=h,e.pointsEnd=u,e.pointsIds=n,new __.d.StiSeriesPointsInfo),S=(t.points=u,t.pointsIds=n,t.additionalSeriesId="_e",this.renderAreas2(p,e,m),e.pointsZeroConnect=this.getPointsZeroConnect(m,m.values,f),e.pointsNullConnect=this.getPointsNullConnect(m,m.values,f),this.renderLines2(c,p,e,m.values,m),t.pointsZeroConnect=this.getPointsZeroConnect(m,m.valuesEnd,f),t.pointsNullConnect=this.getPointsNullConnect(m,m.valuesEnd,f),this.renderLines2(c,p,t,m.valuesEnd,m),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<r;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}renderLines2(t,i,s,e,r){if(null!=s.points&&1<s.points.length){let e=new __.d.StiLineSeriesGeom(i,s,r);i.createChildGeoms(),i.childGeoms.push(e),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers2(t,i,s.points,e,r)}renderMarkers2(l,o,e,a,h){let u=o.area,S=h;if(0==e.length)return;let d=!S.marker.visible&&0<S.toolTips.length;if(null!=S.marker&&(S.marker.visible||d)){let r=0,n=Math.min(S.values.length,S.valuesEnd.length);for(let s of e){if(null!=s){let e=u.reverseHor?a[n-r-1]:a[r],t=(null==e&&S.showNulls&&(e=0),o.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),s);if(i.x+=o.clientRectangle.x,i.y+=o.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(h,r,e,s,S.marker,S.showShadow,l.options.zoom,d);if(null!=t){if(null!=S.core.interaction){let e=this.getInteraction(u,S,r);t.interaction=e}o.createChildGeoms(),o.childGeoms.push(t)}}}r++}}}getYPoint(t,i,s,e){let r,n=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[e+1]:s.xAxis.info.stripPositions[e];if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(n,e)}else r=null;return r}renderAreas2(l,o,a){if(null==o.points||o.points.length<=1)return;if(a.showNulls){let e=new __.d.StiRangeSeriesGeom(l,o,a);null!=e&&(l.createChildGeoms(),l.childGeoms.push(e))}else{let s=[],r=[],n=[];for(let i=0;i<o.pointsIds.length;i++){let e=o.points[i],t=o.pointsEnd[i];if(null==e&&null!=t?s.push(t):s.push(e),null!=e&&null==t?r.push(e):r.push(t),null==e&&null==t||n.push(o.pointsIds[i]),null==e&&null==t||i==o.pointsIds.length-1){let e=new __.d.StiSeriesPointsInfo,t=(e.points=s,e.pointsEnd=r,e.pointsIds=n,new __.d.StiRangeSeriesGeom(l,e,a));null!=t&&(l.createChildGeoms(),l.childGeoms.push(t)),s=[],r=[],n=[]}}}}get localizedName(){return StiLocalization.get("Chart","Range")}constructor(e){super(e)}},__.d.StiSplineRangeSeriesCoreXF=class extends __.d.StiSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,n=f.xAxis.core.getStartFromZero();for(let m of e){let e=m.values.length,h=(m.valuesEnd.length<e&&(e=m.valuesEnd.length),StiArray.create(PointD,e,!0)),u=StiArray.create(PointD,e,!0),r=StiArray.create(String,e,!0);for(let s=0;s<e;s++){let e=_.reverseHor?m.values[m.values.length-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[m.values.length-s-1]:m.valuesEnd[s],i=(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s),(n?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);r[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let t=new __.d.StiSeriesPointsInfo,i=(t.points=h,t.pointsEnd=u,t.pointsIds=r,new __.d.StiSeriesPointsInfo),S=(i.points=u,i.pointsIds=r,i.additionalSeriesId="_e",this.renderAreas2(p,t,m),t.pointsZeroConnect=this.getPointsZeroConnect(m,m.values,f),t.pointsNullConnect=this.getPointsNullConnect(m,m.values,f),this.renderLines(c,p,t),i.pointsZeroConnect=this.getPointsZeroConnect(m,m.valuesEnd,f),i.pointsNullConnect=this.getPointsNullConnect(m,m.valuesEnd,f),this.renderLines(c,p,i),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<e;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}getYPoint(t,i,s,e){let r,n=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[e+1]:s.xAxis.info.stripPositions[e];if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(n,e)}else r=null;return r}renderAreas2(l,o,a){if(null==o.points||o.points.length<=1)return;if(a.showNulls){let e=new __.d.StiSplineRangeSeriesGeom(l,o,a);null!=e&&(l.createChildGeoms(),l.childGeoms.push(e))}else{let s=[],r=[],n=[];for(let i=0;i<o.pointsIds.length;i++){let e=o.points[i],t=o.pointsEnd[i];if(null==e&&null!=t?s.push(t):s.push(e),null!=e&&null==t?r.push(e):r.push(t),null==e&&null==t||n.push(o.pointsIds[i]),null==e&&null==t||i==o.pointsIds.length-1){let e=new __.d.StiSeriesPointsInfo,t=(e.points=s,e.pointsEnd=r,e.pointsIds=n,new __.d.StiSplineRangeSeriesGeom(l,e,a));null!=t&&(l.createChildGeoms(),l.childGeoms.push(t)),s=[],r=[],n=[]}}}}get localizedName(){return StiLocalization.get("Chart","SplineRange")}constructor(e){super(e)}},__.d.StiSteppedRangeSeriesCoreXF=class extends __.d.StiSteppedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,l=f.xAxis.core.getStartFromZero();for(let m of e){let r=Math.min(m.values.length,m.valuesEnd.length),h=StiArray.create(PointD,r,!0),u=StiArray.create(PointD,r,!0),n=StiArray.create(String,r,!0);m.valuesEnd.length<r&&(r=m.valuesEnd.length);for(let s=0;s<r;s++){let e=_.reverseHor?m.values[r-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[r-s-1]:m.valuesEnd[s],i=(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s),(l?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);n[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let e=new __.d.StiSeriesPointsInfo,t=(e.points=h,e.pointsIds=n,e.pointsEnd=u,new __.d.StiSeriesPointsInfo),S=(t.points=u,t.pointsIds=n,t.additionalSeriesId="_e",this.renderAreas2(c,p,e,m),this.renderLines2(c,p,e,m.values,m),this.renderLines2(c,p,t,m.valuesEnd,m),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<r;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),this.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),this.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}renderAreas2(e,t,i,s){if(null==i.points||i.points.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let r=new __.d.StiSteppedRangeSeriesGeom(t,i,s);null!=r&&(t.createChildGeoms(),t.childGeoms.push(r))}renderLines2(t,i,s,e,r){let n=r;if(1<s.points.length||n.pointAtCenter&&0<s.points.length){let e=new __.d.StiSteppedLineSeriesGeom(i,s,r);null!=e&&(i.createChildGeoms(),i.childGeoms.push(e)),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers2(t,i,s.points,e,r)}renderMarkers2(n,l,e,o,a){let h=l.area,u=a;if(0==e.length)return;let S=!u.marker.visible&&0<u.toolTips.length;if(null!=u.marker&&(u.marker.visible||S)){let r=0;for(let s of e){if(null!=s){let e=h.reverseHor?o[u.values.length-r-1]:o[r],t=(null==e&&u.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(a,r,e,s,u.marker,u.showShadow,n.options.zoom,S);if(null!=t){if(null!=u.core.interaction){let e=this.getInteraction(h,u,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}getYPoint(t,i,s,e){let r,n=s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getKeys(),l=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(e+1,n):s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(e,n);if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(l,e)}else r=null;return r}get localizedName(){return StiLocalization.get("Chart","SteppedRange")}constructor(e){super(e)}},__.d.StiScatterLineSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiLineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","ScatterLine")}constructor(e){super(e)}},__.d.StiScatterSplineSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiScatterSplineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","ScatterSpline")}constructor(e){super(e)}};{class mIa extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(p,_,f,C){if(null==C||0==C.length||null==this.series.chart)return;let w=[],b=[],y=[],x=f.area,i=this.series,r=x.xAxis.core.getStartFromZero(),A=x.axisCore.getDividerY(),L=x.yAxis.info.dpi,T=(this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(L=x.yRightAxis.info.dpi),new List),s=0;for(let i=0;i<C.length;i++)for(let t=0;t<C[i].values.length;t++){let e;T.length>t?e=T[t]:(e=new Array(C.length),T.add(e)),e[i]=s,s++}let D=s;for(let g=0;g<x.axisCore.valuesCount;g++){let e=r?x.xAxis.info.stripPositions[g+1]:x.xAxis.info.stripPositions[g],l=(e-=x.xAxis.info.step/2,x.xAxis.info.step-x.xAxis.info.step*(1-i.width)),d=e+(x.xAxis.info.step-l)/2,m=0,c=0;if(0==C.length)return;let t=C[0].showShadow;if(t=C[0].chart.isAnimation&&!C[0].chart.report.isDesigning?!1:t){for(let i=0;i<C.length;i++)if(g<C[i].values.length){let e=C[i],t=x.reverseHor?e.values[e.values.length-g-1]:e.values[g];null!=t&&(0<(t=x.reverseVert?-t:t)?m+=t:c+=t)}if(0<m){let e=new RectangleD(d,-m*L+A,l,m*L),t=new __.d.StiStackedColumnSeriesShadowElementGeom(C[0],e,!0,!1);f.createChildGeoms(),f.childGeoms.push(t)}if(c<0){let e=new RectangleD(d,A,l,-c*L),t=(e.y-=7,e.height+=7,new __.d.StiStackedColumnSeriesShadowElementGeom(C[0],e,!1,!0));f.createChildGeoms(),f.childGeoms.push(t)}}m=0,c=0;let s=new List;for(let i=0;i<C.length;i++){let t=C[i];if(g<t.values.length){let e=x.reverseHor?t.values[t.values.length-g-1]:t.values[g];s.add({key:i,value:e})}else s.add({key:i,value:0})}for(let e of s=s.orderBy(e=>e.value)){let u=e.value;if(null==u)continue;let n=e.key,S=C[n];if(g<S.values.length){let o=T[g][n],a=x.reverseHor?C[Stimulsoft.System.StiObject.stimulsoft]().toList().cast().sum(e=>mIa.getValueFromArray(e.values,S.values.length-g-1)):C[Stimulsoft.System.StiObject.stimulsoft]().toList().cast().sum(e=>mIa.getValueFromArray(e.values,g)),e=(u=x.reverseVert&&null!=u?-u:u)*L,t=-e+A,h=(0<u?t-=m:(t=c+A,e=-e),new RectangleD(d,t,l,e)),r=(h=this.correctRect(h,_),u<0?new RectangleD(h.left,h.top,h.right,h.top):new RectangleD(h.left,h.bottom,h.right,h.bottom)),i=f.view.clientRectangle.clone(),s=(i.x=0,i.y=0,h.clone());if(s.x+=f.clientRectangle.x,s.y+=f.clientRectangle.y,s.right>i.x&&s.x<i.right||this.series.chart.area.xAxis.range.auto){let s=S.core.getSeriesBrush(o,D);if(s=S.processSeriesBrushes(g,s),0!=h.width&&0<StiMath.round2(h.height,2)&&null!=s){let t=S.core.getSeriesBorderColor(o,D),e=new __.d.StiStackedColumnSeriesElementGeom(f,u,g,s,t,S,h,r),i=(null!=S.core.interaction&&(e.interaction=this.getInteraction(x,S,g)),b.push(e),y[n]);if(null!=i)i.rectangles.add(h);else{let e=StiBrush.toColor(s).changeAlpha(150);(i=new __.d.StiRibbonSeriesMetadata(new StiSolidBrush(e),t)).rectangles.add(h),y[n]=i}}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&(0<StiMath.round2(h.height,2)||l.showNulls)){let s=new PointD(h.x+h.width/2,h.y),r=new PointD(h.x+h.width/2,h.bottom),n=x.reverseHor?S.values[S.values.length-g-1]:S.values[g];if(x.reverseVert&&null!=n&&(n=-u),u<0&&(r.y=h.y,s.y=h.bottom),0==l.step||g%l.step==0){let e=u,t=(S.isTotalLabel&&(e=n=a),x.xAxis.startFromZero?g+1:g),i=l.core.renderLabel(S,p,s,r,g,e,n,x.axisCore.getArgumentLabel(x.xAxis.info.stripLines.getByIndex(t),S),S.core.getTag(g),o,D,_);null!=i&&w.push(i)}}}0<u?m+=e:c+=e}}}for(let s=0;s<y.length;s++){let i=y[s];if(i){let e=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks+__.d.StiChartHelper.globalBeginTimeElement.ticks/(s+1)*s),t=new __.d.StiRibbonSeriesGeom(f,i,C[s],e);f.createChildGeoms(),f.childGeoms.push(t)}}for(let t=b.length-1;0<=t;t--){let e=b[t];f.createChildGeoms(),f.childGeoms.push(e)}for(let e of w)f.createChildGeoms(),f.childGeoms.push(e),e.ClientRectangle=this.checkLabelsRect(e.SeriesLabels,f,e.ClientRectangle)}static getValueFromArray(e,t){if(null==e||t<0||t>=e.length)return 0;return e[t]}correctRect(t,i){if(t.y>i.height||t.bottom<0)return t.height=0,t;if(t.top<0){let e=-t.top;t.y+=e,t.height-=e}if(i.height<t.bottom){let e=t.bottom-i.height;t.height-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","Ribbon")}constructor(e){super(e)}}__.d.StiRibbonSeriesCoreXF=mIa}let DataTable=Stimulsoft.System.Data.DataTable,DataColumn=Stimulsoft.System.Data.DataColumn,StiSimpleBorder=(__.d.StiSunburstSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.borderThickness=e.core.seriesBorderThickness)}renderSeries(r,s,n,i){let e,l,o=this.getDataTable(i);if(o.rows.count<1){let e=this.getRadius(r,s),t=this.getPointCenter(s),i=new Rectangle(t.x-e,t.y-e,2*e,2*e);return n.createChildGeoms(),void n.childGeoms.push(new __.d.StiSunburstEmptySeriesElementGeom(i))}let a=o.columns.count-1;for(let t=0;t<o.rows.count;t++){for(let e=0;e<i.length;e++)0<i.length&&i[e].arguments.length>t?o.rows.getByIndex(t).setValue(e+1,i[e].arguments[t]):o.rows.getByIndex(t).setValue(e+1,null);0<i.length&&i[0].values.length>t?o.rows.getByIndex(t).setValue(a,i[0].values[t]):o.rows.getByIndex(t).setValue(a,null)}let h=new Dictionary;for(let i of o.rows.list){let t=null!=(l=null==(e=i.gett(1))?void 0:e.toString())?l:"";if(h.contains(t)){let e=h.get(t);e.loadDataRow(i.itemArray)}else{let e=o.clone();e.loadDataRow(i.itemArray),h.add(t,e)}}let u=this.getRadius(r,s),S=this.getPointCenter(s),d=this.getGradPerValue(o);if(isNaN(d)||Number.POSITIVE_INFINITY==d||Number.NEGATIVE_INFINITY==d)return;let m=0,c=0,g=new List;for(let s of h.values){let e=this.getSumColumn(s,"Value"),t=d*e,i={ref:g};this.renderComputeSeries(r,n,s,S,u,m,d,c,h.count,i),g=i.ref,m+=t,c++}for(let e of g)null!=e&&(n.createChildGeoms(),n.childGeoms.push(e))}renderComputeSeries(n,l,o,a,e,h,u,S,d,m){let c=1,g=e/(o.columns.count-1);for(let r=1;r<o.columns.count-1;r++){let s=new Dictionary;for(let e of o.rows.list){let t=e.gett(r),i=(null==t&&(t=""),StiValueHelper.tryToNullableNumber(e.gett(o.columns.count-1)));if(s.contains(t)&&null!=i){let e=StiValueHelper.tryToNullableNumber(s.get(t));s.set(t,Math.abs(e)+Math.abs(i))}else if(StiString.isNullOrEmpty(t.toString())){let e="*StiGuid:"+StiGuidUtils.newGuid();s.set(e,i)}else s.set(t,i)}let e=s.keys.toArray(),t=s.values.toArray(),i=(this.renderLevelSeries(n,l,e,t,a,g*c,g*(c+1),h,u,S,d,c),this.renderLevelSeriesLebels(n,e,t,a,g*c,g*(c+1),h,u,c));m.ref.addRange(i),c++}}renderLevelSeries(e,r,n,t,l,o,a,h,u,S,d,m){let c=this.series.core.getSeriesBorderColor(S,d),g=this.series.core.getSeriesBrush(S,d),p=t,_=(0==c.a&&(c=Color.white),__.d.StiChartHelper.globalBeginTimeElement);for(let s=0;s<p.length;s++){let t=p[s],e=n[s],i=u*Math.abs(t);if(!StiString.isNullOrEmpty(e.toString())&&!e.toString().startsWith("*StiGuid:")){let e=this.renderSunburstElement(l,o,a,c,g,h,i,t,m,S,s,r,new TimeSpan(_.ticks/(d+p.length)*(s+S)));null!=e&&(r.createChildGeoms(),r.childGeoms.push(e))}h+=i}}renderLevelSeriesLebels(a,e,t,h,u,S,d,m,i){let c=new List;for(let o=0;o<t.length;o++){let r=t[o],n=e[o],l=m*Math.abs(r);if(!StiString.isNullOrEmpty(n.toString())&&!n.toString().startsWith("*StiGuid:")){let e=null,t=i-1<this.series.chart.series.count?this.series.chart.series.getByIndex(i-1):this.series;if(t.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),t.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=t.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let s=e.as(__.d.IStiPieSeriesLabels);if(null!=s&&s.visible&&(0==s.step||o%s.step==0)){let e,t={ref:e},i=s.core.renderLabel(this.series,a,h,u,S,d+l/2,o,Math.abs(r),r,n,this.getTag(o),!1,0,1,m,t,!1,0);e=t.ref,c.push(i)}}}d+=l}return c}renderSunburstElement(e,t,i,s,r,n,l,o,a,h,u,S,d){if(0==l||null==l)return null;let m=new Rectangle(e.x-t,e.y-t,2*t,2*t),c=new Rectangle(e.x-i,e.y-i,2*i,2*i);if(m.width<=0&&m.height<=0)return null;let g=new List,p=(g.push(new StiArcSegmentGeom(m,n,l)),g.push(new StiLineSegmentGeom(this.getPoint(e,t,n+l),this.getPoint(e,i,n+l))),g.push(new StiArcSegmentGeom(c,n+l,-l)),g.push(new StiLineSegmentGeom(this.getPoint(e,i,n),this.getPoint(e,t,n))),new __.d.StiSunburstSeriesElementGeom(S,o,a,h,u,this.series,m,c,g,s,r,n,n+l,t,i,d));return p}getPoint(e,t,i){let s=Math.PI*i/180;return new PointF(e.x+Math.cos(s)*t,e.y+Math.sin(s)*t)}getDataTable(e){let i=new DataTable,t=new DataColumn("Id",Number);i.columns.add(t);for(let t=0;t<e.length;t++){let e=new DataColumn("Argument-"+t.toString(),String);i.columns.add(e)}let s=new DataColumn("Value",Number),r=(i.columns.add(s),this.getCountRow(e));for(let e=0;e<r;e++){let e=i.newRow();i.rows.add(e)}return i}getCountRow(t){let i=0;for(let e of t)i=Math.max(i,e.arguments.length);return i}getGradPerValue(e){let t=this.getSumColumn(e,"Value");return 360/t}getRadius(e,t){return.95*Math.min(t.width/2,t.height/2)}getPointCenter(e){return new PointF(e.width/2,e.height/2)}getSumColumn(e,i){let s=0;for(let t of e.rows.toList()){let e=t.gett(i);null!=e&&!isNaN(e)||(e=0),s+=Math.abs(e)}return s}get localizedName(){return StiLocalization.get("Chart","Sunburst")}constructor(e){super(e)}},__.d.StiTreemapSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(o,e,a,t){let h=__.d.StiChartHelper.globalDurationElement,u=__.d.StiChartHelper.globalBeginTimeElement,S=[];for(let e of this.series.values)S.push(StiValueHelper.tryToNumber(e));e.inflate(-1,-1);let i=this.series.chart.area.core.normalizeDataForArea(S,e.width*e.height),d=this.series.chart.area.core.squarify(i,[],e,[]),m=0;for(let e of t){if(e==this.series)break;m+=e.values.length}let c=0;for(let e of t)c+=e.values.length;for(let l=0;l<d.length;l++){if(0==S[l]||null==S[l])continue;let e=this.series.core.getSeriesBrush(m,c),t=(e=this.series.processSeriesBrushes(m,e),this.series.core.getSeriesBorderColor(m,c)),i=(0!=t.a||this.series.chart.area.colorEach||(t=Color.white),new TimeSpan(u.ticks/d.length*(l+2))),s=new StiOpacityAnimation(h,i),r=new __.d.StiTreemapSeriesElementGeom(a,StiValueHelper.tryToNumber(this.series.values[l]),l,e,t,this.series,d[l],s);if(null!=this.series.core.interaction){let e=this.getInteraction(a.area,this.series,l);r.interaction=e}a.createChildGeoms(),a.childGeoms.push(r);let n=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCenterTreemapLabels);if(null!=n&&n.visible){let e=n.core.renderLabel(this.series,o,l,StiValueHelper.tryToNumber(this.series.values[l]),this.getArgumentText(this.series,l),this.series.core.getTag(l),m,c,d[l],null);null!=e&&(a.createChildGeoms(),a.childGeoms.push(e))}m++}}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}get localizedName(){return StiLocalization.get("Chart","Treemap")}constructor(e){super(e)}},__.d.StiSeriesLabelsCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiSeriesLabelsCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.seriesLabels.allowApplyStyle&&(this.seriesLabels.labelColor=e.core.seriesLabelsColor,this.seriesLabels.borderColor=e.core.seriesLabelsBorderColor,this.seriesLabels.brush=e.core.seriesLabelsBrush,this.seriesLabels.font=e.core.seriesLabelsFont)}get position(){return null}get seriesLabelsType(){return null}get localizedName(){return null}processSeriesColors(h,e,u){let S=e;if(null==this.seriesLabels)return S;for(let a of this.seriesLabels.chart.seriesLabelsConditions.list){if(null==u.values||u.values.length<=h)continue;let e=u.values[h],t=null,i=(u.is(__.d.IStiRangeSeries)&&h<u.valuesEnd.length&&(t=u.valuesEnd[h]),null),s=(null!=u.arguments&&h<u.arguments.length&&(i=u.arguments[h]),null),r=null,n=null,l=null,o=(u.is(__.d.IStiFinancialSeries)&&(h<u.valuesOpen.length&&(s=u.valuesOpen[h]),h<u.valuesClose.length&&(r=u.valuesClose[h]),h<u.valuesLow.length&&(n=u.valuesLow[h]),h<u.valuesHigh.length)&&(l=u.valuesHigh[h]),__.d.StiChartHelper.getFilterData(null,a,null));if(__.d.StiChartHelper.getFilterResult(a,i,e,t,s,r,n,l,o))return S=this.seriesLabels.chart.style.core.getColumnBrush(a.color),this.seriesLabels.chart.area.is(__.d.IStiClusteredBarArea)&&(S.is(StiGradientBrush)&&(S.angle+=90),S.is(StiGlareBrush))&&(S.angle+=90),S}return S}getSeriesLabelColor(e,t,i){let s=e.core.getSeriesBorderColor(t,i);return s=s.equals(Color.transparent)?StiBrush.toColor(e.core.getSeriesBrush(t,i)):s}getBorderColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.borderColor}getLabelColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.labelColor}recalcValue(e,t){return e}getLabelText(e,t,i,s,r,n=!1){return this.getLabelText2(e,t,i,s,r,0,n)}getLabelText2(t,i,s,e,r,n,l){let o="",a=this.seriesLabels.valueType;switch(a=l?this.seriesLabels.legendValueType:a){case __.d.StiSeriesLabelsValueType.Argument:o=this.getArgument(t,s);break;case __.d.StiSeriesLabelsValueType.Total:case __.d.StiSeriesLabelsValueType.Value:o=this.getFormattedValue(t,i);break;case __.d.StiSeriesLabelsValueType.SeriesTitle:o=r;break;case __.d.StiSeriesLabelsValueType.Tag:o=e;break;case __.d.StiSeriesLabelsValueType.Weight:o=n.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);break;case __.d.StiSeriesLabelsValueType.ValueArgument:{let e=this.getArgument(t,s);o=StiString.isNullOrEmpty(e)?this.getFormattedValue(t,i):StiString.format("{0} {1} {2}",this.getFormattedValue(t,i),this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.ArgumentValue:{let e=this.getFormattedValue(t,i);o=StiString.isNullOrEmpty(e)?this.getArgument(t,s):StiString.format("{0} {1} {2}",this.getArgument(t,s),this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.SeriesTitleArgument:{let e=this.getArgument(t,s);o=StiString.isNullOrEmpty(e)?r:StiString.format("{0} {1} {2}",r,this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.SeriesTitleValue:{let e=this.getFormattedValue(t,i);o=StiString.isNullOrEmpty(e)?r:StiString.format("{0} {1} {2}",r,this.seriesLabels.valueTypeSeparator,e);break}}if(l)return o;return StiString.format("{0}{1}{2}",this.seriesLabels.textBefore,o,this.seriesLabels.textAfter)}getArgument(t,i){let s=i;if(t.core.isDateTimeArguments){let e=DateTime.fromString(i,!1);null!=e&&(s=this.getFormatted(t,e.toOADate(),!0))}return s}getFormatted(n,l,o){var a,h;try{this.storedCulture=CultureInfo.currentCulture;let e=null==(h=null==(a=this.seriesLabels.chart)?void 0:a.report)?void 0:h.getParsedCulture(),t=(StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=new CultureInfo(e)),l),i=(o&&(t=DateTime.fromOADate(l)),this.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPieSeriesLabels)),s=this.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAxisSeriesLabels);if(!(null==this.seriesLabels.formatService||null!=i&&i.showInPercent||null!=s&&s.showInPercent))return this.seriesLabels.formatService.format(t);let r=null;if(null!=(r=null!=(r=null!=n?n.format:r)&&0!=r.trim().length?r:this.seriesLabels.format)&&0!=r.trim().length){if(r.startsWith("P")&&null!=this.seriesLabels.chart&&!__.d.StiChartOptions.oldChartPercentMode){let e=0,t;try{1<r.length&&(e=r[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),t=this.recalcValue(l,e)}catch(e){t=this.recalcValue(l,2)}return StiString.format("{0:N"+e.toString()+"}{1}",t,"%")}{let e=StiString.format("{0:"+r+"}",t);if(!o&&e==r)return t.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return e}}StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}catch(e){}return this.recalcValue(l,2).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getFormattedValue(e,t){if(null==t)return"";return this.getFormatted(e,t,e.core.isDateTimeValues)}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,this.seriesLabels.wordWrap||(t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),t}constructor(e){this.seriesLabels=e}},__.d.StiNoneLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.All}get position(){return __.d.StiSeriesLabelsPosition.None}get localizedName(){return StiLocalization.get("Chart","LabelsNone")}constructor(e){super(e)}},__.d.StiAxisSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d=null){return null}renderLabel2(e,t,i,s,r,n,l,o,a,h,u,S,d,m=null){return null}recalcValue(e,s){if(this.seriesLabels.showInPercent&&this.seriesLabels.chart.area.is(__.d.StiFullStackedColumnArea)&&null!=this.currentIndex){let t=this.seriesLabels.chart.area.core.getSeries(),i=0;for(let e of t)this.currentIndex<e.values.length&&(i+=e.values[this.currentIndex]);if(0!=i)return StiMath.round2(100*e/i,s)}return e}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Axis}constructor(e){super(e),this.currentIndex=null}},__.d.StiCenterAxisLabelsCoreXF=class extends __.d.StiAxisSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d=null){return this.currentIndex=r,this.renderLabel2(e,t,i,s,r,n,l,o,a,0,h,u,S,d)}renderLabel2(e,t,i,s,r,n,l,o,a,h,u,S,d,m=null){if(null==n&&!this.seriesLabels.showNulls)return null;if(0==n&&!this.seriesLabels.showZeros)return null;null==n&&(n=0);let c=this.getLabelText2(e,l=null==l?0:l,o,a,e.coreTitle,h,!1),g=this.getLabelColor(e,u,S),p=this.getBorderColor(e,u,S),_=this.getStringFormatGeom(t),f=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),C=e.core.getSeriesBorderColor(u,S),w=e.core.getSeriesBrush(u,S),b=this.processSeriesColors(r,this.seriesLabels.brush,e),y=this.getLabelRect(t,i,s,n,c,!0,f,_),x=null!=m?m[Stimulsoft.System.StiObject.stimulsoft]().as(StiLabelAnimation):null;return null!=x&&(x.labelRect=this.getLabelRect(t,x.pointFrom,s,x.valueFrom,x.valueFrom.toString(),!0,f,_)),new __.d.StiCenterAxisLabelsGeom(this.seriesLabels,e,r,n,y,c,g,p,w,b,C,f,m)}getLabelRect(e,t,i,s,r,n,l,o){return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?e.measureRotatedString3(r,l,new PointD(t.x,(t.y+i.y)/2),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD((t.x+i.x)/2,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}get position(){return __.d.StiSeriesLabelsPosition.CenterAxis}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiInsideBaseAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsInsideBase")}get position(){return __.d.StiSeriesLabelsPosition.InsideBaseAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,i.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,i.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(i.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(i.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiInsideEndAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get position(){return __.d.StiSeriesLabelsPosition.InsideEndAxis}get localizedName(){return StiLocalization.get("Chart","LabelsInsideEnd")}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,t.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,t.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(t.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiLeftAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Left")}get position(){return __.d.StiSeriesLabelsPosition.Left}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l);return 0<this.seriesLabels.width?a.width=this.seriesLabels.width*e.options.zoom:a.width+=2*e.options.zoom,this.seriesLabels.chart.area.reverseHor?e.measureRotatedString3(r,l,new PointD(t.x+a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x-a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiOutsideAxisLabelsCoreXF=class extends __.d.StiAxisSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S){let d=this.seriesLabels;if(null==n&&!d.showNulls)return null;if(0==n&&!d.showZeros)return null;null==n&&(n=0);let m=this.getLabelText(e,l=null==l?0:l,o,a,e.coreTitle),c=90,g=(this.seriesLabels.chart.area.is(__.d.IStiStackedBarArea)?(n<=0&&(c=-c),c+=90):n<0&&(c=-c),c*=Math.PI/180,new PointD(i.x+d.lineLength*Math.cos(c)*t.options.zoom,i.y-d.lineLength*Math.sin(c)*t.options.zoom)),p=StiFontGeom.changeFontSize(d.font,d.font.size*t.options.zoom),_=this.getStringFormatGeom(t),f=t.measureString2(m,p,this.seriesLabels.width*t.options.zoom,_),C=new RectangleD(g.x-f.width/2,g.y-f.height/2,f.width+1,f.height+1),w=this.getLabelColor(e,h,u),b=this.getBorderColor(e,h,u),y=e.core.getSeriesBorderColor(h,u),x=e.core.getSeriesBrush(h,u);return x=this.processSeriesColors(r,x,e),new __.d.StiOutsideAxisLabelsGeom(this.seriesLabels,e,r,n,C,m,w,b,x,y,p,g,i,null)}get position(){return __.d.StiSeriesLabelsPosition.OutsideAxis}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}constructor(e){super(e)}},__.d.StiOutsideBaseAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsOutsideBase")}get position(){return __.d.StiSeriesLabelsPosition.OutsideBaseAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,i.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,i.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(i.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(i.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiOutsideEndAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsOutsideEnd")}get position(){return __.d.StiSeriesLabelsPosition.OutsideEndAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<=s?e.measureRotatedString3(r,l,new PointD(t.x,t.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,t.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(t.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiRightAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Right")}get position(){return __.d.StiSeriesLabelsPosition.Right}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l);return 0<this.seriesLabels.width?a.width=this.seriesLabels.width*e.options.zoom:a.width+=2*e.options.zoom,this.seriesLabels.chart.area.reverseHor?e.measureRotatedString3(r,l,new PointD(t.x-a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x+a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiValueAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Value")}get position(){return __.d.StiSeriesLabelsPosition.Value}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureRotatedString3(r,l,new PointD(0,0),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom));return new RectangleD(t.x-a.width/2,t.y-a.height/2,a.width,a.height)}constructor(e){super(e)}},__.d.StiFunnelSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){return null}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}constructor(e){super(e)}},__.d.StiCenterFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y,x=(y=e.is(__.d.StiFunnelWeightedSlicesSeries)?new PointD(h.width/2,.05*h.height+u*this.getSumLastValues(e,i)+u*s/2):new PointD(h.width/2,u*i+u/2+.05*h.height),t.measureRotatedString3(g,C,y,f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)));return m.ref=c,new __.d.StiCenterFunnelLabelsGeom(this.seriesLabels,e,i,s,x,g,b,p,_,w,x,null)}getSumLastValues(t,i){let s=new List;for(let e of t.chart.series.list){let t=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeries);for(let e of t.values){if(!t.showZeros&&0==e)continue;s.push(e)}}let r=0;for(let e=0;e<i;e++){if(e>=s.length)break;r+=Math.abs(s[e])}return r}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.CenterFunnel}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiOutsideLeftFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y=t.measureRotatedString3(g,C,new PointD(0,0),f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),x=(c.width-=y.width,c.x+=y.width,new PointD(d-(s+r)*S/4,u*i+u/2+.05*h.height)),A=new PointD(.05*h.width+y.width,u*i+u/2+.05*h.height),L=t.measureRotatedString3(g,C,A,f,StiRotationMode.RightCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return m.ref=c,new __.d.StiOutsideFunnelLabelsGeom(this.seriesLabels,e,i,s,L,g,b,p,_,w,L,x,A)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.OutsideLeftFunnel}get localizedName(){return StiLocalization.get("PropertyMain","Left")}constructor(e){super(e)}},__.d.StiOutsideRightFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y=t.measureRotatedString3(g,C,new PointD(0,0),f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),x=(c.width-=y.width+5,new PointD(d+(s+r)*S/4,u*i+u/2+.05*h.height)),A=new PointD(.95*h.width-y.width,u*i+u/2+.05*h.height),L=t.measureRotatedString3(g,C,A,f,StiRotationMode.LeftCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return m.ref=c,new __.d.StiOutsideFunnelLabelsGeom(this.seriesLabels,e,i,s,L,g,b,p,_,w,L,x,A)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.OutsideRightFunnel}get localizedName(){return StiLocalization.get("PropertyMain","Right")}constructor(e){super(e)}},__.d.StiCenterHeatmapLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h=null){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=this.getLabelColor(e,l,o),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=this.processSeriesColors(i,this.seriesLabels.brush,e),f=this.getLabelRect(t,a,s,u,!0,c,m);return new __.d.StiCenterTreemapLabelsGeom(this.seriesLabels,e,i,s,f,u,S,d,p,_,g,c,h)}getLabelRect(e,t,i,s,r,n,l){return e.measureRotatedString3(s,n,new PointD(t.x+t.width/2,t.y+t.height/2),l,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}get position(){return __.d.StiSeriesLabelsPosition.CenterHeatmap}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Heatmap}constructor(e){super(e)}},__.d.StiPictorialStackedLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h){return null}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}constructor(e){super(e)}},__.d.StiCenterPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.x+h.width/2,h.y+h.height/2)),f=t.measureRotatedString3(u,c,_,m,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return new __.d.StiCenterFunnelLabelsGeom(this.seriesLabels,e,i,s,f,u,p,S,d,g,f,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.OutsideLeftPictorialStacked}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiOutsideLeftPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.right,h.y+h.height/2)),f=this.seriesLabels.lineColor,C=t.measureRotatedString3(u,c,_,m,StiRotationMode.RightCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),w=new RectangleD(h.right,h.y,a,h.height);return new __.d.StiOutsidePictorialStackedLabelGeom(this.seriesLabels,e,i,s,h,u,p,S,f,d,g,C,w,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.CenterPictorialStacked}get localizedName(){return StiLocalization.get("PropertyMain","Left")}constructor(e){super(e)}},__.d.StiOutsideRightPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.x+a,h.y+h.height/2)),f=this.seriesLabels.lineColor,C=t.measureRotatedString3(u,c,_,m,StiRotationMode.LeftCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),w=new RectangleD(h.x+.3*a,h.y,.7*a,h.height);return new __.d.StiOutsidePictorialStackedLabelGeom(this.seriesLabels,e,i,s,h,u,p,S,f,d,g,C,w,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.OutsideRightPictorialStacked}get localizedName(){return StiLocalization.get("PropertyMain","Right")}constructor(e){super(e)}},__.d.StiCenterPie3dLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.CenterPie3d}get localizedName(){return"3D "+StiLocalization.get("Chart","LabelsCenter")}renderLabel2(e,t,i){let s=this.getLabelText(e,i.value,i.argumentText,i.tag,e.coreTitle),r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),n=this.getStringFormatGeom(t),l=this.getLabelRect(t,i.textPosition,s,r,n),o=l.clone(),a=(o.x=-o.width/2,o.y=-o.height/2,this.getBorderColor(e,i.colorIndex,i.colorCount)),h=e.core.getSeriesBorderColor(i.colorIndex,i.colorCount),u=e.core.getSeriesBrush(i.colorIndex,i.colorCount),S=new StiSolidBrush(this.getLabelColor(e,i.colorIndex,i.colorCount)),d=(u=this.processSeriesColors(i.index,u,e),this.processSeriesColors(i.index,this.seriesLabels.brush,e));return new __.d.StiCenterPieLabelsGeom(this.seriesLabels,e,i.index,i.value,o,s,u,S,d,a,h,StiRotationMode.CenterCenter,l,this.seriesLabels.angle,null)}getLabelRect(e,t,i,s,r){return e.measureRotatedString3(i,s,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}recalcValue(e,i){if(this.seriesLabels.showInPercent){let t=this.seriesLabels.chart.area.core.getSeries();if(0<t.length){let e=[];t[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0<e.length&&e[0].is(__.d.StiPieSeries)&&(this.percentPerValue=e[0].core.getPercentPerValue(e))}return StiMath.round2(e*this.percentPerValue,i)}return e}constructor(e){super(e),this.percentPerValue=0}},__.d.StiPieSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){return null}recalcValue(e,i){if(this.seriesLabels.showInPercent){let t=this.seriesLabels.chart.area.core.getSeries();if(0<t.length){let e=[];t[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0<e.length&&e[0].is(__.d.StiPieSeries)&&(this.percentPerValue=e[0].core.getPercentPerValue(e))}return StiMath.round2(e*this.percentPerValue,i)}return e}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}constructor(e){super(e),this.percentPerValue=0}},__.d.StiCenterPieLabelsCoreXF=class extends __.d.StiPieSeriesLabelsCoreXF{renderLabel(s,r,n,l,e,t,o,a,i,h,u,S,d,m,c,g,p,_){let f=RectangleD.empty;if(g.ref=f,this.percentPerValue=c,null==i&&!this.seriesLabels.showNulls)return null;if(0==i&&!this.seriesLabels.showZeros)return null;if(null==a&&(a=0),null==i&&(i=0),isNaN(l)||isNaN(e))return null;let C="",w=(C=p?this.getFormattedValue(s,i):this.getLabelText(s,i,h,u,s.coreTitle),Math.PI*t/180),b=this.getLabelPoint(n,(l-e)/1.75+e,w),y=(p||(this.is(__.d.StiOutsidePieLabelsCoreXF)&&(b=this.getLabelPoint(n,l+this.seriesLabels.lineLength*r.options.zoom,w)),this.is(__.d.StiInsideEndPieLabelsCoreXF)&&(b=this.getLabelPoint(n,(l-e)/1.2+e,w))),StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*r.options.zoom)),x=this.getStringFormatGeom(r),A=this.getLabelRect(r,b,C,y,x),L=this.seriesLabels.angle,T=StiRotationMode.CenterCenter,D=A.clone();if(D.x=-D.width/2,D.y=-D.height/2,this.seriesLabels.autoRotate&&(0<(L=t)&&L<90||270<L?(this.seriesLabels.is(__.d.IStiOutsidePieLabels)&&(T=StiRotationMode.LeftCenter),D.x=0):(this.seriesLabels.is(__.d.IStiOutsidePieLabels)&&(T=StiRotationMode.RightCenter),L+=180,D.x=-D.width)),this.is(__.d.StiOutsidePieLabelsCoreXF)?this.seriesLabels.autoRotate||(337.5<t||t<22.5?(D.x=0,D.y=-D.height/2,T=StiRotationMode.LeftCenter):22.5<=t&&t<67.5?(D.x=0,D.y=0,T=StiRotationMode.LeftTop):67.5<=t&&t<112.5?(D.x=-D.width/2,D.y=0,T=StiRotationMode.CenterTop):112.5<=t&&t<157.5?(D.x=-D.width,D.y=0,T=StiRotationMode.RightTop):157.5<=t&&t<202.5?(D.x=-D.width,D.y=-D.height/2,T=StiRotationMode.RightCenter):202.5<=t&&t<247.5?(D.x=-D.width,D.y=-D.height,T=StiRotationMode.RightBottom):247.5<=t&&t<292.5?(D.x=-D.width/2,D.y=-D.height,T=StiRotationMode.CenterBottom):292.5<=t&&(D.x=0,D.y=-D.height,T=StiRotationMode.LeftBottom)):(D.x=-D.width/2,D.y=-D.height/2),S)return f=r.measureRotatedString2(C,y,A,x,T,L),g.ref=f,null;let v=this.getBorderColor(s,d,m),F=s.core.getSeriesBorderColor(d,m),B=s.core.getSeriesBrush(d,m),P=new StiSolidBrush(this.getLabelColor(s,d,m)),I=(B=this.processSeriesColors(o,B,s),this.processSeriesColors(o,this.seriesLabels.brush,s));if(f=RectangleD.empty,this.seriesLabels.is(__.d.IStiOutsidePieLabels)){let e=this.as(__.d.StiOutsidePieLabelsCoreXF),t=e.getLineColor(s,d,m),i=(b=this.getLabelPoint(n,l+e.seriesLabels.lineLength*r.options.zoom,w),this.getLabelPoint(n,l,w));return g.ref=f,new __.d.StiOutsidePieLabelsGeom(this.seriesLabels,s,o,a,D,C,B,P,I,v,F,T,A,L,t,b,i)}return g.ref=f,new __.d.StiCenterPieLabelsGeom(this.seriesLabels,s,o,a,D,C,B,P,I,v,F,T,A,L,null)}getLabelPoint(e,t,i){return new PointD(e.x+Math.cos(i)*t,e.y+Math.sin(i)*t)}getLabelRect(e,t,i,s,r){return e.measureRotatedString3(i,s,t,r,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.CenterPie}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiInsideEndPie3dLabelsCoreXF=class extends __.d.StiCenterPie3dLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.InsideEndPie3d}get localizedName(){return"3D "+StiLocalization.get("Chart","LabelsInsideEnd")}constructor(e){super(e),this.percentPerValue=0}},__.d.StiInsideEndPieLabelsCoreXF=class extends __.d.StiCenterPieLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsInsideEnd")}get position(){return __.d.StiSeriesLabelsPosition.InsideEndPie}constructor(e){super(e)}},__.d.StiOutsidePieLabelsCoreXF=class extends __.d.StiCenterPieLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}get position(){return __.d.StiSeriesLabelsPosition.OutsidePie}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}getLineColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.lineColor}constructor(e){super(e)}},__.d.StiTwoColumnsPieLabelsCoreXF=class extends __.d.StiOutsidePieLabelsCoreXF{renderLabel(l,e,o,t,i,s,a,h,r,n,u,S,d,m,c,g,p,_){this.percentPerValue=c;let f=RectangleD.empty;if(null==r&&!this.seriesLabels.showNulls)return null;if(0==r&&!this.seriesLabels.showZeros)return null;if(null==h&&(h=0),null==r&&(r=0),isNaN(t)||isNaN(i))return null;if(p)return g.ref=f,super.renderLabel(l,e,o,t,i,s,a,h,r,this.getFormattedValue(l,r),u,S,d,m,c,g,p,_);let C=this.getLabelText(l,r,n,u,l.coreTitle),w=Math.PI*s/180,b=this.getLabelPoint(o,t,w),y=this.getLabelPoint(o,t+this.seriesLabels.lineLength*e.options.zoom,w),x=0,A=(x=b.x>y.x?-1:1,new PointD(o.x+t*x+this.seriesLabels.lineLength*x+10*x,y.y)),L=(this.seriesLabels.preventIntersection&&(A.y=b.y),A.y+=_*Math.min(e.options.zoom,1),StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom)),T=this.seriesLabels.core.getStringFormatGeom(e),D=(T.alignment=StringAlignment.Center,T.lineAlignment=StringAlignment.Center,this.getLabelRect(e,A,C,L,T)),v=RectangleD.empty;if(v=x<0?new RectangleD(A.x-D.width,A.y-D.height/2,D.width,D.height):new RectangleD(A.x,A.y-D.height/2,D.width,D.height),S)return f=v,g.ref=f,null;{f=RectangleD.empty;let e=this.getBorderColor(l,d,m),t=l.core.getSeriesBorderColor(d,m),i=l.core.getSeriesBrush(d,m),s=(i=this.processSeriesColors(a,i,l),new StiSolidBrush(this.getLabelColor(l,d,m))),r=this.getLineColor(l,d,m),n=this.processSeriesColors(a,this.seriesLabels.brush,l);return g.ref=f,new __.d.StiTwoColumnsPieLabelsGeom(this.seriesLabels,l,a,h,v,C,i,s,n,e,t,v,r,y,A,b,o,null)}}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie|__.d.StiSeriesLabelsType.Doughnut}get position(){return __.d.StiSeriesLabelsPosition.TwoColumnsPie}get localizedName(){return StiLocalization.get("Chart","LabelsTwoColumns")}constructor(e){super(e)}},__.d.StiCenterTreemapLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h=null){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=this.getLabelColor(e,l,o),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=this.processSeriesColors(i,this.seriesLabels.brush,e),f=this.getLabelRect(t,a,s,u,!0,c,m);return new __.d.StiCenterTreemapLabelsGeom(this.seriesLabels,e,i,s,f,u,S,d,p,_,g,c,h)}getLabelRect(e,t,i,s,r,n,l){return e.measureRotatedString3(s,n,new PointD(t.x+t.width/2,t.y+t.height/2),l,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}get position(){return __.d.StiSeriesLabelsPosition.CenterTreemap}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Treemap}constructor(e){super(e)}},__.d.StiStripsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiStripsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.strips.allowApplyStyle&&(this.strips.titleColor=e.core.styleColors[e.core.styleColors.length-1],this.strips.stripBrush=new StiSolidBrush(Color.fromArgb3(150,e.core.styleColors[e.core.styleColors.length-1])))}renderXStrips(e,t,i){let s=this.strips.chart.area;if(null==s)return;let r=this.calculateXValue(this.strips.minValue,s,i),n=this.calculateXValue(this.strips.maxValue,s,i);if(r>n){let e=r;r=n,n=e}let l=new RectangleD(r,0,n-r,i.height),o=new __.d.StiStripsXGeom(this.strips,l);t.createChildGeoms(),t.childGeoms.push(o)}calculateXValue(e,l,o){let a;try{a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}let h=0;if(l.xAxis.logarithmicScale&&0<l.xAxis.info.stripLines.count){let e=l.xAxis.info.stripLines.count,t=l.reverseHor?e-1:0,i=l.reverseHor?0:e-1,s=l.xAxis.info.stripLines.getByIndex(t).value,r=l.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(o.width/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(a)*n-StiMath.log10(l.xAxis.info.stripLines.getByIndex(t).value)*n)}else h=l.axisCore.getDividerX()+a*l.xAxis.info.dpi;return h}renderYStrips(e,t,i){let s=this.strips.chart.area;if(null==s)return;let r=this.calculateYValue(this.strips.minValue,s,i),n=this.calculateYValue(this.strips.maxValue,s,i);if(r>n){let e=r;r=n,n=e}let l=new RectangleD(0,r,i.width,n-r),o=new __.d.StiStripsYGeom(this.strips,l);t.createChildGeoms(),t.childGeoms.push(o)}calculateYValue(e,l,o){let a;try{a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}let h=0;if(l.yAxis.logarithmicScale){let e=l.yAxis.info.stripLines.count,t=0,i=e-1,s=l.yAxis.info.stripLines.getByIndex(t).value,r=l.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(o.height/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(l.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(a)*n)}else h=this.strips.orientation==__.d.StiStrips_StiOrientation.Horizontal?l.axisCore.getDividerY()-a*l.yAxis.info.dpi:l.axisCore.getDividerRightY()-a*l.yRightAxis.info.dpi;return h}render(e,t,i){if(!this.strips.visible)return;this.strips.orientation==__.d.StiStrips_StiOrientation.Vertical&&this.renderXStrips(e,t,i),this.strips.orientation!=__.d.StiStrips_StiOrientation.Horizontal&&this.strips.orientation!=__.d.StiStrips_StiOrientation.HorizontalRight||this.renderYStrips(e,t,i)}constructor(e){this.strips=e}},Stimulsoft.Base.Drawing.StiSimpleBorder),StiHatchBrush=(__.d.StiStyleCoreXF=class{constructor(){this._markerVisible=!0}implements(){let e=[__.d.IStiStyleCoreXF];return(this.implements=()=>e)()}get localizedName(){return null}get styleId(){return __.d.StiChartStyleId.StiStyle01}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiGradientBrush(StiColorUtils.light(this.basicStyleColor,80),StiColorUtils.light(this.basicStyleColor,40),90)}get chartAreaBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get chartAreaBorderThickness(){return 1}get chartAreaShowShadow(){return!1}get seriesLabelsBrush(){return new StiSolidBrush(this.basicStyleColor)}get seriesLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsFont(){return new Font("Arial",7)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(180,50,50,50))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipCornerRadius(){return new StiCornerRadius(8)}get toolTipBorder(){return new StiSimpleBorder}get trendLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get trendLineShowShadow(){return!1}get legendBrush(){return new StiGradientBrush(StiColorUtils.light(this.basicStyleColor,80),StiColorUtils.light(this.basicStyleColor,20),90)}get legendLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendTitleColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",8)}get axisTitleColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get axisLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get interlacingHorBrush(){return new StiSolidBrush(Color.fromArgb3(10,StiColorUtils.dark(this.basicStyleColor,100)))}get interlacingVertBrush(){return new StiSolidBrush(Color.fromArgb3(10,StiColorUtils.dark(this.basicStyleColor,100)))}get gridLinesHorColor(){return Color.fromArgb3(100,StiColorUtils.dark(this.basicStyleColor,150))}get gridLinesVertColor(){return Color.fromArgb3(100,StiColorUtils.dark(this.basicStyleColor,150))}get seriesLighting(){return!0}get seriesShowShadow(){return!1}get seriesShowBorder(){return!0}get seriesBorderColor(){return Color.transparent}get seriesBorderThickness(){return 1}get seriesCornerRadius(){return new StiCornerRadius}get markerVisible(){return this._markerVisible}set markerVisible(e){this._markerVisible=e}get firstStyleColor(){return this.styleColors[0]}get lastStyleColor(){return this.styleColors[this.styleColors.length-1]}get styleColors(){return null}get basicStyleColor(){return null}fillColumn(e,t,i,s){e.fillRectangle2(i,t.x,t.y,t.width,t.height,s)}fillCicledColumn(e,t,i,s,r,n){e.fillCicledRectangle(s,t,i,r,n)}getAreaBrush(e){return new StiSolidBrush(Color.fromArgb3(200,e))}getColumnBrush(e){return new StiGradientBrush(e,StiColorUtils.dark(e,50),0)}getColumnBorder(e){if(!this.seriesShowBorder)return Color.transparent;if(!this.seriesBorderColor.equals(Color.transparent))return this.seriesBorderColor;return StiColorUtils.dark(e,100)}getColors(e,t){let l=StiArray.create(Color,e),o=null!=t?t:this.styleColors,a=0,h=0;for(let n=0;n<e;n++){if(0==o.length||o.length<a)l[n]=Color.fromArgb(255,112,173,71);else if(0!=h){let e=o[a],t=Math.min(e.a+h,255),i=Math.min(e.r+h,255),s=Math.min(e.g+h,255),r=Math.min(e.b+h,255);l[n]=Color.fromArgb(t,i,s,r)}else l[n]=o[a];++a==o.length&&(a=0,h=50)}return l}getColorByIndex(e,t,i){return this.getColors(t,i)[e]}getColorBySeries(e,t){return this.getColors(e.chart.series.count,t)[e.chart.series.indexOf(e)]}},__.d.StiStyleCoreXF01=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,194,117,53),Color.fromArgb(255,231,140,65),Color.fromArgb(255,248,170,121),Color.fromArgb(255,250,203,180),Color.fromArgb(255,253,230,220)]}get localizedName(){return StiLocalization.get("Chart","Style")+"01"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.wheat}get styleId(){return __.d.StiChartStyleId.StiStyle01}getColumnBrush(e){return new StiGlareBrush(StiColorUtils.dark(e,50),e,0)}},__.d.StiCustomStyleCoreXF=class extends __.d.StiStyleCoreXF01{get localizedName(){return"CustomStyle"}get chartBrush(){if(null!=this.reportStyle)return this.reportStyle.brush;return this._base.chartBrush}get chartAreaBrush(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBrush;return this._base.chartAreaBrush}get chartAreaBorderColor(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBorderColor;return this._base.chartAreaBorderColor}get chartAreaBorderThickness(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBorderThickness;return this._base.chartAreaBorderThickness}get chartAreaShowShadow(){if(null!=this.reportStyle)return this.reportStyle.chartAreaShowShadow;return this._base.chartAreaShowShadow}get toolTipBrush(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipBrush}get toolTipTextBrush(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipTextBrush}get toolTipCornerRadius(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipCornerRadius}get toolTipBorder(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipBorder}get seriesLighting(){if(null!=this.reportStyle)return this.reportStyle.seriesLighting;return this._base.seriesLighting}get seriesShowShadow(){if(null!=this.reportStyle)return this.reportStyle.seriesShowShadow;return this._base.seriesShowShadow}get seriesShowBorder(){if(null!=this.reportStyle)return this.reportStyle.seriesShowBorder;return this._base.seriesShowBorder}get seriesBorderColor(){if(null!=this.reportStyle)return this.reportStyle.seriesBorderColor;return this._base.seriesBorderColor}get seriesLabelsBrush(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsBrush;return this._base.seriesLabelsBrush}get seriesLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsColor;return this._base.seriesLabelsColor}get seriesLabelsBorderColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsBorderColor;return this._base.seriesLabelsBorderColor}get seriesLabelsLineColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsLineColor;return this._base.seriesLabelsLineColor}get seriesBorderThickness(){if(null!=this.reportStyle)return this.reportStyle.seriesBorderThickness;return this._base.seriesBorderThickness}get seriesCornerRadius(){if(null!=this.reportStyle)return this.reportStyle.seriesCornerRadius;return this._base.seriesCornerRadius}get trendLineColor(){if(null!=this.reportStyle)return this.reportStyle.trendLineColor;return this._base.trendLineColor}get trendLineShowShadow(){if(null!=this.reportStyle)return this.reportStyle.trendLineShowShadow;return this._base.trendLineShowShadow}get legendBrush(){if(null!=this.reportStyle)return this.reportStyle.legendBrush;return this._base.legendBrush}get legendLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.legendLabelsColor;return this._base.legendLabelsColor}get legendBorderColor(){if(null!=this.reportStyle)return this.reportStyle.legendBorderColor;return this._base.legendBorderColor}get legendTitleColor(){if(null!=this.reportStyle)return this.reportStyle.legendTitleColor;return this._base.legendTitleColor}get markerVisible(){if(null!=this.reportStyle)return this.reportStyle.markerVisible;return this._base.markerVisible}set markerVisible(e){}get axisTitleColor(){if(null!=this.reportStyle)return this.reportStyle.axisTitleColor;return this._base.axisTitleColor}get axisLineColor(){if(null!=this.reportStyle)return this.reportStyle.axisLineColor;return this._base.axisLineColor}get axisLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.axisLabelsColor;return this._base.axisLabelsColor}get interlacingHorBrush(){if(null!=this.reportStyle)return this.reportStyle.interlacingHorBrush;return this._base.interlacingHorBrush}get interlacingVertBrush(){if(null!=this.reportStyle)return this.reportStyle.interlacingVertBrush;return this._base.interlacingVertBrush}get gridLinesHorColor(){if(null!=this.reportStyle)return this.reportStyle.gridLinesHorColor;return this._base.gridLinesHorColor}get gridLinesVertColor(){if(null!=this.reportStyle)return this.reportStyle.gridLinesVertColor;return this._base.gridLinesVertColor}get styleColors(){if(null!=this.reportStyle)return this.reportStyle.styleColors;return this._base.styleColors}get basicStyleColor(){if(null!=this.reportStyle)return this.reportStyle.basicStyleColor;return this._base.basicStyleColor}get reportStyle(){let e=null==this.reportStyleName?this.chart.customStyleName:this.reportStyleName;if(null==this.chart||null==this.chart.report||null==e||0==e.length)return null;let t=this.chart.report.styles.getByName(e);if(null!=t&&t.is(__.a.Styles.StiChartStyle))return t;return null}get customStyle(){return this._customStyle}getColumnBrush(e){if(null!=this.reportStyle)switch(this.reportStyle.brushType){case __.a.StiBrushType.Glare:return new StiGlareBrush(StiColorUtils.dark(e,50),e,0);case __.a.StiBrushType.Gradient0:return new StiGradientBrush(StiColorUtils.dark(e,50),e,0);case __.a.StiBrushType.Gradient90:return new StiGradientBrush(StiColorUtils.dark(e,50),e,90);case __.a.StiBrushType.Gradient180:return new StiGradientBrush(StiColorUtils.dark(e,50),e,180);case __.a.StiBrushType.Gradient270:return new StiGradientBrush(StiColorUtils.dark(e,50),e,270);case __.a.StiBrushType.Gradient45:return new StiGradientBrush(StiColorUtils.dark(e,50),e,45);case __.a.StiBrushType.Solid:return new StiSolidBrush(e)}return new StiSolidBrush(e)}constructor(e){super(),this._base=new __.d.StiStyleCoreXF01,this.reportChartStyle=null,this.reportStyleName=null,this._customStyle=e}},__.d.StiStyleCoreXF02=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,128,145,165),Color.fromArgb(255,171,123,122),Color.fromArgb(255,155,167,129),Color.fromArgb(255,144,133,157),Color.fromArgb(255,121,161,173),Color.fromArgb(255,189,152,122),Color.fromArgb(255,139,164,194),Color.fromArgb(255,202,132,130),Color.fromArgb(255,179,198,141),Color.fromArgb(255,162,146,182)]}get localizedName(){return StiLocalization.get("Chart","Style")+"02"}get basicStyleColor(){return Color.whiteSmoke}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle02}getColumnBrush(e){return new StiGlareBrush(e,StiColorUtils.light(e,50),0)}},__.d.StiStyleCoreXF03=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,150,61,59),Color.fromArgb(255,179,74,71),Color.fromArgb(255,201,126,125),Color.fromArgb(255,221,182,181),Color.fromArgb(255,238,221,221)]}get localizedName(){return StiLocalization.get("Chart","Style")+"03"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.whiteSmoke}get styleId(){return __.d.StiChartStyleId.StiStyle03}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF04=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,72,57,90),Color.fromArgb(255,109,87,137),Color.fromArgb(255,146,123,173),Color.fromArgb(255,181,166,200)]}get localizedName(){return StiLocalization.get("Chart","Style")+"04"}get basicStyleColor(){return Color.fromArgb(255,181,166,200)}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle04}},__.d.StiStyleCoreXF05=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,224,169,61),Color.fromArgb(255,180,181,0),Color.fromArgb(255,14,152,13),Color.fromArgb(255,170,72,36),Color.fromArgb(255,133,221,77),Color.fromArgb(255,230,199,69),Color.fromArgb(255,219,100,52),Color.fromArgb(255,131,190,47)]}get localizedName(){return StiLocalization.get("Chart","Style")+"05"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.lemonChiffon}get styleId(){return __.d.StiChartStyleId.StiStyle05}},__.d.StiStyleCoreXF06=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,206,185,102),Color.fromArgb(255,156,176,132),Color.fromArgb(255,107,177,201),Color.fromArgb(255,101,133,207),Color.fromArgb(255,126,107,201),Color.fromArgb(255,163,121,187)]}get localizedName(){return StiLocalization.get("Chart","Style")+"06"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,202,198,206)}get styleId(){return __.d.StiChartStyleId.StiStyle06}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF07=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,217,251,168),Color.fromArgb(255,200,181,231),Color.fromArgb(255,158,232,255),Color.fromArgb(255,255,189,134),Color.fromArgb(255,163,195,254)]}get localizedName(){return StiLocalization.get("Chart","Style")+"07"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle07}getColumnBrush(e){return new StiGradientBrush(StiColorUtils.dark(e,50),StiColorUtils.light(e,50),-90)}},__.d.StiStyleCoreXF08=class extends __.d.StiStyleCoreXF03{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,60,100,148),Color.fromArgb(255,73,120,177),Color.fromArgb(255,126,155,200),Color.fromArgb(255,182,195,220),Color.fromArgb(255,221,227,238)]}get localizedName(){return StiLocalization.get("Chart","Style")+"08"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(238,182,195,220)}get styleId(){return __.d.StiChartStyleId.StiStyle08}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF09=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,79,129,189),Color.fromArgb(255,192,80,77),Color.fromArgb(255,155,187,89),Color.fromArgb(255,128,100,162),Color.fromArgb(255,75,172,198),Color.fromArgb(255,247,150,70)]}get localizedName(){return StiLocalization.get("Chart","Style")+"09"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(238,238,236,225)}get styleId(){return __.d.StiChartStyleId.StiStyle09}},__.d.StiStyleCoreXF10=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,121,181,176),Color.fromArgb(255,180,188,76),Color.fromArgb(255,183,120,81),Color.fromArgb(255,119,106,91),Color.fromArgb(255,182,173,118),Color.fromArgb(255,149,174,177)]}get localizedName(){return StiLocalization.get("Chart","Style")+"10"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,209,225,227)}get styleId(){return __.d.StiChartStyleId.StiStyle10}},__.d.StiStyleCoreXF11=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,204,77,92),Color.fromArgb(255,255,111,97),Color.fromArgb(255,255,149,62),Color.fromArgb(255,248,189,82)]}get localizedName(){return StiLocalization.get("Chart","Style")+"11"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColorUtils.dark(Color.navajoWhite,30)}get styleId(){return __.d.StiChartStyleId.StiStyle11}},__.d.StiStyleCoreXF12=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.goldenrod,Color.khaki]}get localizedName(){return StiLocalization.get("Chart","Style")+"12"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.moccasin}get styleId(){return __.d.StiChartStyleId.StiStyle12}},__.d.StiStyleCoreXF13=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,151,158,168),Color.fromArgb(255,189,174,137),Color.fromArgb(255,205,176,5),Color.fromArgb(255,170,166,194),Color.fromArgb(255,132,191,210),Color.fromArgb(255,139,159,115)]}get localizedName(){return StiLocalization.get("Chart","Style")+"13"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,212,210,208)}get styleId(){return __.d.StiChartStyleId.StiStyle13}},__.d.StiStyleCoreXF14=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,240,162,46),Color.fromArgb(255,165,100,78),Color.fromArgb(255,181,139,128),Color.fromArgb(255,195,152,109),Color.fromArgb(255,161,149,116),Color.fromArgb(255,193,117,41)]}get localizedName(){return StiLocalization.get("Chart","Style")+"14"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,251,238,201)}get styleId(){return __.d.StiChartStyleId.StiStyle14}},__.d.StiStyleCoreXF15=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,15,111,198),Color.fromArgb(255,0,157,217),Color.fromArgb(255,11,208,217),Color.fromArgb(255,16,207,155),Color.fromArgb(255,124,202,98),Color.fromArgb(255,165,194,73)]}get localizedName(){return StiLocalization.get("Chart","Style")+"15"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,219,245,249)}get styleId(){return __.d.StiChartStyleId.StiStyle15}},__.d.StiStyleCoreXF16=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,255,128,0),Color.black,Color.silver,Color.red]}get localizedName(){return StiLocalization.get("Chart","Style")+"16"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle16}},__.d.StiStyleCoreXF17=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.white,Color.black]}get localizedName(){return StiLocalization.get("Chart","Style")+"17"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle17}},Stimulsoft.Base.Drawing.StiHatchBrush),HatchStyle=Stimulsoft.System.Drawing.Drawing2D.HatchStyle,StiBorderSides=(__.d.StiStyleCoreXF18=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.white,Color.black,Color.silver,Color.red,Color.green,Color.blue]}get localizedName(){return StiLocalization.get("Chart","Style")+"18"}fillColumn(e,t,i,s){let r=HatchStyle.Cross,n=i,l=(Color.white.equals(n.color)?r=HatchStyle.BackwardDiagonal:Color.black.equals(n.color)?r=HatchStyle.DottedGrid:Color.silver.equals(n.color)?r=HatchStyle.Horizontal:Color.red.equals(n.color)?r=HatchStyle.Percent25:Color.green.equals(n.color)?r=HatchStyle.OutlinedDiamond:Color.blue.equals(n.color)&&(r=HatchStyle.ForwardDiagonal),new StiHatchBrush(r,Color.black,Color.white));e.fillRectangle2(l,t.x,t.y,t.width,t.height,s)}getColumnBrush(e){let t=HatchStyle.Cross;return e.equals(Color.white)?t=HatchStyle.BackwardDiagonal:e.equals(Color.black)?t=HatchStyle.DottedGrid:e.equals(Color.silver)?t=HatchStyle.Horizontal:e.equals(Color.red)?t=HatchStyle.Percent25:e.equals(Color.green)?t=HatchStyle.OutlinedDiamond:e.equals(Color.blue)&&(t=HatchStyle.ForwardDiagonal),new StiHatchBrush(t,Color.black,Color.white)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle18}},__.d.StiStyleCoreXF19=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,242,234,221),Color.fromArgb(255,240,237,232),Color.fromArgb(255,232,221,203),Color.fromArgb(255,225,201,173),Color.fromArgb(255,216,180,140)]}get localizedName(){return StiLocalization.get("Chart","Style")+"19"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,242,234,221)}get interlacingHorBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get interlacingVertBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get chartAreaBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get chartBrush(){return new StiSolidBrush(Color.white)}get styleId(){return __.d.StiChartStyleId.StiStyle19}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF20=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,217,187,148),Color.fromArgb(255,245,190,119),Color.fromArgb(255,230,189,127),Color.fromArgb(255,220,217,212),Color.fromArgb(255,237,229,216),Color.fromArgb(255,246,233,212)]}get localizedName(){return StiLocalization.get("Chart","Style")+"20"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.bisque}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get chartAreaBorderColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get styleId(){return __.d.StiChartStyleId.StiStyle20}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF21=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(35,159,217),Color.fromArgb2(178,178,178)]}get localizedName(){return StiLocalization.get("Chart","Style")+"21"}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiSolidBrush(this.basicStyleColor)}get chartAreaBorderColor(){return Color.fromArgb2(106,106,106)}get seriesLabelsBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get seriesLabelsColor(){return Color.fromArgb2(106,106,106)}get seriesLabelsBorderColor(){return Color.fromArgb2(255,255,255)}get legendBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get legendLabelsColor(){return Color.fromArgb2(106,106,106)}get axisTitleColor(){return Color.fromArgb2(106,106,106)}get axisLineColor(){return Color.fromArgb2(106,106,106)}get axisLabelsColor(){return Color.fromArgb2(106,106,106)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb2(102,102,102)}get styleId(){return __.d.StiChartStyleId.StiStyle21}getColumnBrush(e){return new StiSolidBrush(e)}getColumnBorder(e){return StiColorUtils.light(e,255)}},Stimulsoft.Base.Drawing.StiBorderSides),StiColor=Stimulsoft.Base.Drawing.StiColor,ColorTranslator=(__.d.StiStyleCoreXF22=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(91,155,213),Color.fromArgb2(237,125,49),Color.fromArgb2(159,159,159),Color.fromArgb2(255,192,0),Color.fromArgb2(68,114,196),Color.fromArgb2(112,173,71)]}get localizedName(){return StiLocalization.get("Chart","Style")+"22"}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiSolidBrush(this.basicStyleColor)}get chartAreaBorderColor(){return Color.fromArgb2(171,172,173)}get seriesLabelsBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get seriesLabelsColor(){return Color.fromArgb2(90,90,90)}get seriesLabelsBorderColor(){return Color.fromArgb2(140,140,140)}get legendBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get legendLabelsColor(){return Color.fromArgb2(140,140,140)}get axisTitleColor(){return Color.fromArgb2(140,140,140)}get axisLineColor(){return Color.fromArgb2(140,140,140)}get axisLabelsColor(){return Color.fromArgb2(140,140,140)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb2(255,255,255)}get toolTipBrush(){return new StiSolidBrush(Color.white)}get toolTipTextBrush(){return new StiSolidBrush(Color.dimGray)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,StiColor.get("#8c8c8c"),1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle22}getColumnBrush(e){return new StiSolidBrush(e)}getColumnBorder(e){return StiColorUtils.light(e,255)}},__.d.StiStyleCoreXF23=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(91,155,213),Color.fromArgb2(159,159,159),Color.fromArgb2(68,114,196),Color.fromArgb2(37,94,145),Color.fromArgb2(99,99,99),Color.fromArgb2(38,68,120)]}get localizedName(){return StiLocalization.get("Chart","Style")+"23"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle23}},__.d.StiStyleCoreXF24=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(237,125,49),Color.fromArgb2(255,192,0),Color.fromArgb2(112,173,71),Color.fromArgb2(158,72,14),Color.fromArgb2(153,115,0),Color.fromArgb2(67,104,43)]}get localizedName(){return StiLocalization.get("Chart","Style")+"24"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle24}get chartAreaBorderColor(){return Color.transparent}get legendBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}},Stimulsoft.System.Drawing.ColorTranslator),StiGrayStyleColors=(__.d.StiStyleCoreXF25=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#70ad47"),ColorTranslator.fromHtml("#4472c4"),ColorTranslator.fromHtml("#ffc000"),ColorTranslator.fromHtml("#43682b"),ColorTranslator.fromHtml("#fd6a37"),ColorTranslator.fromHtml("#997300")]}get localizedName(){return StiLocalization.get("Chart","Style")+"25"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle25}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return ColorTranslator.fromHtml("#33475b")}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}},__.d.StiStyleCoreXF26=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#2ec6c8"),ColorTranslator.fromHtml("#b5a1dd"),ColorTranslator.fromHtml("#5ab0ee"),ColorTranslator.fromHtml("#f4984e"),ColorTranslator.fromHtml("#d77a80"),ColorTranslator.fromHtml("#d04456")]}get localizedName(){return StiLocalization.get("Chart","Style")+"26"}get styleColors(){return this._styleColor}get chartAreaBorderColor(){return Color.transparent}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#ffffff"))}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsColor(){return ColorTranslator.fromHtml("#33475B")}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}get markerVisible(){return!1}set markerVisible(e){}get styleId(){return __.d.StiChartStyleId.StiStyle26}getColumnBorder(e){return Color.transparent}},__.d.StiStyleCoreXF27=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#0bac45"),ColorTranslator.fromHtml("#585257"),ColorTranslator.fromHtml("#ec334d"),ColorTranslator.fromHtml("#a1ae94"),ColorTranslator.fromHtml("#ed7d31"),ColorTranslator.fromHtml("#5ab0ee")]}get localizedName(){return StiLocalization.get("Chart","Style")+"27"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#33475b"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#33475b"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(180,50,50,50))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle27}},__.d.StiStyleCoreXF28=class extends __.d.StiStyleCoreXF26{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#165d9e"),ColorTranslator.fromHtml("#577eb6"),ColorTranslator.fromHtml("#569436"),ColorTranslator.fromHtml("#225056"),ColorTranslator.fromHtml("#d4dae0")]}get localizedName(){return StiLocalization.get("Chart","Style")+"28"}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#0a325a"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#0a325a"))}get chartAreaBorderColor(){return Color.transparent}get axisTitleColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get axisLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,6,32,59))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle28}},__.d.StiStyleCoreXF29=class extends __.d.StiStyleCoreXF26{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#3498db"),ColorTranslator.fromHtml("#ef717a"),ColorTranslator.fromHtml("#6dcbb3"),ColorTranslator.fromHtml("#f28161"),ColorTranslator.fromHtml("#fccd1b")]}get localizedName(){return StiLocalization.get("Chart","Style")+"29"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle29}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsColor(){return ColorTranslator.fromHtml("#323a45")}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}},__.d.StiStyleCoreXF30=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#db7b46"),ColorTranslator.fromHtml("#d3d3d5"),ColorTranslator.fromHtml("#6b6e75"),ColorTranslator.fromHtml("#4a4c55")]}get localizedName(){return StiLocalization.get("Chart","Style")+"30"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#595b65"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#595b65"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get legendFont(){return new Font("Arial",8)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get styleId(){return __.d.StiChartStyleId.StiStyle30}},__.d.StiStyleCoreXF31=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#fefef9"),ColorTranslator.fromHtml("#a8d7e2"),ColorTranslator.fromHtml("#5ea8bf"),ColorTranslator.fromHtml("#2b7f9e"),ColorTranslator.fromHtml("#1c4458")]}get localizedName(){return StiLocalization.get("Chart","Style")+"31"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#235e6d"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#235e6d"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,30,74,97))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get styleId(){return __.d.StiChartStyleId.StiStyle31}},__.d.StiStyleCoreXF32=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("3a5263"),StiColor.get("90a1ab"),StiColor.get("c9d5dc")]}get localizedName(){return StiLocalization.get("Chart","Style")+"32"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColor.get("e9f4fc")}get chartBrush(){return new StiSolidBrush(StiColor.get("6d7e8b"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("6d7e8b"))}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("e9f4fc")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return StiColor.get("e9f4fc")}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return StiColor.get("e9f4fc")}get seriesLabelsLineColor(){return StiColor.get("e9f4fc")}get seriesLabelsFont(){return new Font("Arial",10)}get axisTitleColor(){return StiColor.get("e9f4fc")}get axisLineColor(){return StiColor.get("e9f4fc")}get axisLabelsColor(){return StiColor.get("e9f4fc")}get gridLinesHorColor(){return StiColor.get("e9f4fc")}get gridLinesVertColor(){return StiColor.get("e9f4fc")}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,67,84,94))}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle32}getColumnBorder(e){return Color.transparent}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF33=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[StiColor.get("40568d"),StiColor.get("4569bb"),StiColor.get("e47334"),StiColor.get("9d9c9c"),StiColor.get("f8b92d"),StiColor.get("5e93cc"),StiColor.get("6ea548")]}get localizedName(){return StiLocalization.get("Chart","Style")+"33"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColor.get("e9f4fc")}get chartBrush(){return new StiSolidBrush(StiColor.get("f2f5fc"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("f2f5fc"))}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("8c8c8c")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return StiColor.get("e9f4fc")}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return StiColor.get("e9f4fc")}get seriesLabelsLineColor(){return StiColor.get("e9f4fc")}get seriesLabelsFont(){return new Font("Arial",10)}get axisTitleColor(){return StiColor.get("8c8c8c")}get axisLineColor(){return StiColor.get("e9f4fc")}get axisLabelsColor(){return StiColor.get("8c8c8c")}get gridLinesHorColor(){return StiColor.get("e9f4fc")}get gridLinesVertColor(){return StiColor.get("e9f4fc")}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle33}getColumnBorder(e){return Color.transparent}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF34=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("144b45"),StiColor.get("ecb92f"),StiColor.get("d66153"),StiColor.get("25775b"),StiColor.get("319491"),StiColor.get("f7f7f7"),StiColor.get("dd7c21")]}get localizedName(){return StiLocalization.get("Chart","Style")+"34"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(StiColor.get("3f745e"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("3f745e"))}get chartAreaBorderColor(){return Color.transparent}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,20,75,69))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.None,Color.white,1,StiPenStyle.Solid)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle34}getColumnBorder(e){return Color.transparent}},__.d.StiStyleCoreXF35=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("#794d26"),StiColor.get("#c7986a"),StiColor.get("#c4b49a"),StiColor.get("#894d29"),StiColor.get("#422515"),StiColor.get("#564438"),StiColor.get("#876c57"),StiColor.get("#d8814b"),StiColor.get("#532525"),StiColor.get("#59413f")]}get localizedName(){return StiLocalization.get("Chart","Style")+"35"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(StiColor.get("#fefefe"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("#fefefe"))}get chartAreaBorderColor(){return Color.transparent}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("#222222")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(StiColor.get("#5a4941"))}get seriesLabelsColor(){return StiColor.get("#fefefe")}get seriesLabelsFont(){return new Font("Arial",10)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,66,37,21))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.None,Color.white,1,StiPenStyle.Solid)}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle35}getColumnBorder(e){return Color.transparent}},__.a.Dashboard.Styles.StiGrayStyleColors),StiWhiteBlackStyleColors=(__.d.StiStyleCoreXF36=class extends __.d.StiStyleCoreXF26{get localizedName(){return StiLocalization.get("Chart","Style")+"36"}get styleColors(){return StiGrayStyleColors.seriesColors}get chartAreaBorderColor(){return Color.transparent}get legendBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb3(119,StiGrayStyleColors.backColor))}get seriesLabelsColor(){return StiGrayStyleColors.cellForeColor}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle36}getColumnBorder(e){return Color.transparent}},__.a.Dashboard.Styles.StiWhiteBlackStyleColors),StiLinearGradientBrush=Stimulsoft.Base.Drawing.StiLinearGradientBrush,StiGeom=(__.d.StiStyleCoreXF37=class extends __.d.StiStyleCoreXF26{get localizedName(){return StiLocalization.get("Chart","Style")+"37"}getAreaBrush(e){return new StiLinearGradientBrush([StiColorUtils.changeAlpha(.25,e),Color.white,Color.white],[0,.5,1],90)}get styleId(){return __.d.StiChartStyleId.StiStyle37}get styleColors(){return StiWhiteBlackStyleColors.seriesColors}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get axisTitleColor(){return StiWhiteBlackStyleColors.foreColor}get axisLineColor(){return StiWhiteBlackStyleColors.foreColor}get axisLabelsColor(){return StiWhiteBlackStyleColors.foreColor}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(StiWhiteBlackStyleColors.foreColor)}get seriesLabelsColor(){return ColorTranslator.fromHtml("#f7fbff")}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}},__.d.StiChartTableCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartTableCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.chartTable.allowApplyStyle&&(this.chartTable.gridLineColor=e.core.legendBorderColor,this.chartTable.textColor=e.core.legendLabelsColor)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}showTable(){if((this.chartTable.chart.area.is2(__.d.IStiClusteredColumnArea)||this.chartTable.chart.area.is2(__.d.IStiStackedColumnArea))&&!this.chartTable.chart.area.is2(__.d.IStiCandlestickArea)&&!this.chartTable.chart.area.is2(__.d.IStiRangeArea)&&!this.chartTable.chart.area.is2(__.d.IStiScatterArea)&&!this.chartTable.chart.area.is2(__.d.IStiStockArea)&&this.chartTable.visible)return!0;return!1}getHeightTable(e,t){let i=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*e.options.zoom),s=e.measureString("HeightText",i);return s.height*this.chartTable.chart.series.count+this.getHeightHeaderTable(e,t)}getHeightHeaderTable(r,e){let n=0,t=this.chartTable.chart.area,l=t.xAxis.startFromZero,o=this.getArguments(),a=StiFontGeom.changeFontSize(this.chartTable.header.font,this.chartTable.header.font.size*r.options.zoom),h=r.getGenericStringFormat(),i=(h.trimming=StringTrimming.None,this.chartTable.header.wordWrap||(h.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),h.alignment=StringAlignment.Center,h.lineAlignment=StringAlignment.Center,t.xAxis.startFromZero?o.length+1:o.length-1),u=(e-this.getWidthCellLegend(r))/i;for(let s=0;s<o.length;s++){let e=0,t=(0!=s&&s!=o.length-1||(e=l?u/2:-u/2),this.chartTable.header.wordWrap?StiMath.trunc(u+e):0),i=r.measureRotatedString3(o[s],a,new PointD(0,0),h,StiRotationMode.CenterCenter,0,t).height;n=Math.max(n,i)}return n}getWidthCellLegend(t){let i=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*t.options.zoom),s=t.getGenericStringFormat(),r=(s.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,s.alignment=StringAlignment.Center,s.lineAlignment=StringAlignment.Center,0),n=new RectangleD;for(let e of this.chartTable.chart.series.list)n=t.measureRotatedString4(e.coreTitle,i,new PointD(0,0),s,StiRotationMode.CenterCenter,0),r=Math.max(n.width,r);return this.chartTable.markerVisible&&(r+=n.height),Math.ceil(r)}render(e,t){return new __.d.StiChartTableGeom(t,this.getTableValues(),this.getWidthCellLegend(e),this.getHeightHeaderTable(e,t.width),this.chartTable)}getMaxCountValues(t){let i=0;for(let e of t.list)i=Math.max(i,e.values.length);return i}getArguments(){let s=this.chartTable.chart.series,r=[],e=this.getMaxCountValues(s);for(let i=0;i<e;i++){let e=s.getByIndex(0).arguments.length>i?s.getByIndex(0).arguments[i]:(i+1).toString(),t=this.getLabelText(e,s.getByIndex(0));r.push(t)}return r}getLabelText(i,e){var t;null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let s=null==(t=this.chartTable.chart.report)?void 0:t.getParsedCulture();try{StiString.isNullOrEmpty(s)||(CultureInfo.currentCulture=CultureInfo.cultures[s]);let t="";if(null!=(t=null!=(t=null!=e?e.format:t)&&0!=t.trim().length?t:this.chartTable.header.format)&&0!=t.trim().length){if("string"==typeof i){let e=i.toString(),t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(0<e.length&&!isNaN(t))i=t;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0:N"+e.toString()+"}{1}{2}",i,"%",this.chartTable.header.textAfter)}return StiString.format("{0:"+t+"}{1}",i,this.chartTable.header.textAfter)}return StiString.format("{0}{1}",i,this.chartTable.header.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(s)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getTableValues(){let e=this.chartTable.chart.series,t=this.getArguments(),l=StiArray.create2(String,e.count+1,t.length+1);for(let e=0;e<t.length;e++)l[0][e+1]=t[e];let o=this.chartTable.chart.area,a=1;for(let n of e.list){l[a][0]=n.coreTitle;let r=1;for(let e=0;e<n.values.length;e++){let i=o.reverseHor?n.values[n.values.length-e-1]:n.values[e],s=this.chartTable.chart.table.format;if(null==s&&0==s.trim().length||null==i)l[a][r]=i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);else if(s.startsWith("P")&&!__.d.StiChartOptions.oldChartPercentMode){let e=0,t;try{1<s.length&&(e=s[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),t=n.seriesLabels.core.recalcValue(i,e)}catch(e){t=n.seriesLabels.core.recalcValue(i,2)}l[a][r]=StiString.format("{0:N"+e.toString()+"}{1}",t,"%")}else{let e=i;n.core.isDateTimeValues&&(e=DateTime.fromOADate(i)),l[a][r]=StiString.format("{0:"+s+"}",e)}r++}a++}return l}constructor(e){this.chartTable=e}},__.d.StiTrendLineCoreXF=class{implements(){let e=[ICloneable,__.d.IStiTrendLineCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get localizedName(){return null}renderTrendLine(e,t,i){}sum(t){let i=0;for(let e of t)i+=e;return i}sumSqr(t){let i=0;for(let e of t)i+=e*e;return i}sumProductions(t,i){let s=0;for(let e=0;e<t.length;e++)s+=t[e]*i[e];return s}sumProductionsXLogY(t,i){let s=0;for(let e=0;e<t.length;e++)s+=t[e]*Math.log(i[e]);return s}sumLn(t){let i=0;for(let e of t)i+=Math.log(e);return i}constructor(e){this.trendLine=e}},__.d.StiTrendLineExponentialCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Exponential")}renderTrendLine(c,g,p){if(0<g.length){let t=StiArray.create(Number,g.length),i=StiArray.create(Number,g.length),s=g[0].x,r=g[0].x;for(let e=0;e<g.length;e++)t[e]=g[e].x,i[e]=p-g[e].y,s<g[e].x&&(s=g[e].x),r>g[e].x&&(r=g[e].x);let e=g.length,n=this.sum(t),l=this.sumSqr(t),o=this.sumProductionsXLogY(t,i),a=this.sumLn(i),h=(e*o-n*a)/(e*l-n*n),u=(l*a-n*o)/(e*l-n*n),S=Math.exp(u),d=StiArray.create(PointD,31,!0);for(let i=0;i<31;i++){let e=r+(s-r)/30*i,t=S*Math.exp(h*e);d[i]=new PointD(e,p-t)}let m=new __.d.StiTrendCurveGeom(d,this.trendLine);c.createChildGeoms(),c.childGeoms.push(m)}}constructor(e){super(e)}},__.d.StiTrendLineLinearCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Linear")}renderTrendLine(m,c,e){if(0<c.length){let t=StiArray.create(Number,c.length),i=StiArray.create(Number,c.length),s=c[0].x,r=c[0].x;for(let e=0;e<c.length;e++)t[e]=c[e].x,i[e]=c[e].y,s<t[e]&&(s=t[e]),r>t[e]&&(r=t[e]);let e=c.length,n=this.sum(t),l=this.sum(i),o=this.sumSqr(t),a=this.sumProductions(t,i),h=n*n-o*e,u=(l*n-a*e)/h,S=(n*a-o*l)/h,d=new __.d.StiTrendLineGeom(new PointD(r,u*r+S),new PointD(s,u*s+S),this.trendLine);m.createChildGeoms(),m.childGeoms.push(d)}}constructor(e){super(e)}},__.d.StiTrendLineLogarithmicCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Logarithmic")}renderTrendLine(c,g,e){if(0<g.length){let t=StiArray.create(Number,g.length),i=StiArray.create(Number,g.length),s=g[0].x,r=g[0].x;for(let e=0;e<g.length;e++)t[e]=Math.log(g[e].x),i[e]=g[e].y,s<g[e].x&&(s=g[e].x),r>g[e].x&&(r=g[e].x);let e=g.length,n=this.sum(t),l=this.sum(i),o=this.sumSqr(t),a=this.sumProductions(t,i),h=n*n-o*e,u=(l*n-a*e)/h,S=(n*a-o*l)/h,d=StiArray.create(PointD,31,!0);for(let i=0;i<31;i++){let e=r+(s-r)/30*i,t=u*Math.log(e)+S;d[i]=new PointD(e,t)}let m=new __.d.StiTrendCurveGeom(d,this.trendLine);c.createChildGeoms(),c.childGeoms.push(m)}}constructor(e){super(e)}},__.d.StiTrendLineNoneCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsNone")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiGeom),StiGeomType=Stimulsoft.Base.Context.StiGeomType;__.d.StiCellGeom=class extends StiGeom{implements(){let e=super.implements().concat([__.d.IStiCellGeom]);return(this.implements=()=>e)()}get invisible(){return!1}dispose(){null!=this.childGeoms&&(this.childGeoms[Stimulsoft.System.StiObject.stimulsoft]().clear(),this.childGeoms=null)}contains(e,t){if(this.invisible)return!1;return this.clientRectangle.contains(e,t)}getGeomAt(s,r,n){let l=r-s.clientRectangle.x,o=n-s.clientRectangle.y;if(null!=s.childGeoms){let e=s,i=null;for(let t of s.childGeoms)if(null!=e&&e.isChildVisibleInView(t)||null==e)if(t.is(__.d.StiAxisAreaGeom)){if(!t.view.contains(r,n))continue;let e=this.getGeomAt(t,l,o);null!=e&&(i=e)}else{let e=this.getGeomAt(t,l,o);if(null!=e&&(i=e).is(__.d.StiMarkerGeom))return i}if(null!=i)return i}if(s.contains(r,n))return s;return null}getSeriesGeoms(){let i=[];if(null==this.childGeoms)return i;for(let e of this.childGeoms){(e.is(__.d.StiSeriesGeom)||e.is(__.d.StiSeriesElementGeom))&&i.push(e);let t=e.getSeriesGeoms();for(let e of t)i.push(e)}return i}getSeriesElementGeoms(){let i=[];if(null==this.childGeoms)return i;for(let e of this.childGeoms)if(null!=e){e.is(IStiSeriesElement)&&i.push(e);let t=e.getSeriesElementGeoms();for(let e of t)i.push(e)}return i}getRect(i){let s=RectangleD.empty;if(null==this.childGeoms)return s;for(let t of this.childGeoms){if(t==i)return s.x+=t.clientRectangle.x,s.y+=t.clientRectangle.y,s.size=t.clientRectangle.size,s;let e=t.getRect(i);if(!e.isEmpty)return s.x+=t.clientRectangle.x,s.y+=t.clientRectangle.y,s.x+=e.x,s.y+=e.y,s.size=e.size,s}return s}createChildGeoms(){null==this.childGeoms&&(this.childGeoms=[])}draw(e){}drawGeom(e){this.draw(e),this.drawChildGeoms(e)}drawChildGeoms(t){if(null!=this.childGeoms){t.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let e of this.childGeoms)this.allowChildDrawing(e)&&e.drawGeom(t);t.popTransform()}}allowChildDrawing(e){return null!=e}constructor(e){super(),this.type=StiGeomType.None,this.childGeoms=null,this.clientRectangle=RectangleD.empty,this.clientRectangle=e.clone()}},__.d.StiChartGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e){super(e)}},__.d.StiNullableDrawing=class{static drawLines(e,t,i,s=null){this.drawLines2(e,t,null,i,s)}static drawLines2(t,i,e,s,r=null){let n=[];for(let e of s)null!=e?n.push(e):(1<n.length&&(null!=r?t.drawAnimationLines(i,n,r):t.drawLines(i,n)),n=[]);1<n.length&&(null!=r?t.drawAnimationLines(i,n,r):t.drawLines(i,n))}static drawCurve(t,i,s,r,n=null){let l=[];for(let e of s)null!=e?l.push(e):(1<l.length&&(null!=n?t.drawAnimationCurve(i,l,r,n):t.drawCurve(i,l,r)),l=[]);1<l.length&&(null!=n?t.drawAnimationCurve(i,l,r,n):t.drawCurve(i,l,r))}static getPointsList(t){let i=[],s=[];for(let e of t)null!=e?s.push(e):(1<s.length&&i.push(s),s=[]);return 1<s.length&&i.push(s),i}static getNullablePointsList(t){let i=[],s=[];for(let e of t)null!=e?s.push(e):(1<s.length&&i.push(s),s=[]);return 1<=s.length&&i.push(s),i}static getPointsList2(e,i,t,s){let r=[],n=[],l=[],o=[],a=0;for(let t of e){let e=i[a];null!=t&&null!=e?(l.push(t),o.push(e)):(1<l.length&&(r.push(l),n.push(o)),l=[],o=[]),a++}1<l.length&&(r.push(l),n.push(o)),t.ref=r,s.ref=n}},__.d.StiAreaGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&e.fillRectangle(this.area.brush,t,null)}constructor(e,t){super(t),this.area=e}};{class Ub0{constructor(e,t,i,s){this.x1=e,this.y1=t,this.x2=i,this.y2=s}}__.d.StiLineF=Ub0,__.d.StiAxisAreaGeom=class extends __.d.StiAreaGeom{drawInterlacingHor(s,r){r.x=0,r.width=this.view.clientRectangle.width;let n=this.area;if(!n.interlacingHor.visible)return;let i=[],t=n.yAxis.info.stripPositions.length,l=StiArray.create(Number,t);for(let e=0;e<t;e++)l[t-1-e]=n.yAxis.info.stripPositions[e];let o=0,a=!0,h=0;for(let t of l){if(h++,a){o=t,i.push(t),a=!1;continue}let e=o-t;if(e<this.minWidth&&h!=l.length)continue;o=t,i.push(t)}let e=StiArray.create(Number,i.length),u=(i[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0),S=!0;for(let i of e){let t=e[u+1];if(S){let e=new RectangleD(r.x,r.y+t,r.width,i-t);0<=e.bottom&&e.y<this.view.clientRectangle.height&&s.fillRectangle(n.interlacingHor.interlacedBrush,e,null)}if(S=!S,++u==e.length-1)break}}drawInterlacingVer(s,r){r.y=0,r.height=this.view.clientRectangle.height;let n=this.area;if(!n.interlacingVert.visible)return;let e=0,l=0,i=(n.reverseHor&&(l=1),[]),o=n.xAxis.info.stripPositions,a=0,h=!0,u=0;for(let t of o){if(u++,h){a=t,i.push(t),h=!1;continue}let e=t-a;if(e<this.minWidth&&u!=o.length)continue;a=t,i.push(t)}let S=StiArray.create(Number,i.length);i[Stimulsoft.System.StiObject.stimulsoft]().copyTo(S);for(let i of S){let t=S[e+1];if(0<(1&l)){let e=new RectangleD(i+r.x,r.y,t-i,r.height);0<=e.right&&e.x<this.view.clientRectangle.width&&s.fillRectangle(n.interlacingVert.interlacedBrush,e,null)}if(l++,++e==S.length-1)break}}getGridLinesHorMajor(i,s,e){let r=new List,t=(i.x=0,i.width=this.view.clientRectangle.width,this.area),n=(e?t.yAxis:t.yRightAxis).info.stripPositions,l=n.length,o=StiArray.create(Number,l);for(let e=0;e<l;e++)o[l-e-1]=n[e];let a=(n=o)[0];for(let t of n){let e=a-t;if(e<this.minWidth&&0<e)continue;if(a=t,s.visible&&s.style!=StiPenStyle.None){let e=t+i.y;0<=e&&e<=this.clientRectangle.height&&r.add(new Ub0(i.x,e,i.right,e))}}return r}getGridLinesHorMinor(l,t,e){let o=new List,a=(l.x=0,l.width=this.view.clientRectangle.width,this.area),h=(e?a.yAxis:a.yRightAxis).info.stripPositions,i=h.length,s=StiArray.create(Number,i);for(let e=0;e<i;e++)s[i-e-1]=h[e];let r=(h=s)[0],u=0;for(let n of h){let e=r-n;if(e<this.minWidth&&0<e)continue;if(r=n,t.minorVisible&&t.minorStyle!=StiPenStyle.None&&u!=h.length-1){let e=h[u+1];if(n-e<this.minWidth)continue;let i=(0==t.minorCount?a.yAxis.ticks:t).minorCount,s=n,r=(e-n)/(i+1);for(let t=1;t<=i;t++){let e=(s=n+r*t)+l.y;0<=e&&e<=this.clientRectangle.height&&o.add(new Ub0(l.x,e,l.right,e))}}u++}return o}getGridLinesVerMajor(i,s,e){let r=new List,t=(i.y=0,i.height=this.view.clientRectangle.height,this.area),n=(e?t.xAxis:t.xTopAxis).info.stripPositions,l=0;for(let t of n){let e=t-l;if(e<this.minWidth&&0<e)continue;if(l=t,s.visible&&s.style!=StiPenStyle.None){let e=t+i.x;0<=e&&e<=this.clientRectangle.width&&r.add(new Ub0(e,i.y,e,i.bottom))}}return r}getGridLinesVerMinor(l,t,e){let o=new List,a=(l.y=0,l.height=this.view.clientRectangle.height,this.area),h=(e?a.xAxis:a.xTopAxis).info.stripPositions,i=0,u=0;for(let n of h){let e=n-i;if(e<this.minWidth&&0<e)continue;if(i=n,t.minorVisible&&t.minorStyle!=StiPenStyle.None&&u!=h.length-1){let e=h[u+1];if(e-n<this.minWidth)continue;let i=(0==t.minorCount?a.yAxis.ticks:t).minorCount,s=n,r=(e-n)/(i+1);for(let t=1;t<=i;t++){let e=(s=n+r*t)+l.x;0<=e&&e<=this.clientRectangle.width&&o.add(new Ub0(e,l.y,e,l.bottom))}}u++}return o}allowChildDrawing(e){return null!=e&&this.isChildVisibleInView(e)}isChildVisibleInView(e){let t=this.view.clientRectangle.clone(),i=(t.x=0,t.y=0,e.clientRectangle.clone());return i.x-=this.area.core.scrollDistanceX,i.y-=this.area.core.scrollDistanceY,null!=e&&t.intersectsWith(i)}draw(o){super.draw(o);let a=this.area,h=this.clientRectangle.clone();if(h.isEmpty)return;let e=a.axisCore.getSeries();if(0<e.length&&(this.drawInterlacingHor(o,h),this.drawInterlacingVer(o,h)),0<e.length){let e=this.getGridLinesHorMajor(h,a.gridLinesHor,!0),t=this.getGridLinesHorMinor(h,a.gridLinesHor,!0),i=this.getGridLinesHorMajor(h,a.gridLinesHorRight,!0),s=this.getGridLinesHorMinor(h,a.gridLinesHorRight,!0),r=this.getGridLinesVerMajor(h,a.gridLinesVert,!0),n=this.getGridLinesVerMinor(h,a.gridLinesVert,!0),l=new StiPenGeom(a.gridLinesHor.minorColor,1);l.penStyle=a.gridLinesHor.minorStyle,this.drawLines(o,t,l),(l=new StiPenGeom(a.gridLinesHorRight.minorColor,1)).penStyle=a.gridLinesHorRight.minorStyle,this.drawLines(o,s,l),(l=new StiPenGeom(a.gridLinesVert.minorColor,1)).penStyle=a.gridLinesVert.minorStyle,this.drawLines(o,n,l),(l=new StiPenGeom(a.gridLinesHor.color,1)).penStyle=a.gridLinesHor.style,this.drawLines(o,e,l),(l=new StiPenGeom(a.gridLinesHorRight.color,1)).penStyle=a.gridLinesHorRight.style,this.drawLines(o,i,l),(l=new StiPenGeom(a.gridLinesVert.color,1)).penStyle=a.gridLinesVert.style,this.drawLines(o,r,l)}}drawLines(t,i,s){for(let e of i)t.drawLine(s,e.x1,e.y1,e.x2,e.y2)}constructor(e,t,i){super(t,i),this.minWidth=6,this.view=e}}}let StiShadowSides=Stimulsoft.Base.Drawing.StiShadowSides;__.d.StiAxisAreaViewGeom=class extends __.d.StiAreaGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&this.area.showShadow&&e.drawCachedShadow(t,StiShadowSides.All,e.options.isPrinting),super.draw(e)}drawGeom(e){super.drawGeom(e),this.drawBorder(e)}drawChildGeoms(s){if(null!=this.childGeoms){let i=this.clientRectangle.clone();i.x=0,i.y=0,s.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let t of this.childGeoms){let e=Stimulsoft.StiOptions.Engine.allowClipChartArea&&(t.is(__.d.StiAxisAreaGeom)||t.is(__.d.StiXAxisGeom)&&t.isCenterAxis||t.is(__.d.StiYAxisGeom)&&t.isCenterAxis);e&&s.pushClip(i),this.allowChildDrawing(t)&&t.drawGeom(s),e&&s.popClip()}s.popTransform()}}drawBorder(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;let i=new StiPenGeom(this.area.borderColor,this.area.borderThickness);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(e,t)}},__.d.StiPieAreaGeom=class extends __.d.StiAreaGeom{draw(t){let i=this.clientRectangle.clone();if(0<i.width&&0<i.height){this.area.showShadow&&t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting),t.fillRectangle2(this.area.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.area.borderColor,this.area.borderThickness);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t){super(e,t)}},__.d.StiDoughnutAreaGeom=class extends __.d.StiPieAreaGeom{constructor(e,t){super(e,t)}};{class w20 extends __.d.StiCellGeom{draw(l){let o=this.clientRectangle.clone();if(o.isEmpty)return;if(0<o.width&&0<o.height){let e=Rectangle.empty,t=Rectangle.empty,i=!StiString.isNullOrEmpty(this.valueText),s=!StiString.isNullOrEmpty(this.titleText),r=i&&s,n=(r?(e=new Rectangle(o.x,o.y,o.width,o.height/2),t=new Rectangle(o.x,e.bottom,o.width,o.height/2)):i?e=o:s&&(t=o),new Font("Arial",1));e!=Rectangle.empty&&this.drawText(l,this.valueText,this.indicator.value.getColor(),e,n),t!=Rectangle.empty&&this.drawText(l,this.titleText,this.indicator.title.getColor(),t,n)}}drawText(e,t,i,s,r){if(StiString.isNullOrEmpty(t))return;let n=w20.getFontSize(e,s,t,r),l=StiFontGeom.create(r),o=(l.fontSize=n,e.getGenericStringFormat());e.drawRotatedString5(t,l,i,s,o,StiRotationMode.CenterCenter,0,!0)}static getFontSize(e,t,i,s){let r=StiFontGeom.create(s),n=e.measureString(i,r);if(0==n.width||0==n.height)return 0;let l=t.width/n.width,o=t.height/n.height,a=o<l?o:l;return a}constructor(e,t,i,s){super(e),this.valueText=t,this.titleText=i,this.indicator=s}}__.d.StiDoughnutAreaIndicatorGeom=w20}__.d.StiPictorialAreaGeom=class extends __.d.StiAreaGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&this.area.showShadow&&e.drawCachedShadow(t,StiShadowSides.All,e.options.isPrinting),super.draw(e)}drawGeom(e){super.drawGeom(e),this.drawBorder(e)}drawBorder(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;let i=new StiPenGeom(this.area.borderColor,this.area.borderThickness);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(e,t)}},__.d.StiRadarAreaGeom=class extends __.d.StiAreaGeom{drawHor(a,e,t){let h=this.clientRectangle.clone(),u=this.area;if(null==u.yAxis.info.stripPositions)return;let S=u.core,d=0;for(let o of u.yAxis.info.stripPositions){if(0!=o){let s=new RectangleD(S.centerPoint.x-o,S.centerPoint.y-o,2*o,2*o);if(u.radarStyle==__.d.StiRadarStyle.Circle){if(e&&u.interlacingHor.visible&&d!=u.yAxis.info.stripPositions.length-1&&0==(1&d)){let e=[],t=u.yAxis.info.stripPositions[d+1],i=new RectangleD(S.centerPoint.x-t,S.centerPoint.y-t,2*t,2*t);e.push(new StiArcSegmentGeom(s,0,360)),e.push(new StiArcSegmentGeom(i,0,360)),a.fillPath(u.interlacingHor.interlacedBrush,e,h,null)}if(t&&u.gridLinesHor.visible){let e;d==u.yAxis.info.stripPositions.length-1?e=new StiPenGeom(u.borderColor,u.borderThickness):(e=new StiPenGeom(u.gridLinesHor.color)).penStyle=u.gridLinesHor.style,a.drawEllipse2(e,s)}}else{if(e&&u.interlacingHor.visible&&d!=u.yAxis.info.stripPositions.length-1&&1==(1&d)){let r=[],n=0;for(let s of S.points){let e,t=(e=n==S.points.length-1?S.points[0]:S.points[n+1],new PointD(S.centerPoint.x+o*s.x,S.centerPoint.y+o*s.y)),i=new PointD(S.centerPoint.x+o*e.x,S.centerPoint.y+o*e.y);r.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),n++}let l=u.yAxis.info.stripPositions[d+1];n=0;for(let s of S.points){let e,t=(e=n==S.points.length-1?S.points[0]:S.points[n+1],new PointD(S.centerPoint.x+l*s.x,S.centerPoint.y+l*s.y)),i=new PointD(S.centerPoint.x+l*e.x,S.centerPoint.y+l*e.y);r.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),n++}a.fillPath(u.interlacingHor.interlacedBrush,r,h,null)}if(t&&u.gridLinesHor.visible){let s=0;for(let i of S.points){let e;e=s==S.points.length-1?S.points[0]:S.points[s+1];let t;d==u.yAxis.info.stripPositions.length-1?t=new StiPenGeom(u.borderColor,u.borderThickness):(t=new StiPenGeom(u.gridLinesHor.color)).penStyle=u.gridLinesHor.style,a.drawLine(t,S.centerPoint.x+o*i.x,S.centerPoint.y+o*i.y,S.centerPoint.x+o*e.x,S.centerPoint.y+o*e.y),s++}}}}d++}}drawVert(r,t,n){let l=this.clientRectangle.clone(),o=this.area,a=o.core,h=0,u=360/a.points.length,S=0;for(let e of a.points){let i=a.centerPoint,s=new PointD(i.x+l.width/2*e.x,i.y+l.width/2*e.y);if(t&&o.interlacingVert.visible){let t=h<a.points.length-1?new PointD(i.x+l.width/2*a.points[h+1].x,i.y+l.height/2*a.points[h+1].y):new PointD(i.x+l.width/2*a.points[0].x,i.y+l.height/2*a.points[0].y);if(1==(1&h)){let e=[];o.radarStyle==__.d.StiRadarStyle.Circle?(e.push(new StiLineSegmentGeom(i.x,i.y,s.x,s.y)),e.push(new StiArcSegmentGeom(l,S-90,u))):(e.push(new StiLineSegmentGeom(i.x,i.y,s.x,s.y)),e.push(new StiLineSegmentGeom(s.x,s.y,t.x,t.y))),e.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),r.fillPath(o.interlacingVert.interlacedBrush,e,l,null)}}if(n&&o.gridLinesVert.visible){let e=new StiPenGeom(o.gridLinesVert.color);e.penStyle=o.gridLinesVert.style,r.drawLine(e,i.x,i.y,s.x,s.y)}S+=u,h++}}drawBackground(e){let t=this.clientRectangle.clone(),n=this.area;if(null==n.yAxis.info.stripPositions)return;let l=n.core,o=3,a=new StiSolidBrush(Color.fromArgb(50,0,0,0));if(n.radarStyle==__.d.StiRadarStyle.Circle)!this.area.showShadow||n.brush.is(StiEmptyBrush)||StiBrush.isTransparent(n.brush)||(e.pushTranslateTransform(o,o),e.fillEllipse2(a,t,null),e.popTransform()),e.fillEllipse2(n.brush,t,null);else{let i=n.yAxis.info.stripPositions[n.yAxis.info.stripPositions.length-1],s=[],r=0;for(let t of l.points){let e=r==l.points.length-1?l.points[0]:l.points[r+1];s.push(new StiLineSegmentGeom(l.centerPoint.x+i*t.x,l.centerPoint.y+i*t.y,l.centerPoint.x+i*e.x,l.centerPoint.y+i*e.y)),r++}!this.area.showShadow||n.brush.is(StiEmptyBrush)||StiBrush.isTransparent(n.brush)||(e.pushTranslateTransform(o,o),e.fillPath(a,s,t,null),e.popTransform()),e.fillPath(n.brush,s,t,null)}}draw(e){let t=this.clientRectangle.clone();0<t.width&&0<t.height&&(e.pushSmoothingModeToAntiAlias(),this.drawBackground(e),this.drawVert(e,!0,!1),this.drawHor(e,!0,!1),this.drawVert(e,!1,!0),this.drawHor(e,!1,!0),e.popSmoothingMode())}constructor(e,t,i){super(e,t),this.valuesCount=i}},__.d.StiSunburstAreaGeom=class extends __.d.StiPieAreaGeom{constructor(e,t){super(e,t)}},__.d.StiTreemapAreaGeom=class extends __.d.StiAreaGeom{draw(t){let i=this.clientRectangle.clone();if(0<i.width&&0<i.height){this.area.showShadow&&t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting),t.fillRectangle2(this.area.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.area.borderColor,this.area.borderThickness);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t){super(e,t)}},__.d.StiAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.axis.core.getStringFormatGeom(e,this.wordWrap),i=this.axis.core.getFontGeom(e),s=new StiSolidBrush(this.axis.labels.color);e.drawRotatedString9(this.text,i,s,this.textPoint,t,this.rotationMode,this.angle,this.axis.labels.antialiasing,StiMath.trunc(this.width*e.options.zoom))}constructor(e,t,i,s,r,n,l,o,a){super(t),this.axis=e,this.text=s,this.stripLine=r,this.textPoint=i,this.angle=n,this.rotationMode=o,this.width=l,this.wordWrap=a}},__.d.StiAxisTitleGeom=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.axis.title.color),i=e.getDefaultStringFormat();e.drawRotatedString5(this.axis.title.text,this.font,t,this.clientRectangle,i,StiRotationMode.CenterCenter,this.angle,this.axis.title.antialiasing)}constructor(e,t,i,s,r){super(t),this.angle=0,this.axis=e,this.angle=i,this.font=r}},__.d.StiXAxisGeom=class extends __.d.StiCellGeom{drawArrow(r,t){let n=r.options.zoom,l=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth),e=new StiPenGeom(this.axis.lineColor),o=new StiSolidBrush(this.axis.lineColor),i=0,a=(this.axis.core.isBottomSide&&(i=t.y),this.axis.core.isTopSide&&(i=t.bottom),PointD.empty);switch(a=this.axis.area.reverseHor?new PointD(t.x,i):new PointD(t.right,i),this.axis.arrowStyle){case __.d.StiArrowStyle.Triangle:{r.drawLine(l,a.x,a.y,a.x+this.axis.core.arrowHeight*n,a.y),r.pushSmoothingModeToAntiAlias();let e=[];e.push(new StiLineSegmentGeom(a.x+this.axis.core.arrowHeight*n,a.y-this.axis.core.arrowWidth*n,a.x+4*this.axis.core.arrowHeight*n,a.y)),e.push(new StiLineSegmentGeom(a.x+4*this.axis.core.arrowHeight*n,a.y,a.x+this.axis.core.arrowHeight*n,a.y+this.axis.core.arrowWidth*n)),r.fillPath(o,e,t,null),r.popSmoothingMode();break}case __.d.StiArrowStyle.Lines:r.drawLine(l,a.x,a.y,a.x+4*this.axis.core.arrowHeight*n,a.y),r.pushSmoothingModeToAntiAlias(),r.drawLine(e,a.x+this.axis.core.arrowHeight*n,a.y-this.axis.core.arrowWidth*n,a.x+4*this.axis.core.arrowHeight*n,a.y),r.drawLine(e,a.x+4*this.axis.core.arrowHeight*n,a.y,a.x+this.axis.core.arrowHeight*n,a.y+this.axis.core.arrowWidth*n),r.popSmoothingMode();break;case __.d.StiArrowStyle.Circle:{let e=this.axis.core.arrowHeight*n,t=(r.drawLine(l,a.x,a.y,a.x+2*e,a.y),new PointD(a.x+2*e,a.y-e/2)),i=(r.pushSmoothingModeToAntiAlias(),new RectangleD(t.x,t.y,e,e));r.drawEllipse2(l,i),r.popSmoothingMode();break}case __.d.StiArrowStyle.Arc:case __.d.StiArrowStyle.ArcAndCircle:{let i=this.axis.core.arrowHeight*n,s=(r.drawLine(l,a.x,a.y,a.x+2*i,a.y),r.pushSmoothingModeToAntiAlias(),[]);if(this.axis.area.reverseHor){let e=new PointD(a.x+3*i,a.y+i/2),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.x-=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,270,180))}else{let e=new PointD(a.x+2*i,a.y-i/2),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.x+=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,90,180))}if(r.drawPath(l,s,StiPathGeom.getBoundsState),this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle){let e=this.axis.core.arrowHeight*n,t=new PointD(a.x+2*e+n,a.y-e/2),i=new RectangleD(t.x,t.y,e,e);this.axis.area.reverseHor?(i.inflate(.5*n,.5*n),i.x-=3*n):(i.inflate(-.5*n,-.5*n),i.x+=n),r.fillEllipse2(o,i,null)}r.popSmoothingMode();break}}}drawAxisLine(e,t){let i=0,s=(this.axis.core.isTopSide&&(i=t.bottom),this.axis.core.isBottomSide&&(i=t.top),new StiPenGeom(this.axis.lineColor,this.axis.lineWidth));s.penStyle=this.axis.lineStyle,!this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Center?this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Bottom||e.drawLine(s,t.x,i,t.right,i):this.axis.area.reverseVert?e.drawLine(s,t.x,i,t.right,i):e.drawLine(s,t.x,i+t.height,t.right,i+t.height)}drawMinorTicks(s,r,n,e,l,t){let i=e-n,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=n+o*i,t=this.axis.core.isTopSide||this.isCenterAxis?l-a:l+a;this.axis.area.reverseVert&&this.isCenterAxis&&(t=l+a),s.drawLine(r,e,l,e,t)}}drawTicks(l,e,s,o){if(!s.visible)return;let t=s.length*l.options.zoom,a=this.axis.core.isTopSide||this.isCenterAxis?e.bottom:e.top,h=this.axis.core.isTopSide||this.isCenterAxis?a-t:a+t,u=(this.isCenterAxis&&this.axis.area.reverseVert&&(h=a+t),this.axis.info.ticksCollection);if(this.isArgumentDateTime(u)&&this.axis.area.xAxis.dateTimeStep.step!=__.d.StiTimeDateStep.None){let e,i,s=!0,r="",n=0;for(let t=0;t<u.length;t++){if(s&&(n=u[t].position,s=!1),!(null!=u[t].stripLine.valueObject&&u[t].stripLine.valueObject instanceof DateTime))continue;if(e=u[t].stripLine.valueObject,i=t<u.length-2?u[t+1].stripLine.valueObject:e,!e.ticks||!i.ticks)continue;switch(this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMMdd")==i.toString("yyyyMMMMdd")&&t!=u.length-2||(r=e.toString("dd"));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMddHH")==i.toString("yyyyMMMMddHH")&&t!=u.length-2||(r=e.toString("HH"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddhhmm")==i.toString("yyyyMMMMddhhmm")&&t!=u.length-2||(r=e.toString("mm"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyyMMMM")==i.toString("yyyyMMMM")&&t!=u.length-2||(r=e.toString("MMMM"));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddHHmmss")==i.toString("yyyyMMMMddHHmmss")&&t!=u.length-2||(r=e.toString("ss"));break;case __.d.StiTimeDateStep.Year:e.toString("yyyy")==i.toString("yyyy")&&t!=u.length-2||(r=e.toString("yyyy"));break}if(""!=r){let e=0;e=t==u.length-2?u[t+1].position:u[t].position+(u[t+1].position-u[t].position)/2,l.drawRectangle2(o,n,a,e-n,h),r="",n=e}}}else{let i=0;for(let e of this.axis.info.ticksCollection){let t=e.position;if(l.drawLine(o,t,a,t,h),s.minorVisible&&i!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[i+1].position;this.drawMinorTicks(l,o,t,e,a,s)}i++}}}isArgumentDateTime(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,(!this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Center)&&(this.isCenterAxis||(this.axis.core.isTopSide&&this.drawTicks(e,t,this.axis.ticks,i),!this.axis.core.isBottomSide)||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Bottom)||this.drawTicks(e,t,this.axis.ticks,i),this.drawAxisLine(e,t)}getViewclipRect(){let e=this.view.clientRectangle.clone();return e.x=this.axis.area.core.scrollDistanceX,e.y=0,e.inflate(1,1),this.isCenterAxis&&e.inflate(0,2),e}allowChildDrawing(e){let t=e;if(null==t)return!0;if(null==this.view)return!0;let i=this.getViewclipRect(),s=t.clientRectangle;return!(s.right<i.x||s.x>i.right)}draw(t){let e=this.clientRectangle.clone();if(e.width<=0||e.height<=0)return;if(null!=this.view){let e=this.getViewclipRect();t.pushClip(e)}this.drawAxis(t,e),null!=this.view&&t.popClip()}constructor(e,t,i){super(t),this.isCenterAxis=!1,this.axis=e,this.isCenterAxis=i}},__.d.StiXAxisViewGeom=class extends __.d.StiXAxisGeom{drawChildGeoms(t){let i=this.clientRectangle.clone();if(this.isCenterAxis&&(i.y+=this.axis.area.core.getDividerY()-this.axis.area.core.scrollDistanceY),null!=this.childGeoms)for(let e of this.childGeoms)this.allowChildDrawing(e)&&(e.is(__.d.StiHorzScrollBarGeom)||t.pushTranslateTransform(-this.axis.area.core.scrollDistanceX,0),t.pushTranslateTransform(i.x,i.y),e.drawGeom(t),t.popTransform(),e.is(__.d.StiHorzScrollBarGeom)||t.popTransform());this.draw(t)}draw(e){let t=this.clientRectangle.clone();if(this.isCenterAxis&&(t.y+=this.axis.area.core.getDividerY()-this.axis.area.core.scrollDistanceY),t.width<=0||t.height<=0)return;this.axis.arrowStyle==__.d.StiArrowStyle.None||this.isCenterAxis||this.drawArrow(e,t)}constructor(e,t,i){super(e,t,i)}},__.d.StiYAxisGeom=class extends __.d.StiCellGeom{drawArrow(r,e){let n=r.options.zoom,l=new StiPenGeom(this.axis.lineColor),o=new StiSolidBrush(this.axis.lineColor),t=new StiPenGeom(this.axis.lineColor),a=(this.axis.visible||this.drawAxisLine(r,e),PointD.empty);switch(a=this.axis.area.reverseVert?new PointD(e.right,e.bottom):new PointD(e.right,e.y),this.axis.core.isRightSide&&(a.x=e.x),this.axis.arrowStyle){case __.d.StiArrowStyle.Triangle:{r.drawLine(l,a.x,a.y,a.x,a.y-this.axis.core.arrowHeight*n),r.pushSmoothingModeToAntiAlias();let e=[];e.push(new StiLineSegmentGeom(a.x-this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n)),e.push(new StiLineSegmentGeom(a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n)),r.fillPath(o,e,StiPathGeom.getBoundsState,null),r.popSmoothingMode();break}case __.d.StiArrowStyle.Lines:r.drawLine(l,a.x,a.y,a.x,a.y-4*this.axis.core.arrowHeight*n),r.pushSmoothingModeToAntiAlias(),r.drawLine(t,a.x-this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n),r.drawLine(t,a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n),r.popSmoothingMode();break;case __.d.StiArrowStyle.Circle:{r.drawLine(l,a.x,a.y,a.x,a.y-this.axis.core.arrowHeight*n*2);let e=this.axis.core.arrowHeight*n,t=new PointD(a.x-e/2,a.y-3*e),i=(r.pushSmoothingModeToAntiAlias(),new RectangleD(t.x,t.y,this.axis.core.arrowHeight*n,this.axis.core.arrowHeight*n));r.drawEllipse2(l,i),r.popSmoothingMode();break}case __.d.StiArrowStyle.Arc:case __.d.StiArrowStyle.ArcAndCircle:{let i=this.axis.core.arrowHeight*n,s=(r.drawLine(l,a.x,a.y,a.x,a.y-2*i),r.pushSmoothingModeToAntiAlias(),[]);if(this.axis.area.reverseVert){let e=new PointD(a.x+i/2,a.y-2*i),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.y+=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,180,180))}else{let e=new PointD(a.x-i/2,a.y-3*i),t=new RectangleD(e.x,e.y,i,i);this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.y-=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,0,180))}if(r.drawPath(l,s,StiPathGeom.getBoundsState),this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle){let e=this.axis.core.arrowHeight*n,t=new PointD(a.x-e/2,a.y-3*e-n),i=new RectangleD(t.x,t.y,e,e);this.axis.area.reverseVert?(i.inflate(.5*n,.5*n),i.y+=3*n):(i.inflate(-.5*n,-.5*n),i.y-=n),r.fillEllipse2(o,i,null)}r.popSmoothingMode();break}}}drawAxisLine(e,t){let i=t.right,s=(this.axis.core.isRightSide&&(i=t.left),this.isCenterAxis&&this.axis.area.reverseHor&&(i=t.right),new StiPenGeom(this.axis.lineColor,this.axis.lineWidth));s.penStyle=this.axis.lineStyle,(!this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Center)&&(this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Left)||e.drawLine(s,i,t.y,i,t.bottom)}drawMinorTicks(s,r,n,l,e,t){let i=e-l,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=l+o*i,t=this.axis.core.isLeftSide||this.isCenterAxis?n-a:n+a;this.axis.area.reverseHor&&this.isCenterAxis&&(t=n+a),s.drawLine(r,n,e,t,e)}}drawTicks(i,e,s,r){if(!s.visible)return;let t=s.length*i.options.zoom,n=this.axis.core.isLeftSide?e.right:e.left,l=this.axis.core.isLeftSide?n-t:n+t,o=(this.isCenterAxis&&this.axis.area.reverseHor&&(n=e.right,l=e.right+t),0);for(let e of this.axis.info.ticksCollection){let t=e.position;if(i.drawLine(r,n,t,l,t),s.minorVisible&&o!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[o+1].position;this.drawMinorTicks(i,r,n,t,e,s)}o++}}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,!this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Center?this.isCenterAxis||(this.axis.core.dock!=__.d.StiYAxisDock.Left||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Left||this.drawTicks(e,t,this.axis.area.yAxis.ticks,i),this.axis.core.dock==__.d.StiYAxisDock.Right&&this.drawTicks(e,t,this.axis.area.yRightAxis.ticks,i)):this.drawTicks(e,t,this.axis.ticks,i),this.drawAxisLine(e,t)}getViewclipRect(){let e=this.view.clientRectangle.clone();return e.x=0,e.y=this.axis.area.core.scrollDistanceY,e.inflate(1,1),this.isCenterAxis&&e.inflate(2,0),e}allowChildDrawing(e){let t=e;if(null==t)return!0;if(null==this.view)return!0;let i=this.getViewclipRect(),s=t.clientRectangle;return!(s.bottom<i.y||s.y>i.bottom)}draw(t){let e=this.clientRectangle.clone();if(e.width<=0||e.height<=0)return;if(null!=this.view){let e=this.getViewclipRect();t.pushClip(e)}this.drawAxis(t,e),null!=this.view&&t.popClip()}constructor(e,t,i){super(t),this.isCenterAxis=!1,this.axis=e,this.isCenterAxis=i}},__.d.StiYAxisViewGeom=class extends __.d.StiYAxisGeom{drawChildGeoms(t){let i=this.clientRectangle.clone();if(this.isCenterAxis&&(i.x+=this.axis.area.core.getDividerX()-this.axis.area.core.scrollDistanceX),null!=this.childGeoms)for(let e of this.childGeoms)this.allowChildDrawing(e)&&(e.is(__.d.StiVertScrollBarGeom)||t.pushTranslateTransform(0,-this.axis.area.core.scrollDistanceY),t.pushTranslateTransform(i.x,i.y),e.drawGeom(t),t.popTransform(),e.is(__.d.StiVertScrollBarGeom)||t.popTransform())}draw(e){let t=this.clientRectangle.clone();if(this.isCenterAxis&&(t.x+=this.axis.area.core.getDividerX()-this.axis.area.core.scrollDistanceX),t.width<=0||t.height<=0)return;this.axis.arrowStyle==__.d.StiArrowStyle.None||this.isCenterAxis||this.drawArrow(e,t)}constructor(e,t,i){super(e,t,i)}},__.d.StiDownButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/3),r=t.height/4,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y-r,n.x,n.y+r)),l.push(new StiLineSegmentGeom(n.x,n.y+r,n.x+s,n.y-r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiHorzScrollBarGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.axis.lineColor);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(t),this.axis=e}},__.d.StiHorzTrackBarGeom=class extends __.d.StiCellGeom{draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.axis.lineColor),s=new StiPenGeom(Color.white);if(t.fillRectangle2(this.axis.lineColor,i.x,i.y,i.width,i.height,null),t.drawRectangle2(e,i.x,i.y,i.width,i.height),10<i.width&&4<i.height){let e=i.x+i.width/2;t.drawLine(s,e-2,i.y+2,e-2,i.bottom-2),t.drawLine(s,e,i.y+2,e,i.bottom-2),t.drawLine(s,e+2,i.y+2,e+2,i.bottom-2)}}constructor(e,t,i){super(t),this.axis=e,this.scrollBar=i}},__.d.StiLeftButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/4),r=t.height/3,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x+s,n.y-r,n.x-s,n.y)),l.push(new StiLineSegmentGeom(n.x-s,n.y,n.x+s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiRightButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/4),r=t.height/3,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y-r,n.x+s,n.y)),l.push(new StiLineSegmentGeom(n.x+s,n.y,n.x-s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiUpButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/3),r=t.height/4,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y+r,n.x,n.y-r)),l.push(new StiLineSegmentGeom(n.x,n.y-r,n.x+s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiVertScrollBarGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.axis.lineColor);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(t),this.axis=e}},__.d.StiVertTrackBarGeom=class extends __.d.StiCellGeom{draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.axis.lineColor),s=new StiPenGeom(Color.white);if(t.fillRectangle2(this.axis.lineColor,i.x,i.y,i.width,i.height,null),t.drawRectangle2(e,i.x,i.y,i.width,i.height),10<i.height&&4<i.width){let e=i.y+i.height/2;t.drawLine(s,i.x+2,e-2,i.right-2,e-2),t.drawLine(s,i.x+2,e,i.right-2,e),t.drawLine(s,i.x+2,e+2,i.right-2,e+2)}}constructor(e,t,i){super(t),this.axis=e,this.scrollBar=i}},__.d.StiChartTitleGeom=class extends __.d.StiCellGeom{draw(s){if(this.title.visible){let e=this.title.dock,t=(this.title.dock==__.d.StiChartTitleDock.Bottom&&(e=0),StiFontGeom.changeFontSize(this.title.font,this.title.font.size*s.options.zoom)),i=s.getDefaultStringFormat();i.alignment=this.title.alignment,i.trimming=StringTrimming.None,i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap|StringFormatFlags.NoClip,s.drawRotatedString8(this.title.text,t,this.title.brush,this.clientRectangle,i,StiRotationMode.CenterCenter,e,this.title.antialiasing)}}constructor(e,t){super(t),this.title=e}},__.d.StiConstantLinesVerticalGeom=class extends __.d.StiCellGeom{draw(s){let e=this.clientRectangle.clone(),t=new StiPenGeom(this.line.lineColor,this.line.lineWidth);if(t.penStyle=this.line.lineStyle,s.drawLine(t,e.left,e.top,e.left,e.bottom),this.line.titleVisible){let e=new StiSolidBrush(this.line.lineColor),t=StiFontGeom.changeFontSize(this.line.font,this.line.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString9(this.line.text,t,e,this.point,i,this.mode,90,this.line.antialiasing,0)}}constructor(e,t,i,s){super(t),this.line=e,this.point=i,this.mode=s}},__.d.StiConstantLinesYGeom=class extends __.d.StiCellGeom{draw(s){let e=this.clientRectangle.clone(),t=new StiPenGeom(this.line.lineColor,this.line.lineWidth);if(t.penStyle=this.line.lineStyle,s.drawLine(t,e.left,e.top,e.left+e.width,e.top),this.line.titleVisible){let e=new StiSolidBrush(this.line.lineColor),t=StiFontGeom.changeFontSize(this.line.font,this.line.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString9(this.line.text,t,e,this.point,i,this.mode,0,this.line.antialiasing,0)}}constructor(e,t,i,s){super(t),this.line=e,this.point=i,this.mode=s}},__.d.StiLegendGeom=class extends __.d.StiCellGeom{dispose(){super.dispose(),this.seriesItems[Stimulsoft.System.StiObject.stimulsoft]().clear(),this.seriesItems=null}draw(t){if(!this.legend.visible||0==this.seriesItems.length)return;let i=this.clientRectangle.clone();if(null!=this.legendTitleGeom&&(i.y+=this.legendTitleGeom.clientRectangle.height,i.height-=this.legendTitleGeom.clientRectangle.height),0<i.width&&0<i.height){if(this.legend.showShadow)if(this.legend.chart.isAnimation){let e=new StiOpacityAnimation(new TimeSpan(0),new TimeSpan(0));t.drawShadowRect(i,6,null,e)}else t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting);t.fillRectangle2(this.legend.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.legend.borderColor);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t,i){super(t),this.legend=e,this.seriesItems=i}},__.d.StiLegendItemGeom=class extends __.d.StiCellGeom{draw(i){let s=this.clientRectangle.clone();if(this.legend.markerVisible){let e=new RectangleD(this.clientRectangle.x,this.clientRectangle.y+(this.clientRectangle.height-this.legend.markerSize.height*i.options.zoom)/2,this.legend.markerSize.width*i.options.zoom,this.legend.markerSize.height*i.options.zoom),t=(this.legend.markerAlignment==__.d.StiMarkerAlignment.Right&&(e.x=this.clientRectangle.right-e.width),__.d.StiMarkerLegendFactory.createMarker(this.item.series));t.draw(i,this.item.series,e,this.colorIndex,this.legendItemsCount,this.legendItemIndex),this.legend.markerAlignment==__.d.StiMarkerAlignment.Left&&(s.x+=this.legend.markerSize.width*i.options.zoom),s.width-=this.legend.markerSize.width*i.options.zoom}this.legend.markerAlignment!=__.d.StiMarkerAlignment.Right&&(s.x+=2),s.width+=4;let e=new StiSolidBrush(this.legend.labelsColor),t=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom),r=i.getDefaultStringFormat();r.alignment=StringAlignment.Near,r.lineAlignment=StringAlignment.Center,r.formatFlags=0,this.legend.markerAlignment==__.d.StiMarkerAlignment.Right&&(r.formatFlags=StringFormatFlags.NoWrap),i.drawRotatedString6(this.item.getText(i,t),t,e,s,r,StiRotationMode.LeftTop,0,!0,0,!1)}constructor(e,t,i,s,r,n){super(i),this.legend=e,this.item=t,this.colorIndex=s,this.legendItemsCount=r,this.legendItemIndex=n}},__.d.StiLegendTitleGeom=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.legend.titleColor),i=StiFontGeom.changeFontSize(this.legend.titleFont,this.legend.titleFont.size*e.options.zoom),s=e.getDefaultStringFormat();s.alignment=StringAlignment.Center,s.lineAlignment=StringAlignment.Center,s.formatFlags=0,e.drawRotatedString5(this.legend.title,i,t,this.clientRectangle,s,StiRotationMode.CenterCenter,0,!0)}constructor(e,t){super(t),this.legend=e}},__.d.StiHeatmapLegendGeom=class extends __.d.StiCellGeom{draw(e){if(!this.legend.visible)return}constructor(e,t){super(t),this.legend=e}},__.d.StiHeatmapLegendItemGeom=class extends __.d.StiCellGeom{draw(e){let t=this.legend.markerSize.width*e.options.zoom,i=new RectangleD(this.clientRectangle.x,this.clientRectangle.y,t,this.clientRectangle.height),s=new RectangleD(i.right,this.clientRectangle.y,this.clientRectangle.width-i.width,this.clientRectangle.height),r=(s.x+=2,s.width+=4,new StiSolidBrush(this.legend.labelsColor)),n=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),l=e.getDefaultStringFormat(),o=new Point(i.right,i.top),a=new Point(i.right,i.bottom);null!=this.startItemCore&&e.drawRotatedString9(this.startItemCore.getText(e,n),n,r,o,l,StiRotationMode.LeftCenter,0,!0,0),null!=this.endItemCore&&e.drawRotatedString9(this.endItemCore.getText(e,n),n,r,a,l,StiRotationMode.LeftCenter,0,!0,0)}constructor(e,t,i,s){super(t),this.legend=e,this.startItemCore=i,this.endItemCore=s}},__.d.StiHeatmapLegendMarkerGeom=class extends __.d.StiCellGeom{draw(e){this.drawMarker(e)}drawMarker(e){let t=this.legend.markerSize.width*e.options.zoom,i=__.d.StiHeatmapHelper.getLinearGradientPoints(this.colors.length),s=new StiLinearGradientBrush(this.colors,i,90);e.fillRectangle2(s,this.clientRectangle.x,this.clientRectangle.y,t,this.clientRectangle.height,null)}constructor(e,t,i){super(i),this.legend=e,this.colors=t}},__.d.StiLegendAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getAreaMarkerPath(i),u=new StiPenGeom(o),S=(e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),__.d.StiLegendMarkerHelper.getAreaMarkerLinePoints(i));e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendCandelstickMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=l.borderColor,h=new StiPenGeom(a),u=(e.pushSmoothingModeToAntiAlias(),new PointD(i.left+i.width/4,i.top+i.height/4)),S=i.width/2,d=i.height/2;e.fillRectangle2(o,u.x,u.y,S,d,null),e.drawRectangle2(h,u.x,u.y,S,d),e.drawLine(h,i.x+i.width/2,i.y,i.x+i.width/2,i.top+i.height/4),e.drawLine(h,i.x+i.width/2,i.bottom,i.x+i.width/2,i.bottom-i.height/4),e.popSmoothingMode()}},__.d.StiLegendColumnMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t.legendColor,o=null!=l?new StiSolidBrush(l):t.core.getSeriesBrush(s,r),a=new StiPenGeom(t.core.getSeriesBorderColor(s,r));null!=t.chart&&null!=t.chart.style&&t.chart.style.core.fillColumn(e,i,o,null),e.drawRectangle2(a,i.x,i.y,i.width,i.height)}},__.d.StiLegendDoughnutMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(n,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=l.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a);e.pushSmoothingModeToAntiAlias(),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width,i.y,2*i.width,2*i.height),270,90)),h.push(new StiLineSegmentGeom(i.right,i.bottom,i.x+i.width/2,i.bottom)),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width/2,i.bottom-i.height/2,i.width,i.height),360,-90)),h.push(new StiLineSegmentGeom(i.x,i.y+i.height/2,i.x,i.y)),e.fillPath(o,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}};let IStiFontIconsSeries=__.d.IStiFontIconsSeries,StiCurveSegmentGeom=(__.d.StiLegendFontIconMarker=class{draw(r,n,l,o,a,e){try{let e=n.as(IStiFontIconsSeries),t=e.icon,i=n.legendColor,s=null!=i?new StiSolidBrush(i):n.core.getSeriesBrush(o,a);__.a.StiFontIconsHelper.drawDirectionIcons(r,s,l,new SizeF(l.height,l.height),t,null,null,!0)}catch(e){}}},__.d.StiLegendFunnelMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(s,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=l.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a),S=(e.pushSmoothingModeToAntiAlias(),[new PointD(i.x,i.y),new PointD(i.right,i.y),new PointD(i.x+3*i.width/4,i.top+i.height/2),new PointD(i.x+3*i.width/4,i.bottom),new PointD(i.x+1*i.width/4,i.bottom),new PointD(i.x+1*i.width/4,i.top+i.height/2)]);h.push(new StiLinesSegmentGeom(S)),h.push(new StiCloseFigureSegmentGeom),e.fillPath(o,h,i,null),e.drawPath(u,h,null),e.popSmoothingMode()}},__.d.StiLegendLineMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(t,e,i,s,r,n){let l=Color.transparent,o=!1,a=!1,h=null,u=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarSeries),S=(null!=u&&(l=StiBrush.toColor(u.marker.brush),h=u.marker.icon,a=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),d=(null!=S&&(l=S.lineColor,a=S.marker.visible,h=S.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries)),m=(null!=d&&(l=d.lineColor,a=d.marker.visible,h=d.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiStackedBaseLineSeries)),c=(null!=m&&(l=m.lineColor,a=m.marker.visible,h=m.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiScatterSeries)),g=(null!=c&&(l=StiBrush.toColor(c.marker.brush),h=c.marker.icon,a=!0,o=!1),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiScatterLineSeries)),p=(null!=g&&(l=g.lineColor,a=g.marker.visible,h=g.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBubbleSeries));if(null!=p){let e=p.brush;p.allowApplyStyle&&(e=p.core.getSeriesBrush(s,r),e=p.processSeriesBrushes(s,e)),l=StiBrush.toColor(e),a=!0,o=!1}if(null!=h)__.a.StiFontIconsHelper.drawDirectionIcons(t,new StiSolidBrush(l),i,new SizeF(i.height,i.height),h,null,null,!1);else{if(o){let e=new StiPenGeom(l);t.drawRectangle(e,i),t.drawLine(e,i.x,i.y+i.height/2,i.right,i.y+i.height/2)}a&&(o&&(i=new Rectangle(i.x+i.width/4,i.y+i.height/4,i.width/2,i.height/2)),t.pushSmoothingModeToAntiAlias(),t.fillEllipse2(new StiSolidBrush(l),i,null),t.popSmoothingMode())}}},Stimulsoft.Base.Context.StiCurveSegmentGeom);{class Ph0{static getSteppedMarkerPath(e){let t=[];return t.push(new StiLineSegmentGeom(e.x,e.y,e.x+e.width,e.y)),t.push(new StiLineSegmentGeom(e.x+e.width,e.y,e.x+e.width,e.y+e.height)),t.push(new StiLineSegmentGeom(e.x+e.width,e.y+e.height,e.x,e.y+e.height)),t.push(new StiLineSegmentGeom(e.x,e.y+e.height,e.x,e.y)),t}static getAreaMarkerPath(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new StiLineSegmentGeom(e.x,e.y+3.5*i,e.x,e.y+3.5*i)),s.push(new StiLineSegmentGeom(e.x,e.y+3.5*i,e.x+2*t,e.y+.5*i)),s.push(new StiLineSegmentGeom(e.x+2*t,e.y+.5*i,e.x+4*t,e.y+2.5*i)),s.push(new StiLineSegmentGeom(e.x+4*t,e.y+2.5*i,e.x+5*t,e.y+1.5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+1.5*i,e.x+5*t,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+5*i,e.x,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x,e.y+5*i,e.x,e.y+3*i)),s}static getAreaMarkerLinePoints(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new PointD(e.x,e.y+3.5*i)),s.push(new PointD(e.x+2*t,e.y+.5*i)),s.push(new PointD(e.x+4*t,e.y+2.5*i)),s.push(new PointD(e.x+5*t,e.y+1.5*i)),s}static getSplineAreaMarkerPath(e){let t=e.width/5,i=e.height/5,s=[],r=(s.push(new StiLineSegmentGeom(e.x,e.y+5*i,e.x,e.y+3.5*i)),Ph0.getSplineAreaMarkerLinePoints(e));return s.push(new StiCurveSegmentGeom(r,.55)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+1.5*i,e.x+5*t,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+5*i,e.x,e.y+5*i)),s}static getSplineAreaMarkerLinePoints(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new PointD(e.x,e.y+3.5*i)),s.push(new PointD(e.x+2*t,e.y+.5*i)),s.push(new PointD(e.x+4*t,e.y+2.5*i)),s.push(new PointD(e.x+5*t,e.y+1.5*i)),s}}__.d.StiLegendMarkerHelper=Ph0}__.d.StiLegendPictorialMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t.core.getSeriesBrush(s,r);e.pushSmoothingModeToAntiAlias(),e.fillEllipse2(l,i,null),e.popSmoothingMode()}},__.d.StiLegendPieMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(s,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=t.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a);e.pushSmoothingModeToAntiAlias(),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width,i.y,2*i.width,2*i.height),270,90)),h.push(new StiLineSegmentGeom(i.right,i.bottom,i.x,i.bottom)),h.push(new StiLineSegmentGeom(i.x,i.bottom,i.x,i.y)),e.fillPath(o,h,i,null),e.drawPath(u,h,null),e.popSmoothingMode()}},__.d.StiLegendRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeSeries),o=l.lineColor,a=l.brush,h=[],u=i.width/5,S=i.height/5,d=(h.push(new StiLineSegmentGeom(i.x,i.y+3*S,i.x,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x,i.y+3*S,i.x+2*u,i.y)),h.push(new StiLineSegmentGeom(i.x+2*u,i.y,i.x+4*u,i.y+2*S)),h.push(new StiLineSegmentGeom(i.x+4*u,i.y+2*S,i.x+5*u,i.y+1*S)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+1*S,i.x+5*u,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+3*S,i.x+4*u,i.y+4*S)),h.push(new StiLineSegmentGeom(i.x+4*u,i.y+4*S,i.x+2*u,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x+2*u,i.y+3*S,i.x,i.y+5*S)),h.push(new StiLineSegmentGeom(i.x,i.y+5*S,i.x,i.y+3*S)),new StiPenGeom(o));e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(d,h,i),e.popSmoothingMode()}},__.d.StiLegendSplineAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSplineAreaMarkerPath(i),u=new StiPenGeom(o),S=__.d.StiLegendMarkerHelper.getSplineAreaMarkerLinePoints(i);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendSplineRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineRangeSeries),o=l.lineColor,a=l.brush,h=[],u=i.width/5,S=i.height/5,d=(h.push(new StiLineSegmentGeom(i.x,i.y+5*S,i.x,i.y+3*S)),[]),m=(d.push(new PointD(i.x,i.y+3*S)),d.push(new PointD(i.x+2*u,i.y)),d.push(new PointD(i.x+4*u,i.y+2*S)),d.push(new PointD(i.x+5*u,i.y+1*S)),h.push(new StiCurveSegmentGeom(d,l.tension)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+1*S,i.x+5*u,i.y+3*S)),[]),c=(m.push(new PointD(i.x+5*u,i.y+3*S)),m.push(new PointD(i.x+4*u,i.y+4*S)),m.push(new PointD(i.x+2*u,i.y+4*S)),m.push(new PointD(i.x,i.y+5*S)),h.push(new StiCurveSegmentGeom(m,l.tension)),new StiPenGeom(o));e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawCurve(c,d,l.tension),e.drawCurve(c,m,l.tension),e.popSmoothingMode()}},__.d.StiLegendStackedAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStackedAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getAreaMarkerPath(i),u=new StiPenGeom(o),S=(e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),__.d.StiLegendMarkerHelper.getAreaMarkerLinePoints(i));e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendStackedSplineAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStackedSplineAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSplineAreaMarkerPath(i),u=new StiPenGeom(o),S=__.d.StiLegendMarkerHelper.getSplineAreaMarkerLinePoints(i);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendSteppedAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSteppedMarkerPath(i),u=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}},__.d.StiLegendSteppedRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedRangeSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSteppedMarkerPath(i),u=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}},__.d.StiLegendStockMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.lineColor,a=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.drawLine(a,i.left+i.width/4,i.top+i.height/4,i.left+i.width/2,i.top+i.height/4),e.drawLine(a,i.left+i.width/2,i.top,i.left+i.width/2,i.bottom),e.drawLine(a,i.left+i.width/2,i.bottom-i.height/4,i.right-i.width/4,i.bottom-i.height/4),e.popSmoothingMode()}},__.d.StiMarkerLegendFactory=class{static createMarker(e){if(e.is(__.d.IStiFontIconsSeries)&&null!=e.icon)return new __.d.StiLegendFontIconMarker;if(e.is(__.d.IStiDoughnutSeries))return new __.d.StiLegendDoughnutMarker;if(e.is(__.d.IStiPieSeries))return new __.d.StiLegendPieMarker;if(e.is(__.d.StiAreaSeries))return new __.d.StiLegendAreaMarker;if(e.is(__.d.StiStackedAreaSeries))return new __.d.StiLegendStackedAreaMarker;if(e.is(__.d.StiSplineAreaSeries))return new __.d.StiLegendSplineAreaMarker;if(e.is(__.d.StiStackedSplineAreaSeries))return new __.d.StiLegendStackedSplineAreaMarker;if(e.is(__.d.StiSteppedAreaSeries))return new __.d.StiLegendSteppedAreaMarker;if(e.is(__.d.StiRangeSeries))return new __.d.StiLegendRangeMarker;if(e.is(__.d.StiSplineRangeSeries))return new __.d.StiLegendSplineRangeMarker;if(e.is(__.d.StiSteppedRangeSeries))return new __.d.StiLegendSteppedRangeMarker;if(e.is(__.d.IStiBaseLineSeries)||e.is(__.d.IStiStackedBaseLineSeries)||e.is(__.d.IStiRadarSeries))return new __.d.StiLegendLineMarker;if(e.is(__.d.IStiFunnelSeries))return new __.d.StiLegendFunnelMarker;if(e.is(__.d.IStiStockSeries))return new __.d.StiLegendStockMarker;if(e.is(__.d.IStiCandlestickSeries))return new __.d.StiLegendCandelstickMarker;if(e.is(__.d.IStiPictorialSeries))return new __.d.StiLegendPictorialMarker;if(e.is(__.d.IStiClusteredColumnSeries3D))return new __.d.StiLegendColumnMarker3D;if(e.is(__.d.IStiLineSeries3D))return new __.d.StiLegendLineMarker3D;return new __.d.StiLegendColumnMarker}};let StiInteractionDataGeom=Stimulsoft.Base.Context.StiInteractionDataGeom;__.d.StiMarkerGeom=class extends __.d.StiCellGeom{implements(){let e=super.implements().concat([IStiSeriesElement]);return(this.implements=()=>e)()}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(){return this.getHyperlink2(this.getValueIndex())}getHyperlink2(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(){return this.getToolTip2(this.getValueIndex())}getToolTip2(e){let t=null;if(null!=this.series.toolTips&&e<this.series.toolTips.length&&(t=this.series.toolTips[e]),!StiString.isNullOrEmpty(t)&&t.includes('"StiColor":"#ffffff"')){let e=StiBrush.toColor(this.series.processSeriesBrushes(this.index,this.marker.brush));t=t.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(e,!1)))}return t}contains(e,t){if(this.invisible)return!1;return this.getMouseOverRect().contains(e,t)}getMouseOverRect(){let e=this.clientRectangle.clone();return e.inflate(e.width/2,e.height/2),e}draw(e){e.pushSmoothingModeToAntiAlias();let t=e.options.zoom,i=this.series.chart,s=this.marker.clone(),r=this.series.processSeriesMarkerVisible(this.index)||this.marker.visible,n=(this.isTooltipMode&&!r||(s.brush=this.series.processSeriesBrushes(this.index,this.marker.brush),s.angle=this.series.processSeriesMarkerAngle(this.index,this.marker.angle),s.type=this.series.processSeriesMarkerType(this.index,this.marker.type),s.visible=r),this.isTooltipMode&&!r&&(s.brush=null,s.borderColor=Color.transparent),null);i.isAnimation&&((n=new StiInteractionDataGeom).componentName=i.name,n.componentIndex=i.page.components.indexOf(i).toString(),n.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",n.pageIndex=i.page.report.renderedPages.indexOf(i.page).toString(),n.elementIndex=this.elementIndex.toString(),n.interactionData=this.interaction),this.marker.core.draw(e,s,this.point,t,this.showShadow,!1,this.isTooltipMode,i.isAnimation,this.getToolTip(),this,n),e.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o){super(__.d.StiMarkerCoreXF.getMarkerRect(s,r.size,l)),this.showShadow=!1,this.isTooltipMode=!1,this.series=e,this.index=t,this.value=i,this.point=s,this.marker=r,this.showShadow=n,this.isTooltipMode=o}},__.d.StiRadarAxisGeom=class extends __.d.StiCellGeom{drawAxisLine(e,t){let i=t.right,s=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);s.penStyle=this.axis.lineStyle,e.drawLine(s,i,t.y,i,t.bottom)}drawMinorTicks(s,r,n,l,e,t){let i=e-l,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=l+o*i,t=n-a;s.drawLine(r,n,e,t,e)}}drawTicks(i,e,s,r){if(!s.visible)return;let t=s.length*i.options.zoom,n=e.right,l=n-t,o=0;for(let e of this.axis.info.ticksCollection){let t=e.position;if(i.drawLine(r,n,t,l,t),s.minorVisible&&o!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[o+1].position;this.drawMinorTicks(i,r,n,t,e,s)}o++}}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,this.drawTicks(e,t,this.axis.area.yAxis.ticks,i),this.drawAxisLine(e,t)}draw(e){let t=this.clientRectangle.clone();if(t.width<=0||t.height<=0)return;this.drawAxis(e,t)}constructor(e,t){super(t),this.axis=e}},__.d.StiXRadarAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.borderColor),s=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom),r=e.getGenericStringFormat(),n=(r.trimming=StringTrimming.None,this.axis.labels.wordWrap||(r.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),this.axis.labels.antialiasing&&e.pushSmoothingModeToAntiAlias(),StiMath.round2(this.labelRect.x+this.labelRect.width/2,0)),l=StiMath.round2(this.labelRect.y+this.labelRect.height/2,0),o=(e.pushTranslateTransform(n,l),e.pushRotateTransform(this.angle),t.isEmpty||(e.fillRectangle(this.axis.labels.brush,t,null),this.axis.labels.drawBorder&&e.drawRectangle2(i,t.x,t.y,t.width,t.height)),e.popTransform(),e.popTransform(),this.axis.labels.antialiasing&&e.popSmoothingMode(),StiRotationMode.CenterBottom),a=this.angle;90<=this.angle&&this.angle<=270&&(a=this.angle+180,o=StiRotationMode.CenterTop),this.axis.labels.rotationLabels||(0<this.angle&&this.angle<180?o=StiRotationMode.LeftCenter:this.angle<360&&180<this.angle?o=StiRotationMode.RightCenter:0==this.angle?o=StiRotationMode.CenterBottom:180==this.angle&&(o=StiRotationMode.CenterTop),a=0),e.drawRotatedString9(this.text,s,this.labelBrush,this.point,r,o,a,this.axis.labels.antialiasing,StiMath.trunc(this.axis.labels.width*e.options.zoom))}constructor(e,t,i,s,r,n,l,o){super(n),this.axis=e,this.labelRect=l,this.text=t,this.angle=r,this.point=o,this.labelBrush=i,this.borderColor=s}},__.d.StiYRadarAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.axis.yCore.getStringFormatGeom(e),i=this.axis.yCore.getFontGeom(e),s=new StiSolidBrush(this.axis.labels.color);e.drawRotatedString9(this.text,i,s,this.textPoint,t,this.rotationMode,this.angle,this.axis.labels.antialiasing,StiMath.trunc(this.axis.labels.width*e.options.zoom))}constructor(e,t,i,s,r,n,l){super(t),this.axis=e,this.text=s,this.stripLine=r,this.textPoint=i,this.angle=n,this.rotationMode=l}};{class a90{static getMouseOverColor(){return Color.fromArgb3(100,Color.white)}static getLineMouseOverColor(){return Color.fromArgb3(100,Color.red)}}a90.mouseOverLineDistance=8,a90.mouseOverSplineDistance=15,__.d.StiMouseOverHelper=a90}let StiCornerRadiusHelper=Stimulsoft.Base.Drawing.StiCornerRadiusHelper,IStiSeriesBorderThickness=__.d.IStiSeriesBorderThickness,StiContextRoundedRectangleCreator=(__.d.StiSeriesElementGeom=class extends __.d.StiCellGeom{implements(){let e=super.implements().concat([IStiSeriesElement]);return(this.implements=()=>e)()}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(){return this.getHyperlink2(this.getValueIndex())}getHyperlink2(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(){if(this.series.chart.isDesigning)return null;let e=this.getValueIndex();return this.getToolTip2(e)}getToolTip2(e){let i=null;if(null!=this.series.toolTips&&e<this.series.toolTips.length&&(i=this.series.toolTips[e]),!StiString.isNullOrEmpty(i)&&i.includes('"StiColor":"#ffffff"')){let t=this.seriesBrush||(null!=this.series?this.series["brush"]:null);if(null!=t){let e=Stimulsoft.Base.Drawing.StiBrush.toColor(t);i=i.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(e,!1)))}}return i}get interaction(){return this._interaction}set interaction(e){this._interaction=e}draw(e){}getInteractionData(){let e=this.series.chart;if(e.isDesigning)return null;let t=new StiInteractionDataGeom;return t.componentName=e.name,t.componentIndex=null!=e.page?e.page.components.indexOf(e).toString():"",t.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",t.pageIndex=null!=e.page?e.page.report.renderedPages.indexOf(e.page).toString():"",t.elementIndex=this.elementIndex.toString(),t.interactionData=this.interaction,t}getSeriesBorderThickness(e){let t=this.series.as(IStiSeriesBorderThickness);if(null!=t)return t.borderThickness;return 1}getCornerRadius(){let t=this.series.as(IStiCornerRadius);if(null!=t&&null!=t.cornerRadius&&!t.cornerRadius.isEmpty){let e=t.cornerRadius.clone();return 0<=this.value?e:StiCornerRadiusHelper.flipVertical(e)}return new StiCornerRadius}constructor(e,t,i,s,r,n){super(r),this.seriesBrush=n,this.areaGeom=e,this.series=s,this.value=t,this.index=i}},__.d.StiSeriesGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e,t,i){super(i),this.areaGeom=e,this.series=t}},__.d.StiBoxAndWhiskerSeriesElementGeom=class extends __.d.StiCellGeom{draw(s){let e=this.series.chart,t=this.areaGeom.area,r=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(s.options.zoom)),i=t.xAxis.info.dpi/2,n=i/3,l=n/6;if(s.pushSmoothingModeToAntiAlias(),e.isAnimation){let t=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,this.beginTime);if(s.drawAnimationLines(r,[new PointF(this.positionX-n/2,this.maximum),new PointF(this.positionX+n/2,this.maximum)],t),s.drawAnimationLines(r,[new PointF(this.positionX-n/2,this.minimum),new PointF(this.positionX+n/2,this.minimum)],t),s.drawAnimationLines(r,[new PointF(this.positionX,this.maximum),new PointF(this.positionX,this.thirdQuartile)],t),s.drawAnimationLines(r,[new PointF(this.positionX,this.firstQuartile),new PointF(this.positionX,this.minimum)],t),s.drawAnimationRectangle(this.brush,r,new Rectangle(this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile),null,t,null,null),s.drawAnimationLines(r,[new PointF(this.positionX-i/2,this.median),new PointF(this.positionX+i/2,this.median)],t),null!=this.values){let i=1;for(let t of this.values){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,new TimeSpan(this.beginTime.ticks+__.d.StiChartHelper.globalBeginTimeElement.ticks/this.values.length*i));s.fillDrawAnimationEllipse(null,r,this.positionX-l/2,t-l/2,l,l,null,null,e,null),i++}}if(null!=this.mean){let e=this.mean;s.drawAnimationLines(r,[new PointF(this.positionX-l,e-l),new PointF(this.positionX+l,e+l)],t),s.drawAnimationLines(r,[new PointF(this.positionX+l,e-l),new PointF(this.positionX-l,e+l)],t)}}else{if(s.drawLine(r,this.positionX-n/2,this.maximum,this.positionX+n/2,this.maximum),s.drawLine(r,this.positionX-n/2,this.minimum,this.positionX+n/2,this.minimum),s.drawLine(r,this.positionX,this.maximum,this.positionX,this.thirdQuartile),s.drawLine(r,this.positionX,this.firstQuartile,this.positionX,this.minimum),s.fillRectangle2(this.brush,this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile,null),s.drawRectangle2(r,this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile),s.drawLine(r,this.positionX-i/2,this.median,this.positionX+i/2,this.median),null!=this.values)for(let e of this.values)s.drawEllipse2(r,new Rectangle(this.positionX-l/2,e-l/2,l,l));if(null!=this.mean){let e=this.mean;s.drawLine(r,this.positionX-l,e-l,this.positionX+l,e+l),s.drawLine(r,this.positionX+l,e-l,this.positionX-l,e+l)}}s.popSmoothingMode()}getSeriesBorderThickness(e){let t=this.series.as(IStiSeriesBorderThickness);if(null!=t)return t.borderThickness*e;return 1}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(u),this.series=t,this.areaGeom=e,this.positionX=i,this.minimum=s,this.maximum=r,this.firstQuartile=n,this.thirdQuartile=l,this.median=o,this.mean=h,this.values=a,this.brush=S,this.borderColor=d,this.beginTime=m}},__.d.StiBubbleSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=Math.abs(i.x-e),r=Math.abs(i.y-t),n=Math.sqrt(s*s+r*r);return n<=this.clientRectangle.width/2}draw(s){let r=this.clientRectangle.clone(),t=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),e=this.series.chart,i=this.series.processSeriesBrushes(this.index,this.seriesBrush),n=this.series.as(__.d.IStiFontIconsSeries);if(null!=n&&null!=n.icon)return void __.a.StiFontIconsHelper.drawDirectionIcons(s,i,r,new Size(r.height,r.height),n.icon,this.getToolTip(),this.getInteractionData(),!1);if(e.isAnimation){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,this.beginTime);s.fillDrawAnimationEllipse(i,t,r.x,r.y,r.width,r.height,this.getToolTip(),this,e,this.getInteractionData())}else{if(this.series.showShadow){let e=new StiSolidBrush(Color.fromArgb3(100,Color.black)),t=s.createShadowGraphics(),i=r.clone();i.x=0,i.y=0,i.x+=4*s.options.zoom,i.y+=4*s.options.zoom,t.fillEllipse2(e,i,this.getInteractionData()),s.drawShadow(t,r,0)}s.fillEllipse2(i,r,this.getInteractionData()),s.pushSmoothingModeToAntiAlias(),s.drawEllipse2(t,r),s.popSmoothingMode()}}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.beginTime=o}},__.a.Painters.StiContextRoundedRectangleCreator),StiColumnAnimation=Stimulsoft.Base.Context.Animation.StiColumnAnimation,StiTranslationAnimation=(__.d.StiClusteredBarSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(r){let i=this.series.chart,n=this.clientRectangle.clone(),l=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),s=(l=StiCornerRadiusHelper.flipHorizontal(l),this.series.as(__.d.IStiFontIconsSeries));if(null!=s&&null!=s.icon){let e=i.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(r,this.seriesBrush,n,new Size(n.height,n.height),s.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==l||l.isEmpty||r.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){let s=this.clientRectangle.clone(),e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(r.options.zoom));if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));r.drawShadowRect(s,5,l,i)}r.drawAnimationCicledBar(this.seriesBrush,e,n,l,this.value,this.getToolTip(),this,t,this.getInteractionData())}else{let t=this.clientRectangle.clone();if(this.series.showShadow&&4<t.width&&4<t.height){let e=t.clone();this.value<0?(e.y--,r.drawCachedShadow(e,StiShadowSides.Left|StiShadowSides.Bottom,r.options.isPrinting,e,l)):0<this.value&&r.drawCachedShadow(new RectangleD(e.x-8,e.y,e.width+8,e.height),
10
- StiShadowSides.Top|StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom,r.options.isPrinting,e,l)}let e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(r.options.zoom)),i=(this.series.chart.style.core.fillCicledColumn(r,t,l,this.seriesBrush,this.getInteractionData(),this.getToolTip()),this.getBorderPath(n,l));r.drawPath(e,i,n)}null==l||l.isEmpty||r.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return 0<this.value?StiContextRoundedRectangleCreator.createWithoutRightSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutLeftSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.right,e.y,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.x,e.bottom))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=(s?e.yAxis.info.stripLines.getByIndex(this.index+1):e.yAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o,a){super(e,i,s,l,a,r),this.seriesBorderColor=n,this.valueStart=t,this.columnRectStart=o}},Stimulsoft.Base.Context.Animation.StiTranslationAnimation),StiPointsAnimation=Stimulsoft.Base.Context.Animation.StiPointsAnimation;{class hl0 extends __.d.StiSeriesGeom{get allowMouseOver(){return this.series.interaction.drillDownEnabled&&this.series.interaction.allowSeries}static getClientRectangle(t,e){if(null==t||0==t.length)return RectangleD.empty;let i=PointD.empty,s=PointD.empty;for(let e of t){if(null==e)continue;i==PointD.empty?(i=e,s=e):(i.x=Math.min(i.x,e.x),i.y=Math.min(i.y,e.y),s.x=Math.max(s.x,e.x),s.y=Math.max(s.y,e.y))}return new RectangleD(i.x-e/2,i.y-e/2,s.x-i.x+e,s.y-i.y+e)}draw(e){}getAnimation(e=this.points){if(!this.series.chart.isAnimation)return null;if(null==this.pointsFrom||null==this.pointsIds)return null;let t=[],i=[],s=[];for(let e=0;e<this.pointsFrom.length;e++)null!=this.pointsFrom[e]&&null!=this.points[e]&&null!=this.pointsIds[e]&&(t.push(this.pointsFrom[e]),i.push(this.points[e]),s.push(this.pointsIds[e]));return this.getAnimation2(t,i,s)}getAnimationConnect(e=this.points){if(!this.series.chart.isAnimation)return null;if(null==this.pointsFrom||null==this.pointsIds)return null;let s=[],r=[],n=[],l=0;for(let i of e)if(null!=i&&!r[Stimulsoft.System.StiObject.stimulsoft]().toList().exists(e=>e.equals(i))){let e=this.pointsFrom[l],t=(null==e&&(e=i),this.pointsIds[l]);StiString.isNullOrEmpty(t)&&(t=l.toString()+"_"),s.push(e),r.push(i),n.push(t),l++}return this.getAnimation2(s,r,n)}getAnimation2(e,t,i){if(!this.series.chart.isAnimation)return null;if(0==e.length)return null;let s=null,r=null;if(this.series.chart.isAnimationChangingValues&&null!=e&&null!=e[0]&&null!=i&&((r=new StiPointsAnimation(e,t,i,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero)).id=`series_`+this.series.chart.series.indexOf(this.series)+this.additionalSeriesId,StiPointsAnimation.isAnimationChangingValues(this.series,i,r.id))&&(r.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),s=r),null==s){let e=new StiTranslationAnimation(PointD.empty,PointD.empty,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);e.anotherAnimation=r,e.id=`series_`+this.series.chart.series.indexOf(this.series)+this.additionalSeriesId,s=e}return s}constructor(e,t,i){super(e,i,hl0.getClientRectangle(t.points,i.is(__.d.StiBaseLineSeries)?i.lineWidth:0)),this.points=t.points.map(e=>e),null!=t.pointsFrom&&null!=t.pointsFrom[0]||(t.pointsFrom=t.points.map(e=>e)),this.pointsFrom=t.pointsFrom.map(e=>e),this.pointsIds=t.pointsIds.map(e=>e),this.additionalSeriesId=t.additionalSeriesId}}__.d.StiBaseLineSeriesGeom=hl0}__.d.StiLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(h){let e=StiPenStyle.Solid,t=1,u=Color.black,i=!0,s=null,S=!0,d=this.getAnimation(),r=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries),n=(null!=r&&(e=r.lineStyle,t=r.lineWidth,u=r.lineColor,i=r.showShadow,s=r.lineMarker,S=r.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),l=(null!=n&&(e=n.lineStyle,t=n.lineWidth,u=n.lineColor,i=n.showShadow,S=n.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarAreaSeries)),m=(null!=l&&(e=l.lineStyle,t=l.lineWidth,u=l.lineColor,i=l.showShadow,S=l.lighting),h.pushSmoothingModeToAntiAlias(),e),c=t*h.options.zoom,g=new StiPenGeom(u,c);if(g.penStyle=m,i){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),c+.5*h.options.zoom);if(e.penStyle=m,h.pushTranslateTransform(c,c),__.d.StiNullableDrawing.drawLines(h,e,this.points,d),null!=s&&s.visible){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0));s.core.drawLines(h,this.points,h.options.zoom,e,null,s.type,s.step,s.size,s.angle)}h.popTransform()}if(null!=this.pointsZeroConnect){let e=new StiPenGeom(u,c),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsZeroConnect));__.d.StiNullableDrawing.drawLines(h,e,this.pointsZeroConnect,t)}if(null!=this.pointsNullConnect){let e=new StiPenGeom(u,c),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsNullConnect));__.d.StiNullableDrawing.drawLines(h,e,this.pointsNullConnect,t)}if((this.series.is(__.d.StiLineSeries)||this.series.is(__.d.StiScatterLineSeries))&&this.series.allowApplyColorNegative){let n=this.series.lineColorNegative,e=new StiPenGeom(n,c),t=(e.penStyle=m,this.series.chart.area),l=t.axisCore.getDividerY(),o=[],a=[];for(let r=0;r<this.points.length;r++){let t=this.points[r],s=r!=this.points.length-1?this.points[r+1]:null;if(null==t)continue;if(t.y>l){if(o.push(t),null==s||s.y<l||s.y==l&&r+2<this.points.length&&this.points[r+2].y<=l){if(null!=s){let e=this.getPointCross(t,this.points[r+1],l);o.push(e),s.y==l&&r+2<this.points.length&&this.points[r+2].y<=l&&o.push(this.points[r+2]),a.push(e)}let i=null;if(null!=d&&(i=new StiOpacityAnimation(d.duration,new TimeSpan(d.duration.ticks+d.beginTime.ticks))),__.d.StiNullableDrawing.drawLines(h,e,o,i),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(n,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,o,i),h.popTransform()}o[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(a.push(t),null==s||s.y>l){if(null!=s){let e=this.getPointCross(t,this.points[r+1],l);o.push(e),a.push(s)}let i=this.getAnimationConnect(a);if(__.d.StiNullableDrawing.drawLines(h,g,a,i),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,a,i),h.popTransform()}a[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else if(__.d.StiNullableDrawing.drawLines(h,g,this.points,d),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,this.points,d),h.popTransform()}if(null!=s&&s.visible){let e=new StiPenGeom(s.borderColor);s.core.drawLines(h,this.points,h.options.zoom,s.brush,e,s.type,s.step,s.size,s.angle)}h.popSmoothingMode()}getPointCross(e,t,i){let s=e.y,r=e.x,n=t.y,l=t.x,o=Math.tan(Math.atan((l-r)/(s-n)))*(s-i)+r;return new PointD(o,i)}constructor(e,t,i){super(e,t,i),this.pointsNullConnect=t.pointsNullConnect,this.pointsZeroConnect=t.pointsZeroConnect}},__.d.StiAreaSeriesGeom=class extends __.d.StiLineSeriesGeom{contains(l,o){let e=this.series.chart.area,a=e.axisCore.getDividerY();if(this.invisible)return!1;for(let n=0;n<this.points.length-1;n++){let e=this.points[n],t=this.points[n+1];if(null==e||null==t)continue;let i=new PointD(t.x,a),s=new PointD(e.x,a),r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,s,i,t]);if(r)return!0}return!1}draw(a){let h=this.series,u=this.series.chart.area,S=u.axisCore.getDividerY(),t=__.d.StiNullableDrawing.getPointsList(this.points),d=null!=this.pointsFrom?__.d.StiNullableDrawing.getPointsList(this.pointsFrom):null,m=this.series.chart;if(m.isAnimation)for(let o=0;o<t.length;o++){let i=t[o],s=[],r=new StiLineSegmentGeom(i[0].x,S,i[0].x,i[0].y),n=new StiLinesSegmentGeom(i),l=new StiLineSegmentGeom(i[i.length-1].x,i[i.length-1].y,i[i.length-1].x,S);if(s.push(r),s.push(n),s.push(l),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)){let e=d[o],t=new StiPointsAnimation(e,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(t.id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,m.sortAnimation),r.animation=new StiPointsAnimation([new PointD(t.pointsFrom[0].x,S),t.pointsFrom[0]],null,null,t.duration,t.beginTime),n.animation=t,l.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],new PointD(t.pointsFrom[t.pointsFrom.length-1].x,S)],null,null,t.duration,t.beginTime),r.animation.beginTimeCorrect=t.beginTimeCorrect,l.animation.beginTimeCorrect=t.beginTimeCorrect,a.animations.push(t),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else if(null!=h.brush){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}}else for(let e of t){let s=[];if(s.push(new StiLineSegmentGeom(e[0].x,S,e[0].x,e[0].y)),s.push(new StiLinesSegmentGeom(e)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,S)),null!=h.brush&&a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null),a.popClip()}}}constructor(e,t,i){super(e,t,i)}};let IStiRoundValuesArea=__.d.IStiRoundValuesArea,StiPenAlignment=(__.d.StiClusteredColumnSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let i=this.series.chart,r=this.clientRectangle.clone(),n=this.getCornerRadius(),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=i.area.as(IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.width,r.width),l.icon,this.getToolTip(),this.getInteractionData(),!0,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){let e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom));if(this.series.showShadow&&1<r.width){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,t,this.getInteractionData())}else{let e=this.clientRectangle.clone(),t=(this.series.showShadow&&4<e.width&&4<e.height&&(0<this.value?s.drawCachedShadow(e,StiShadowSides.Top|StiShadowSides.Right,s.options.isPrinting,e,n):this.value<0&&s.drawCachedShadow(new RectangleD(e.x,e.y-8,e.width,e.height+8),StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom|StiShadowSides.Left,s.options.isPrinting,e,n)),new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)));if(this.series.chart.style.core.fillCicledColumn(s,r,n,this.seriesBrush,this.getInteractionData(),this.getToolTip()),this.series.is(__.d.StiWaterfallSeries))s.drawCicledRectangle(t,r,n);else{let e=this.getBorderPath(r,n);s.drawPath(t,e,r)}}null==n||n.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return this.value<0?StiContextRoundedRectangleCreator.createWithoutTopSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutBottomSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.x,e.bottom,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.right,e.y))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.xAxis.core.getStartFromZero(),r=(s?e.xAxis.info.stripLines.getByIndex(this.index+1):e.xAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverSplineDistance,new PointD(r,n));if(i)return!0}return!1}draw(l){let e=StiPenStyle.Solid,t=1,i=Color.black,s=!0,o=!0,a=1,h=this.getAnimation(),u=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiSplineSeries),r=(null!=u&&(e=u.lineStyle,t=u.lineWidth,i=u.lineColor,s=u.showShadow,o=u.lighting,a=u.tension),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),n=(null!=r&&(e=r.lineStyle,t=r.lineWidth,i=r.lineColor,s=r.showShadow,o=r.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarAreaSeries)),S=(null!=n&&(e=n.lineStyle,t=n.lineWidth,i=n.lineColor,s=n.showShadow,o=n.lighting),l.pushSmoothingModeToAntiAlias(),e),d=t*l.options.zoom,m=new StiPenGeom(i,d);if(m.penStyle=S,s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),d+.5*l.options.zoom);e.penStyle=S,l.pushTranslateTransform(d,d),__.d.StiNullableDrawing.drawCurve(l,e,this.points,a,h),l.popTransform()}if(null!=this.pointsZeroConnect){let e=new StiPenGeom(i,d),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsZeroConnect));__.d.StiNullableDrawing.drawCurve(l,e,this.pointsZeroConnect,a,t)}if(null!=this.pointsNullConnect){let e=new StiPenGeom(i,d),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsNullConnect));__.d.StiNullableDrawing.drawCurve(l,e,this.pointsNullConnect,a,t)}if(__.d.StiNullableDrawing.drawCurve(l,m,this.points,a,h),2<=d&&o){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(i,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawCurve(l,t,this.points,a,h),l.popTransform()}if(null!=u&&u.allowApplyColorNegative){let e=new StiPenGeom(u.lineColorNegative,d),t=(e.penStyle=S,this.series.chart.area),i=t.axisCore.getDividerY(),s=t.axisCore.scrollRangeX*t.axisCore.scrollDpiX,r=t.axisCore.scrollRangeY*t.axisCore.scrollDpiY-i,n=new RectangleD(0,i,s,r);if(l.pushClip(n),__.d.StiNullableDrawing.drawCurve(l,e,this.points,a,h),2<=d&&o){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColorNegative,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawCurve(l,t,this.points,a,h),l.popTransform()}l.popClip()}l.popSmoothingMode()}constructor(e,t,i){super(e,t,i),this.pointsNullConnect=t.pointsNullConnect,this.pointsZeroConnect=t.pointsZeroConnect}},__.d.StiSplineAreaSeriesGeom=class extends __.d.StiSplineSeriesGeom{contains(l,o){let e=this.series.chart.area,a=e.axisCore.getDividerY();if(this.invisible)return!1;for(let n=0;n<this.points.length-1;n++){let e=this.points[n],t=this.points[n+1];if(null==e||null==t)continue;let i=new PointD(t.x,a),s=new PointD(e.x,a),r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,s,i,t]);if(r)return!0}return!1}draw(a){let h=this.series,u=this.series.chart,S=this.series.chart.area,d=S.axisCore.getDividerY(),t=__.d.StiNullableDrawing.getPointsList(this.points),m=null!=this.pointsFrom?__.d.StiNullableDrawing.getPointsList(this.pointsFrom):null;if(u.isAnimation)for(let o=0;o<t.length;o++){let i=t[o],s=[],r=new StiLineSegmentGeom(new PointD(i[0].x,d),i[0]),n=new StiCurveSegmentGeom(i,h.tension),l=new StiLineSegmentGeom(i[i.length-1],new PointD(i[i.length-1].x,d));if(s.push(r),s.push(n),s.push(l),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)){let e=m[o],t=new StiPointsAnimation(e,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(t.id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,u.sortAnimation),r.animation=new StiPointsAnimation([new PointD(t.pointsFrom[0].x,d),t.pointsFrom[0]],null,null,t.duration,t.beginTime),n.animation=t,l.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],new PointD(t.pointsFrom[t.pointsFrom.length-1].x,d)],null,null,t.duration,t.beginTime),r.animation.beginTimeCorrect=t.beginTimeCorrect,l.animation.beginTimeCorrect=t.beginTimeCorrect,a.animations.push(t),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=S.axisCore.scrollRangeX*S.axisCore.scrollDpiX,t=S.axisCore.scrollRangeY*S.axisCore.scrollDpiY-d,i=new RectangleD(0,d,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else{let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}o++}else for(let e of t){let s=[];if(s.push(new StiLineSegmentGeom(e[0].x,d,e[0].x,e[0].y)),s.push(new StiCurveSegmentGeom(e,h.tension)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,d)),null!=h.brush)if(u.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}else a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null);if(h.allowApplyBrushNegative&&null!=h.brushNegative){let e=S.axisCore.scrollRangeX*S.axisCore.scrollDpiX,t=S.axisCore.scrollRangeY*S.axisCore.scrollDpiY-d,i=new RectangleD(0,d,e,t);if(a.pushClip(i),u.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}else a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null);a.popClip()}}}constructor(e,t,i){super(e,t,i)}},__.d.StiSteppedLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{getSteppedPoints(s){let r=this.series,n=[],l=r.chart.area.xAxis.info.dpi/2;for(let i=0;i<s.length-1;i++){let e=s[i],t=s[i+1];null!=e&&null!=t?(r.pointAtCenter&&(e=new PointD(e.x-l,e.y),t=new PointD(t.x-l,t.y)),n.push(e),n.push(new PointD(t.x,e.y))):(n.push(null),n.push(null))}let e=s[s.length-1];return null!=e?(r.pointAtCenter&&(e=new PointD(e.x-l,e.y),n.push(e),e=new PointD(e.x+2*l,e.y)),n.push(e)):n.push(null),n}getSteppedPointsIds(s){let r=[];for(let i=0;i<s.length-1;i++){let e=s[i]+"_l",t=s[i+1]+"_h";r.push(e),r.push(t)}let e=s[s.length-1]+"_l";return r.push(e),r}contains(s,r){if(this.invisible)return!1;let n=this.getSteppedPoints(this.points),l=0;for(let i of n){if(this.points.length<=l+1)continue;let e=n[l+1];if(null==i||null==e)continue;let t=RectangleD.empty;if(e.x>i.x?(t=new RectangleD(i.x,i.y,e.x-i.x,1)).inflate(0,5):(t=e.y>i.y?new RectangleD(i.x,i.y,1,e.y-i.y):new RectangleD(e.x,e.y,1,i.y-e.y)).inflate(5,0),t.contains(s,r))return!0;if(++l==n.length-1)break}return!1}draw(h){let u=this.series,S=(h.pushSmoothingModeToAntiAlias(),u.lineStyle),d=u.lineWidth*h.options.zoom,m=new StiPenGeom(u.lineColor,d),r=(m.penStyle=S,__.d.StiNullableDrawing.getNullablePointsList(this.points));for(let s of r){let l=this.getSteppedPoints(s),e=this.getSteppedPoints(this.pointsFrom),t=this.getSteppedPointsIds(this.pointsIds),o=this.getAnimation2(e,l,t);if(u.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),d+.5*h.options.zoom);if(e.penStyle=S,h.pushTranslateTransform(d,d),__.d.StiNullableDrawing.drawLines(h,e,l,o),u.lineMarker.visible){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0));u.lineMarker.core.drawLines(h,l,h.options.zoom,e,null,u.lineMarker.type,u.lineMarker.step,u.lineMarker.size,u.lineMarker.angle)}h.popTransform()}let i=this.series.chart.area,a=i.axisCore.getDividerY();if(u.allowApplyColorNegative){let s=new StiPenGeom(u.lineColorNegative,d),r=(s.penStyle=S,[]),n=[];for(let i=0;i<l.length;i++){let e=l[i],t=i!=l.length-1?l[i+1]:null;if(e.y>a){if(r.push(e),null==t||t.y<=a){this.intersectionAxis(e,t,r,n,a);let i=StiArray.create(PointD,r.length,!0);if(r[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i),__.d.StiNullableDrawing.drawLines(h,s,i,o),2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColorNegative,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,i,o),h.popTransform()}r[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(n.push(e),null==t||t.y>a){this.intersectionAxis(e,t,n,r,a);let i=StiArray.create(PointD,n.length,!0);if(n[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i),__.d.StiNullableDrawing.drawLines(h,m,i,o),2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColor,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,i,o),h.popTransform()}n[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else{if(1==r.length){let e=null!=this.pointsFrom?this.getSteppedPoints(this.pointsFrom):null;__.d.StiNullableDrawing.drawLines2(h,m,e,l,o)}else __.d.StiNullableDrawing.drawLines(h,m,l,o);if(2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColor,70),1));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,l,o),h.popTransform()}}if(u.lineMarker.visible){let e=new StiPenGeom(u.lineMarker.borderColor);u.lineMarker.core.drawLines(h,l,h.options.zoom,u.lineMarker.brush,e,u.lineMarker.type,u.lineMarker.step,u.lineMarker.size,u.lineMarker.angle)}}h.popSmoothingMode()}intersectionAxis(t,e,i,s,r){if(null!=e){let e=new PointD(t.x,r);i.push(e),s.push(e)}}constructor(e,t,i){super(e,t,i)}},__.d.StiSteppedAreaSeriesGeom=class extends __.d.StiSteppedLineSeriesGeom{draw(a){let h=this.series,u=this.series.chart.area,S=u.axisCore.getDividerY(),d=__.d.StiNullableDrawing.getNullablePointsList(this.points),m=null!=this.pointsFrom?__.d.StiNullableDrawing.getNullablePointsList(this.pointsFrom):null;if(this.series.chart.isAnimation)for(let e=0;e<d.length;e++){let t=this.getSteppedPoints(d[e]),s=[],i=new StiLineSegmentGeom(new PointD(t[0].x,S),t[0]),r=new StiLinesSegmentGeom(t),n=new StiLineSegmentGeom(t[t.length-1],new PointD(t[t.length-1].x,S)),l=(s.push(i),s.push(r),s.push(n),this.getSteppedPoints(m[e])),o=this.getSteppedPointsIds(this.pointsIds);if(StiPointsAnimation.isAnimationChangingValues(this.series,o)){let e=new StiPointsAnimation(l,t,o,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(e.id=`series_`+this.series.chart.series.indexOf(this.series),e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),i.animation=new StiPointsAnimation([new PointD(e.pointsFrom[0].x,S),e.pointsFrom[0]],null,null,e.duration,e.beginTime),r.animation=e,n.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],new PointD(e.pointsFrom[e.pointsFrom.length-1].x,S)],null,null,e.duration,e.beginTime),i.animation.beginTimeCorrect=e.beginTimeCorrect,n.animation.beginTimeCorrect=e.beginTimeCorrect,a.animations.add(e),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else if(null!=h.brush){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}e++}else for(let t of d){let e=this.getSteppedPoints(t),s=[];if(s.push(new StiLineSegmentGeom(e[0].x,S,e[0].x,e[0].y)),s.push(new StiLinesSegmentGeom(e)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,S)),null!=h.brush&&a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null),a.popClip()}}}constructor(e,t,i){super(e,t,i)}},__.d.StiWaterfallLineGeom=class extends __.d.StiCellGeom{draw(t){if(this.animation){let e=new StiTranslationAnimation(PointF.empty,PointF.empty,StiChartHelper.globalDurationElement,TimeSpan.zero);t.drawAnimationLines(this.pen,[this.pointStart,this.pointEnd],e)}else t.drawLine(this.pen,this.pointStart.x,this.pointStart.y,this.pointEnd.x,this.pointEnd.y)}constructor(e,t,i,s,r){super(s),this.pen=i,this.pointStart=e,this.pointEnd=t,this.animation=r}},__.d.StiDoughnutEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=new StiPenGeom(Color.lightGray),s=new List;s.add(new StiArcSegmentGeom(t,0,360)),s.add(new StiLineSegmentGeom(t.right,t.y+t.height/2,t.x+3*t.width/4,t.y+t.height/2)),s.add(new StiArcSegmentGeom(new Rectangle(t.x+t.width/4,t.y+t.height/4,t.width/2,t.height/2),0,360)),s.add(new StiLineSegmentGeom(t.x+3*t.width/4,t.y+t.height/2,t.right,t.y+t.height/2)),e.pushSmoothingModeToAntiAlias(),e.fillPath(Color.fromArgb(50,Color.lightGray.r,Color.lightGray.g,Color.lightGray.b),s,t,null),e.drawPath(i,s,t),e.drawLine(i,t.x+t.width/2,t.y+3*t.height/4,t.x+t.width/2,t.bottom),e.popSmoothingMode()}constructor(e){super(e)}},Stimulsoft.Base.Context.StiPenAlignment),StiPieSegmentAnimation=Stimulsoft.Base.Context.Animation.StiPieSegmentAnimation,StiFontIconsHelper=(__.d.StiDoughnutSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n<this.radiusTo||n>this.radiusFrom)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(t.options.zoom)),s=(e.alignment=StiPenAlignment.Inset,this.series.as(__.d.IStiFontIconsSeries));if(null!=s&&null!=s.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),s.icon,this.getToolTip()),void t.popClip()}let r=this.getAnimation();null!=r?(t.drawAnimationPathElement(this.brush,e,this.path,i,this.getToolTip(),this,r,this.getInteractionData()),null!=this.pathLight&&t.drawAnimationPathElement(this.brushLight,null,this.pathLight,i,this.getToolTip(),null,r,this.getInteractionData()),null!=this.pathDark&&t.drawAnimationPathElement(this.brushDark,null,this.pathDark,i,this.getToolTip(),null,r,this.getInteractionData())):(t.pushSmoothingModeToAntiAlias(),null!=this.path&&t.fillPath(this.brush,this.path,i,this.getInteractionData()),null!=this.pathLight&&t.fillPath(this.brushLight,this.pathLight,i,null),null!=this.pathDark&&t.fillPath(this.brushDark,this.pathDark,i,null),t.drawPath(e,this.path,StiPathGeom.getBoundsState),t.popSmoothingMode())}getAnimation(){if(!this.series.chart.isAnimation)return null;let l=__.d.StiChartHelper.globalDurationElement,i=__.d.StiChartHelper.globalBeginTimeElement,o=null,a=null;if(this.series.chart.isAnimationChangingValues){let i=this.startAngle,s=this.endAngle,r=this.clientRectangle,n=this.clientRectangle;if(4==this.path.length&&this.path[0].is(StiArcSegmentGeom)&&this.path[2].is(StiArcSegmentGeom)){let e=this.path[0],t=this.path[2];i=e.startAngle,s=e.startAngle+e.sweepAngle,r=e.rect,n=t.rect}(a=new StiPieSegmentAnimation(this.clientRectangle,r,this.clientRectangleDt,n,this.startAngle,this.endAngle,i,s,l,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,StiPieSegmentAnimation.isAnimationChangingValues(this.series,a.id)&&(a.applyPreviousAnimation(this.series.chart.previousAnimations),o=a)}if(null==o){let e=new TimeSpan(i.ticks/this.series.values.length*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(l,e));t.anotherAnimation=a,t.id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,o=t}return o}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){super(e,t,i,s,r,u),this.clientRectangleDt=n,this.path=l,this.pathLight=o,this.pathDark=a,this.borderColor=h,this.brush=u,this.brushLight=S,this.brushDark=d,this.startAngle=m,this.endAngle=c,this.radiusFrom=g,this.radiusTo=p,this.beginTime=_}},__.d.StiFinancialSeriesElementGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e,t,i,s,r,n,l,o,a){super(i),this.areaGeom=e,this.series=t,this.open=s,this.close=r,this.high=n,this.low=l,this.positionX=o,this.index=a}},__.d.StiCandlestickSeriesElementGeom=class extends __.d.StiFinancialSeriesElementGeom{draw(u){let e=this.areaGeom.area,r=this.series,S=r.borderWidth*u.options.zoom,d=e.xAxis.info.dpi/2,m=this.open,c=this.close,g=this.high,p=this.low,_=this.positionX,f=new StiPenGeom(this.borderColor,S),t=(c==m&&--m,this.series.chart);if(t.isAnimation){let e=__.d.StiChartHelper.globalDurationElement,t=[new PointD(_,g),new PointD(_,m)],i=[new PointD(_,c),new PointD(_,p)],s=[],n=_-d/2,l=m,o=n+d,a=l+c-m,h=(s.push(new StiLineSegmentGeom(n,l,o,l)),s.push(new StiLineSegmentGeom(o,l,o,a)),s.push(new StiLineSegmentGeom(o,a,n,a)),s.push(new StiLineSegmentGeom(n,a,n,l)),s.push(new StiCloseFigureSegmentGeom),new StiOpacityAnimation(e,this.beginTime));if(r.showShadow){let e=S+.5*u.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e),i=[new PointD(_+e/2,g+e/2),new PointD(_+e/2,m+e/2)],s=[new PointD(_+e/2,c+e/2),new PointD(_+e/2,p+e/2)],r=(u.drawAnimationLines(t,i,h),u.drawAnimationLines(t,s,h),[]);r.push(new StiLineSegmentGeom(n+e/2,l+e/2,o+e/2,l+e/2)),r.push(new StiLineSegmentGeom(o+e/2,l+e/2,o+e/2,a+e/2)),r.push(new StiLineSegmentGeom(o+e/2,a+e/2,n+e/2,a+e/2)),r.push(new StiLineSegmentGeom(n+e/2,a+e/2,n+e/2,l+e/2)),r.push(new StiCloseFigureSegmentGeom),u.fillDrawAnimationPath(null,t,r,new RectangleD(n+e/2,l+e/2,d,c-m),null,h,null)}u.drawAnimationLines(f,t,h),u.drawAnimationLines(f,i,h),u.fillDrawAnimationPath(this.brush,f,s,new RectangleD(n,l,d,c-m),this,h,null)}else{if(r.showShadow){let e=S+.5*u.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e);u.pushTranslateTransform(S,S),u.drawLine(t,_,c+e/2,_,p+e/2),u.drawLine(t,_,g,_,m-e/2),u.drawRectangle2(t,_-d/2,m,d,c-m),u.popTransform()}u.drawLine(f,_,g,_,m),u.drawLine(f,_,c,_,p),u.fillRectangle2(this.brush,_-d/2,m,d,c-m,null),u.drawRectangle2(f,_-d/2,m,d,c-m)}}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r,n,l,o,a),this.brush=h,this.borderColor=u,this.beginTime=S}},__.d.StiStockSeriesElementGeom=class extends __.d.StiFinancialSeriesElementGeom{draw(l){let e=this.areaGeom.area,o=this.series,a=o.lineWidth*l.options.zoom,h=e.xAxis.info.dpi/3,s=new StiPenGeom(this.color,a),t=(s.penStyle=o.lineStyle,this.series.chart);if(t.isAnimation){let n=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,this.beginTime);if(o.showShadow){let e=a+.5*l.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e),i=(t.penStyle=o.lineStyle,[new PointD(this.positionX,this.high),new PointD(this.positionX,this.low)]),s=[new PointD(this.positionX-h,this.open),new PointD(this.positionX-e/2,this.open)],r=[new PointD(this.positionX+h,this.close),new PointD(this.positionX+e/2,this.close)];l.drawAnimationLines(t,i,n),l.drawAnimationLines(t,s,n),l.drawAnimationLines(t,r,n)}let e=[new PointD(this.positionX,this.high),new PointD(this.positionX,this.low)],t=[new PointD(this.positionX-h,this.open),new PointD(this.positionX,this.open)],i=[new PointD(this.positionX+h,this.close),new PointD(this.positionX,this.close)];l.drawAnimationLines(s,e,n),l.drawAnimationLines(s,t,n),l.drawAnimationLines(s,i,n)}else{if(o.showShadow){let e=a+.5*l.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e);t.penStyle=o.lineStyle,l.pushTranslateTransform(a,a),l.drawLine(t,this.positionX,this.high,this.positionX,this.low),l.drawLine(t,this.positionX-h,this.open,this.positionX-e/2,this.open),l.drawLine(t,this.positionX+h,this.close,this.positionX+e/2,this.close),l.popTransform()}l.drawLine(s,this.positionX,this.high,this.positionX,this.low),l.drawLine(s,this.positionX-h,this.open,this.positionX,this.open),l.drawLine(s,this.positionX+h,this.close,this.positionX,this.close)}}constructor(e,t,i,s,r,n,l,o,a,h,u){super(e,t,i,s,r,n,l,o,a),this.color=h,this.beginTime=u}},__.d.StiFunnelEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){e.pushSmoothingModeToAntiAlias(),e.fillPath(Color.fromArgb3(50,Color.lightGray),this.path,this.clientRectangle,null),e.drawPath(new StiPenGeom(Color.gray),this.path,this.clientRectangle),e.popSmoothingMode()}constructor(e,t){super(e),this.path=t}},__.d.StiFunnelSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let i=this.clientRectangle.clone(),s=new StiPenGeom(StiColorUtils.dark(this.borderColor,10),this.getSeriesBorderThickness(t.options.zoom)),e=(s.alignment=StiPenAlignment.Inset,this.series.chart),r=this.series.as(__.d.IStiFontIconsSeries);if(null!=r&&null!=r.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}if(e.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),this.beginTime);this.series.showShadow&&(t.pushTranslateTransform(4,4),t.drawAnimationPathElement(new StiSolidBrush(Color.fromArgb(50,100,100,100)),null,this.path,i,null,this,e,null),t.popTransform()),t.drawAnimationPathElement(this.brush,null,this.path,i,this.getToolTip(),this,e,this.getInteractionData()),Color.transparent.equals(this.borderColor)||t.drawAnimationPathElement(null,s,this.path,i,null,this,e,null)}else t.pushSmoothingModeToAntiAlias(),this.series.showShadow&&(t.pushTranslateTransform(4,4),t.fillPath(Color.fromArgb(50,100,100,100),this.path,i,null),t.popTransform()),t.fillPath(this.brush,this.path,i,this.getInteractionData()),Color.transparent.equals(this.borderColor)||t.drawPath(s,this.path,null),t.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,s,r,n),this.path=o,this.borderColor=l,this.brush=n,this.beginTime=a}},__.d.StiGanttSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let t=this.series,r=this.clientRectangle.clone(),i=this.series.chart,n=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),l=(n=StiCornerRadiusHelper.flipHorizontal(n),this.series.as(__.d.IStiFontIconsSeries));if(null!=l&&null!=l.icon){let e=i.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.height,r.height),l.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let o=this.getAnimation();if(null!=o){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}let e=new StiPenGeom(t.borderColor,this.getSeriesBorderThickness(s.options.zoom));s.drawAnimationCicledBar(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,o,this.getInteractionData())}else{t.showShadow&&4<r.width&&4<r.height&&s.drawCachedShadow(r,StiShadowSides.All,s.options.isPrinting,r,n),s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip());let e=new StiPenGeom(t.borderColor,this.getSeriesBorderThickness(s.options.zoom));s.drawCicledRectangle(e,r,n)}null==n||n.isEmpty||s.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.rectFrom,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=null;return s&&e.yAxis.info.stripLines.count>this.index+1?r=e.yAxis.info.stripLines.getByIndex(this.index+1).valueObject:e.yAxis.info.stripLines.count>this.index&&(r=e.yAxis.info.stripLines.getByIndex(this.index).valueObject),r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l){super(e,t,i,s,r,l),this.rectFrom=n}},__.d.StiHeatmapSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let i=this.clientRectangle.clone(),e=this.getCornerRadius(),s=this.series.as(__.d.IStiFontIconsSeries);if(null!=s&&null!=s.icon){let e=30;return t.pushClip(i),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),s.icon,this.getToolTip()),void t.popClip()}let r=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(t.options.zoom));null==e||e.isEmpty||t.pushSmoothingModeToAntiAlias();try{this.series.chart.isAnimation&&null!=this.animation?t.drawAnimationCicledRectangle(this.seriesBrush,r,i,e,this,this.animation,this.getInteractionData(),this.getToolTip()):(super.draw(t),this.series.chart.style.core.fillCicledColumn(t,i,e,this.seriesBrush,this.getInteractionData(),this.getToolTip()),t.drawCicledRectangle(r,i,e))}finally{null==e||e.isEmpty||t.popSmoothingMode()}}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.animation=o}},__.d.StiPictorialEmptySeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new Point(e,t);for(let t=0;t<this.drawRectangles.length;t++){let e=this.drawRectangles[t];if(e.contains(i.x,i.y))return!0}return!1}draw(n){let l=this.series.core.getSingleSize(n),o=(super.draw(n),new StiFontGeom("Stimulsoft",14*n.options.zoom,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Pixel));for(let r=0;r<this.drawRectangles.length;r++){let t=this.drawRectangles[r],e=this.clipRectangles[r],i=!0,s=new Point(t.x,t.y);n.pushClip(e);while(i){let e=new Rectangle(s.x+n.options.zoom,s.y+n.options.zoom,l.width,l.height);n.drawString3(__.a.StiFontIconsHelper.getContent(this.icon),o,this.seriesBrush,e,this.getStringFormatGeom(n),this.getToolTip()),(s=new Point(s.x+l.width,s.y)).x+l.width>t.right&&s.y+l.height>t.bottom?i=!1:s.x+l.width>t.right&&(s=new Point(t.x,s.y+l.height))}n.popClip()}}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a,h){super(e,t,i,r,a,s),this.icon=n,this.drawRectangles=l,this.clipRectangles=o,this.animation=h}},__.a.StiFontIconsHelper),StiBezierSegmentGeom=(__.d.StiPictorialSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(i,s){if(this.invisible)return!1;for(let t=0;t<this.drawRectangles.length;t++){let e=this.drawRectangles[t];if(e.contains(i,s))return!0}return!1}draw(h){let u=this.series.core.getSingleSize(h),S=(super.draw(h),new StiFontGeom("Stimulsoft",15*h.options.zoom,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Pixel)),d=h.options.zoom;for(let i=0;i<this.drawRectangles.length;i++){let e=this.drawRectangles[i],t=this.clipRectangles[i],o=!0,a=new PointD(e.x,e.y);this.series.showShadow&&(t.width+=d,t.height+=d),h.pushClip(t);while(o){let i=new RectangleD(a.x+h.options.zoom,a.y+h.options.zoom,u.width,u.height),s=StiFontIconsHelper.getContent(this.icon),r=this.getStringFormatGeom(h),n=this.getToolTip(),l=this.getInteractionData();if(this.series.showShadow){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0)),t=i.clone().offset(d,d);h.drawString3(s,S,e,t,r,n,l)}h.drawString3(s,S,this.seriesBrush,i,r,n,l),(a=new PointD(a.x+u.width,a.y)).x>=e.right&&(o=!1)}h.popClip()}}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a,h){super(e,t,i,r,a,s),this.icon=n,this.drawRectangles=l,this.clipRectangles=o,this.seriesBrush=s,this.animation=h}},__.d.StiPictorialStackedEmptySeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;return this.clipRectangle.contains(e,t)}draw(e){if(super.draw(e),this.clipRectangle.width<=0||this.clipRectangle.height<=0)return;e.pushClip(this.clipRectangle);let t=this.getFontGeom(e);if(t.fontSize<=0)return;e.drawAnimationRectangle(Color.transparent,null,this.clipRectangle,null,null,this.getInteractionData(),this.getToolTip()),e.drawRotatedString5(__.a.StiFontIconsHelper.getContent(this.icon),t,this.seriesBrush,this.clientRectangle,this.getStringFormatGeom(e),StiRotationMode.CenterCenter,0,!0),e.popClip()}getFontGeom(e){let t=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),i=this.measureFontSize(e,this.clientRectangle,t);return new StiFontGeom("Stimulsoft",i,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point)}measureFontSize(e,s,t){let r=null,i=__.a.StiFontIconsHelper.getContent(this.icon),n=e.measureString(i,t);if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==r||r>i)&&(r=i)}else{let e=s.width/n.width*n.width/n.height;(null==r||r>e)&&(r=e)}return 1e3*r}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,r,l,s),this.icon=n,this.clipRectangle=o,this.animation=a}},__.d.StiPictorialStackedSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;return this.clipRectangle.contains(e,t)}draw(e){if(super.draw(e),this.clipRectangle.width<=0||this.clipRectangle.height<=0)return;e.pushClip(this.clipRectangle);let t=this.getFontGeom(e);if(t.fontSize<=0)return;e.drawAnimationRectangle(Color.transparent,null,this.clipRectangle,null,null,this.getInteractionData(),this.getToolTip()),e.drawRotatedString5(StiFontIconsHelper.getContent(this.icon),t,this.seriesBrush,this.clientRectangle,this.getStringFormatGeom(e),StiRotationMode.CenterCenter,0,!0),e.popClip()}getFontGeom(e){let t=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),i=.83*this.measureFontSize(e,this.clientRectangle,t,this.icon);return new StiFontGeom("Stimulsoft",i,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point)}measureFontSize(e,s,t,i){let r=StiFontIconsHelper.getContent(i),n=e.measureString(r,t),l=null;if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==l||l>i)&&(l=i)}else{let e=s.width/n.width*n.width/n.height;(null==l||l>e)&&(l=e)}return 1e3*l}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,r,l,s),this.icon=n,this.clipRectangle=o,this.animation=a}},__.d.StiPie3dMainSideSeriesElementGeom=class extends __.d.StiSeriesElementGeom{get interaction(){return this.pie3DSlice.interaction}draw(e){let t=new List,i=(t.add(new StiPieSegmentGeom(new Rectangle(this.clientRectangle.x,this.clientRectangle.y,this.clientRectangle.width,this.clientRectangle.height),this.startAngle,this.sweepAngle,this.realStartAngle,this.realSweepAngle,null)),e.pushSmoothingModeToAntiAlias(),this.getAnimation());null!=i?e.drawAnimationPathElement(this.seriesBrush,new StiPenGeom(this.borderColor,1),t,this.clientRectangle,this.getToolTip(),this,i,this.getInteractionData()):(e.fillPath(this.seriesBrush,t,this.clientRectangle,null),e.drawPath(new StiPenGeom(this.borderColor,1),t,this.clientRectangle)),e.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let i=__.d.StiChartHelper.globalDurationElement,s=__.d.StiChartHelper.globalBeginTimeElement,r=null,n=null;if(null==r){let e=new TimeSpan(s.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(i,e));t.anotherAnimation=n,t.id="series_"+this.series.chart.series.indexOf(this.series)+"_"+this.index,r=t}return r}constructor(e,t,i,s,r,n,l,o,a,h,u){super(t,i,s,n,l,a),this.pie3DSlice=e,this.count=r,this.borderColor=o,this.realStartAngle=h,this.realSweepAngle=u,this.startAngle=__.d.StiPie3dHelper.transformAngle(this.clientRectangle,h),this.sweepAngle=u,this.sweepAngle=u,this.sweepAngle%180!=0&&(this.sweepAngle=__.d.StiPie3dHelper.transformAngle(this.clientRectangle,h+u)-this.startAngle),this.sweepAngle<0&&(this.sweepAngle+=360)}},__.d.StiPie3dSidesSeriesElementGeom=class extends __.d.StiSeriesElementGeom{get StartAngle(){return this.m_startAngle}get EndAngle(){return(this.m_startAngle+this.m_sweepAngle)%360}get Interaction(){return this.pie3DSlice.interaction}draw(e){e.pushSmoothingModeToAntiAlias(),this.drawHiddenPeriphery(e),90<this.StartAngle&&this.StartAngle<270?(this.drawEndSide(e),this.drawStartSide(e)):(this.drawStartSide(e),this.drawEndSide(e)),this.drawVisiblePeriphery(e),e.popSmoothingMode()}drawStartSide(e){null!=this.m_startSide&&(90<this.StartAngle&&this.StartAngle<270?this.m_startSide.draw(e,this.pen,this.m_brushStartSide):this.m_startSide.draw(e,this.pen,this.m_brushSurface))}drawEndSide(e){null!=this.m_endSide&&(90<this.EndAngle&&this.EndAngle<270?this.m_endSide.draw(e,this.pen,this.m_brushSurface):this.m_endSide.draw(e,this.pen,this.m_brushEndSide))}drawVisiblePeriphery(t){let i=this.getVisiblePeripherySurfaceBounds();for(let e of i)this.drawCylinderSurfaceSection(t,this.pen,this.m_brushPeripherySurface,e)}drawHiddenPeriphery(t){let i=this.getHiddenPeripherySurfaceBounds();for(let e of i)this.drawCylinderSurfaceSection(t,this.pen,this.m_brushSurface,e)}getHiddenPeripherySurfaceBounds(){let l=new List;if(!(0==this.m_sweepAngle||0<=this.m_startAngle&&this.m_startAngle+this.m_sweepAngle<=180)&&180<this.m_startAngle+this.m_sweepAngle){let e=this.m_startAngle,t=new Point(this.m_pointStart.x,this.m_pointStart.y),i=this.m_startAngle+this.m_sweepAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;e<180&&(e=r=180,t.x=this.m_boundingRectangle.left,t.y=this.m_center.y),360<i&&(i=n=360,s.x=this.m_boundingRectangle.right,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n)),this.m_startAngle<360&&540<this.m_startAngle+this.m_sweepAngle&&(e=180,t=new Point(this.m_boundingRectangle.left,this.m_center.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n)))}return l}getVisiblePeripherySurfaceBounds(){let l=new List;if(!(0==this.m_sweepAngle||180<=this.m_startAngle&&this.m_startAngle+this.m_sweepAngle<=360)){if(this.StartAngle<180){let e=this.m_startAngle,t=new Point(this.m_pointStart.x,this.m_pointStart.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;180<this.m_startAngle+this.m_sweepAngle&&(i=n=180,s.x=this.m_boundingRectangle.x,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n))}if(360<this.m_startAngle+this.m_sweepAngle){let e=0,t=new Point(this.m_boundingRectangle.right,this.m_center.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;180<i&&(i=n=180,s.x=this.m_boundingRectangle.left,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n))}}return l}drawCylinderSurfaceSection(e,t,i,s){let r=this.createPathForCylinderSurfaceSection(s),n=e.getPathBounds(r),l=this.getAnimation();null!=l?e.drawAnimationPathElement(i,t,r,n,this.getToolTip(),this,l,this.getInteractionData()):(e.fillPath(i,r,n,null),e.drawPath(t,r,n))}getTextPosition(){let e=(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries?this.series:this.series.chart).seriesLabels,t=e.is(__.d.StiInsideEndPie3dLabels),i=t?2:3;if(180<=this.sweepAngle)return this.peripheralPoint(this.m_center.x,this.m_center.y,this.m_boundingRectangle.width/i,this.m_boundingRectangle.height/i,this.getActualAngle(this.StartAngle)+this.sweepAngle/2);let s=(this.m_pointStart.x+this.m_pointEnd.x)/2,r=(this.m_pointStart.y+this.m_pointEnd.y)/2,n=180*Math.atan2(r-this.m_center.y,s-this.m_center.x)/Math.PI;return this.peripheralPoint(this.m_center.x,this.m_center.y,this.m_boundingRectangle.width/i,this.m_boundingRectangle.height/i,this.getActualAngle(n))}getActualAngle(e){let t=this.m_boundingRectangle.height*Math.cos(e*Math.PI/180),i=this.m_boundingRectangle.width*Math.sin(e*Math.PI/180),s=180*Math.atan2(i,t)/Math.PI;if(s<0)return s+360;return s}createPathForCylinderSurfaceSection(e){let t=e.startAngle,i=e.endAngle,s=e.startPoint,r=e.endPoint,n=e.realStartAngle,l=e.realEndAngle,o=e.realEndAngle-e.realStartAngle,a=new List,h=(a.add(new StiArcSegmentGeom(this.m_boundingRectangle,t,i-t,n,o)),a.add(new StiLineSegmentGeom(r.x,r.y,r.x,r.y+this.m_sliceHeight)),new Rectangle(this.m_boundingRectangle.x,this.m_boundingRectangle.y+this.m_sliceHeight,this.m_boundingRectangle.width,this.m_boundingRectangle.height));return a.add(new StiArcSegmentGeom(h,i,t-i,l,n-l)),a.add(new StiLineSegmentGeom(s.x,s.y+this.m_sliceHeight,s.x,s.y)),a}initializePieSlice(e,t,i,s,r,n){this.m_boundingRectangle=new Rectangle(e,t,i,s),this.m_sliceHeight=r;let l=this.startnAngle,o=(this.m_startAngle=this.transformAngle(this.startnAngle),this.m_sweepAngle=this.sweepAngle,this.m_sweepAngle%180!=0&&(this.m_sweepAngle=this.transformAngle(l+this.sweepAngle)-this.m_startAngle),this.m_sweepAngle<0&&(this.m_sweepAngle+=360),this.createSurfaceBrushes(n),e+i/2),a=t+s/2;this.m_center=new Point(o,a),this.m_centerBelow=new Point(o,a+r),this.m_pointStart=this.peripheralPoint(o,a,i/2,s/2,l),this.m_pointStartBelow=new Point(this.m_pointStart.x,this.m_pointStart.y+r),this.m_pointEnd=this.peripheralPoint(o,a,i/2,s/2,l+this.sweepAngle),this.m_pointEndBelow=new Point(this.m_pointEnd.x,this.m_pointEnd.y+r),this.initializeSides(this.startSideExists,this.endSideExists)}initializeSides(e,t){let i=this.getAnimation();this.m_startSide=e?new __.d.StiPie3dQuadrilateral(this.m_boundingRectangle,this.m_center,this.m_pointStart,this.m_pointStartBelow,this.m_centerBelow,180!=this.m_sweepAngle,i):__.d.StiPie3dQuadrilateral.empty(),this.m_endSide=t?new __.d.StiPie3dQuadrilateral(this.m_boundingRectangle,this.m_center,this.m_pointEnd,this.m_pointEndBelow,this.m_centerBelow,180!=this.m_sweepAngle,i):__.d.StiPie3dQuadrilateral.empty()}createSurfaceBrushes(e){let t=StiBrush.toColor(this.seriesBrush);switch(this.m_brushSurface=new StiSolidBrush(t),e){case __.d.StiPie3dLightingStyle.No:this.m_brushStartSide=this.m_brushEndSide=this.m_brushPeripherySurface=new StiSolidBrush(t);break;case __.d.StiPie3dLightingStyle.Solid:this.m_brushStartSide=this.m_brushEndSide=this.m_brushPeripherySurface=StiBrush.light(this.seriesBrush,30);break;case __.d.StiPie3dLightingStyle.Gradient:{let e=this.m_startAngle-180-this.s_shadowAngle;e<0&&(e+=360),this.m_brushStartSide=this.createBrushForSide(t,e),(e=this.m_startAngle+this.m_sweepAngle-this.s_shadowAngle)<0&&(e+=360),this.m_brushEndSide=this.createBrushForSide(t,e),this.m_brushPeripherySurface=this.createBrushForPeriphery(t);break}}}createBrushForSide(e,t){return new StiSolidBrush(__.d.StiPie3dHelper.createColorWithCorrectedLightness(e,-__.d.StiPie3dHelper.brightnessEnhancementFactor1*(1-.8*Math.cos(t*Math.PI/180))))}createBrushForPeriphery(e){return new StiGlareBrush(e,__.d.StiPie3dHelper.createColorWithCorrectedLightness(e,-__.d.StiPie3dHelper.brightnessEnhancementFactor1),90,.1,1)}static createColorWithCorrectedLightness(e,t){if(0==t)return e;let i=e.r,s=e.g,r=e.b;return t<0?(t=1+t,i*=t,s*=t,r*=t):(i=(255-i)*t+i,s=(255-s)*t+s,r=(255-r)*t+r),Color.fromArgb(e.a,i,s,r)}peripheralPoint(e,t,i,s,r){let n=r*Math.PI/180;return new Point(e+i*Math.cos(n),t+s*Math.sin(n))}transformAngle(e){let t=this.m_boundingRectangle.width*Math.cos(e*Math.PI/180),i=this.m_boundingRectangle.height*Math.sin(e*Math.PI/180),s=180*Math.atan2(i,t)/Math.PI;if(s<0)return s+360;return s}getAnimation(){if(!this.series.chart.isAnimation)return null;let i=__.d.StiChartHelper.globalDurationElement,s=__.d.StiChartHelper.globalBeginTimeElement,r=null,n=null;if(null==r){let e=new TimeSpan(s.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(i,e));t.anotherAnimation=n,t.id="series_"+this.series.chart.series.indexOf(this.series)+"_"+this.index,r=t}return r}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(t,i,s,n,l,a),this.s_shadowAngle=20,this.pie3DSlice=e,this.count=r,this.startnAngle=h,this.pen=new StiPenGeom(o),this.sweepAngle=u,this.startSideExists=d,this.endSideExists=m,this.initializePieSlice(l.x,l.y,l.width,l.height,S,n.options3D.lighting)}},__.d.StiPieEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=new StiPenGeom(Color.lightGray);e.pushSmoothingModeToAntiAlias(),e.fillEllipse2(Color.fromArgb3(50,Color.lightGray),t,null),e.drawEllipse2(i,t),e.drawLine(i,t.x+t.width/2,t.y+t.height/2,t.right,t.y+t.height/2),e.drawLine(i,t.x+t.width/2,t.y+t.height/2,t.x+t.width/2,t.bottom),e.popSmoothingMode()}constructor(e){super(e)}},__.d.StiPieSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n>=this.radius)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(t){let i=this.clientRectangle.clone(),e=Color.transparent.equals(this.borderColor)?this.borderColor:StiColorUtils.dark(this.borderColor,10),s=new StiPenGeom(e,this.getSeriesBorderThickness(t.options.zoom)),r=(s.alignment=StiPenAlignment.Inset,this.series.as(__.d.IStiFontIconsSeries));if(null!=r&&null!=r.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}t.pushSmoothingModeToAntiAlias();let n=this.getAnimation();if(null!=n){if(t.drawAnimationPathElement(this.brush,s,this.path,i,this.getToolTip(),this,n,this.getInteractionData()),null!=this.pathLight){let e=new StiSolidBrush(Color.fromArgb3(30,Color.black));t.drawAnimationPathElement(e,null,this.pathLight,i,this.getToolTip(),null,n,this.getInteractionData())}}else{if(t.fillPath(this.brush,this.path,i,this.getInteractionData()),null!=this.pathLight){let e=new StiSolidBrush(Color.fromArgb3(30,Color.black));t.fillPath(e,this.pathLight,i,this.getInteractionData())}Color.transparent.equals(this.borderColor)||t.drawPath(s,this.path,null)}t.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let r=__.d.StiChartHelper.globalDurationElement,i=__.d.StiChartHelper.globalBeginTimeElement,n=null,l=null;if(this.series.chart.isAnimationChangingValues){let t=this.startAngle,i=this.endAngle,s=this.clientRectangle;if(this.path[0].is(StiPieSegmentGeom)){let e=this.path[0];t=e.startAngle,i=e.startAngle+e.sweepAngle,s=e.rect}(l=new StiPieSegmentAnimation(this.clientRectangle,s,RectangleD.empty,RectangleD.empty,this.startAngle,this.endAngle,t,i,r,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,StiPieSegmentAnimation.isAnimationChangingValues(this.series,l.id)&&(l.applyPreviousAnimation(this.series.chart.previousAnimations),n=l)}if(null==n){let e=new TimeSpan(i.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(r,e));t.anotherAnimation=l,t.id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,n=t}return n}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r,a),this.path=n,this.pathLight=l,this.borderColor=o,this.brush=a,this.startAngle=h,this.endAngle=u,this.radius=S}},__.d.StiPieSeriesFullElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let e=this.series.chart,r=this.clientRectangle.clone(),n=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(s.options.zoom));if(e.isAnimation){let e=__.d.StiChartHelper.globalDurationElement,t=__.d.StiChartHelper.globalBeginTimeElement,i=new StiOpacityAnimation(e,t);s.fillDrawAnimationEllipse(this.brush,n,r.x,r.y,r.width,r.height,this.getToolTip(),this,i,this.getInteractionData())}else s.fillEllipse2(this.brush,r,null),s.drawEllipse2(n,r)}constructor(e,t,i,s,r,n,l){super(e,t,i,s,r,n),this.brush=n,this.borderColor=l}},__.d.StiPieSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(t){let i=this.clientRectangle.clone();if(this.isAnimation){let e=new StiOpacityAnimation(this.duration,this.beginTime);t.drawShadowRect2(i,i.height/2,i.width/2,StiMath.trunc(this.radius),null,e)}else t.drawShadow(this.shadowContext,i,this.radius)}constructor(e,t,i,s,r,n){super(t),this.series=e,this.shadowContext=s,this.radius=i,this.duration=r,this.beginTime=n,this.isAnimation=e.chart.isAnimation}},__.d.StiRadarAreaSeriesGeom=class extends __.d.StiCellGeom{contains(n,l){if(this.invisible)return!1;let e=this.series.chart.area,o=e.core;for(let r=0;r<this.points.length;r++){let e=this.points[r],t=r==this.points.length-1?this.points[0]:this.points[r+1],i=o.centerPoint;if(null==e||null==t)continue;let s=__.d.StiPointHelper.isPointInTriangle(new PointD(n,l),e,i,t);if(s)return!0}return!1}draw(i){let r=this.series;if(null==r.brush)return;let n=[];if(this.series.chart.isAnimation){let e=null,t=null;StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)?((t=new StiPointsAnimation(this.pointsFrom,this.points,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)).id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),i.animations.push(t)):e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),n.push(new StiLinesSegmentGeom(this.points,t)),i.fillDrawAnimationPath(r.brush,null,n,StiPathGeom.getBoundsState,null,e,null)}else{let s=0;for(let i of this.points){let e=i,t=s<this.points.length-1?this.points[s+1]:this.points[0];n.push(new StiLineSegmentGeom(e.x,e.y,t.x,t.y)),s++}i.pushSmoothingModeToAntiAlias(),i.fillPath(r.brush,n,RectangleD.empty,null),i.popSmoothingMode()}}constructor(e,t){super(RectangleD.empty),this.series=e,this.pointsFrom=t.pointsFrom,this.points=t.points,this.pointsIds=t.pointsIds}},__.d.StiRadarPointSeriesElementGeom=class extends __.d.StiSeriesElementGeom{getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}contains(e,t){if(this.invisible)return!1;return this.getMouseOverRect().contains(e,t)}getMouseOverRect(){let e=this.clientRectangle.clone();return e.inflate(e.width/2,e.height/2),e}draw(s){let r=this.series,n=!r.marker.visible&&0<r.toolTips.length;if(null!=r.marker&&r.marker.visible){s.pushSmoothingModeToAntiAlias();let e=s.options.zoom,t=this.series.chart,i=null;t.isAnimation&&((i=new StiInteractionDataGeom).componentName=t.name,i.componentIndex=t.page.components.indexOf(t).toString(),i.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",i.pageIndex=t.page.report.renderedPages.indexOf(t.page).toString(),i.elementIndex=this.elementIndex.toString(),i.interactionData=this.interaction),r.marker.core.draw(s,r.marker,this.point,e,r.showShadow,!1,n,t.isAnimation,this.getToolTip(),this,i),s.popSmoothingMode()}}constructor(e,t,i,s,r,n,l){super(e,t,i,r,__.d.StiMarkerCoreXF.getMarkerRect(n,r.marker.size,l),s),this.point=n}},__.d.StiRangeBarElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let e=this.series,r=this.clientRectangle.clone(),n=this.getCornerRadius(),t=new StiPenGeom(e.borderColor,this.getSeriesBorderThickness(s.options.zoom)),i=(null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias(),this.getAnimation());if(null!=i){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,t,r,n,this.value,this.getToolTip(),this,i,this.getInteractionData())}else e.showShadow&&4<r.width&&4<r.height&&s.drawCachedShadow(r,StiShadowSides.All,s.options.isPrinting,r,n),s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip()),s.drawCicledRectangle(t,r,n);null==n||n.isEmpty||s.popSmoothingMode()}getAnimation(){var t;if(!this.series.chart.isAnimation)return null;let e=this.series,i=this.areaGeom.area,s=this.series.values.length,r=(e.valuesEnd.length<s&&(s=e.valuesEnd.length),e.arguments.length),n=Math.min(s,r),l=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/n*this.index),o=i.xAxis.info.stripLines.length-1;for(let e of i.xAxis.info.stripLines.list){if(this.series.arguments[this.index][Stimulsoft.System.StiObject.stimulsoft]().toString()==(null==(t=e.valueObject)?void 0:t.toString()))break;o--}o=i.xAxis.info.stripLines.length-1-o;let a=new StiColumnAnimation(this.rectFrom,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,l),h=i.xAxis.info.stripLines.getByIndex(i.reverseVert?i.xAxis.info.stripLines.length-1-o:o).valueObject;return h=null==h?"":h[Stimulsoft.System.StiObject.stimulsoft]().toString(),a.id=`series_${this.series.chart.series.indexOf(this.series)}_`+h,StiColumnAnimation.isAnimationChangingValues(this.series,a.id)&&a.applyPreviousAnimation(this.series.chart.previousAnimations),a}constructor(e,t,i,s,r,n,l){super(e,t,i,s,n,r),this.rectFrom=l}},__.d.StiRangeSeriesGeom=class extends __.d.StiLineSeriesGeom{draw(a){let h=this.series,e=__.d.StiNullableDrawing.getPointsList(this.points),t=__.d.StiNullableDrawing.getPointsList(this.pointsEnd);if(e.length<1||t.length<1)return;let u=e[0],S=t[0],d=Math.min(u.length,S.length),m=[],c=[],g=[],p=[];for(let o=0;o<d;o++){let e=u[o],t=S[o],i=this.pointsIds[o],s=this.pointsIds[o]+"_e",r=null,n=null,l=(o!=d-1&&(r=u[o+1],n=S[o+1]),null);null==r&&!this.intersection(e,t,r,n)||(l=this.getPointCross2(e,t,r,n)),m.push(e),c.push(t),g.push(i),p.push(s),null!=l?(m.push(l),c.push(l),g.push(i+"_c"),p.push(i+"_c_e"),this.fillPath(a,this.getBrush(h,e,t),m.map(e=>e),c.map(e=>e),g.map(e=>e),p.map(e=>e)),m[Stimulsoft.System.StiObject.stimulsoft]().clear(),c[Stimulsoft.System.StiObject.stimulsoft]().clear(),g[Stimulsoft.System.StiObject.stimulsoft]().clear(),p[Stimulsoft.System.StiObject.stimulsoft]().clear(),m.push(l),c.push(l),g.push(i+"_c"),p.push(i+"_c_e")):null==r&&this.fillPath(a,this.getBrush(h,e,t),m.map(e=>e),c.map(e=>e),g.map(e=>e),p.map(e=>e))}}isPointsEqual(t,i){if(t.length==i.length){for(let e=0;e<t.length;e++)if(!t[e].equals(i[e]))return!1;return!0}return!1}getBrush(e,t,i){let s=e.brush;return s=e.allowApplyBrushNegative?t.y<i.y?e.brushNegative:e.brush:s}fillPath(s,e,r,n,l,o){if(this.isPointsEqual(r,n))return;let t=[],i=n.map(e=>e).reverse(),a=new StiLineSegmentGeom(i[i.length-1],r[0]),h=new StiLinesSegmentGeom(r),u=new StiLineSegmentGeom(r[r.length-1],i[0]),S=new StiLinesSegmentGeom(i);if(t.push(a),t.push(h),t.push(u),t.push(S),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),a.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),u.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),a.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation.beginTimeCorrect=e.beginTimeCorrect,h.animation=e,S.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(e,null,t,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(e,t,StiPathGeom.getBoundsState,null)}intersection(e,t,i,s){if(null==i)return!1;return e.y>t.y&&i.y<s.y||e.y<t.y&&i.y>s.y||i.y==s.y}getPointCross2(e,t,i,s){if(i==s)return i;let r=e.x,n=e.y,l=i.x,o=i.y,a=t.x,h=t.y,u=s.x,S=s.y,d=-((r*o-l*n)*(u-a)-(a*S-u*h)*(l-r))/((n-o)*(u-a)-(h-S)*(l-r)),m=((h-S)*-d-(a*S-u*h))/(u-a);return r<d&&d<l?new PointD(d,m):null}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiSplineRangeSeriesGeom=class extends __.d.StiSplineSeriesGeom{draw(e){let t=__.d.StiNullableDrawing.getPointsList(this.points),i=__.d.StiNullableDrawing.getPointsList(this.pointsEnd);if(t.length<1||i.length<1)return;let s=t[0],r=i[0],n=this.pointsIds.map(e=>e+"_e");this.fillPath(e,s,r,this.pointsIds,n)}fillPath(s,r,n,l,o){let e=this.series,t=e.brush,a=[],i=n.map(e=>e).reverse(),h=new StiLineSegmentGeom(i[i.length-1],r[0]),u=new StiCurveSegmentGeom(r,e.tension),S=new StiLineSegmentGeom(r[r.length-1],i[0]),d=new StiCurveSegmentGeom(i,e.tension);if(a.push(h),a.push(u),a.push(S),a.push(d),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),h.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),S.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),h.animation.beginTimeCorrect=e.beginTimeCorrect,S.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation=e,d.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(t,null,a,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(t,a,StiPathGeom.getBoundsState,null)}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiSteppedRangeSeriesGeom=class extends __.d.StiSteppedLineSeriesGeom{draw(o){let a=this.series,e=__.d.StiNullableDrawing.getPointsList(this.getSteppedPoints(this.points)),t=__.d.StiNullableDrawing.getPointsList(this.getSteppedPoints(this.pointsEnd)),h=this.getSteppedPointsIds(this.pointsIds);if(e.length<1||t.length<1)return;let u=e[0],S=t[0],d=Math.min(u.length,S.length),m=[],c=[],g=[],p=[];for(let l=0;l<d;l++){let e=u[l],t=S[l],i=h[l],s=h[l]+"_e",r=null,n=null;l!=d-1&&(r=u[l+1],n=S[l+1]),g.push(e),p.push(t),m.push(i),c.push(s),this.intersection(e,t,r,n)?(g.push(r),p.push(n),m.push(i+"_c"),c.push(i+"_c_e"),this.fillPath(o,this.getBrush(a,e,t),g.map(e=>e),p.map(e=>e),m.map(e=>e),c.map(e=>e)),g[Stimulsoft.System.StiObject.stimulsoft]().clear(),p[Stimulsoft.System.StiObject.stimulsoft]().clear(),m[Stimulsoft.System.StiObject.stimulsoft]().clear(),c[Stimulsoft.System.StiObject.stimulsoft]().clear(),g.push(r),p.push(n),m.push(i+"_c"),c.push(i+"_c_e")):null==r&&this.fillPath(o,this.getBrush(a,e,t),g.map(e=>e),p.map(e=>e),m.map(e=>e),c.map(e=>e))}}getBrush(e,t,i){let s=e.brush;return s=e.allowApplyBrushNegative?t.y<i.y?e.brushNegative:e.brush:s}fillPath(s,e,r,n,l,o){let t=[],i=n.map(e=>e).reverse(),a=new StiLineSegmentGeom(i[i.length-1],r[0]),h=new StiLinesSegmentGeom(r),u=new StiLineSegmentGeom(r[r.length-1],i[0]),S=new StiLinesSegmentGeom(i);if(t.push(a),t.push(h),t.push(u),t.push(S),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),a.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),u.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),a.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation.beginTimeCorrect=e.beginTimeCorrect,h.animation=e,S.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(e,null,t,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(e,t,StiPathGeom.getBoundsState,null)}intersection(e,t,i,s){if(null==i)return!1;return e.y>t.y&&i.y<s.y||e.y<t.y&&i.y>s.y||i.y==s.y}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiScatterSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(i){let s=this.series,r=(i.pushSmoothingModeToAntiAlias(),s.lineStyle),t=s.lineWidth*i.options.zoom,n=this.getAnimation(),e=new StiPenGeom(s.lineColor,s.lineWidth);if(e.penStyle=r,s.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),t+.5*i.options.zoom);e.penStyle=r,i.pushTranslateTransform(t,t),__.d.StiNullableDrawing.drawCurve(i,e,this.points,s.tension,n),i.popTransform()}if(__.d.StiNullableDrawing.drawCurve(i,e,this.points,s.tension,n),2<=t&&s.lighting){let e=.5*i.options.zoom,t=(i.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(s.lineColor,70),1));t.penStyle=r,__.d.StiNullableDrawing.drawCurve(i,t,this.points,s.tension,n),i.popTransform()}i.popSmoothingMode()}constructor(e,t,i){super(e,t,i)}},__.d.StiStackedBarSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let i=this.clientRectangle.clone(),t=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),r=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),n=(r=StiCornerRadiusHelper.flipHorizontal(r),this.series.chart),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=n.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,i,new Size(i.height,i.height),l.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==r||r.isEmpty||s.pushSmoothingModeToAntiAlias();let e=this.getAnimation();if(null!=e){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(this.clientRectangle,5,r,i)}s.drawAnimationCicledBar(this.seriesBrush,t,i,r,this.value,this.getToolTip(),this,e,this.getInteractionData())}else{this.series.chart.style.core.fillCicledColumn(s,i,r,this.seriesBrush,this.getInteractionData(),this.getToolTip());let e=this.getBorderPath(i,r);s.drawPath(t,e,i)}null==r||r.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return 0<this.value?StiContextRoundedRectangleCreator.createWithoutRightSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutLeftSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.right,e.y,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.x,e.bottom))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=(s?e.yAxis.info.stripLines.getByIndex(this.index+1):e.yAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiStackedBarSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(e){let t=this.clientRectangle.clone();this.series.is(__.d.IStiFullStackedBarSeries)?e.drawCachedShadow(t,StiShadowSides.Bottom,e.options.isPrinting):(this.isLeftShadow&&e.drawCachedShadow(t,StiShadowSides.Bottom|StiShadowSides.Left,e.options.isPrinting),this.isRightShadow&&e.drawCachedShadow(t,StiShadowSides.Top|StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom,e.options.isPrinting))}constructor(e,t,i,s){super(t),this.isLeftShadow=!1,this.isRightShadow=!1,this.series=e,this.isLeftShadow=i,this.isRightShadow=s}},Stimulsoft.Base.Context.StiBezierSegmentGeom);{class xF0 extends __.d.StiSeriesGeom{static getClientRectangle(t){let i=Rectangle.empty;for(let e of t)i=Rectangle.union(i,e);return i}draw(t){let l=new List,o=3;for(let e=0;e<this.metadata.rectangles.length;e++){let r=this.metadata.rectangles[e],n=e==this.metadata.rectangles.length-1?Rectangle.empty:this.metadata.rectangles[e+1];if(l.add(new StiLineSegmentGeom(r.x,r.y,r.right,r.y)),e==this.metadata.rectangles.length-1)l.add(new StiLineSegmentGeom(r.right,r.y,r.right,r.bottom));else{let e=new Point(r.right,r.y),t=new Point(n.x-(n.x-r.right)/o,r.y),i=new Point(r.right+(n.x-r.right)/o,n.y),s=new Point(n.x,n.y);l.add(new StiBezierSegmentGeom(e,t,i,s))}}for(let e=this.metadata.rectangles.length-1;0<=e;e--){let r=this.metadata.rectangles[e],n=0==e?Rectangle.empty:this.metadata.rectangles[e-1];if(l.add(new StiLineSegmentGeom(r.right,r.bottom,r.x,r.bottom)),0==e)l.add(new StiLineSegmentGeom(r.x,r.bottom,r.x,r.y));else{let e=new Point(r.x,r.bottom),t=new Point(n.right+(r.x-n.right)/o,r.bottom),i=new Point(r.x-(r.x-n.right)/o,n.bottom),s=new Point(n.right,n.bottom);l.add(new StiBezierSegmentGeom(e,t,i,s))}}l.add(new StiCloseFigureSegmentGeom);let e=this.series.chart;if(t.pushSmoothingModeToAntiAlias(),e.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),this.beginTime);t.fillDrawAnimationPath(this.metadata.brush,null,l,this.clientRectangle,null,e,null)}else t.fillPath(this.metadata.brush,l,this.clientRectangle,null);t.popSmoothingMode()}constructor(e,t,i,s){super(e,i,xF0.getClientRectangle(t.rectangles)),this.metadata=t,this.beginTime=s}}__.d.StiRibbonSeriesGeom=xF0}{class YF0 extends __.d.StiSeriesGeom{contains(l,o){if(this.invisible)return!1;for(let n=0;n<this.startPoints.length-1;n++){let e=this.startPoints[n],t=this.startPoints[n+1],i=this.endPoints[n],s=this.endPoints[n+1];if(null==e||null==i||null==s||null==t)continue;let r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,t,s,i]);if(r)return!0}return!1}static getClientRectangle(t,i){if(null==t||0==t.length||null==i||0==i.length)return RectangleD.empty;let s=PointD.empty,r=PointD.empty;for(let e of t){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}for(let e of i){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}return new RectangleD(s.x,s.y,r.x-s.x,r.y-s.y)}draw(u){let S=this.series,d=S.chart.isAnimation,e,t,i={ref:e},s={ref:t},m=(__.d.StiNullableDrawing.getPointsList2(this.startPoints,this.endPoints,i,s),t=s.ref,0);for(let h of e=i.ref){let i=t[m],e=h.map(e=>e).reverse(),n=[],s=new StiLineSegmentGeom(h[0],i[0]),r=new StiLinesSegmentGeom(i),l=new StiLineSegmentGeom(i[i.length-1],h[h.length-1]),o=new StiLinesSegmentGeom(e),a=(n.push(s),n.push(r),n.push(l),n.push(o),null);if(d&&S.chart.isAnimationChangingValues){let e=new StiPointsAnimation(i,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(h,h,this.pointsIds,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_r`,u.animations.push(e),u.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),s.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),r.animation=e,l.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),s.animation.beginTimeCorrect=e.beginTimeCorrect,l.animation.beginTimeCorrect=e.beginTimeCorrect,o.animation=t):a=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}if(null!=S.brush&&(d?u.fillDrawAnimationPath(S.brush,null,n,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brush,n,StiPathGeom.getBoundsState,null)),S.allowApplyBrushNegative&&null!=S.brushNegative){let e=this.series.chart.area,t=e.axisCore.getDividerY(),i=e.axisCore.scrollRangeX*e.axisCore.scrollDpiX,s=e.axisCore.scrollRangeY*e.axisCore.scrollDpiY-t,r=new RectangleD(0,t,i,s);u.pushClip(r),d?u.fillDrawAnimationPath(S.brushNegative,null,n,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brushNegative,n,StiPathGeom.getBoundsState,null),u.popClip()}m++}}constructor(e,t,i){super(e,i,YF0.getClientRectangle(t.pointsStart,t.pointsEnd)),this.startPoints=t.pointsStart,this.endPoints=t.pointsEnd,this.pointsIds=t.pointsIds}}__.d.StiStackedAreaSeriesGeom=YF0}{class NG0 extends __.d.StiSeriesGeom{static getClientRectangle(t){if(null==t||0==t.length)return RectangleD.empty;let i=PointD.empty,s=PointD.empty;for(let e of t){if(null==e)continue;i==PointD.empty?(i=e,s=e):(i.x=Math.min(i.x,e.x),i.y=Math.min(i.y,e.y),s.x=Math.max(s.x,e.x),s.y=Math.max(s.y,e.y))}return new RectangleD(i.x,i.y,s.x-i.x,s.y-i.y)}draw(e){}constructor(e,t,i){super(e,i,NG0.getClientRectangle(t)),this.points=t}}__.d.StiStackedBaseLineSeriesGeom=NG0}__.d.StiStackedColumnSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let r=this.clientRectangle.clone(),e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),i=this.series.chart,n=this.getCornerRadius(),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=i.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.width,r.width),l.icon,this.getToolTip(),this.getInteractionData(),!0,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,t,this.getInteractionData())}else s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip()),s.drawCicledRectangle(e,r,n);null==n||n.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return this.value<0?StiContextRoundedRectangleCreator.createWithoutTopSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutBottomSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.x,e.bottom,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.right,e.y))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.xAxis.core.getStartFromZero(),r=(s?e.xAxis.info.stripLines.getByIndex(this.index+1):e.xAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiStackedColumnSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(e){let t=this.clientRectangle.clone();this.series.is(__.d.IStiFullStackedColumnSeries)?e.drawCachedShadow(t,StiShadowSides.Right,e.options.isPrinting):(this.isTopShadow&&e.drawCachedShadow(t,StiShadowSides.Top|StiShadowSides.Right,e.options.isPrinting),this.isBottomShadow&&e.drawCachedShadow(t,StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom|StiShadowSides.Left,e.options.isPrinting))}constructor(e,t,i,s){super(t),this.series=e,this.isTopShadow=i,this.isBottomShadow=s}},__.d.StiStackedLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(c){let e=this.series;if(0==this.points.length)return;if(1<this.points.length){let a=this.getAnimation(),h=(c.pushSmoothingModeToAntiAlias(),e.lineStyle),u=e.lineWidth*c.options.zoom,S=new StiPenGeom(e.lineColor,u),d=(S.penStyle=h,e.lighting);if(e.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),u+.5*c.options.zoom);e.penStyle=h,c.pushTranslateTransform(u,u),__.d.StiNullableDrawing.drawLines(c,e,this.points,a),c.popTransform()}let m=this.series.lineColor;if(this.series.allowApplyColorNegative){let r=this.series.lineColorNegative,e=new StiPenGeom(r,u),t=(e.penStyle=h,this.series.chart.area),n=t.axisCore.getDividerY(),l=[],o=[];for(let s=0;s<this.points.length;s++){let t=this.points[s],i=s!=this.points.length-1?this.points[s+1]:null;if(t.y>n){if(l.push(t),null==i||i.y<n||i.y==n&&s+2<this.points.length&&this.points[s+2].y<=n){if(null!=i){let e=this.getPointCross(t,this.points[s+1],n);l.push(e),i.y==n&&s+2<this.points.length&&this.points[s+2].y<=n&&l.push(this.points[s+2]),o.push(e)}if(__.d.StiNullableDrawing.drawLines(c,e,l,a),u>=2*c.options.zoom&&d){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(r,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,l,a),c.popTransform()}l[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(o.push(t),null==i||i.y>n){if(null!=i){let e=this.getPointCross(t,this.points[s+1],n);l.push(e),o.push(e),o.push(i)}if(__.d.StiNullableDrawing.drawLines(c,S,o,a),u>=2*c.options.zoom&&d){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(m,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,o,a),c.popTransform()}o[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else if(__.d.StiNullableDrawing.drawLines(c,S,this.points,a),u>=2*c.options.zoom&&e.lighting){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(m,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,this.points,a),c.popTransform()}c.popSmoothingMode()}}getPointCross(e,t,i){let s=e.y,r=e.x,n=t.y,l=t.x,o=Math.tan(Math.atan((l-r)/(s-n)))*(s-i)+r;return new PointD(o,i)}constructor(e,t,i){super(e,t,i)}};{class rI0 extends __.d.StiSeriesGeom{contains(l,o){if(this.invisible)return!1;for(let n=0;n<this.startPoints.length-1;n++){let e=this.startPoints[n],t=this.startPoints[n+1],i=this.endPoints[n],s=this.endPoints[n+1];if(null==e||null==i||null==s||null==t)continue;let r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,t,s,i]);if(r)return!0}return!1}static getClientRectangle(t,i){if(null==t||0==t.length||null==i||0==i.length)return RectangleD.empty;let s=PointD.empty,r=PointD.empty;for(let e of t){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}for(let e of i){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}return new RectangleD(s.x,s.y,r.x-s.x,r.y-s.y)}draw(u){let S=this.series,d=this.series.chart.area,e,t,i={ref:e},s={ref:t},m=(__.d.StiNullableDrawing.getPointsList2(this.startPoints,this.endPoints,i,s),t=s.ref,this.series.chart),c=0;for(let h of e=i.ref){let i=t[c],e=h.map(e=>e).reverse(),r=[],s=new StiLineSegmentGeom(h[0],i[0]),n=new StiCurveSegmentGeom(i,S.tension),l=new StiLineSegmentGeom(i[i.length-1],h[h.length-1]),o=new StiCurveSegmentGeom(e,S.tension),a=(r.push(s),r.push(n),r.push(l),r.push(o),null);if(this.series.chart.isAnimation&&S.chart.isAnimationChangingValues){let e=new StiPointsAnimation(i,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(h,h,this.pointsIds,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_r`,u.animations.push(e),u.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),s.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),n.animation=e,l.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),s.animation.beginTimeCorrect=e.beginTimeCorrect,l.animation.beginTimeCorrect=e.beginTimeCorrect,o.animation=t):a=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}if(null!=S.brush&&(m.isAnimation?u.fillDrawAnimationPath(S.brush,null,r,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brush,r,StiPathGeom.getBoundsState,null)),S.allowApplyBrushNegative&&null!=S.brushNegative){let e=d.axisCore.getDividerY(),t=d.axisCore.scrollRangeX*d.axisCore.scrollDpiX,i=d.axisCore.scrollRangeY*d.axisCore.scrollDpiY-e,s=new RectangleD(0,e,t,i);u.pushClip(s),m.isAnimation?u.fillDrawAnimationPath(S.brushNegative,null,r,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brushNegative,r,StiPathGeom.getBoundsState,null),u.popClip()}c++}}constructor(e,t,i){super(e,i,rI0.getClientRectangle(t.pointsStart,t.pointsEnd)),this.startPoints=t.pointsStart,this.endPoints=t.pointsEnd,this.pointsIds=t.pointsIds}}__.d.StiStackedSplineAreaSeriesGeom=rI0}__.d.StiStackedSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverSplineDistance,new PointD(r,n));if(i)return!0}return!1}draw(l){if(0==this.points.length)return;let o=this.series,a=this.getAnimation(),h=(l.pushSmoothingModeToAntiAlias(),o.lineStyle),u=o.lineWidth*l.options.zoom,e=new StiPenGeom(o.lineColor,u);if(e.penStyle=h,null!=this.points&&1<this.points.length){if(o.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),u+.5*l.options.zoom);e.penStyle=h,l.pushTranslateTransform(u,u),__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),l.popTransform()}if(__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),2<=u&&o.lighting){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(o.lineColor,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawCurve(l,t,this.points,o.tension,a),l.popTransform()}if(o.allowApplyColorNegative){let e=new StiPenGeom(o.lineColorNegative,u),t=(e.penStyle=h,this.series.chart.area),i=t.axisCore.getDividerY(),s=t.axisCore.scrollRangeX*t.axisCore.scrollDpiX,r=t.axisCore.scrollRangeY*t.axisCore.scrollDpiY-i,n=new RectangleD(0,i,s,r);if(l.pushClip(n),__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),2<=u&&o.lighting){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(o.lineColorNegative,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawCurve(l,t,this.points,o.tension,a),l.popTransform()}l.popClip()}}l.popSmoothingMode()}constructor(e,t,i){super(e,t,i)}},__.d.StiSunburstEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=t.width/6;this.drawSunburst(e,this.clientRectangle,.85*i),this.drawSunburst(e,new Rectangle(this.clientRectangle.x+i,this.clientRectangle.y+i,this.clientRectangle.width-2*i,this.clientRectangle.height-2*i),.85*i)}drawSunburst(e,t,i){let s=new StiPenGeom(Color.lightGray),r=new List;r.push(new StiArcSegmentGeom(t,0,360)),r.push(new StiLineSegmentGeom(t.right,t.y+t.height/2,t.x+(t.width-i),t.y+t.height/2)),r.push(new StiArcSegmentGeom(new Rectangle(t.x+i,t.y+i,t.width-2*i,t.height-2*i),0,360)),e.pushSmoothingModeToAntiAlias(),e.fillPath(new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),r,t,null),e.drawPath(s,r,t),e.drawLine(s,t.x+t.width/2,t.y+(t.height-i),t.x+t.width/2,t.bottom),e.popSmoothingMode()}},__.d.StiSunburstSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n<this.radiusTo||n>this.radiusFrom)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(e.options.zoom)),s=(i.alignment=StiPenAlignment.Inset,this.getAnimation());null!=s?e.drawAnimationPathElement(this.brush,i,this.path,t,this.getToolTip(),this,s,this.getInteractionData()):(e.pushSmoothingModeToAntiAlias(),null!=this.path&&e.fillPath(this.brush,this.path,t,this.getInteractionData()),e.drawPath(i,this.path,StiPathGeom.getBoundsState),e.popSmoothingMode())}getAnimation(){if(!this.series.chart.isAnimation)return null;let l=__.d.StiChartHelper.globalDurationElement,o=null,a=null;if(this.series.chart.isAnimationChangingValues){let i=this.startAngle,s=this.endAngle,r=this.clientRectangle.clone(),n=this.clientRectangle.clone();if(4==this.path.length&&this.path[0].is(StiArcSegmentGeom)&&this.path[2].is(StiArcSegmentGeom)){let e=this.path[0],t=this.path[2];i=e.startAngle,s=e.startAngle+e.sweepAngle,r=e.rect,n=t.rect}(a=new StiPieSegmentAnimation(this.clientRectangle,r,this.clientRectangleDt,n,this.startAngle,this.endAngle,i,s,l,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_${this.index}_${this.index2}_`+this.index3,StiPieSegmentAnimation.isAnimationChangingValues(this.series,a.id)&&(a.applyPreviousAnimation(this.series.chart.previousAnimations),o=a)}if(null==o){let e=this.beginTime,t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(l,e));t.anotherAnimation=a,t.id=`series_${this.series.chart.series.indexOf(this.series)}_${this.index}_${this.index2}_`+this.index3,o=t}return o}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g){super(e,t,i,n,l,u),this.index2=0,this.index3=0,this.index2=s,this.index3=r,this.clientRectangleDt=o,this.path=a,this.borderColor=h,this.brush=u,this.startAngle=S,this.endAngle=d,this.radiusFrom=m,this.radiusTo=c,this.beginTime=g}},__.d.StiTreemapEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=Rectangle.round(this.clientRectangle),i=new StiPenGeom(Color.lightGray);e.pushSmoothingModeToAntiAlias(),e.fillRectangle(new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),t,null),e.drawRectangle2(i,t.x,t.y,t.width/3,t.height),e.drawRectangle2(i,t.x+t.width/3,t.y,2*t.width/3,t.height),e.popSmoothingMode()}},__.d.StiTreemapSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let e=this.series.chart,i=this.clientRectangle.clone(),s=this.getCornerRadius(),r=this.series.as(__.d.IStiFontIconsSeries);if(null!=r&&null!=r.icon){let e=30;return t.pushClip(i),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}let n=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(t.options.zoom));null==s||s.isEmpty||t.pushSmoothingModeToAntiAlias(),e.isAnimation?t.drawAnimationCicledRectangle(this.seriesBrush,n,i,s,this,this.animation,this.getInteractionData(),this.getToolTip()):(super.draw(t),this.series.chart.style.core.fillCicledColumn(t,i,s,this.seriesBrush,this.getInteractionData(),this.getToolTip()),t.drawCicledRectangle(n,i,s)),null==s||s.isEmpty||t.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.animation=o}},__.d.StiSeriesLabelsGeom=class extends __.d.StiCellGeom{getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(e){return null!=this.series.toolTips&&e<this.series.toolTips.length?this.series.hyperlinks[e]:null}drawMarker(r,n,l,o){if(this.seriesLabels.markerVisible){let e=this.series.chart,t=Rectangle.empty;switch(this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?t.x=StiMath.trunc(n.right+2*r.options.zoom):t.x=StiMath.trunc(n.left-(2+this.seriesLabels.markerSize.width)*r.options.zoom),this.seriesLabels.markerAlignment){case __.d.StiMarkerAlignment.Right:t.x=StiMath.trunc(n.right+2*r.options.zoom);break;case __.d.StiMarkerAlignment.Left:t.x=StiMath.trunc(n.left-(2+this.seriesLabels.markerSize.width)*r.options.zoom);break;case __.d.StiMarkerAlignment.Center:t.x=StiMath.trunc(n.left+ +n.width/2-(2+this.seriesLabels.markerSize.width)/2*r.options.zoom);break}t.y=StiMath.trunc(n.y+(n.height-this.seriesLabels.markerSize.height*r.options.zoom)/2),t.width=StiMath.trunc(this.seriesLabels.markerSize.width*r.options.zoom),t.height=StiMath.trunc(this.seriesLabels.markerSize.height*r.options.zoom);let i=l instanceof Color?l:Color.black,s=new StiPenGeom(i,1);if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement);r.drawAnimationRectangle(o,s,t,null,e,null,this.getToolTip(this.getValueIndex()))}else r.fillRectangle2(o,t.x,t.y,t.width,t.height,null),r.drawRectangle2(s,t.x,t.y,t.width,t.height)}}draw(e){}constructor(e,t,i,s,r){super(r),this.beginTime=new TimeSpan(0),this.duration=new TimeSpan(0),this.seriesLabels=e,this.series=t,this.index=i,this.value=s}},__.d.StiCenterAxisLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.seriesLabels.core.getStringFormatGeom(e),s=(i.alignment=StringAlignment.Center,i.lineAlignment=StringAlignment.Center,this.series.chart),r=(s.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(this.duration,this.beginTime)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),n=t.y+t.height/2,l=(e.pushTranslateTransform(r,n),e.pushRotateTransform(this.seriesLabels.angle),t.clone());l.x=-l.width/2-1,l.y=-l.height/2-1,l.width+=2,l.height+=2,this.drawLabelArea(e,l),this.drawLabelText(e,l),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesLabelsBrush=h,this.seriesBorderColor=u,this.font=S,this.animation=d}},__.d.StiOutsideAxisLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLines(e,t),e.pushTranslateTransform(t.x+t.width/2,t.y+t.height/2),e.pushRotateTransform(this.seriesLabels.angle),t.clone());s.x=-s.width/2,s.y=-s.height/2,this.drawLabelArea(e,s),this.drawLabelText(e,s),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLines(e,t){let i=this.series.chart,s=new StiPenGeom(this.labelBorderColor);i.isAnimation?e.drawAnimationLines(s,[this.endPoint,this.startPoint],this.animation):e.drawLine(s,this.endPoint.x,this.endPoint.y,this.startPoint.x,this.startPoint.y)}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesBorderColor=h,this.font=u,this.startPoint=S,this.endPoint=d,this.animation=m}},__.d.StiCenterFunnelLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,this.labelRect,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),r=t.y+t.height/2,n=(e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t);n.x=-n.width/2,n.y=-n.height/2,this.drawLabelArea(e,n),this.drawLabelText(e,n),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.borderColor=a,this.seriesBorderColor=h,this.seriesBrush=l,this.labelRect=u,this.animation=S}},__.d.StiOutsideFunnelLabelsGeom=class extends __.d.StiCenterFunnelLabelsGeom{draw(t){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let e=this.series.chart,i=new StiPenGeom(this.borderColor);if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement);t.drawAnimationLines(i,[this.startPointLine,this.endPointLine],e)}else t.drawLine(i,this.startPointLine.x,this.startPointLine.y,this.endPointLine.x,this.endPointLine.y);super.draw(t)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r,n,l,o,a,h,u,null),this.startPointLine=S,this.endPointLine=d}};{let i=Stimulsoft.Base.Drawing.PointD;__.d.StiOutsidePictorialStackedLabelGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.labelRect.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLineLabel(e),t.x+t.width/2),r=t.y+t.height/2,n=(e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t.clone());n.x=-n.width/2-1,n.y=-n.height/2-1,n.width+=2,n.height+=2,this.drawLabelArea(e,n),this.drawLabelText(e,n),e.popTransform(),e.popTransform()}drawLineLabel(e){let t=this.series.chart;t.isAnimation?e.drawAnimationLines(new StiPenGeom(this.labelLineColor,1),[new i(this.lineRect.x,this.lineRect.y+this.lineRect.height/2),new i(this.lineRect.right,this.lineRect.y+this.lineRect.height/2)],this.animation):e.drawLine(new StiPenGeom(this.labelLineColor,1),this.lineRect.x,this.lineRect.y+this.lineRect.height/2,this.lineRect.right,this.lineRect.y+this.lineRect.height/2)}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.labelLineColor=a,this.borderColor=h,this.seriesBorderColor=u,this.seriesBrush=l,this.animation=m,this.lineRect=d,this.labelRect=S}}}__.d.StiCenterPieLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,this.labelRect,this.seriesBorderColor,this.seriesBrush),StiMath.round2(this.labelRect.x+this.labelRect.width/2,0)),r=StiMath.round2(this.labelRect.y+this.labelRect.height/2,0);e.pushTranslateTransform(s,r),e.pushRotateTransform(this.angleToUse),this.drawLabelArea(e,t),this.drawLabelText(e,t),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.borderColor=h,this.seriesBorderColor=u,this.seriesLabelsBrush=a,this.seriesBrush=l,this.rotationMode=S,this.labelRect=d,this.angleToUse=m,this.animation=c}},__.d.StiOutsidePieLabelsGeom=class extends __.d.StiCenterPieLabelsGeom{draw(i){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let e=this.seriesLabels;if(super.draw(i),e.drawBorder){let t=new StiPenGeom(this.lineColor),e=this.series.chart;if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement);i.drawAnimationLines(t,[this.labelPoint,this.startPoint],e)}else i.drawLine(t,this.labelPoint.x,this.labelPoint.y,this.startPoint.x,this.startPoint.y)}}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m,null),this.lineColor=c,this.labelPoint=g,this.startPoint=p}},__.d.StiTwoColumnsPieLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart;i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawLines(e),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLabelArea(e,t),this.drawLabelText(e,t)}drawLines(r){if(this.seriesLabels.drawBorder){let e=null,t=new StiPenGeom(this.lineColor,1),i=null!=(e=this.centerPie.y>this.startPoint.y&&this.endPoint.y>this.startPoint.y||this.centerPie.y<this.startPoint.y&&this.endPoint.y<this.startPoint.y?this.centerPie.x>this.endPoint.x?new PointD(this.endPoint.x+13,this.startPoint.y):new PointD(this.endPoint.x-13,this.startPoint.y):e)?[this.endPoint,e,this.startPoint,this.arcPoint]:[this.endPoint,this.startPoint,this.arcPoint],s=this.series.chart;s.isAnimation?r.drawAnimationLines(t,i,this.animation):r.drawLines(t,i)}}drawMarker(n,l,o,a){if(this.seriesLabels.markerVisible){let e=Rectangle.empty,t=StiMath.trunc(l.right+2*n.options.zoom),i=StiMath.trunc(l.left-(2+this.seriesLabels.markerSize.width)*n.options.zoom),s=(Stimulsoft.StiOptions.Engine.allowFixPieChartMarkerAlignment?this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?e.x=this.clientRectangle.x<this.centerPie.x?t:i:e.x=this.clientRectangle.x>this.centerPie.x?t:i:e.x=this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?t:i,e.y=StiMath.trunc(l.y+(l.height-this.seriesLabels.markerSize.height*n.options.zoom)/2),e.width=StiMath.trunc(this.seriesLabels.markerSize.width*n.options.zoom),e.height=StiMath.trunc(this.seriesLabels.markerSize.height*n.options.zoom),o instanceof Color?o:Color.black),r=new StiPenGeom(s,1);n.fillRectangle2(a,e.x,e.y,e.width,e.height,null),n.drawRectangle2(r,e.x,e.y,e.width,e.height)}}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){super(e,t,i,s,r),this.text=n,this.seriesLabelsBrush=a,this.labelBrush=o,this.lineColor=d,this.borderColor=h,this.seriesBorderColor=u,this.seriesBrush=l,this.labelRect=S,this.startPoint=m,this.endPoint=c,this.arcPoint=g,this.centerPie=p,this.animation=_}},__.d.StiCenterTreemapLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(super.draw(e),this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),r=t.y+t.height/2,n=(this.drawLabelArea(e,t),this.drawLabelText(e,t),e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t.clone());n.x=-n.width/2,n.y=-n.height/2,e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesLabelsBrush=h,this.seriesBorderColor=u,this.font=S,this.animation=d}},__.d.StiStripsXGeom=class extends __.d.StiCellGeom{draw(s){let r=this.clientRectangle.clone();if(s.fillRectangle2(this.strip.stripBrush,r.x,r.y,r.width,r.height,null),this.strip.titleVisible){let e=new StiSolidBrush(this.strip.titleColor),t=StiFontGeom.changeFontSize(this.strip.font,this.strip.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString6(this.strip.text,t,e,r,i,StiRotationMode.CenterCenter,90,this.strip.antialiasing,0)}}constructor(e,t){super(t),this.strip=e}},__.d.StiStripsYGeom=class extends __.d.StiCellGeom{draw(s){let r=this.clientRectangle.clone();if(s.fillRectangle2(this.strip.stripBrush,r.x,r.y,r.width,r.height,null),this.strip.titleVisible){let e=new StiSolidBrush(this.strip.titleColor),t=StiFontGeom.changeFontSize(this.strip.font,this.strip.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString5(this.strip.text,t,e,r,i,StiRotationMode.CenterCenter,0,this.strip.antialiasing)}}constructor(e,t){super(t),this.strip=e}},__.d.StiChartTableGeom=class extends __.d.StiCellGeom{constructor(e,t,i,s,r){super(e),this.widthCellLegendTableChart=i,this.heightCellHeader=s,this.table=t,this.chartTable=r,this.pen=new StiPenGeom(r.gridLineColor),this.labelBrush=new StiSolidBrush(r.textColor),this.labelHeaderBrush=new StiSolidBrush(r.header.textColor)}draw(e){this.font=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*e.options.zoom),this.sf=e.getGenericStringFormat(),this.sf.trimming=StringTrimming.None,this.sf.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,this.sf.alignment=StringAlignment.Center,this.sf.lineAlignment=StringAlignment.Center,this.fontHeader=StiFontGeom.changeFontSize(this.chartTable.header.font,this.chartTable.header.font.size*e.options.zoom),this.sfHeader=e.getGenericStringFormat(),this.sf.trimming=StringTrimming.None,this.chartTable.header.wordWrap||(this.sf.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),this.sfHeader.alignment=StringAlignment.Center,this.sfHeader.lineAlignment=StringAlignment.Center;let t=this.clientRectangle.clone(),i=this.chartTable.chart.area,s=i.reverseHor?t.x:t.x+this.widthCellLegendTableChart,r=t.y,n=t.width-this.widthCellLegendTableChart,l=this.heightCellHeader,o=new RectangleD(s,r,n,l),a=[];for(let e=1;e<this.table[0].length;e++)a.push(this.table[0][e]);this.drawHeaderArgument(e,o,a,i.xAxis.startFromZero);let h=i.reverseHor?t.right-this.widthCellLegendTableChart:t.x,u=t.y+this.heightCellHeader,S=this.widthCellLegendTableChart,d=t.height-this.heightCellHeader,m=new RectangleD(h,u,S,d),c=[];for(let e=1;e<this.table.length;e++)c.push(this.table[e][0]);this.drawTitleLegend(e,m,c);let g=i.reverseHor?t.x:t.x+this.widthCellLegendTableChart,p=t.y+this.heightCellHeader,_=t.width-this.widthCellLegendTableChart,f=t.height-this.heightCellHeader,C=new RectangleD(g,p,_,f);this.drawRootTable(e,C,i.xAxis.startFromZero)}drawHeaderArgument(r,n,l,o){r.fillRectangle(this.chartTable.header.brush,new RectangleD(n.x,n.y,n.width,n.height),null),this.chartTable.gridOutline&&r.drawRectangle(this.pen,n);let e=o?l.length+1:l.length-1,a=n.width/e;for(let s=0;s<l.length;s++){let e=0,t=(0!=s&&s!=l.length-1||(e=o?a/2:-a/2),o?a/2:-a/2),i=(0==s&&(t=0),new RectangleD(n.x+s*a+t,n.y,a+e,n.height));if(this.chartTable.header.wordWrap?r.drawRotatedString6(l[s],this.fontHeader,this.labelHeaderBrush,i,this.sfHeader,StiRotationMode.CenterCenter,0,!0,StiMath.trunc(a+e)):r.drawRotatedString5(l[s],this.fontHeader,this.labelHeaderBrush,i,this.sfHeader,StiRotationMode.CenterCenter,0,!0),this.chartTable.gridLinesVert&&s!=l.length-1){let e=o?n.x+(s+1)*a+a/2:n.x+(s+1)*a-a/2;r.drawLine(this.pen,e,n.y,e,n.bottom)}}}drawTitleLegend(l,t,o){this.chartTable.gridOutline&&l.drawRectangle2(this.pen,t.x,t.y,t.width,t.height);let a=t.height/o.length;for(let n=0;n<o.length;n++){let i=t.x,s=t.y,r=t.width;if(this.chartTable.gridLinesHor&&0!=n&&l.drawLine(this.pen,i,s+a*n,i+r,s+a*n),this.chartTable.markerVisible){let e=new RectangleD(i+2,s+2+a*n,a-4,a-4),t=__.d.StiMarkerLegendFactory.createMarker(this.chartTable.chart.series.getByIndex(n));t.draw(l,this.chartTable.chart.series.getByIndex(n),e,n,o.length,-1),i+=a,r-=a}let e=new RectangleD(i,s+a*n,r,a);l.drawString(o[n],this.font,this.labelBrush,e,this.sf)}}drawRootTable(l,o,a){this.chartTable.gridOutline&&l.drawRectangle2(this.pen,o.x,o.y,o.width,o.height);let e=this.table.length,h=this.table[0].length,t=a?this.table[0].length:this.table[0].length-2,u=o.width/t,S=o.height/(e-1),d=this.font;if(this.chartTable.dataCells.shrinkFontToFit)for(let n=1;n<e;n++){this.chartTable.gridLinesHor&&n!=e-1&&l.drawLine(this.pen,o.x,o.y+n*S,o.right,o.y+n*S);for(let r=1;r<h;r++){let e=0,t=(1!=r&&r!=h-1||(e=a?u/2:-u/2),a?u/2:-u/2),i=(1==r&&(t=0),new RectangleD(o.x+(r-1)*u+t,o.y+(n-1)*S,u+e,S)),s=this.checkFontSize(l,this.table[n][r],d,i);while(!s){if(d.fontSize-=.5,d.fontSize<=this.chartTable.dataCells.shrinkFontToFitMinimumSize){d.fontSize=this.chartTable.dataCells.shrinkFontToFitMinimumSize;break}s=this.checkFontSize(l,this.table[n][r],d,i)}}}for(let r=1;r<e;r++){this.chartTable.gridLinesHor&&r!=e-1&&l.drawLine(this.pen,o.x,o.y+r*S,o.right,o.y+r*S);for(let s=1;s<h;s++){let e=0,t=(1!=s&&s!=h-1||(e=a?u/2:-u/2),a?u/2:-u/2),i=(1==s&&(t=0),new RectangleD(o.x+(s-1)*u+t,o.y+(r-1)*S,u+e,S));if(l.drawRotatedString5(this.table[r][s],d,this.labelBrush,i,this.sf,StiRotationMode.CenterCenter,0,!0),this.chartTable.gridLinesVert&&s<h-1){let e=a?o.x+s*u+u/2:o.x+s*u-u/2;l.drawLine(this.pen,e,o.y,e,o.bottom)}}}}checkFontSize(e,t,i,s){let r=e.measureRotatedString(t,i,s,this.sf,0);return r.width<s.width}},__.d.StiTrendCurveGeom=class extends __.d.StiCellGeom{draw(o){let a=StiArray.create(PointD,this.points.length,!0);for(let e=0;e<this.points.length;e++)a[e]=this.points[e];let e=this.trendLine.lineColor,t=this.trendLine.lineWidth,i=this.trendLine.lineStyle,s=this.trendLine.showShadow,r=t*o.options.zoom;if(o.pushSmoothingModeToAntiAlias(),s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),r+.5*o.options.zoom);e.penStyle=i,o.pushTranslateTransform(r,r),__.d.StiNullableDrawing.drawCurve(o,e,this.points,0),o.popTransform()}let n=new StiPenGeom(e,t*o.options.zoom);if(n.penStyle=i,o.drawCurve(n,a,0),this.trendLine.titleVisible&&0<a.length){let e=new StiSolidBrush(this.trendLine.lineColor),t=StiFontGeom.changeFontSize(this.trendLine.font,this.trendLine.font.size*o.options.zoom),i=o.getGenericStringFormat(),s=Point.empty,r=a[0],n=a[a.length-1],l=StiRotationMode.CenterCenter;switch(this.trendLine.position){case __.d.StiTrendLine_StiTextPosition.LeftBottom:s=r,l=StiRotationMode.LeftTop;break;case __.d.StiTrendLine_StiTextPosition.LeftTop:s=r,l=StiRotationMode.LeftBottom;break;case __.d.StiTrendLine_StiTextPosition.RightBottom:s=n,l=StiRotationMode.RightTop;break;case __.d.StiTrendLine_StiTextPosition.RightTop:s=n,l=StiRotationMode.RightBottom;break}o.drawRotatedString9(this.trendLine.text,t,e,s,i,l,0,!0,0)}o.popSmoothingMode()}constructor(e,t){super(__.d.StiBaseLineSeriesGeom.getClientRectangle(e,t.lineWidth)),this.points=e,this.trendLine=t}};{class $R0 extends __.d.StiCellGeom{draw(n){let e=this.trendLine.lineColor,t=this.trendLine.lineWidth,i=this.trendLine.lineStyle,s=this.trendLine.showShadow,r=t*n.options.zoom;if(n.pushSmoothingModeToAntiAlias(),s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),r+.5*n.options.zoom);e.penStyle=i,n.pushTranslateTransform(r,r),__.d.StiNullableDrawing.drawLines(n,e,$R0.getArray(this.pointStart,this.pointEnd)),n.popTransform()}let l=new StiPenGeom(e,t*n.options.zoom);if(l.penStyle=i,n.drawLine(l,this.pointStart.x,this.pointStart.y,this.pointEnd.x,this.pointEnd.y),this.trendLine.titleVisible){let e=new StiSolidBrush(this.trendLine.lineColor),t=StiFontGeom.changeFontSize(this.trendLine.font,this.trendLine.font.size*n.options.zoom),i=n.getGenericStringFormat(),s=PointD.empty,r=StiRotationMode.CenterCenter;switch(this.trendLine.position){case __.d.StiTrendLine_StiTextPosition.LeftBottom:s=this.pointStart,r=StiRotationMode.LeftTop;break;case __.d.StiTrendLine_StiTextPosition.LeftTop:s=this.pointStart,r=StiRotationMode.LeftBottom;break;case __.d.StiTrendLine_StiTextPosition.RightBottom:s=this.pointEnd,r=StiRotationMode.RightTop;break;case __.d.StiTrendLine_StiTextPosition.RightTop:s=this.pointEnd,r=StiRotationMode.RightBottom;break}n.drawRotatedString9(this.trendLine.text,t,e,s,i,r,0,!0,0)}n.popSmoothingMode()}static getArray(e,t){let i=[e,t];return i}constructor(e,t,i){super(__.d.StiBaseLineSeriesGeom.getClientRectangle($R0.getArray(e,t),i.lineWidth)),this.pointStart=e,this.pointEnd=t,this.trendLine=i}}__.d.StiTrendLineGeom=$R0}__.d.Sti3dOptions=class{constructor(){this.opacity_=1}meta(){return[new StiNumberMeta("Opacity")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}get opacity(){return this.opacity_}set opacity(e){0<=e&&e<=1&&(this.opacity_=e)}},__.d.StiPie3dOptions=class extends __.d.Sti3dOptions{constructor(){super(...arguments),this.lighting=__.d.StiPie3dLightingStyle.Gradient,this.height_=25,this.distance_=4}meta(){return[...super.meta(),new StiNumberMeta("Height","",25),new StiNumberMeta("Distance","",4),new StiEnumMeta("Lighting","",__.d.StiPie3dLightingStyle)]}get height(){return this.height_}set height(e){0<e&&(this.height_=e)}get distance(){return this.distance_}set distance(e){0<e&&(this.distance_=e)}},__.d.StiBoxAndWhiskerArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiBoxAndWhiskerArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiBoxAndWhiskerSeries}getSeriesTypes(){return[__.d.StiBoxAndWhiskerSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels,__.d.StiLeftAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.core=new __.d.StiBoxAndWhiskerAreaCoreXF(this)}},__.d.StiScatterArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiScatterArea,__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiScatterLineSeries}getSeriesTypes(){return[__.d.StiScatterSeries,__.d.StiScatterLineSeries,__.d.StiScatterSplineSeries]}constructor(){super(),this.core=new __.d.StiScatterAreaCoreXF(this)}},__.d.StiBubbleArea=class extends __.d.StiScatterArea{implements(){let e=super.implements().concat([__.d.IStiScatterArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable,__.d.IStiBubbleArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiBubbleSeries}getSeriesTypes(){return[__.d.StiBubbleSeries]}constructor(){super(),this.core=new __.d.StiBubbleAreaCoreXF(this),this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert}},__.d.StiCandlestickArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiCandlestickArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiCandlestickSeries}getSeriesTypes(){return[__.d.StiCandlestickSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}constructor(){super(),this.core=new __.d.StiCandlestickAreaCoreXF(this)}},__.d.StiClusteredBarArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiClusteredBarSeries}getSeriesTypes(){return[__.d.StiClusteredBarSeries]}constructor(){super(),this.core=new __.d.StiClusteredBarAreaCoreXF(this)}},__.d.StiAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiAreaSeries}constructor(){super(),this.core=new __.d.StiAreaAreaCoreXF(this)}},__.d.StiHistogramArea=class extends __.d.StiAxisArea{getDefaultSeriesType(){return __.d.StiHistogramSeries}getSeriesTypes(){return[__.d.StiHistogramSeries]}constructor(){super(),this.core=new __.d.StiHistogramAreaCoreXF(this)}},__.d.StiLineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiLineArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiLineSeries}constructor(){super(),this.core=new __.d.StiLineAreaCoreXF(this)}},__.d.StiParetoArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiParetoArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiParetoSeries}getSeriesTypes(){return[__.d.StiParetoSeries]}constructor(){super(),this.yRightAxis.visible=!0,this.yRightAxis.range.auto=!1,this.yRightAxis.range.maximum=100,this.yRightAxis.labels.textAfter="%",this.core=new __.d.StiParetoAreaCoreXF(this)}},__.d.StiSplineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSplineArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineSeries}constructor(){super(),this.core=new __.d.StiSplineAreaCoreXF(this)}},__.d.StiSplineAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSplineAreaArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineAreaSeries}constructor(){super(),this.core=new __.d.StiSplineAreaAreaCoreXF(this)}},__.d.StiSteppedAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSteppedAreaArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedAreaSeries}constructor(){super(),this.core=new __.d.StiSteppedAreaAreaCoreXF(this)}},__.d.StiSteppedLineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiSteppedLineArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedLineSeries}constructor(){super(),this.core=new __.d.StiSteppedLineAreaCoreXF(this)}},__.d.StiWaterfallArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiWaterfallArea,__.d.IStiRoundValuesArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues")]}getDefaultSeriesType(){return __.d.StiWaterfallSeries}getSeriesTypes(){return[__.d.StiWaterfallSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiInsideEndAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiValueAxisLabels]}constructor(){super(),this.roundValues=!1,this.core=new __.d.StiWaterfallAreaCoreXF(this)}},__.d.StiPieArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideEndPieLabels,__.d.StiCenterPieLabels,__.d.StiOutsidePieLabels,__.d.StiTwoColumnsPieLabels]}getDefaultSeriesType(){return __.d.StiPieSeries}getSeriesTypes(){return[__.d.StiPieSeries]}constructor(){super(),this.core=new __.d.StiPieAreaCoreXF(this),this.colorEach=!0}},__.d.StiDoughnutArea=class extends __.d.StiPieArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieArea,__.d.IStiArea,ICloneable,__.d.IStiDoughnutArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach"),new StiObjectMeta("Title"),new StiObjectMeta("Indicator")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPieLabels,__.d.StiOutsidePieLabels]}getDefaultSeriesType(){return __.d.StiDoughnutSeries}getSeriesTypes(){return[__.d.StiDoughnutSeries]}clone(){let e=super.clone();return e.indicator=this.indicator.clone(),e}constructor(){super(),this.core=new __.d.StiDoughnutAreaCoreXF(this),this.indicator=new __.d.StiDoughnutAreaIndicator,this.colorEach=!0}},__.d.StiDoughnutAreaIndicator=class{implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiObjectMeta("Value"),new StiObjectMeta("Title"),new StiBoolMeta("Visible")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.value=this.value.clone(),e.title=this.title.clone(),e}constructor(){this.visible=!1,this.value=new __.d.StiDoughnutAreaIndicatorValue,this.title=new __.d.StiDoughnutAreaIndicatorTitle}},__.d.StiDoughnutAreaIndicatorTitle=class{constructor(){this.text="",this.color=Color.transparent}implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Text"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}getColor(){if(this.color!=Color.transparent)return this.color;return this.styleColor}},__.d.StiDoughnutAreaIndicatorValue=class{constructor(){this.value="",this.color=Color.transparent}implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Value"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}getColor(){if(this.color!=Color.transparent)return this.color;return this.styleColor}},__.d.StiStackedBarArea=class extends __.d.StiClusteredBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiStackedBarArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedBarSeries}getSeriesTypes(){return[__.d.StiStackedBarSeries]}constructor(){super(),this.core=new __.d.StiStackedBarAreaCoreXF(this)}},__.d.StiFullStackedBarArea=class extends __.d.StiStackedBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedBarArea,__.d.IStiStackedBarArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedBarSeries}getSeriesTypes(){return[__.d.StiFullStackedBarSeries]}constructor(){super(),this.core=new __.d.StiFullStackedBarAreaCoreXF(this)}},__.d.StiStackedColumnArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnArea,__.d.IStiAxisArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedColumnSeries}getSeriesTypes(){return[__.d.StiStackedColumnSeries,__.d.StiStackedLineSeries,__.d.StiStackedSplineSeries,__.d.StiStackedAreaSeries,__.d.StiStackedSplineAreaSeries]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF(this)}},__.d.StiFullStackedColumnArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedColumnSeries}getSeriesTypes(){return[__.d.StiFullStackedColumnSeries,__.d.StiFullStackedLineSeries,__.d.StiFullStackedAreaSeries,__.d.StiFullStackedSplineSeries,__.d.StiFullStackedSplineAreaSeries]}constructor(){super(),this.core=new __.d.StiFullStackedColumnAreaCoreXF(this)}},__.d.StiFullStackedAreaArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable,__.d.IStiFullStackedAreaArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedAreaSeries}constructor(){super(),this.core=new __.d.StiFullStackedAreaAreaCoreXF(this)}},__.d.StiFullStackedLineArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable,__.d.IStiFullStackedLineArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedLineSeries}constructor(){super(),this.core=new __.d.StiFullStackedLineAreaCoreXF(this)}},__.d.StiFullStackedSplineArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiFullStackedSplineArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedSplineAreaSeries}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaCoreXF(this)}},__.d.StiFullStackedSplineAreaArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,__.d.IStiFullStackedSplineAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedSplineSeries}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaAreaCoreXF(this)}},__.d.StiFunnelArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable,__.d.IStiFunnelArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesType(){return __.d.StiFunnelSeries}getSeriesTypes(){return[__.d.StiFunnelSeries]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterFunnelLabels,__.d.StiOutsideRightFunnelLabels,__.d.StiOutsideLeftFunnelLabels]}constructor(){super(),this.core=new __.d.StiFunnelAreaCoreXF(this),this.colorEach=!0}},__.d.StiFunnelWeightedSlicesArea=class extends __.d.StiFunnelArea{getDefaultSeriesType(){return __.d.StiFunnelWeightedSlicesSeries}getSeriesTypes(){return[__.d.StiFunnelWeightedSlicesSeries]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterFunnelLabels]}constructor(){super(),this.core=new __.d.StiFunnelAreaCoreXF(this),this.colorEach=!0}},__.d.StiGanttArea=class extends __.d.StiClusteredBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiGanttArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiGanttSeries}getSeriesTypes(){return[__.d.StiGanttSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiValueAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideAxisLabels]}constructor(){super(),this.core=new __.d.StiGanttAreaCoreXF(this)}};{class lT0 extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiHeatmapArea]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterHeatmapLabels]}getDefaultSeriesType(){return __.d.StiHeatmapSeries}getSeriesTypes(){return[__.d.StiHeatmapSeries]}createNew(){return new lT0}constructor(){super(),this.core=new __.d.StiHeatmapAreaCoreXF(this)}}__.d.StiHeatmapArea=lT0}__.d.StiPictorialArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPictorialArea,__.d.IStiRoundValuesArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues","",!0),new StiBoolMeta("Actual","",!0)]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}getDefaultSeriesType(){return __.d.StiPictorialSeries}getSeriesTypes(){return[__.d.StiPictorialSeries]}constructor(){super(),this.roundValues=!0,this.actual=!1,this.core=new __.d.StiPictorialAreaCoreXF(this),this.colorEach=!0,this.roundValues=!0}},__.d.StiPictorialStackedArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiOutsideRightPictorialStackedLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPictorialStackedLabels,__.d.StiOutsideLeftPictorialStackedLabels,__.d.StiOutsideRightPictorialStackedLabels]}getDefaultSeriesType(){return __.d.StiPictorialStackedSeries}getSeriesTypes(){return[__.d.StiPictorialStackedSeries]}constructor(){super(),this.core=new __.d.StiPictorialStackedAreaCoreXF(this),this.colorEach=!0}},__.d.StiPie3dArea=class extends __.d.StiPieArea{meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPie3dLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPie3dLabels,__.d.StiInsideEndPie3dLabels]}getDefaultSeriesType(){return __.d.StiPie3dSeries}getSeriesTypes(){return[__.d.StiPie3dSeries]}constructor(){super(),this.core=new __.d.StiPie3dAreaCoreXF(this),this.colorEach=!0}},__.d.StiRadarAreaArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,__.d.IStiRadarAreaArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarAreaSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarAreaAreaCoreXF(this)}},__.d.StiRadarLineArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,ICloneable,__.d.IStiRadarLineArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarLineSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarLineAreaCoreXF(this)}},__.d.StiRadarPointArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarPointArea,__.d.IStiRadarArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarPointSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarPointAreaCoreXF(this)}},__.d.StiRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiRangeArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRangeSeries}getSeriesTypes(){return[__.d.StiRangeSeries]}constructor(){super(),this.core=new __.d.StiRangeAreaCoreXF(this)}},__.d.StiRangeBarArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiRangeBarArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRangeBarSeries}getSeriesTypes(){return[__.d.StiRangeBarSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiLeftAxisLabels,__.d.StiValueAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.core=new __.d.StiRangeBarAreaCoreXF(this)}},__.d.StiSplineRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiClusteredColumnArea,__.d.IStiSplineRangeArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineRangeSeries}getSeriesTypes(){return[__.d.StiSplineRangeSeries]}constructor(){super(),this.core=new __.d.StiSplineRangeAreaCoreXF(this)}},__.d.StiSteppedRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiSteppedRangeArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedRangeSeries}getSeriesTypes(){return[__.d.StiSteppedRangeSeries]}constructor(){super(),this.core=new __.d.StiSteppedRangeAreaCoreXF(this)}},__.d.StiRibbonArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRibbonArea,__.d.IStiAxisArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRibbonSeries}getSeriesTypes(){return[__.d.StiRibbonSeries]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF(this)}},__.d.StiStackedAreaArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiStackedAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedAreaSeries}constructor(){super(),this.core=new __.d.StiStackedAreaAreaCoreXF(this)}},__.d.StiStackedLineArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedLineArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedLineSeries}constructor(){super(),this.core=new __.d.StiStackedLineAreaCoreXF(this)}},__.d.StiStackedSplineArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedSplineArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedSplineAreaSeries}constructor(){super(),this.core=new __.d.StiStackedSplineAreaCoreXF(this)}},__.d.StiStackedSplineAreaArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiAxisArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiStackedSplineAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedSplineSeries}constructor(){super(),this.core=new __.d.StiStackedSplineAreaAreaCoreXF(this)}},__.d.StiStockArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiStockArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStockSeries}getSeriesTypes(){return[__.d.StiStockSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}constructor(){super(),this.core=new __.d.StiStockAreaCoreXF(this)}},__.d.StiSunburstArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPieLabels]}getDefaultSeriesType(){return __.d.StiSunburstSeries}getSeriesTypes(){return[__.d.StiSunburstSeries]}constructor(){super(),this.core=new __.d.StiSunburstAreaCoreXF(this)}},__.d.StiTreemapArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiTreemapArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterTreemapLabels]}getDefaultSeriesType(){return __.d.StiTreemapSeries}getSeriesTypes(){return[__.d.StiTreemapSeries]}constructor(){super(),this.core=new __.d.StiTreemapAreaCoreXF(this)}},__.d.StiAxisTitle=class{implements(){let e=[__.d.IStiAxisTitle,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiFontMeta("Font","","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.black),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Alignment","",StringAlignment,StringAlignment.Center),new StiEnumMeta("Position","",__.d.StiTitlePosition,__.d.StiTitlePosition.Outside),new StiEnumMeta("Direction","",__.d.StiDirection,__.d.StiDirection.LeftToRight)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.alignment=this.alignment,e.direction=this.direction,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.title=e),e}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=Color.black,s=!0,r=StringAlignment.Center,n=__.d.StiDirection.LeftToRight,l=!0,o=__.d.StiTitlePosition.Outside){this.allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.color=Color.black,this.antialiasing=!0,this.alignment=StringAlignment.Center,this.position=__.d.StiTitlePosition.Outside,this.direction=__.d.StiDirection.LeftToRight,this.font=e,this.text=t,this.color=i,this.antialiasing=s,this.alignment=r,this.direction=n,this.allowApplyStyle=l,this.position=o,this.core=new __.d.StiAxisTitleCoreXF(this)}};{class RT0 extends StiService{implements(){let e=super.implements().concat([__.d.IStiConstantLines,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Position","",__.d.StiConstantLines_StiTextPosition,__.d.StiConstantLines_StiTextPosition.LeftTop),new StiFontMeta(["Font","fn"],"","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiEnumMeta("Orientation","",__.d.StiConstantLines_StiOrientation,__.d.StiConstantLines_StiOrientation.Horizontal),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.black),new StiBoolMeta("ShowInLegend","",!0),new StiBoolMeta("ShowBehind"),new StiStringMeta("AxisValue","","1"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.constantLines=e),e}get serviceCategory(){return"Chart"}get ServiceType(){return RT0}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}toString(){return this.serviceName}constructor(){super(),this._allowApplyStyle=!0,this.antialiasing=!0,this.position=__.d.StiConstantLines_StiTextPosition.LeftTop,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0,this.orientation=__.d.StiConstantLines_StiOrientation.Horizontal,this.lineWidth=1,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.black,this.showInLegend=!0,this.showBehind=!1,this.axisValue="1",this.visible=!0,this.core=new __.d.StiConstantLinesCoreXF(this)}}__.d.StiConstantLines=RT0}{class YT0 extends CollectionBase{implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiChartFilter;this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(t){for(let e=0;e<t.childNodes.length;e++){let s=t.childNodes[e];if("value"==s.nodeName){let e=s.textContent.split(","),t=e[2],i=("LessThenOrEqualTo"==(t="LessThen"==(t="GreaterThenOrEqualTo"==(t="GreaterThen"==t?"GreaterThan":t)?"GreaterThanOrEqualTo":t)?"LessThan":t)&&(t="LessThanOrEqualTo"),new __.d.StiChartFilter(Enum.parse(StiFilterItem,e[0]),Enum.parse(StiFilterDataType,e[1]),Enum.parse(StiFilterCondition,t),XMLConvert.decodeName(e[3])));this.add(i)}}}clone(){let t=new YT0;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e),null==e.filters&&(e.filters=this)}}__.d.StiChartFiltersCollection=YT0}{class oU0{constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g){this.index=e,this.argument=t,this.value=i,this.valueEnd=s,this.weight=l,this.xValue=r,this.yValue=n,this.valueOpen=o,this.valueClose=a,this.valueLow=h,this.valueHigh=u,this.title=S,this.key=d,this.color=m,this.toolTip=c,this.tag=g}}__.d.StiDataItem=oU0,__.d.StiDataItemComparer=class{compare(e,t){let i=null,s=null;if(s=this.sortType==__.d.StiSeriesSortType.Value?(i=e.value,t.value):(i=e.argument,t.argument),null==i&&null==s)return 0;if(null==i)return 1;if(null==s)return-1;let r=i[Stimulsoft.System.StiObject.stimulsoft]().compareTo(s);return(r=0==r?e.index[Stimulsoft.System.StiObject.stimulsoft]().compareTo(t.index):r)*this.directionFactor}constructor(e,t){this.directionFactor=1,this.sortType=__.d.StiSeriesSortType.None,this.directionFactor=1,t==__.d.StiSeriesSortDirection.Descending&&(this.directionFactor=-1),this.sortType=e}}}__.d.StiRadarGridLines=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarGridLines,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiColorMeta("Color","",Color.silver),new StiEnumMeta("Style","",StiPenStyle,StiPenStyle.Dot),new StiBoolMeta("Visible","",!0),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.style=this.style,null!=this.core&&(e.core=this.core.clone(),e.core.gridLines=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.color=Color.silver,this.style=StiPenStyle.Solid,this.visible=!0,this.color=e,this.style=t,this.visible=i,this._allowApplyStyle=s,this.core=new __.d.StiRadarGridLinesCoreXF(this)}},__.d.StiRadarGridLinesHor=class extends __.d.StiRadarGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarGridLines,__.d.IStiRadarGridLinesHor,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){super(e,t,i,s)}},__.d.StiRadarGridLinesVert=class extends __.d.StiRadarGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarGridLines,__.d.IStiRadarGridLinesVert,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){super(e,t,i,s)}},__.d.StiHeatmapLegend=class extends __.d.StiLegend{constructor(){super(),this.direction=__.d.StiLegendDirection.TopToBottom,this.horAlignment=__.d.StiLegendHorAlignment.RightOutside,this.vertAlignment=__.d.StiLegendVertAlignment.Center,this.markerVisible=!0,this.markerSize=new Size(10,10),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.core=new __.d.StiHeatmapLegendCoreXF(this)}},__.d.StiMarker=class{implements(){let e=[IStiJsonReportObject,__.d.IStiMarker,ICloneable];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiBoolMeta("ShowInLegend","",!0),new StiBoolMeta("Visible","",!0),new StiBrushMeta(["Brush","br"]),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("Size","",7),new StiNumberMeta("Angle"),new StiEnumMeta("Type","",__.d.StiMarkerType,__.d.StiMarkerType.Circle),new StiEnumMeta("Icon","",StiFontIcons)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.marker=e),e}constructor(){this.showInLegend=!0,this.visible=!0,this.extendedVisible=__.d.StiExtendedStyleBool.FromStyle,this.brush=new StiSolidBrush(Color.white),this.borderColor=Color.black,this.size=7,this.angle=0,this.type=__.d.StiMarkerType.Circle,this.icon=null,this.core=new __.d.StiMarkerCoreXF(this)}},__.d.StiLineMarker=class extends __.d.StiMarker{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiLineMarker,__.d.IStiMarker,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Step","",15),new StiNumberMeta("Size","",5),new StiBoolMeta("Visible","",!1),new StiColorMeta("BorderColor","",Color.transparent)]}constructor(){super(),this.step=15,this.visible=!1,this.borderColor=Color.transparent,this.size=5}},__.d.StiRadarAxis=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarAxis,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiBoolMeta("Visible","",!0),new StiObjectMeta("Range"),new StiBoolMeta("Area","jsonLoadFromJsonObjectArea").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=new __.d.StiAxisRange,t=!0,i=!0){this.jsonLoadFromJsonObjectArea=!1,this._allowApplyStyle=!0,this.visible=!0,this.range=e,this.visible=t,this._allowApplyStyle=i}},__.d.StiRadarAxisLabels=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarAxisLabels,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("RotationLabels","",!0),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("DrawBorder"),new StiStringNullOrEmptyMeta("Format"),new StiFontMeta(["Font","fn"],"","Tahoma",8),new StiBoolMeta("Antialiasing","",!0),new StiColorMeta("Color","",Color.black),new StiColorMeta("BorderColor","",Color.black),new StiBrushMeta(["Brush","bh"]),new StiNumberMeta("Width","",0),new StiBoolMeta("WordWrap")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.labels=e),e}constructor(e="",t=new Font("Tahoma",8),i=!0,s=!1,r=Color.black,n=Color.black,l=new StiSolidBrush(Color.gainsboro),o=!0,a=!0,h=0,u=!1){this.allowApplyStyle=!0,this.rotationLabels=!0,this.textBefore="",this.textAfter="",this.drawBorder=!1,this.format="",this.font=new Font("Tahoma",8),this.antialiasing=!0,this.color=Color.black,this.borderColor=Color.black,this.brush=new StiSolidBrush(Color.gainsboro),this.width=0,this.wordWrap=!1,this.format=e,this.font=t,this.antialiasing=i,this.drawBorder=s,this.color=r,this.borderColor=n,this.allowApplyStyle=o,this.brush=l,this.rotationLabels=a,this.width=h,this.wordWrap=u,this.core=new __.d.StiRadarAxisLabelsCoreXF(this)}},__.d.StiXRadarAxis=class extends __.d.StiRadarAxis{implements(){let e=super.implements().concat([__.d.IStiXRadarAxis,__.d.IStiRadarAxis,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Labels")]}get propName(){return""}clone(){let e=super.clone();return e.labels=this.labels.clone(),e}get xCore(){return this.core}constructor(e=new __.d.StiRadarAxisLabels,t=new __.d.StiAxisRange,i=!0,s=!0){super(t,i,s),this.labels=new __.d.StiRadarAxisLabels,this.core=new __.d.StiXRadarAxisCoreXF(this),this.labels=e}},__.d.StiYRadarAxis=class extends __.d.StiRadarAxis{implements(){let e=super.implements().concat([__.d.IStiYRadarAxis,__.d.IStiRadarAxis,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Labels"),new StiObjectMeta("Ticks"),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.gray),new StiNumberMeta("LineWidth","",1)]}get propName(){return""}clone(){let e=super.clone();return e.lineStyle=this.lineStyle,e.labels=this.labels.clone(),e.ticks=this.ticks.clone(),e}get yCore(){return this.core}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=new __.d.StiAxisTicks,s=StiPenStyle.Solid,r=Color.gray,n=1,l=!0,o=!0){super(t,l,o),this.labels=new __.d.StiAxisLabels,this.ticks=new __.d.StiAxisTicks,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.gray,this.lineWidth=1,this.info=new __.d.StiAxisInfoXF,this.core=new __.d.StiYRadarAxisCoreXF(this),this.labels=e,this.ticks=i,this.lineStyle=s,this.lineColor=r,this.lineWidth=n}},__.d.StiSeriesInteraction=class{constructor(){this.parentSeries=null}implements(){let e=[__.d.IStiSeriesInteraction,IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringNullOrEmptyMeta("DrillDownPageGuid")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}getReport(){if(null==this.parentSeries)return null;if(null==this.parentSeries.chart)return null;return this.parentSeries.chart.report}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}get hyperlink(){return this.parentSeries.hyperlink}set hyperlink(e){this.parentSeries.hyperlink=e}get tag(){return this.parentSeries.tag}set tag(e){this.parentSeries.tag=e}get toolTip(){return this.parentSeries.toolTip}set toolTip(e){this.parentSeries.toolTip=e}get hyperlinkDataColumn(){return this.parentSeries.hyperlinkDataColumn}set hyperlinkDataColumn(e){this.parentSeries.hyperlinkDataColumn=e}get tagDataColumn(){return this.parentSeries.tagDataColumn}set tagDataColumn(e){this.parentSeries.tagDataColumn=e}get toolTipDataColumn(){return this.parentSeries.toolTipDataColumn}set toolTipDataColumn(e){this.parentSeries.toolTipDataColumn=e}get listOfHyperlinks(){return this.parentSeries.listOfHyperlinks}set listOfHyperlinks(e){this.parentSeries.listOfHyperlinks=e}get listOfTags(){return this.parentSeries.listOfTags}set listOfTags(e){this.parentSeries.listOfTags=e}get listOfToolTips(){return this.parentSeries.listOfToolTips}set listOfToolTips(e){this.parentSeries.listOfToolTips=e}get allowSeries(){return this.parentSeries.allowSeries}set allowSeries(e){this.parentSeries.allowSeries=e}get allowSeriesElements(){return this.parentSeries.allowSeriesElements}set allowSeriesElements(e){this.parentSeries.allowSeriesElements=e}get drillDownEnabled(){return this.parentSeries.drillDownEnabled}set drillDownEnabled(e){this.parentSeries.drillDownEnabled=e}get drillDownReport(){return this.parentSeries.drillDownReport}set drillDownReport(e){this.parentSeries.drillDownReport=e}get drillDownPage(){return this.parentSeries.drillDownPage}set drillDownPage(e){this.parentSeries.drillDownPage=e}get drillDownPageGuid(){return this.parentSeries.drillDownPageGuid}set drillDownPageGuid(e){this.parentSeries.drillDownPageGuid=e}get parentComponent(){if(null==this.parentSeries||null==this.parentSeries.chart)return null;return this.parentSeries.chart}},__.d.StiSeriesPointsInfo=class{constructor(){this.additionalSeriesId=""}},__.d.StiBoxAndWhiskerSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiBoxAndWhiskerSeries,__.d.IStiSeriesBorderThickness]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBoolMeta("ShowInnerPoints"),new StiBoolMeta("ShowMeanMarkers","",!0),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiBoxAndWhiskerArea}constructor(){super(),this.allowApplyBrush=!1,this.showInnerPoints=!1,this.showMeanMarkers=!0,this.borderThickness=1,this.seriesLabels=new __.d.StiNoneLabels,this.core=new __.d.StiBoxAndWhiskerSeriesCoreXF(this)}},__.d.StiBubbleSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([__.d.IStiBaseLineSeries,__.d.IStiBubbleSeries,__.d.IStiFontIconsSeries,__.d.IStiScatterSeries,__.d.IStiSeriesBorderThickness,IStiJsonReportObject,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["LineMarker","Marker"]),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiStringNullOrEmptyMeta("WeightDataColumn"),new StiExpressionMeta("Weight"),new StiExpressionMeta("ListOfWeights"),new StiEnumMeta("Icon","",StiFontIcons),new StiNumberMeta("BubbleScale","",100)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiBubbleArea}get weights(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfWeights))return __.d.StiSeries.getValuesFromString(this.listOfWeights);let e=this.chart.series.indexOf(this);if(0==e)return this._weights;return[3+3*e,5+4*e,9+3*e]}return this._weights}set weights(e){this._weights=e}get weightsString(){let t=new StringBuilder,i=!0;for(let e of this.weights)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set weightsString(e){if(null==e||0==e.trim().length)this._weights=[];else{let t=e.split(";"),i=(this._weights=StiArray.create(Number,t.length),0);for(let e of t)this._weights[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetWeight(e){}invokeGetWeight(e,t){try{this.onGetWeight(t),null!=this.getWeight&&this.getWeight(e,t)}catch(t){if(Exception.logEvent(t,this.chart,"getWeight").isAll)throw t}}onGetListOfWeights(e){}invokeGetListOfWeights(i,s,r){try{if(this.onGetListOfWeights(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfWeights**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfWeights,e));s.value=i.report.toString2(t)}null!=this.getListOfWeights&&this.getListOfWeights(i,s)}catch(s){if(Exception.logEvent(s,this.chart,"getListOfWeights").isAll)throw s}}get bubbleScale(){return this._bubbleScale}set bubbleScale(e){this._bubbleScale=e<0?100:e}constructor(){super(),this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.gainsboro),this._weights=[1,3,2],this.weightDataColumn="",this.weight="",this.listOfWeights="",this.icon=null,this.borderThickness=1,this._bubbleScale=100,this.core=new __.d.StiBubbleSeriesCoreXF(this)}},__.d.StiClusteredColumnSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnSeries,__.d.IStiFontIconsSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}constructor(){super(),this.showZeros=!1,this.cornerRadius=new StiCornerRadius,this._width=.9,this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.icon=null,this.borderThickness=1,this.core=new __.d.StiClusteredColumnSeriesCoreXF(this)}},__.d.StiClusteredBarSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnSeries,__.d.IStiSeries,ICloneable,__.d.IStiClusteredBarSeries,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}get xAxis(){if(this.yAxis==__.d.StiSeriesYAxis.LeftYAxis)return __.d.StiSeriesXAxis.BottomXAxis;return __.d.StiSeriesXAxis.TopXAxis}set xAxis(e){this.yAxis=e==__.d.StiSeriesXAxis.BottomXAxis?__.d.StiSeriesYAxis.LeftYAxis:__.d.StiSeriesYAxis.RightYAxis}getDefaultAreaType(){return __.d.StiClusteredBarArea}constructor(){super(),this.core=new __.d.StiClusteredBarSeriesCoreXF(this)}},__.d.StiLineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.core=new __.d.StiLineSeriesCoreXF(this)}},__.d.StiAreaSeries=class extends __.d.StiLineSeries{implements(){let e=super.implements().concat([__.d.IStiLineSeries,__.d.IStiBaseLineSeries,__.d.IStiAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiAreaSeriesCoreXF(this)}},__.d.StiHistogramSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiHistogramSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiHistogramArea}get width(){return this._width1}set width(e){.01<=e&&e<=1&&(this._width1=e)}constructor(){super(),this._width1=.98,this.core=new __.d.StiHistogramSeriesCoreXF(this)}},__.d.StiParetoSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiParetoSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,__.d.IStiBaseLineSeries,__.d.IStiClusteredColumnSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowNullsSeries,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiRemoveMeta("Conditions"),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiBoolMeta("AllowApplyLineColor","",!1),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.marker=this.marker.clone(),e.lineStyle=this.lineStyle,e}getDefaultAreaType(){return __.d.StiParetoArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineColor(){return this.getLineColor()}set lineColor(e){this.setLineColor(e)}getLineColor(){return this._lineColor}setLineColor(e){this._lineColor=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}constructor(){super(),this.showZeros=!1,this._width=.9,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.showNulls=!0,this.cornerRadius=new StiCornerRadius,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this._lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.labelsOffset=0,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this.allowApplyLineColor=!1,this.showNullsAs=__.d.StiShowEmptyCellsAs.Gap,this.showZerosAs=__.d.StiShowEmptyCellsAs.Gap,this.icon=null,this.core=new __.d.StiParetoSeriesCoreXF(this)}},__.d.StiSplineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiSplineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiSplineSeriesCoreXF(this)}},__.d.StiSplineAreaSeries=class extends __.d.StiSplineSeries{implements(){let e=super.implements().concat([__.d.IStiSplineSeries,__.d.IStiBaseLineSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiSplineAreaSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiSplineAreaSeriesCoreXF(this)}},__.d.StiSteppedLineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiSteppedLineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("PointAtCenter")]}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.pointAtCenter=!1,this.core=new __.d.StiSteppedLineSeriesCoreXF(this)}},__.d.StiSteppedAreaSeries=class extends __.d.StiSteppedLineSeries{implements(){let e=super.implements().concat([__.d.IStiSteppedLineSeries,__.d.IStiBaseLineSeries,IStiJsonReportObject,__.d.IStiSteppedAreaSeries,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiSteppedAreaSeriesCoreXF(this)}},__.d.StiWaterfallSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("ConnectorLine"),new StiObjectMeta("Total")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiWaterfallArea}constructor(){super(),this.core=new __.d.StiWaterfallSeriesCoreXF(this),this.connectorLine=new __.d.StiWaterfallConnectorLine,this.total=new __.d.StiWaterfallTotal}},__.f.StiSeriesInteractionConverter=class{},__.d.StiPieSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPieSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiAllowApplyBorderColor,__.d.IStiSeriesBorderThickness,__.d.IStiAllowApplyBrush,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiBoolMeta("AllowApplyBrush","",!0),new StiBoolMeta("AllowApplyBorderColor","",!0),new StiNumberMeta("StartAngle","",0),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("Diameter","",0),new StiNumberMeta("Distance","",0),new StiExpressionMeta("CutPieList"),new StiEnumMeta("Icon","",StiFontIcons)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPieArea}getArguments(){let e=super.getArguments();if(0==e.length&&null!=this.chart&&null!=this.chart.report&&this.chart.report.isDesigning&&!this.isDashboard)return["Arg1","Arg2","Arg3"];return e}setArguments(e){super.setArguments(e)}get diameter(){return this._diameter}set diameter(e){(this._diameter=e)<5&&(this._diameter=0)}get distance(){return this._distance}set distance(e){this._distance=Math.max(0,e)}get cutPieListValues(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.cutPieList))return __.d.StiSeries.getValuesFromString(this.cutPieList);return[]}return this._cutPieListValues}set cutPieListValues(e){this._cutPieListValues=e}get cuttedPieList(){return this.cutPieList}set cuttedPieList(e){this.cutPieList=e}onGetCutPieList(e){}invokeGetCutPieList(i,s){try{if(this.onGetCutPieList(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartPieSeriesCutPieList**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.cutPieList,e));s.value=i.report.toString2(t)}null!=this.getCutPieList&&this.getCutPieList(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"cutPieList").isAll)throw s}}constructor(){super(),this.showZeros=!1,this.allowApplyBrush=!0,this.allowApplyBorderColor=!0,this.startAngle=0,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.lighting=!0,this._diameter=0,this._distance=0,this._cutPieListValues=[],this.cutPieList="",this.icon=null,this.core=new __.d.StiPieSeriesCoreXF(this)}},__.d.StiDoughnutSeries=class extends __.d.StiPieSeries{implements(){let e=super.implements().concat([__.d.IStiPieSeries,__.d.IStiSeries,ICloneable,__.d.IStiDoughnutSeries,IStiJsonReportObject,__.d.IStiAllowApplyBorderColor,__.d.IStiAllowApplyBrush,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width")]}getDefaultAreaType(){return __.d.StiDoughnutArea}constructor(){super(),this.width=0,this.core=new __.d.StiDoughnutSeriesCoreXF(this)}},__.d.StiCandlestickSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeries,__.d.IStiFinancialSeries,ICloneable,__.d.IStiCandlestickSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine","ValueDataColumn","Value","ListOfValues"]),new StiStringNullOrEmptyMeta("ValueDataColumnOpen"),new StiStringNullOrEmptyMeta("ValueDataColumnClose"),new StiStringNullOrEmptyMeta("ValueDataColumnHigh"),new StiStringNullOrEmptyMeta("ValueDataColumnLow"),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("BorderColorNegative","",Color.gray),new StiNumberMeta("BorderWidth","",2),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiExpressionMeta("ValueOpen"),new StiExpressionMeta("ListOfValuesOpen"),new StiExpressionMeta("ValueClose"),new StiExpressionMeta("ListOfValuesClose"),new StiExpressionMeta("ValueHigh"),new StiExpressionMeta("ListOfValuesHigh"),new StiExpressionMeta("ValueLow"),new StiExpressionMeta("ListOfValuesLow")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiCandlestickArea}get valuesOpen(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesOpen))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesOpen);let e=this.chart.series.indexOf(this);return[4+7*e,7+7*e,5+7*e]}return this._valuesOpen}set valuesOpen(e){this._valuesOpen=e}get valuesClose(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesClose))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesClose);let e=this.chart.series.indexOf(this);return[2+7*e,3+7*e,5+7*e]}return this._valuesClose}set valuesClose(e){this._valuesClose=e}get valuesStringOpen(){let t=new StringBuilder,i=!0;for(let e of this.valuesOpen)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringOpen(e){if(null==e||0==e.trim().length)this.valuesOpen=[];else{let t=e.split(";"),i=(this.valuesOpen=StiArray.create(Number,t.length),0);for(let e of t)this.valuesOpen[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringClose(){let t=new StringBuilder,i=!0;for(let e of this.valuesClose)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringClose(e){if(null==e||0==e.trim().length)this.valuesClose=[];else{let t=e.split(";"),i=(this.valuesClose=StiArray.create(Number,t.length),0);for(let e of t)this.valuesClose[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringHigh(){let t=new StringBuilder,i=!0;for(let e of this.valuesHigh)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringHigh(e){if(null==e||0==e.trim().length)this.valuesHigh=[];else{let t=e.split(";"),i=(this.valuesHigh=StiArray.create(Number,t.length),0);for(let e of t)this.valuesHigh[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringLow(){let t=new StringBuilder,i=!0;for(let e of this.valuesLow)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringLow(e){if(null==e||0==e.trim().length)this.valuesLow=[];else{let t=e.split(";"),i=(this.valuesLow=StiArray.create(Number,t.length),0);for(let e of t)this.valuesLow[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesHigh(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesHigh))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesHigh);let e=this.chart.series.indexOf(this);return[6+7*e,9+7*e,7+7*e]}return this._valuesHigh}set valuesHigh(e){this._valuesHigh=e}get valuesLow(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesLow))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesLow);let e=this.chart.series.indexOf(this);return[1+7*e,3+7*e,4+7*e]}return this._valuesLow}set valuesLow(e){this._valuesLow=e}get borderWidth(){return this._borderWidth}set borderWidth(e){0<e&&(this._borderWidth=e)}onGetValueOpen(e){}invokeGetValueOpen(i,s){try{if(this.onGetValueOpen(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueOpen**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueOpen,e));s.value=i.report.toString2(t)}null!=this.getValueOpen&&this.getValueOpen(i,s)}catch(s){if(Exception.logEvent(s,this.chart,"getValueOpen").isAll)throw s}}onGetListOfValuesOpen(e){}invokeGetListOfValuesOpen(i,s){try{if(this.onGetListOfValuesOpen(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesOpen**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesOpen,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesOpen&&this.getListOfValuesOpen(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesOpen").isAll)throw s}}onGetValueClose(e){}invokeGetValueClose(i,s){try{if(this.onGetValueClose(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueClose**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueClose,e));s.value=i.report.toString2(t)}null!=this.getValueClose&&this.getValueClose(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueClose").isAll)throw s}}onGetListOfValuesClose(e){}invokeGetListOfValuesClose(i,s){try{if(this.onGetListOfValuesClose(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesClose**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesClose,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesClose&&this.getListOfValuesClose(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesClose").isAll)throw s}}onGetValueHigh(e){}invokeGetValueHigh(i,s){try{if(this.onGetValueHigh(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueHigh**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueHigh,e));s.value=i.report.toString2(t)}null!=this.getValueHigh&&this.getValueHigh(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueHigh").isAll)throw s}}onGetListOfValuesHigh(e){}invokeGetListOfValuesHigh(i,s){try{if(this.onGetListOfValuesHigh(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesHigh**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesHigh,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesHigh&&this.getListOfValuesHigh(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesHigh").isAll)throw s}}onGetValueLow(e){}invokeGetValueLow(i,s){try{if(this.onGetValueLow(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueLow**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueLow,e));s.value=i.report.toString2(t)}null!=this.getValueLow&&this.getValueLow(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueLow").isAll)throw s}}onGetListOfValuesLow(e){}invokeGetListOfValuesLow(i,s){try{if(this.onGetListOfValuesLow(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesLow**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesLow,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesLow&&this.getListOfValuesLow(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesLow").isAll)throw s}}get valueOpen(){return this.valueObjOpen}set valueOpen(e){this.valueObjOpen=e}get valueClose(){return this.valueObjClose}set valueClose(e){this.valueObjClose=e}get valueHigh(){return this.valueObjHigh}set valueHigh(e){this.valueObjHigh=e}get valueLow(){return this.valueObjLow}set valueLow(e){this.valueObjLow=e}constructor(){super(),this._valuesOpen=[4,7,5],this._valuesClose=[2,3,5],this._valuesHigh=[6,9,7],this._valuesLow=[1,3,4],this.valueDataColumnOpen="",this.valueDataColumnClose="",this.valueDataColumnHigh="",this.valueDataColumnLow="",this.borderColor=Color.gray,this.borderColorNegative=Color.gray,this._borderWidth=2,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.transparent),this.valueObjOpen="",this.listOfValuesOpen="",this.valueObjClose="",this.listOfValuesClose="",this.valueObjHigh="",this.listOfValuesHigh="",this.valueObjLow="",this.listOfValuesLow="",this.core=new __.d.StiCandlestickSeriesCoreXF(this)}},__.d.StiStockSeries=class extends __.d.StiCandlestickSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStockSeries,__.d.IStiFinancialSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["BorderColor","BorderWidth","Brush","BrushNegative"]),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiNumberMeta("LineWidth","",2),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiStockArea}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this._lineWidth=2,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this.core=new __.d.StiStockSeriesCoreXF(this)}},__.d.StiStackedBarSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBarSeries,__.d.IStiSeriesBorderThickness,IStiFontIconsSeries,IStiCornerRadius,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.8),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiStackedBarArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}get xAxis(){if(this.yAxis==__.d.StiSeriesYAxis.LeftYAxis)return __.d.StiSeriesXAxis.BottomXAxis;return __.d.StiSeriesXAxis.TopXAxis}set xAxis(e){this.yAxis=e==__.d.StiSeriesXAxis.BottomXAxis?__.d.StiSeriesYAxis.LeftYAxis:__.d.StiSeriesYAxis.RightYAxis}constructor(){super(),this.showZeros=!1,this._width=.8,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.cornerRadius=new StiCornerRadius,this.icon=null,this.core=new __.d.StiStackedBarSeriesCoreXF(this)}},__.d.StiFullStackedBarSeries=class extends __.d.StiStackedBarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBarSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,__.d.IStiFullStackedBarSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedBarArea}constructor(){super(),this.core=new __.d.StiFullStackedBarSeriesCoreXF(this)}},__.d.StiStackedBaseLineSeries=class extends __.d.StiSeries{constructor(){super(...arguments),this.showNulls=!0,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this.lighting=!0,this.lineColor=Color.mediumBlue,this._lineWidth=2,this.lineStyle=StiPenStyle.Solid,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TrendLine","Conditions"]),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiBoolMeta("Lighting","",!0),new StiColorMeta("LineColor","",Color.mediumBlue),new StiNumberMeta("LineWidth","_",2),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative")]}clone(){let e=super.clone();return e.lineStyle=this.lineStyle,e}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea}},__.d.StiStackedLineSeries=class extends __.d.StiStackedBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiShowNullsSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.core=new __.d.StiStackedLineSeriesCoreXF(this)}},__.d.StiStackedAreaSeries=class extends __.d.StiStackedLineSeries{implements(){let e=super.implements().concat([ICloneable,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiStackedAreaSeries,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.coreBrush.clone(),e}getDefaultAreaType(){return __.d.StiStackedColumnArea}get coreBrush(){return this.brush}set coreBrush(e){this.brush=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiStackedAreaSeriesCoreXF(this)}},__.d.StiFullStackedAreaSeries=class extends __.d.StiStackedAreaSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedAreaSeries,__.d.IStiStackedAreaSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiShowNullsSeries,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiStackedLineSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedAreaSeriesCoreXF(this)}},__.d.StiStackedColumnSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,IStiCornerRadius,__.d.IStiSeriesBorderThickness,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.8),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.showZeros=!1,this._width=.8,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.icon=null,this.cornerRadius=new StiCornerRadius,this.core=new __.d.StiStackedColumnSeriesCoreXF(this)}},__.d.StiFullStackedColumnSeries=class extends __.d.StiStackedColumnSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedColumnSeries,__.d.IStiStackedColumnSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedColumnSeriesCoreXF(this)}},__.d.StiFullStackedLineSeries=class extends __.d.StiStackedLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedLineSeriesCoreXF(this)}},__.d.StiStackedSplineSeries=class extends __.d.StiStackedBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiStackedSplineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiStackedSplineSeriesCoreXF(this)}},__.d.StiStackedSplineAreaSeries=class extends __.d.StiStackedSplineSeries{implements(){let e=super.implements().concat([__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedSplineAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiStackedSplineAreaSeriesCoreXF(this)}},__.d.StiFullStackedSplineAreaSeries=class extends __.d.StiStackedSplineAreaSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedSplineAreaSeries,__.d.IStiShowNullsSeries,__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedSplineAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaSeriesCoreXF(this)}},__.d.StiFullStackedSplineSeries=class extends __.d.StiStackedSplineSeries{implements(){let e=super.implements().concat([__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiFullStackedSplineSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedSplineSeriesCoreXF(this)}},__.d.StiFunnelSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeries,__.d.IStiFontIconsSeries,__.d.IStiSeriesBorderThickness,__.d.IStiSeries,ICloneable,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiBoolMeta("AllowApplyBrush","",!0),new StiBoolMeta("AllowApplyBorderColor","",!0),new StiBrushMeta(["Brush","bh"]),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiEnumMeta("Icon","",StiFontIcons)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiFunnelArea}constructor(){super(),this.showZeros=!1,this.allowApplyBrush=!0,this.allowApplyBorderColor=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.borderColor=Color.gray,this.borderThickness=1,this.icon=null,this.core=new __.d.StiFunnelSeriesCoreXF(this)}},__.d.StiFunnelWeightedSlicesSeries=class extends __.d.StiFunnelSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeries,__.d.IStiFunnelWeightedSlicesSeries,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiFunnelWeightedSlicesArea}constructor(){super(),this.core=new __.d.StiFunnelWeightedSlicesSeriesCoreXF(this)}},__.d.StiGanttSeries=class extends __.d.StiClusteredBarSeries{implements(){let e=super.implements().concat([__.d.IStiClusteredColumnSeries,__.d.IStiClusteredBarSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiGanttSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TopN"),new StiRemoveMeta("TrendLine"),new StiStringMeta("ValueDataColumnEnd"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiGanttArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiGanttSeriesCoreXF(this)}},__.d.StiHeatmapSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiHeatmapSeries,__.d.IStiSeriesBorderThickness,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiStringNullOrEmptyMeta("XValuesDataColumn"),new StiStringNullOrEmptyMeta("YValuesDataColumn"),new StiExpressionMeta("XValue"),new StiExpressionMeta("ListOfXValues"),new StiExpressionMeta("YValue"),new StiExpressionMeta("ListOfYValues"),new StiStringNullOrEmptyMeta("XValuesString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("YValuesString","",StiJsonSaveMode.Document)]}getDefaultAreaType(){return __.d.StiHeatmapArea}getDefaultLegendType(){return __.d.StiHeatmapLegend}get xValues(){return this.getXValues()}set xValues(e){this.setXValues(e)}getXValues(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._xValues;if(!StiString.isNullOrEmpty(this.listOfXValues))return __.d.StiSeries.getArgumentsFromString(this.listOfXValues);if(null==this._xValues||0==this._xValues.length)return["A","B","C","A","B","C","A","B","C"];return this._xValues}setXValues(e){this._xValues=e}get yValues(){return this.getYValues()}set yValues(e){this.setYValues(e)}getYValues(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._yValues;if(!StiString.isNullOrEmpty(this.listOfYValues))return __.d.StiSeries.getArgumentsFromString(this.listOfYValues);if(null==this._yValues||0==this._yValues.length)return["A","A","A","B","B","B","C","C","C"];return this._yValues}setYValues(e){this._yValues=e}get xValuesString(){let i=new StringBuilder,s=!0;for(let t of this._xValues)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XMLConvert.encodeName(e)):i.appendFormat(";{0}",XMLConvert.encodeName(e)),s=!1}return i.toString()}set xValuesString(t){if(null==t||0==t.trim().length)this._xValues=[];else{let e=t.split(";");this._xValues=[];for(let i of e){let e=XMLConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._xValues.push(t.result):this._xValues.push(e)}}}get yValuesString(){let i=new StringBuilder,s=!0;for(let t of this._yValues)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XMLConvert.encodeName(e)):i.appendFormat(";{0}",XMLConvert.encodeName(e)),s=!1}return i.toString()}set yValuesString(t){if(null==t||0==t.trim().length)this._yValues=[];else{let e=t.split(";");this._yValues=[];for(let i of e){let e=XMLConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._yValues.push(t.result):this._yValues.push(e)}}}onGetListOfYValues(e){}invokeGetListOfYValues(i,s){try{if(this.onGetListOfYValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfYValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfYValues,e));s.value=i.report.toString2(t)}null!=this.getListOfYValues&&this.getListOfYValues(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfYValues").isAll)throw s}}onGetListOfXValues(e){}invokeGetListOfXValues(i,s){try{if(this.onGetListOfXValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfXValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfXValues,e));s.value=i.report.toString2(t)}null!=this.getListOfXValues&&this.getListOfXValues(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfXValues").isAll)throw s}}constructor(){super(),this._xValues=[],this._yValues=[],this.yValuesDataColumn="",this.xValuesDataColumn="",this.xValue="",this.yValue="",this.listOfXValues="",this.listOfYValues="",this.borderColor=Color.gray,this.borderThickness=1,this.core=new __.d.StiHeatmapSeriesCoreXF(this)}};let IStiPictorialStackedSeries=__.d.IStiPictorialStackedSeries;__.d.StiPictorialStackedSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPictorialSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiPictorialStackedSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.Coffee)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPictorialStackedArea}constructor(){super(),this.icon=StiFontIcons.Coffee,this.core=new __.d.StiPictorialStackedSeriesCoreXF(this)}},__.d.StiPie3dPeripherySurfaceBounds=class{constructor(e,t,i,s,r,n){this.startAngle=e,this.endAngle=t,this.startPoint=i,this.endPoint=s,this.realStartAngle=r,this.realEndAngle=n}};{class e_0{draw(e,t,i){if(null==this.point1||null==this.point2||null==this.point3||null==this.point4)return;let s=new List,r=(s.add(new StiLineSegmentGeom(this.point1,this.point2)),s.add(new StiLineSegmentGeom(this.point2,this.point3)),s.add(new StiLineSegmentGeom(this.point3,this.point4)),this.toClose&&s.add(new StiCloseFigureSegmentGeom),e.getPathBounds(s));null!=this.animation?e.drawAnimationPathElement(i,t,s,this.rectangle,null,this,this.animation,null):(e.fillPath(i,s,r,null),e.drawPath(t,s,r))}static empty(){return new e_0(null,null,null,null,null,null,null)}constructor(e,t,i,s,r,n,l){this.rectangle=e,this.point1=t,this.point2=i,this.point3=s,this.point4=r,this.toClose=n,this.animation=l}}__.d.StiPie3dQuadrilateral=e_0}__.d.StiPie3dSeries=class extends __.d.StiPieSeries{implements(){let e=super.implements().concat([__.d.IStiPie3dSeries,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Options3D")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPie3dArea}constructor(){super(),this.options3D=new __.d.StiPie3dOptions,this.core=new __.d.StiPie3dSeriesCoreXF(this)}},__.d.StiRadarSeries=class extends __.d.StiSeries{constructor(){super(...arguments),this.showNulls=!0,this.marker=new __.d.StiMarker}implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries,__.d.IStiShowNullsSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker")]}clone(){let e=super.clone();return null!=this.marker&&(e.marker=this.marker.clone()),e}},__.d.StiRadarAreaSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([__.d.IStiRadarSeries,__.d.IStiRadarLineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiRadarAreaSeries,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiBrushMeta("Brush")]}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiRadarAreaArea}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.brush=new StiSolidBrush(Color.gainsboro),this.core=new __.d.StiRadarAreaSeriesCoreXF(this)}},__.d.StiRadarLineSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2)]}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiRadarLineArea}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.core=new __.d.StiRadarLineSeriesCoreXF(this)}},__.d.StiRadarPointSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarPointSeries,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiRadarPointArea}constructor(){super(),this.core=new __.d.StiRadarPointSeriesCoreXF(this)}},__.d.StiRangeBarSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([__.d.IStiRangeBarSeries,__.d.IStiClusteredColumnSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiExpressionMeta("Value"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValues"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiRangeBarArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiRangeBarSeriesCoreXF(this)}},__.d.StiRangeSeries=class extends __.d.StiLineSeries{implements(){let e=super.implements().concat([__.d.IStiLineSeries,__.d.IStiLineRangeSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this.valuesEnd=[];else{let t=e.split(";"),i=(this.valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this.valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiRangeSeriesCoreXF(this)}},__.d.StiSplineRangeSeries=class extends __.d.StiSplineSeries{implements(){let e=super.implements().concat([__.d.IStiSplineSeries,__.d.IStiSplineRangeSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TopN"),new StiRemoveMeta("TrendLine"),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiSplineRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this._valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[4,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiSplineRangeSeriesCoreXF(this)}},__.d.StiSteppedRangeSeries=class extends __.d.StiSteppedLineSeries{implements(){let e=super.implements().concat([__.d.IStiSteppedLineSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,__.d.IStiSteppedRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiExpressionMeta("ValueEnd","valueObjEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiSteppedRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,7+3*e,6+3*e,6+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this.valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[4,5,7,6,6],this.valueDataColumnEnd="",this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiSteppedRangeSeriesCoreXF(this)}},__.d.StiScatterSplineSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([ICloneable,__.d.IStiScatterLineSeries,__.d.IStiBaseLineSeries,__.d.IStiScatterSplineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiScatterSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiScatterSplineSeriesCoreXF(this)}},__.d.StiRibbonSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRibbonSeries,IStiCornerRadius,__.d.IStiSeriesBorderThickness]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiNumberMeta("Width","_",.5),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiRibbonArea}constructor(){super(),this._width=.5,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.cornerRadius=new StiCornerRadius,this.core=new __.d.StiRibbonSeriesCoreXF(this)}},__.d.StiRibbonSeriesMetadata=class{constructor(e,t){this.rectangles=new List,this.brush=e,this.borderColor=t}},__.d.StiSunburstSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstSeries,__.d.IStiSeriesBorderThickness,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("BorderThickness","",1)]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiSunburstArea}constructor(){super(),this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.core=new __.d.StiSunburstSeriesCoreXF(this)}},__.d.StiNoneLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiNoneLabels,__.d.IStiSeriesLabels,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["Antialiasing","Visible","LabelColor","BorderColor","Brush","Font"])]}constructor(){super(),this.core=new __.d.StiNoneLabelsCoreXF(this)}},__.d.StiInsideBaseAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiInsideBaseAxisLabels,__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideBaseAxisLabelsCoreXF(this)}},__.d.StiInsideEndAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,__.d.IStiInsideEndAxisLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideEndAxisLabelsCoreXF(this)}},__.d.StiLeftAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiLeftAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiLeftAxisLabelsCoreXF(this)}},__.d.StiOutsideAxisLabels=class extends __.d.StiAxisSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideAxisLabels,__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("LineLength","",15)]}constructor(){super(),this.lineLength=15,this.core=new __.d.StiOutsideAxisLabelsCoreXF(this)}},__.d.StiOutsideBaseAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiOutsideBaseAxisLabels,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideBaseAxisLabelsCoreXF(this)}},__.d.StiOutsideEndAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideEndAxisLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideEndAxisLabelsCoreXF(this)}},__.d.StiRightAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,__.d.IStiRightAxisLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiRightAxisLabelsCoreXF(this)}},__.d.StiValueAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiValueAxisLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiValueAxisLabelsCoreXF(this)}},__.d.StiFunnelSeriesLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeriesLabels,ICloneable,__.d.IStiSeriesLabels]);return(this.implements=()=>e)()}},__.d.StiCenterFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable,__.d.IStiCenterFunnelLabels]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterFunnelLabelsCoreXF(this)}},__.d.StiOutsideLeftFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiCenterFunnelLabels,__.d.IStiOutsideLeftFunnelLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideLeftFunnelLabelsCoreXF(this)}},__.d.StiOutsideRightFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideRightFunnelLabels,__.d.IStiCenterFunnelLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideRightFunnelLabelsCoreXF(this)}},__.d.StiCenterHeatmapLabels=class extends __.d.StiAxisSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterHeatmapLabelsCoreXF(this)}},__.d.StiCenterPictorialStackedLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterPictorialStackedLabelsCoreXF(this)}},__.d.StiOutsideLeftPictorialStackedLabels=class extends __.d.StiCenterPictorialStackedLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.lineColor=Color.black,this.core=new __.d.StiOutsideLeftPictorialStackedLabelsCoreXF(this)}},__.d.StiOutsideRightPictorialStackedLabels=class extends __.d.StiCenterPictorialStackedLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.lineColor=Color.black,this.core=new __.d.StiOutsideRightPictorialStackedLabelsCoreXF(this)}},__.d.StiPictorialStackedLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeriesLabels]);return(this.implements=()=>e)()}},__.d.StiPieSeriesLabels=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterPie3dLabels=class extends __.d.StiPieSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterPie3dLabelsCoreXF(this)}},__.d.StiCenterPieLabels=class extends __.d.StiPieSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,__.d.IStiCenterPieLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AutoRotate")]}constructor(){super(),this.autoRotate=!1,this.core=new __.d.StiCenterPieLabelsCoreXF(this)}},__.d.StiInsideEndPie3dLabels=class extends __.d.StiCenterPie3dLabels{constructor(){super(),this.core=new __.d.StiInsideEndPie3dLabelsCoreXF(this)}},__.d.StiInsideEndPieLabels=class extends __.d.StiCenterPieLabels{implements(){let e=super.implements().concat([__.d.IStiCenterPieLabels,__.d.IStiSeriesLabels,__.d.IStiPieSeriesLabels,__.d.IStiInsideEndPieLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideEndPieLabelsCoreXF(this)}},__.d.StiOutsidePieLabels=class extends __.d.StiCenterPieLabels{implements(){let e=super.implements().concat([__.d.IStiOutsidePieLabels,__.d.IStiCenterPieLabels,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("Angle"),new StiBoolMeta("ShowValue"),new StiNumberMeta("LineLength","",20),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.showValue=!1,this.lineLength=20,this.lineColor=Color.black,this.core=new __.d.StiOutsidePieLabelsCoreXF(this)}},__.d.StiTwoColumnsPieLabels=class extends __.d.StiOutsidePieLabels{implements(){let e=super.implements().concat([__.d.IStiTwoColumnsPieLabels,__.d.IStiOutsidePieLabels,__.d.IStiCenterPieLabels,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("AutoRotate")]}constructor(){super(),this.core=new __.d.StiTwoColumnsPieLabelsCoreXF(this)}},__.d.StiCenterTreemapLabels=class extends __.d.StiAxisSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterTreemapLabelsCoreXF(this)}};{class S0b extends StiService{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStrips,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ShowBehind","",!0),new StiBrushMeta("StripBrush"),new StiBoolMeta("Antialiasing","",!0),new StiFontMeta("Font","","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiColorMeta("TitleColor","",Color.green),new StiEnumMeta("Orientation","",__.d.StiStrips_StiOrientation,__.d.StiStrips_StiOrientation.Horizontal),new StiBoolMeta("ShowInLegend","",!0),new StiStringMeta("MaxValue","","1"),new StiStringMeta("MinValue","","0"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.strips=e),e}get serviceCategory(){return"Chart"}get serviceType(){return S0b}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}constructor(){super(),this._allowApplyStyle=!0,this.showBehind=!0,this.stripBrush=new StiSolidBrush(Color.transparent),this.antialiasing=!0,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0,this.titleColor=Color.green,this.orientation=__.d.StiStrips_StiOrientation.Horizontal,this.showInLegend=!0,this.maxValue="1",this.minValue="0",this.visible=!0,this.core=new __.d.StiStripsCoreXF(this)}}__.d.StiStrips=S0b}__.d.StiStyle01=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF01}},__.d.StiCustomStyle=class extends __.d.StiStyle01{implements(){let e=super.implements().concat([__.d.IStiCustomStyle]);return(this.implements=()=>e)()}get serviceName(){return"CustomStyle"}get customCore(){return this.core}constructor(e=null){super(),this.core=new __.d.StiCustomStyleCoreXF(this),this.core.reportStyleName=e}},__.d.StiStyle02=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF02}},__.d.StiStyle03=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF03}},__.d.StiStyle04=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF04}},__.d.StiStyle05=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF05}},__.d.StiStyle06=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF06}},__.d.StiStyle07=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF07}},__.d.StiStyle08=class extends __.d.StiStyle03{constructor(){super(),this.core=new __.d.StiStyleCoreXF08}},__.d.StiStyle09=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF09}},__.d.StiStyle10=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF10}},__.d.StiStyle11=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF11}},__.d.StiStyle12=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF12}},__.d.StiStyle13=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF13}},__.d.StiStyle14=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF14}},__.d.StiStyle15=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF15}},__.d.StiStyle16=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF16}},__.d.StiStyle17=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF17}},__.d.StiStyle18=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF18}},__.d.StiStyle19=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF19}},__.d.StiStyle20=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF20}},__.d.StiStyle21=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF21}},__.d.StiStyle22=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF22}},__.d.StiStyle23=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF23}},__.d.StiStyle24=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Orange")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Orange,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF24}},__.d.StiStyle26=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Turquoise")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Turquoise,this.core=new __.d.StiStyleCoreXF26}},__.d.StiStyle27=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","SlateGray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.SlateGray,this.core=new __.d.StiStyleCoreXF27}},__.d.StiStyle28=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkBlue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkBlue,this.core=new __.d.StiStyleCoreXF28}},__.d.StiStyle30=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkGray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkGray,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF30}},__.d.StiStyle31=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkTurquoise")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkTurquoise,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF31}},__.d.StiStyle32=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Silver")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Silver,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF32}},__.d.StiStyle33=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","AliceBlue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.AliceBlue,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF33}},__.d.StiStyle34=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkGreen")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkGreen,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF34}},__.d.StiStyle35=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Sienna")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Sienna,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF35}},__.d.StiStyle36=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Gray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Gray,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF36}},__.d.StiStyle37=class extends __.d.StiChartStyle{get dashboardName(){return StiWhiteBlackStyleColors.dashboardName}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.WhiteBlack,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF37}},__.d.StiChartTableDataCells=class{meta(){return[new StiFontMeta("Font","","Arial",8),new StiColorMeta("TextColor","",Color.darkGray),new StiNumberMeta("ShrinkFontToFitMinimumSize","",1),new StiBoolMeta("ShrinkFontToFit")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e}constructor(e=!1,t=1,i=new Font("Arial",8),s=Color.darkGray){this.font=new Font("Arial",8),this.textColor=Color.darkGray,this.shrinkFontToFit=!1,this.shrinkFontToFitMinimumSize=1,this.font=i,this.textColor=s,this.shrinkFontToFit=e,this.shrinkFontToFitMinimumSize=t}},__.d.StiChartTableHeader=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartTableHeader,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringNullOrEmptyMeta("TextAfter"),new StiBrushMeta("Brush"),new StiFontMeta("Font","","Arial",8),new StiColorMeta("TextColor","",Color.darkGray),new StiBoolMeta("WordWrap"),new StiStringNullOrEmptyMeta("Format")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.brush=this.brush.clone(),e.font=this.font.clone(),e}constructor(e="",t=new StiSolidBrush(Color.white),i=new Font("Arial",8),s=Color.darkGray,r=!1,n=""){this.brush=new StiSolidBrush(Color.white),this.font=new Font("Arial",8),this.textColor=Color.darkGray,this.wordWrap=!1,this.textAfter="",this.textAfter=e,this.brush=t,this.font=i,this.textColor=s,this.wordWrap=r,this.format=n}},__.d.StiSeriesTopN=class{constructor(){this.mode=__.d.StiTopNMode.None,this.count=5,this.showOthers=!0,this.othersText="Others"}implements(){let e=[IStiJsonReportObject,__.d.IStiSeriesTopN,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiEnumMeta("Mode","",__.d.StiTopNMode,__.d.StiTopNMode.None),new StiNumberMeta("Count","",5),new StiBoolMeta("ShowOthers","",!0),new StiStringMeta("OthersText","","Others")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}};{class xbb extends StiService{constructor(){super(...arguments),this.lineColor=Color.black,this.lineWidth=1,this.lineStyle=StiPenStyle.Solid,this.showShadow=!0,this.allowApplyStyle=!0,this.position=__.d.StiTrendLine_StiTextPosition.LeftBottom,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0}implements(){let e=super.implements().concat([__.d.IStiTrendLine,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiColorMeta("LineColor","",Color.black),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("ShowShadow","",!0),new StiEnumMeta("Position","",__.d.StiTrendLine_StiTextPosition,__.d.StiConstantLines_StiTextPosition.LeftBottom),new StiFontMeta("Font","","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiBoolMeta("AllowApplyStyle","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartTrendLines.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadTrendLineFromXml(t){switch(t.attributes.getNamedItem("type").value){case"Stimulsoft.Report.Chart.StiTrendLineNone":{let e=new __.d.StiTrendLineNone;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineLinear":{let e=new __.d.StiTrendLineLinear;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineExponential":{let e=new __.d.StiTrendLineExponential;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineLogarithmic":{let e=new __.d.StiTrendLineLogarithmic;return e.loadFromXml(t),e}}return new __.d.StiTrendLineNone}get propName(){return""}clone(){let e=super.clone();return null!=this.core&&(e.core=this.core.clone(),e.core.trendLine=e),e}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return xbb}toString(){return this.serviceName}}__.d.StiTrendLine=xbb}__.d.StiTrendLineExponential=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,ICloneable,IStiJsonReportObject,__.d.IStiTrendLineExponential]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineExponentialCoreXF(this)}},__.d.StiTrendLineLinear=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineLinear,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineLinearCoreXF(this)}},__.d.StiTrendLineLogarithmic=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineLogarithmic,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineLogarithmicCoreXF(this)}},__.d.StiTrendLineNone=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineNone,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineNoneCoreXF(this)}};{class Sbb extends CollectionBase{implements(){let e=[__.d.IStiTrendLinesCollection,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let r of e.properties()){let e=r.value,t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartTrendLines.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());this.list.push(s),s.loadFromJsonObject(r.value)}}loadFromXml(i){for(let t=0;t<i.childNodes.length;t++){let s=i.childNodes[t];if(null==s.attributes)continue;let e=s.attributes.getNamedItem("type");if(null!=e){let e=s.attributes.getNamedItem("type").value,t=e.split(".").pop(),i=new __.d[t];this.list.push(i),i.loadFromXml(s)}}}clone(){let t=new Sbb;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e)}}__.d.StiTrendLinesCollection=Sbb}__.d.StiWaterfallConnectorLine=class{constructor(){this.lineColor=Color.lightGray,this.lineWidth=1,this.visible=!0}implements(){let e=[__.d.IStiTrendLine,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiColorMeta("LineColor","",Color.lightGray),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("TitleVisible","visible",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}},__.d.StiWaterfallTotal=class{constructor(){this.text="Total",this.visible=!0}implements(){let e=[__.d.IStiTrendLine,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}},__.d.StiCamera3D=class{translateMatrix(){return new __.d.StiMatrix([[1,0,0,0],[0,1,0,0],[0,0,1,0],[-this.position.x,-this.position.y,-this.position.z,1]])}rotateMatrix(){return new __.d.StiMatrix([[this.right.x,this.up.x,this.forward.x,0],[this.right.y,this.up.y,this.forward.y,0],[this.right.z,this.up.z,this.forward.z,0],[0,0,0,1]])}cameraMatrix(){return __.d.StiMatrix.multiply(this.translateMatrix(),this.rotateMatrix())}constructor(e,t){this.forward=new __.d.StiVector4(0,0,1,1),this.up=new __.d.StiVector4(0,1,0,1),this.right=new __.d.StiVector4(1,0,0,1),this.nearPlane=.1,this.farPlane=100,this.render=e,this.position=new __.d.StiVector4(t.x,t.y,t.z,1),this.h_fov=1,this.v_fov=this.h_fov*(e.height/e.width)}},__.d.StiProjection=class{constructor(e){let t=e.camera,i=(this.near=t.nearPlane,this.far=t.farPlane,this.right=Math.tan(t.h_fov/2),this.left=-this.right,this.top=Math.tan(t.v_fov/2),this.bottom=-this.top,2/(this.right-this.left)),s=2/(this.top-this.bottom),r=(this.far+this.near)/(this.far-this.near),n=-2*this.near*this.far/(this.far-this.near),l=(this.projectionMatrix=new __.d.StiMatrix([[i,0,0,0],[0,s,0,0],[0,0,r,1],[0,0,n,0]]),e.halfWidth),o=e.halfHeight;this.toScreenMatrix=new __.d.StiMatrix([[l,0,0,0],[0,-o,0,0],[0,0,1,0],[l,o,0,1]])}},__.d.StiRender3D=class{constructor(e,t){this.width=e,this.height=t,this.halfWidth=e/2,this.halfHeight=t/2,this.camera=new __.d.StiCamera3D(this,new __.d.StiVector3(0,0,-30)),this.projection=new __.d.StiProjection(this)}};let IStiClusteredColumnSeries3D=__.d.IStiClusteredColumnSeries3D,StiConstantLines_StiOrientation=__.d.StiConstantLines_StiOrientation,StiStrips_StiOrientation=__.d.StiStrips_StiOrientation;__.d.StiAxisAreaCoreXF3D=class extends __.d.StiAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.yAxis)&&t.yAxis.core.applyStyle(e)}render(i,e){let t=e.clone(),s=this.area,r=(this.prepareInfo(e.clone()),s.xAxis.core.getAxisTitleSize(i)),n=s.yAxis.core.getAxisTitleSize(i),l=new Rectangle(n.width,e.height-r.height,e.width-n.width,r.height),o=new Rectangle(0,0,n.width,e.height-r.height),a=s.yAxis.core.getAxisRect(i,e,!0,!0,!1,!0),h=(e=new Rectangle(a.width,0,e.width-a.width,e.height),s.xAxis.core.getAxisRect(i,e,!0,!0,!1,!0)),u=(e=new Rectangle(a.width,0,e.width-a.width,e.height-h.height),e=new Rectangle(e.x+n.width,e.y,e.width-n.width,e.height-r.height),this.prepareInfo(e.clone()),s.core.getSeries()),S=this.getRedner3D(),d=new __.d.StiAxisAreaViewGeom3D(s,t,S),m=this.getFactorWidthHeight(e),c=m,g=1,p=this.getPositionZ(s),_=StiBrush.toColor(this.area.brush),f=new __.d.StiXYAreaGeom3D(c,g,S),C=(f.color=_,new __.d.StiXZAreaGeom3D(c,p,S)),w=(C.color=_,new __.d.StiZYAreaGeom3D(p,g,S)),b=(w.color=_,d.createChildGeoms(),d.childGeoms.push(w),d.childGeoms.push(C),d.childGeoms.push(f),new __.d.StiRectangle3D);b.length=m,b.height=1,b.width=-this.getPositionZ(s),this.renderInterlacingHor(S,b,d),this.renderInterlacingVer(S,b,d),this.renderGridLinesHorZY(S,b,s.gridLinesHor,d),this.renderGridLinesHorXY(S,b,s.gridLinesHor,d),this.renderGridLinesVertXY(S,b,s.gridLinesVert,d),this.renderGridLinesVertZX(S,b,s.gridLinesVert,d);for(let e of this.area.chart.strips.list)e.showBehind&&this.renderStrips(i,S,b,d,e);for(let e of this.area.chart.constantLines.list)e.showBehind&&this.renderConstantLines(i,S,b,d,e);if(this.renderSeries(S,i,b,d,u),0<u.length){let e=s.yAxis.core.render3D(i,b,S),t=(d.createChildGeoms(),d.childGeoms.push(e),s.xAxis.core.render3D(i,b,S));d.createChildGeoms(),d.childGeoms.push(t)}for(let e of this.area.chart.strips.list)e.showBehind||this.renderStrips(i,S,b,d,e);for(let e of this.area.chart.constantLines.list)e.showBehind||this.renderConstantLines(i,S,b,d,e);let y=s.xAxis.title.core.render(i,l,s.xAxis),x=(null!=y&&(d.createChildGeoms(),d.childGeoms.push(y)),s.yAxis.title.core.render(i,o,s.yAxis));return null!=x&&(d.createChildGeoms(),d.childGeoms.push(x)),d}renderStrips(e,t,i,s,r){if(!r.visible)return;r.orientation===StiStrips_StiOrientation.Vertical&&this.renderXStrips(e,t,i,s,r),r.orientation===StiStrips_StiOrientation.Horizontal&&this.renderYStrips(e,t,i,s,r)}renderYStrips(h,u,S,d,m){if(m.visible){let l=this.calculateYValue(m.minValue),o=this.calculateYValue(m.maxValue),e=(l>o&&([l,o]=[o,l]),l+S.y),t=o+S.y,a=m.showBehind?S.z:S.front;if(0<=e&&e<=S.height&&0<t&&t<=S.height){let e=new __.d.StiPoint3D(S.x,l,a),t=new __.d.StiPoint3D(S.x,o,a),i=new __.d.StiPoint3D(S.right,l,a),s=new __.d.StiPoint3D(S.right,o,a),r=StiBrush.toColor(m.stripBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,u);d.createChildGeoms(),d.childGeoms.push(n)}if(m.titleVisible){let e=S.right-(S.right-S.x)/2,t=o-(o-l)/2,i=new __.d.StiPoint3D(e,t,a),s=StiFontGeom.changeFontSize(m.font,m.font.size*h.options.zoom),r=StiReportParser.parse(m.text,this.area.chart),n=new __.d.StiTextGeom3D(r,s,m.titleColor,StiRotationMode.CenterCenter,0,i,u);d.createChildGeoms(),d.childGeoms.push(n)}}}renderXStrips(h,u,S,d,m){if(m.visible){let l=this.calculateXValue(m.minValue),o=this.calculateXValue(m.maxValue),e=(l>o&&([l,o]=[o,l]),l+S.x),t=o+S.x,a=m.showBehind?S.z:S.front;if(0<=e&&e<=S.right&&0<=t&&t<=S.right){let e=new __.d.StiPoint3D(l,S.y,a),t=new __.d.StiPoint3D(l,S.top,a),i=new __.d.StiPoint3D(o,S.y,a),s=new __.d.StiPoint3D(o,S.top,a),r=StiBrush.toColor(m.stripBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,u);d.createChildGeoms(),d.childGeoms.push(n)}if(m.titleVisible){let e=o-(o-l)/2,t=S.top-(S.top-S.y)/2,i=new __.d.StiPoint3D(e,t,a),s=StiFontGeom.changeFontSize(m.font,m.font.size*h.options.zoom),r=StiReportParser.parse(m.text,this.area.chart),n=new __.d.StiTextGeom3D(r,s,m.titleColor,StiRotationMode.CenterCenter,90,i,u);d.createChildGeoms(),d.childGeoms.push(n)}}}calculateXValue(e){let t=this.area,i=StiReportParser.parse(e,this.area.chart),s=parseFloat(i.replace(",","."));return s*t.xAxis.info.dpi}calculateYValue(e){let t=this.area,i=StiReportParser.parse(e,this.area.chart),s=parseFloat(i.replace(",","."));return s*t.yAxis.info.dpi}renderConstantLines(e,t,i,s,r){if(!r.visible)return;r.orientation===StiConstantLines_StiOrientation.Vertical&&this.renderXConstantLines(e,t,i,s,r),r.orientation===StiConstantLines_StiOrientation.Horizontal&&this.renderYConstantLines(e,t,i,s,r)}renderYConstantLines(n,a,h,u,S){if(S.visible){let e=this.area,t,i=DateTime.fromString(S.axisValue,!1);if(null!=i)t=i.toOADate();else try{let e=StiReportParser.parse2(S.axisValue,this.area.chart.report);t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){t=0}let s=t*e.yAxis.info.dpi,l=s+h.y,o=S.showBehind?h.z:h.front;if(0<=l&&l<=h.height){let e=new __.d.StiPoint3D(h.x,l,o),t=new __.d.StiPoint3D(h.right,l,o),i=S.lineColor,s=S.lineStyle,r=S.lineWidth,n=new __.d.StiLineGeom3D(e,t,i,r,s,a);u.createChildGeoms(),u.childGeoms.push(n)}if(S.titleVisible){let e=StiFontGeom.changeFontSize(S.font,S.font.size*n.options.zoom),t=StiReportParser.parse(S.text,this.area.chart),i=new __.d.StiPoint3D(h.x,l,o),s=StiRotationMode.LeftBottom;switch(S.position){case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new __.d.StiPoint3D(h.x,l,o);break;case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new __.d.StiPoint3D(h.x,l,o);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new __.d.StiPoint3D(h.x+h.length/2,l,o);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new __.d.StiPoint3D(h.x+h.length/2,l,o);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new __.d.StiPoint3D(h.right,l,o);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new __.d.StiPoint3D(h.right,l,o);break}let r=new __.d.StiTextGeom3D(t,e,S.lineColor,s,0,i,a);u.createChildGeoms(),u.childGeoms.push(r)}}}renderXConstantLines(n,a,h,u,S){if(S.visible){let e=this.area,t,i=DateTime.fromString(S.axisValue,!1);if(null!=i)t=i.toOADate();else try{let e=StiReportParser.parse2(S.axisValue,this.area.chart.report);t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){t=0}let s=t*e.xAxis.info.dpi,l=s+h.x,o=S.showBehind?h.z:h.front;if(0<=l&&l<=h.right){let e=new __.d.StiPoint3D(l,h.y,o),t=new __.d.StiPoint3D(l,h.top,o),i=S.lineColor,s=S.lineStyle,r=S.lineWidth,n=new __.d.StiLineGeom3D(e,t,i,r,s,a);u.createChildGeoms(),u.childGeoms.push(n)}if(S.titleVisible){let e=StiFontGeom.changeFontSize(S.font,S.font.size*n.options.zoom),t=StiReportParser.parse(S.text,this.area.chart),i=new __.d.StiPoint3D(l,h.top,o),s=StiRotationMode.LeftBottom;switch(S.position){case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new __.d.StiPoint3D(l,h.top,o);break;case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new __.d.StiPoint3D(l,h.top,o);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new __.d.StiPoint3D(l,h.y+h.height/2,o);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new __.d.StiPoint3D(l,h.y+h.height/2,o);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new __.d.StiPoint3D(l,h.y,o);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new __.d.StiPoint3D(l,h.y,o);break}let r=new __.d.StiTextGeom3D(t,e,S.lineColor,s,90,i,a);u.createChildGeoms(),u.childGeoms.push(r)}}}renderInterlacingVer(a,h,u){let S=this.area;if(!S.interlacingVert.visible)return;let e=0,t=new List,i=S.xAxis.info.stripPositions,s=!0;for(let e of i){if(s){t.add(e),s=!1;continue}t.add(e)}let r=StiArray.create(Number,t.length),n=(t.copyTo(r),!0);for(let o of r){let l=r[e+1];if(n){let e=new __.d.StiPoint3D(o,h.y,h.z),t=new __.d.StiPoint3D(o,h.top,h.z),i=new __.d.StiPoint3D(l,h.y,h.z),s=new __.d.StiPoint3D(l,h.top,h.z),r=StiBrush.toColor(S.interlacingVert.interlacedBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a);u.createChildGeoms(),u.childGeoms.push(n),t=e,e=new __.d.StiPoint3D(o,h.y,h.front),s=i,i=new __.d.StiPoint3D(l,h.y,h.front),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a),u.createChildGeoms(),u.childGeoms.push(n)}if(n=!n,++e==r.length-1)break}}switchOff(){let e=this.area.as(__.d.IStiAxisArea3D);e.xAxis.visible=!1,e.yAxis.visible=!1,e.xAxis.title.text="",e.yAxis.title.text="",e.gridLinesHor.visible=!1,e.gridLinesVert.visible=!1,e.interlacingHor.visible=!1,e.interlacingVert.visible=!1,e.gridLinesHor.minorVisible=!1,e.gridLinesVert.minorVisible=!1}renderInterlacingHor(a,h,u){let S=this.area;if(!S.interlacingHor.visible)return;let t=new List,i=S.yAxis.info.stripPositions.length,s=StiArray.create(Number,i);for(let e=0;e<i;e++)s[i-1-e]=S.yAxis.info.stripPositions[e];let r=!0;for(let e of s){if(r){t.add(e),r=!1;continue}t.add(e)}let e=StiArray.create(Number,t.length),n=(t.copyTo(e),0),d=!0;for(let o of e){let l=e[n+1];if(d){let e=new __.d.StiPoint3D(h.x,o,h.z),t=new __.d.StiPoint3D(h.x,l,h.z),i=new __.d.StiPoint3D(h.right,o,h.z),s=new __.d.StiPoint3D(h.right,l,h.z),r=StiBrush.toColor(S.interlacingHor.interlacedBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a);u.createChildGeoms(),u.childGeoms.push(n),i=e,s=t,e=new __.d.StiPoint3D(h.x,o,h.front),t=new __.d.StiPoint3D(h.x,l,h.front),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a),u.createChildGeoms(),u.childGeoms.push(n)}if(d=!d,++n==e.length-1)break}}prepareInfo(e){let s=this.getFactorWidthHeight(e),r=this.area,n=this.getSeries();if(0<n.length){r.xAxis.info.stripLines=new __.d.StiStripLinesXF,r.yAxis.info.stripLines=new __.d.StiStripLinesXF,r.zAxis.info.stripLines=new __.d.StiStripLinesXF,this.valuesCount=0;for(let t=0;t<n.length;t++){let e=n[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}this.prepareRange(r.xAxis,r.yAxis,r.zAxis),this.checkStartFromZeroYAxis(r.yAxis),this.calculateMinimumAndMaximumYAxis(r.yAxis),this.calculateMinimumAndMaximumXAxis(r.xAxis),this.createStripLinesXAxis(r.xAxis),this.createStripLinesYAxis(r.yAxis),this.createStripLinesZAxis(r.zAxis),this.checkStripLinesAndMaximumMinimumXAxis(r.xAxis),this.checkStripLinesAndMaximumMinimumYAxis(r.yAxis),this.checkStripLinesAndMaximumMinimumZAxis(r.zAxis),this.checkShowEdgeValues(r.xAxis),r.xAxis.info.dpi=s/r.xAxis.info.range,r.yAxis.info.dpi=1/r.yAxis.info.range,r.zAxis.info.dpi=r.xAxis.info.dpi;let e=this.getPrePositionZ(r),t=e/s,i=(r.zAxis.info.dpi=2<t?2*s/r.zAxis.info.range:r.xAxis.info.dpi,this.calculateStepX(r.xAxis,0,s),this.calculateStepY(r.yAxis,1,0),this.calculateStepZ(r.zAxis,0,this.getPositionZ(r)),{ref:r.xAxis.info.labelsCollection});this.calculatePositions(r.xAxis,i,1),r.xAxis.info.labelsCollection=i.ref,i={ref:r.yAxis.info.labelsCollection},this.calculatePositions(r.yAxis,i,1),r.yAxis.info.labelsCollection=i.ref}let t=this.getRedner3D(),i=s,l=1,o=this.getPositionZ(r),a=new __.d.StiXYAreaGeom3D(i,l,t),h=new __.d.StiXZAreaGeom3D(i,o,t),u=new __.d.StiZYAreaGeom3D(o,l,t),S=a.measureCientRect(),d=h.measureCientRect(),m=u.measureCientRect(),c=Rectangle.union(S,d),g=(c=Rectangle.union(c,m),this.contextScale=Math.min(e.height/c.height,e.width/c.width),e.x+(e.width-c.width*this.contextScale)/2),p=e.y+(e.height-c.height*this.contextScale)/2;this.contextTranslate=new Point(c.x*this.contextScale-g,c.y*this.contextScale-p)}calculateMinimumAndMaximumYAxis(e){let t=.1,i=(0<this.getSeries().length&&this.getSeries()[0].seriesLabels.is(__.d.StiOutsideEndAxisLabels)&&(t=.15),Math.min(t,Math.abs(4/((e.info.maximum+e.info.minimum)/2))));e.info.maximum*=1+i*Math.sign(e.info.maximum),e.info.minimum*=1-i*Math.sign(e.info.minimum),e.info.minimum==e.info.maximum&&(0==e.info.maximum?e.info.maximum=100:(e.info.minimum-=.1*e.info.minimum,e.info.maximum+=.1*e.info.maximum))}checkStartFromZeroYAxis(e){e.info.maximum<0&&(e.info.maximum=0),0<e.info.minimum&&(e.info.minimum=0)}calculateStepX(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(0).value-e.info.stripLines.getByIndex(1).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}calculateStepY(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(i,t)):(e.info.step=1,e.info.stripPositions=[])}calculateStepZ(e,t,i){2<=e.info.stripLines.count?(e.info.step=-Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=-1,e.info.stripPositions=[])}calculatePositions(s,e,t,i=!1){let r=[],n=0,l=s.info.stripPositions.length;for(let i=0;i<l;i++){if(0==n){let e=new __.d.StiStripPositionXF,t=i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],r.push(e)}if(i==l-1&&0!=n){let e=s;if(null!=e&&e.showEdgeValues){let e=new __.d.StiStripPositionXF,t=l-1;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],r.push(e)}}++n==t&&(n=0)}e.ref=r}getPrePositionZ(e){if(e.is(__.d.StiClusteredColumnArea3D)&&!e.sideBySide)return e.xAxis.info.dpi*this.getSeries().length;return e.xAxis.info.dpi}getPositionZ(e){if(e.is(__.d.StiClusteredColumnArea3D)&&!e.sideBySide)return e.zAxis.info.dpi*this.getSeries().length;return e.zAxis.info.dpi}renderSeries(i,s,r,n,l){let e=n.area;if(e.is(__.d.StiClusteredColumnArea3D)&&e.sideBySide&&l.some(e=>e.is(IStiClusteredColumnSeries3D)))l[0].core.renderSideBySide(i,s,r,n,l);else for(let t=l.length-1;0<=t;t--){let e=l[t];e.core.renderSeries3D(i,s,r,n,t,l)}}renderGridLinesHorZY(r,n,l,o){let e=this.area,t=e.yAxis.info.stripPositions;if(0<t.length)for(let e of t)if(l.visible&&l.style!=StiPenStyle.None){let s=e+n.y;if(0<=s&&s<=n.height){let e=new __.d.StiPoint3D(n.x,s,n.z),t=new __.d.StiPoint3D(n.x,s,n.front),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesHorXY(r,n,l,o){let e=this.area,t=e.yAxis.info.stripPositions;if(0<t.length)for(let e of t)if(l.visible&&l.style!=StiPenStyle.None){let s=e+n.y;if(0<=s&&s<=n.height){let e=new __.d.StiPoint3D(n.x,s,n.z),t=new __.d.StiPoint3D(n.right,s,n.z),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesVertZX(r,n,l,o){let e=this.area,t=e.xAxis.info.stripPositions;if(0<t.length)for(let s of t)if(l.visible&&l.style!=StiPenStyle.None){let e=s+n.x;if(0<=e&&e<=n.right){let e=new __.d.StiPoint3D(s,n.y,n.z),t=new __.d.StiPoint3D(s,n.y,n.front),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesVertXY(r,n,l,o){let e=this.area,t=e.xAxis.info.stripPositions;if(0<t.length)for(let s of t)if(l.visible&&l.style!=StiPenStyle.None){let e=s+n.x;if(0<=e&&e<=n.right){let e=new __.d.StiPoint3D(s,n.y,n.z),t=new __.d.StiPoint3D(s,n.top,n.z),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}checkShowEdgeValues(e){0<e.info.stripLines.count&&(e.showEdgeValues||(e.info.stripLines.getByIndex(0).valueObject=null,e.info.stripLines.getByIndex(e.info.stripLines.count-1).valueObject=null))}calculateMinimumAndMaximumXAxis(e){}createStripLinesYAxis(l){if(this.area.getDefaultSeriesType()==__.d.StiFullStackedColumnSeries3D){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=(0==t&&0==r&&(r=100),__.d.StiStripLineCalculatorXF.getInterval(t,r,6));l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let e=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6),t=this.area.chart;t.isDashboard&&(l.labels.calculatedStep=e),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(l.info.minimum,l.info.maximum,e,!1)}l.info.stripLines.list.reverse()}createStripLinesXAxis(s){for(let e=0;e<=this.valuesCount+1;e++)s.info.stripLines.add2(e,e);let t=this.getSeries();for(let e of t)for(let i=0;i<this.valuesCount;i++){let t=null;if(null!=e.arguments&&i<e.arguments.length&&null==(t=e.arguments[i]))continue;if(null!=t){let e=1+i;e<s.info.stripLines.count&&(s.info.stripLines.getByIndex(e).valueObject=t)}}}createStripLinesZAxis(t){let i=this.getSeries();for(let e=0;e<=i.length;e++)t.info.stripLines.add2(e,e)}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}checkStripLinesAndMaximumMinimumYAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.maximum=100,e.info.minimum=0)}checkStripLinesAndMaximumMinimumZAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}getArgumentLabel(e,t){if(null==e)return"";let i=this.area;if(i.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical)return i.xAxis.core.getLabelText(e,t);return""}prepareRange(e,t,i){}getDividerY(){let e=this.area;return this.calculateDivider(e.yAxis)}calculateDivider(t){let i=0;if(null!=t.info.stripLines)for(let e of t.info.stripLines.list){if(0==e.value)return t.info.stripPositions[i];i++}return 0}getRedner3D(){let e=this.area,t=new __.d.StiRender3D(1e3,1e3);return t.globalRotationX=e.rotationX,t.globalRotationY=e.rotationY,t.globalScale=e.scale,t.camera.position.x=e.cameraX,t.camera.position.y=e.cameraY,t.camera.position.z=e.cameraZ,t.camera.nearPlane=e.nearPlane,t.contextScale=this.contextScale,t.contextTranslate=this.contextTranslate,t}getFactorWidthHeight(e){let t=e.width/e.height;return t=(t=2<t?2:t)<1?1:t}constructor(e){super(e),this.valuesCount=0}},__.d.StiClusteredColumnAreaCoreXF3D=class extends __.d.StiAxisAreaCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","ClusteredColumn")}get position(){return __.d.StiChartAreaPosition.ClusteredColumn3d}prepareRange(e,i,t){let s=!0,r=(i.info.minimum=0,i.info.maximum=0,this.getSeries());for(let t of r)for(let e of t.values)null!=e&&(s?(i.info.maximum=e,i.info.minimum=e,s=!1):(i.info.maximum=Math.max(e,i.info.maximum),i.info.minimum=Math.min(e,i.info.minimum)))}constructor(e){super(e)}},__.d.StiLineAreaCoreXF3D=class extends __.d.StiClusteredColumnAreaCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","Line")}get position(){return __.d.StiChartAreaPosition.Line3d}constructor(e){super(e)}},__.d.StiStackedColumnAreaCoreXF3D=class extends __.d.StiAxisAreaCoreXF3D{prepareSeriesRange(e){let s=[],r=[],n=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of n)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e&&t.yAxis==__.d.StiSeriesYAxis.LeftYAxis&&(s.push(0),r.push(0),i<t.values.length)){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}let t=[s,r];return t}prepareRange(e,t,i){let s=this.getSeries(),r=new Hashtable;for(let e of s)r.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let n=[],l=[];for(let e of r.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])n.length<=i?n.push(e):n[i]=Math.min(n[i],e),i++;i=0;for(let e of t[1])l.length<=i?l.push(e):l[i]=Math.max(l[i],e),i++}let o=!0;for(let e of n)o?(t.info.minimum=e,o=!1):t.info.minimum=Math.min(e,t.info.minimum);o=!0;for(let e of l)o?(t.info.maximum=e,o=!1):t.info.maximum=Math.max(e,t.info.maximum)}get localizedName(){return"3D"+StiLocalization.get("Chart","StackedColumn")}get position(){return __.d.StiChartAreaPosition.StackedColumn3d}constructor(e){super(e)}},__.d.StiFullStackedColumnAreaCoreXF3D=class extends __.d.StiStackedColumnAreaCoreXF3D{get localizedName(){return"3D"+StiLocalization.get("Chart","FullStackedColumn")}get position(){return __.d.StiChartAreaPosition.FullStackedColumn3d}constructor(e){super(e)}},__.d.StiAxisCoreXF3D=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAxisCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.axis.allowApplyStyle&&(this.axis.lineColor=e.core.axisLineColor,this.axis.labels.core.applyStyle(e),this.axis.title.core.applyStyle(e))}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom);return t}calculateStripPositions(t,e){if(e-=t,t=0,null==this.axis.info.stripLines||this.axis.info.stripLines.count<2)this.axis.info.stripPositions=[];else{this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=t,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=e;for(let e=1;e<this.axis.info.stripPositions.length-1;e++)this.axis.info.stripPositions[e]=t+e*this.axis.info.step}}render3D(e,t,i){return null}getAxisTitleSize(e){if(StiString.isNullOrEmpty(this.axis.title.text))return SizeD.empty;let t=StiFontGeom.changeFontSize(this.axis.title.font,this.axis.title.font.size*e.options.zoom),i=e.measureString(this.axis.title.text,t);switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:return i;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:return new SizeD(i.height,i.width)}return SizeD.empty}getStringFormatGeom(e,t){let i=e.getGenericStringFormat();return i.trimming=StringTrimming.None,t||(i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),0<this.axis.labels.width&&(i.alignment=StringAlignment.Far),i}constructor(e){this.axis=e}},__.d.StiAxisInfoXF3D=class{constructor(){this.dpi=0,this.step=0,this.stripPositions=null,this.labelsCollection=null,this.minimum=0,this.maximum=0}implements(){let e=[ICloneable,__.d.IStiAxisInfoXF3D];return(this.implements=()=>e)()}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.stripLines=this.stripLines.clone(),e}get range(){return this.maximum-this.minimum}},__.d.StiAxisLabelInfoXF3D=class{},__.d.StiAxisLabelsCoreXF3D=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisLabelsCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor)}constructor(e){this.labels=e}},__.d.StiAxisTitleCoreXF3D=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisTitleCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.title.allowApplyStyle&&(this.title.color=e.core.axisTitleColor)}render(e,t,i){if(StiString.isNullOrEmpty(i.title.text))return null;let s=i.title.font.size*e.options.zoom,r=StiFontGeom.changeFontSize(i.title.font,s),n=this.getAngleTitle(i);return new __.d.StiAxisTitleGeom3D(i,t,n,r)}getAngleTitle(e){let t=0;switch(e.title.direction){case __.d.StiDirection.LeftToRight:t=0;break;case __.d.StiDirection.RightToLeft:t=180;break;case __.d.StiDirection.BottomToTop:t=-90;break;case __.d.StiDirection.TopToBottom:t=90;break}return t}constructor(e){this.title=e}},__.d.StiXAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{getAxisRect(e,t,i,s,r,n){let l=SizeF.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(e,null);if(0==o.length)l=new SizeF(0,0);else for(let e of o){if(e.clientSize.isEmpty)continue;l=l.isEmpty?e.clientSize:new SizeF(Math.max(l.width,e.clientSize.width),Math.max(l.height,e.clientSize.height))}return l}measureStripLines(S,d){let m=[],c=this.axis.labels.width,g=this.axis.labels.wordWrap;if(null!=this.axis.info.labelsCollection)for(let u of this.axis.info.labelsCollection){let e=u[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStripPositionXF);if(null==e.stripLine.valueObject)continue;let i=this.getLabelText2(e.stripLine.valueObject,e.stripLine.value,null),t=(!g&&0<c&&(i=__.d.StiTextContentHelper.getMeasureText(S,i,this.axis.labels.font,c)),e.position),s=S.getGenericStringFormat(),r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*S.options.zoom),n=-this.axis.labels.angle,l=0==n?StiRotationMode.CenterTop:StiRotationMode.RightTop,o=null;if(null!=d){let e=d;o=new __.d.StiPoint3D(t,e.y,e.front)}let a;if(0<this.axis.labels.width){let e=Math.floor(this.axis.labels.width*S.options.zoom),t=S.measureRotatedString2(i,r,new Rectangle,s,l,n,e);a=new SizeF(t.width,t.height)}else{let e=S.measureRotatedString2(i,r,new Rectangle,s,l,n);a=new SizeF(e.width,e.height)}if(0!=n&&null!=o){let e=new Point(o.x,o.y),t=S.measureRotatedString4(i,r,e,s,l,n);a=new SizeF(t.width,t.height)}let h=new __.d.StiAxisLabelInfoXF3D;h.clientSize=a,h.rotationMode=l,h.textPoint=o,h.text=i,h.stripLine=e.stripLine,h.angle=n,h.width=this.axis.labels.width,h.wordWrap=this.axis.labels.wordWrap,m.push(h)}return m}getLabelText(e,t){return this.getLabelText2(e.valueObject,e.value,t)}getLabelText2(i,e,s){null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let r=this.axis.area.chart.report.culture;try{StiString.isNullOrEmpty(this.axis.area.chart.report.culture)||(CultureInfo.currentCulture=CultureInfo.cultures[r]);let t="";if(null!=(t=null!=(t=null!=s?s.format:t)&&0!=t.trim().length?t:this.axis.labels.format)&&0!=t.trim().length){if("string"==typeof i){let e=Stimulsoft.System.StiNumber.tryParse(i);if(e.successfully)i=e.result;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,i,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+t+"}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}render3D(e,t,i){if(!this.axis.visible)return null;let s=new __.d.StiXAxisGeom3D(t,i);return this.renderLabels(e,t,s,i),s}renderLabels(t,i,s,r){{let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,t.clientSize,t.textPoint,t.text,t.stripLine,t.rotationMode,t.angle,t.width,t.wordWrap,r);s.childGeoms.push(e)}}}constructor(e){super(e)}},__.d.StiYAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{getAxisRect(e,t,i,s,r,n){let l=SizeF.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(e,null);if(0==o.length)l=new SizeF(0,0);else for(let e of o){if(e.clientSize.isEmpty)continue;l=l.isEmpty?e.clientSize:new SizeF(Math.max(l.width,e.clientSize.width),Math.max(l.height,e.clientSize.height))}return l}measureStripLines(u,S){let d=[],m=Math.floor(this.axis.labels.width*u.options.zoom),c=this.axis.labels.wordWrap;if(null!=this.axis.info.labelsCollection)for(let h of this.axis.info.labelsCollection){let i=this.getLabelText(h.stripLine),t=(!c&&0<m&&(i=__.d.StiTextContentHelper.getMeasureText(u,i,this.axis.labels.font,m)),h.position),s=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*u.options.zoom),r=Stimulsoft.Base.Drawing.StiRotationMode.RightCenter,n=-this.axis.labels.angle,l=u.getGenericStringFormat(),o=null;if(null!=S){let e=S;o=new __.d.StiPoint3D(e.x,t,e.front)}let a;if(0<this.axis.labels.width){let e=u.measureRotatedString2(i,s,new Rectangle,l,r,n,m);a=new SizeF(e.width,e.height)}else{let e=u.measureRotatedString2(i,s,new Rectangle,l,r,n);a=new SizeF(e.width,e.height)}if(0!=n&&null!=o){let e=new Point(o.x,o.y),t=u.measureRotatedString4(i,s,e,l,r,n);a=new SizeF(t.width,t.height)}let e=new __.d.StiAxisLabelInfoXF3D;e.clientSize=a,e.rotationMode=r,e.textPoint=o,e.text=i,e.stripLine=h.stripLine,e.angle=n,e.width=a.width,e.wordWrap=this.axis.labels.wordWrap,d.push(e)}return d}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.abs(Math.trunc(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}getLabelText(e){let t=e.valueObject;null==t&&(t="");try{if(null!=this.axis.labels.formatService){if(this.setTotalNumberCapacity(),t instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(t)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+t+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e.value)+this.axis.labels.textAfter}if(null!=this.axis.labels.format&&0!=this.axis.labels.format.trim().length){this.storedCulture=CultureInfo.currentCulture;let e=this.axis.area.chart.report.culture;StiString.isNullOrEmpty(this.axis.area.chart.report.culture)||(CultureInfo.currentCulture=CultureInfo.cultures[e]);try{if("string"==typeof t&&(t=t[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),!__.d.StiChartOptions.oldChartPercentMode&&this.axis.labels.format.startsWith("P")){let e=0;return 1<this.axis.labels.format.length&&(e=parseInt(this.axis.labels.format[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1))),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,t,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+this.axis.labels.format+"}{2}",this.axis.labels.textBefore,t,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,t,this.axis.labels.textAfter)}catch(e){}return t.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}render3D(e,t,i){if(!this.axis.visible)return null;let s=new __.d.StiYAxisGeom3D(t,i);return this.renderLabels(e,t,s,i),s}renderLabels(t,i,s,l){{let e=this.measureStripLines(t,i),r=Rectangle.empty,n=[];for(let s of e)if(!s.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,s.clientSize,s.textPoint,s.text,s.stripLine,s.rotationMode,s.angle,s.width,s.wordWrap,l),t=!1,i=e.measureCientRect();(t=r==Rectangle.empty?(r=i,!0):!r.intersectsWith(i))&&(n.push(s),r=i)}for(let t of n)if(!t.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,t.clientSize,t.textPoint,t.text,t.stripLine,t.rotationMode,t.angle,t.width,t.wordWrap,l);s.createChildGeoms(),s.childGeoms.push(e)}}}constructor(e){super(e)}},__.d.StiZAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{render3D(e,t,i){return null}constructor(e){super(e)}};{class f6b{get rows(){var e;return null!=(e=this.grid.length)?e:0}get columns(){var e;return null!=(e=this.grid[0].length)?e:0}static deepCopy(e){return e.map(e=>e.slice())}getByIndex(e,t){return this.grid[e][t]}setByIndex(e,t,i){this.grid[e][t]=i}static multiply(l,o){let e=l.columns,t=l.rows,a=new f6b(StiArray.create2(Number,t,e));for(let n=0;n<a.rows;++n)for(let r=0;r<a.columns;++r)for(let s=0;s<l.columns;++s){let e=l.getByIndex(n,s),t=o.getByIndex(s,r),i=a.getByIndex(n,r);a.setByIndex(n,r,i+e*t)}return new f6b(a)}constructor(e){Array.isArray(e)?this.grid=f6b.deepCopy(e):this.grid=f6b.deepCopy(e.grid)}}__.d.StiMatrix=f6b}__.d.StiVector3=class{constructor(e,t,i){this.x=e,this.y=t,this.z=i}},__.d.StiVector4=class extends __.d.StiVector3{constructor(e,t,i,s){super(e,t,i),this.w=s}},__.d.StiSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF{renderSeries3D(e,t,i,s,r,n){return null}getSeriesColor(e,t,i){return null}constructor(e){super(e)}};{class S6b extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.color=t,this.series.borderColor=e.core.getColumnBorder(t))}get localizedName(){return"3D "+StiLocalization.get("Chart","ClusteredColumn")}renderSeries3D(e,t,i,s,r,n){if(null==n||0==n.length||null==this.series.chart)return;this.render(e,t,i,s,r,n)}render(u,S,e,t,i,s){let d=new List,r=t.area,m=r,c=0,g=m.axisCore.valuesCount*s.length,p=s[i];if(null==p)return;let _=0,f=0;if(p.columnShape==__.d.StiColumnShape3D.PartialPyramid)for(let e of s)_=Math.max(_,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max()),f=Math.min(f,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min());let C=m.xAxis.info.step*p.width,w=m.zAxis.info.step*p.length,b=this.measureZPosition(m,s.length-i-1)+m.zAxis.info.step*(1-p.length)/2;for(let h=0;h<m.axisCore.valuesCount;h++){let a=S6b.measureXPosition(m,h,C);if(h<p.values.length){let s=p.values[h],i=this.getSeriesColor(c,g,p.color),r=(i=p.processSeriesColors(c,i),p.core.getSeriesBorderColor(c,g)),n=S6b.getColumnRect3D(p,s,a,C,b,w),l=null;if(p.columnShape==__.d.StiColumnShape3D.Box)l=new __.d.StiBoxSeriesElementGeom3D(n,s,h,p,i,r,u);else if(p.columnShape==__.d.StiColumnShape3D.PartialPyramid){let e=0<s?_:f,t=S6b.getColumnRect3D(p,e,a,C,b,w);l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,n,s,h,p,i,r,u)}else l=new __.d.StiPyramidSeriesElementGeom3D(n,s,h,p,i,r,u);null!=p.core.interaction&&(l.interaction=this.getInteraction(m,p,h)),t.createChildGeoms(),t.childGeoms.push(l);let o=p.core.getSeriesLabels();if(null!=o&&o.visible){let e=h+1,t=m.axisCore.getArgumentLabel(m.xAxis.info.stripLines.getByIndex(e),p),i=o.core.renderLabel3D(u,this.series,S,n,h,s,s,t,p.core.getTag(h),0,c,g);null!=i&&d.add(i)}}c++}for(let e of d)t.createChildGeoms(),t.childGeoms.push(e)}renderSideBySide(p,_,e,t,i){let f=new List,s=t.area,C=s,w=0,b=C.axisCore.valuesCount*i.length,r=0;for(let e of i)r+=C.xAxis.info.step/i.length*e.width;for(let g=0;g<C.axisCore.valuesCount;g++)for(let e=0;e<i.length;e++){let a=i[e],h=0,u=0;if(a.columnShape==__.d.StiColumnShape3D.PartialPyramid)for(let e of i)h=Math.max(h,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max()),u=Math.min(u,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min());let S=C.zAxis.info.step*a.length,d=C.xAxis.info.step/i.length*a.width,m=C.zAxis.info.step*(1-a.length)/2,c=this.measureLeftPosition(s,g,r);for(let t=0;t<e;t++){let e=i[t].width;c+=C.xAxis.info.step/i.length*e}if(g<a.values.length){let s=a.values[g],i=this.getSeriesColor(w,b,a.color),r=(i=a.processSeriesColors(w,i),a.core.getSeriesBorderColor(w,b)),n=S6b.getColumnRect3D(a,s,c,d,m,S),l=null;if(a.columnShape==__.d.StiColumnShape3D.Box)l=new __.d.StiBoxSeriesElementGeom3D(n,s,g,a,i,r,p);else if(a.columnShape==__.d.StiColumnShape3D.PartialPyramid){let e=0<s?h:u,t=S6b.getColumnRect3D(a,e,c,d,m,S);l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,n,s,g,a,i,r,p)}else l=new __.d.StiPyramidSeriesElementGeom3D(n,s,g,a,i,r,p);null!=a.core.interaction&&(l.interaction=this.getInteraction(C,a,g)),t.createChildGeoms(),t.childGeoms.push(l);let o=a.core.getSeriesLabels();if(null!=o&&o.visible){let e=g+1,t=C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(e),a),i=o.core.renderLabel3D(p,this.series,_,n,g,s,s,t,a.core.getTag(g),0,w,b);null!=i&&f.add(i)}}w++}for(let e of f)t.createChildGeoms(),t.childGeoms.push(e)}measureLeftPosition(e,t,i){let s=e.xAxis.info.stripPositions[t+1],r=(s-=e.xAxis.info.step/2)+(e.xAxis.info.step-i)/2;return r}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}static measureXPosition(e,t,i){let s=e.xAxis.info.stripPositions[t+1];return s-=i/2}measureZPosition(e,t){return e.zAxis.info.stripPositions[t]}static getColumnRect3D(e,t,i,s,r,n){let l=e.chart.area,o=l.axisCore.getDividerY(),a=t*l.yAxis.info.dpi,h=new __.d.StiRectangle3D;return h.x=i,h.y=o,h.z=r,h.width=n,h.height=a,h.length=s,h}constructor(e){super(e)}}__.d.StiClusteredColumnSeriesCoreXF3D=S6b}__.d.StiLineSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.lineColor=t)}get localizedName(){return"3D "+StiLocalization.get("Chart","Line")}renderSeries3D(m,l,e,c,t,i){let s=c.area;if(null==i||0==i.length||null==this.series.chart)return;let g=s,p=0,_=g.axisCore.valuesCount*i.length,f=i[t];if(null==f)return;let C=g.xAxis.info.step*f.width,w=this.measureZPosition(g,i.length-t-1)+g.zAxis.info.step*(1-f.width)/2;for(let d=0;d<g.axisCore.valuesCount;d++){if(f.values.length-1<d)continue;let S=f.values[d];if(d<f.values.length-1){let e=g.axisCore.getDividerY(),t=f.lineColor,i=f.core.getSeriesBorderColor(p,_),s=f.values[d+1],r=this.measureXPosition(g,d),n=S*g.yAxis.info.dpi,l=new __.d.StiPoint3D(r,e+n,w),o=new __.d.StiPoint3D(r,e+n,w-C),a=(r=this.measureXPosition(g,d+1),n=s*g.yAxis.info.dpi,new __.d.StiPoint3D(r,e+n,w-C)),h=new __.d.StiPoint3D(r,e+n,w),u=new __.d.StiLineSeriesGeom3D(l,o,a,h,t,i,m);c.createChildGeoms(),c.childGeoms.push(u)}let n=f.core.getSeriesLabels();if(null!=n&&n.visible){let e=this.measureXPosition(g,d),t=__.d.StiClusteredColumnSeriesCoreXF3D.getColumnRect3D(f,S,e,0,w-C/2,0),i=d+1,s=g.axisCore.getArgumentLabel(g.xAxis.info.stripLines[i],f),r=n.core.renderLabel3D(m,this.series,l,t,d,S,S,s,f.core.getTag(d),0,p,_);null!=r&&(c.createChildGeoms(),c.childGeoms.push(r))}}}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}measureXPosition(e,t){return e.xAxis.info.stripPositions[t+1]}measureZPosition(e,t){return e.zAxis.info.stripPositions[t]}constructor(e){super(e)}},__.d.StiStackedColumnSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.color=t,i.borderColor=e.core.getColumnBorder(t))}get localizedName(){return"3D"+StiLocalization.get("Chart","StackedColumn")}renderSeries3D(C,w,e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;let b=[],r=t.area,y=r,n=s[0],x=n.columnShape!=__.d.StiColumnShape3D.Box,A=y.zAxis.info.step*n.length,L=y.xAxis.info.step*n.width,T=y.zAxis.info.step*(1-n.length)/2,D=y.yAxis.info.dpi,v=StiArray.create2(Number,y.axisCore.valuesCount,s.length),l=0;for(let t=0;t<s.length;t++)for(let e=0;e<s[t].values.length;e++)v[e][t]=l,l++;let F=l,B=!1;for(let i=0;i<y.axisCore.valuesCount;i++){for(let e=0;e<s.length;e++){let t=s[e];if(i<t.values.length){let e=t.values[i];if(e<0){B=!0;break}}}if(B)break}for(let f=0;f<y.axisCore.valuesCount;f++){let S=__.d.StiClusteredColumnSeriesCoreXF3D.measureXPosition(y,f,L),d=0,m=0,c=[],g=[],p=0,_=0;for(let e=0;e<s.length;e++){let t=s[e];if(f<t.values.length){let e=t.values[f];0<e?p+=e:_+=e}}for(let u=0;u<s.length;u++){let a=y.axisCore.getDividerY(),h=s[u];if(f<h.values.length){let t=v[f][u],i=h.values[f];if(this.series.is(__.d.IStiFullStackedColumnSeries3D)&&(0!=p||0!=_)&&null!=i){let e=B?.5:1;D=0<=i?e/p:e/Math.abs(_)}let e=i*D,s=(a+=0<i?d:m,new __.d.StiRectangle3D),r=(s.x=S,s.y=a,s.z=T,s.width=A,s.height=e,s.length=L,this.getSeriesColor(t,F,h.color)),n=(r=h.processSeriesColors(t,r),h.core.getSeriesBorderColor(t,F)),l=null;if(x){let e=0<i?p*D:_*D,t=new __.d.StiRectangle3D;t.x=S,t.y=y.axisCore.getDividerY(),t.z=T,t.width=A,t.height=e,t.length=L,l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,s,i,f,h,r,n,C)}else l=new __.d.StiBoxSeriesElementGeom3D(s,i,f,h,r,n,C);null!=h.core.interaction&&(l.interaction=this.getInteraction(y,h,f));let o=h.core.getSeriesLabels();if(null!=o&&o.visible){let e=o.core.renderLabel3D(C,this.series,w,s,f,i,i,"",h.core.getTag(f),0,t,F);null!=e&&b.push(e)}(0<i?c:g).push(l),0<i?d+=e:m+=e}}g.reverse();for(let t=0;t<g.length;t++){let e=g[t];e.is(__.d.IStiDrawSidesGeom3D)&&(e.drawLeft=!1,e.drawBack=!1,e.drawTop=0==t,e.drawBottom=0==c.length&&t==g.length-1)}for(let t=0;t<c.length;t++){let e=c[t];e.is(__.d.IStiDrawSidesGeom3D)&&(e.drawLeft=!1,e.drawBack=!1,e.drawBottom=0==g.length&&0==t,e.drawTop=t==c.length-1)}for(let e of g)t.createChildGeoms(),t.childGeoms.push(e);for(let e of c)t.createChildGeoms(),t.childGeoms.push(e)}for(let e of b)t.createChildGeoms(),t.childGeoms.push(e)}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}constructor(e){super(e)}},__.d.StiFullStackedColumnSeriesCoreXF3D=class extends __.d.StiStackedColumnSeriesCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","FullStackedColumn")}constructor(e){super(e)}},__.d.StiAxisSeriesLabelsCoreXF3D=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Axis}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){return null}constructor(e){super(e)}},__.d.StiCenterAxisLabelsCoreXF3D=class extends __.d.StiAxisSeriesLabelsCoreXF3D{get position(){return __.d.StiSeriesLabelsPosition.CenterAxis}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){null==n&&(n=0);let d=this.getLabelText(t,l=null==l?0:l,o,a,t.coreTitle,!1),m=this.getLabelColor(t,u,S),c=this.getBorderColor(t,u,S),g=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*i.options.zoom),p=t.core.getSeriesBorderColor(u,S),_=t.core.getSeriesBrush(u,S),f=this.processSeriesColors(r,this.seriesLabels.brush,t),C=this.getPointLabel(s);return new __.d.StiCenterAxisLabelsGeom3D(this.seriesLabels,t,r,n,d,m,c,_,f,p,g,C,e)}getPointLabel(e){return new __.d.StiPoint3D(e.x+e.length/2,e.y+e.height/2,e.front)}constructor(e){super(e)}},__.d.StiOutsideAxisLabelsCoreXF3D=class extends __.d.StiCenterAxisLabelsCoreXF3D{get position(){return __.d.StiSeriesLabelsPosition.OutsideAxis}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){null==n&&(n=0);let d=this.getLabelText(t,l=null==l?0:l,o,a,t.coreTitle,!1),m=this.getLabelColor(t,u,S),c=this.getBorderColor(t,u,S),g=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*i.options.zoom),
11
- p=t.core.getSeriesBorderColor(u,S),_=t.core.getSeriesBrush(u,S),f=this.processSeriesColors(r,this.seriesLabels.brush,t),C=this.getPointLabel2(s,n);return new __.d.StiOutsideAxisLabelsGeom3D(this.seriesLabels,t,r,n,d,m,c,_,f,p,g,C,e)}getPointLabel2(e,t){let i=0<t?e.height:-e.height;return new __.d.StiPoint3D(e.x+e.length/2,e.y+i,e.front)}constructor(e){super(e)}};let IStiColor=__.e.IStiColor,IStiBorderColor=__.e.IStiBorderColor;{class b9b extends __.d.StiCellGeom{static multiplyVertexes(r,n){let e=new __.d.StiMatrix(StiArray.create2(Number,r.rows,n.columns));for(let s=0;s<r.rows;s++)for(let i=0;i<n.columns;i++){let t=0;for(let e=0;e<r.columns;e++)t+=r.grid[s][e]*n.grid[e][i];e.setByIndex(s,i,t)}return e}normilizeVertixes(n){for(let r=0;r<n.rows;r++){let e=n.grid[r][0],t=n.grid[r][1],i=n.grid[r][2],s=n.grid[r][3];n.grid[r][0]=e/s,n.grid[r][1]=t/s,n.grid[r][2]=i/s,n.grid[r][3]=s/s}return n}globalTransform(){if(this.isGlobalTransform)return;this.translate(new __.d.StiVector3(-.5,-.5,1)),this.rotateX(this.render.globalRotationX*Math.PI/180),this.rotateY(this.render.globalRotationY*Math.PI/180),this.scale(this.render.globalScale),this.isGlobalTransform=!0}getPoints(){this.globalTransform();let s=this.screenProjection(),r=new List;for(let i=0;i<s.rows;i++){let e=s.grid[i][0],t=s.grid[i][1];r.add(this.getPointN(e,t))}return r}draw(e){if(null==this.vertexes)return;this.globalTransform();let t=this.screenProjection();this.drawElements(e,t)}measureCientRect(){this.globalTransform();let s=this.screenProjection(),r=new List;for(let i=0;i<s.rows;i++){let e=s.grid[i][0],t=s.grid[i][1];r.add(new PointF(e,t))}return this.getClientRectangle(r)}getClientRectangle(t){let i=0,s=0,r=0,n=0,l=!0;for(let e of t)l?(i=e.x,s=e.y,r=e.x,r=e.y,l=!1):(i=Math.min(i,e.x),s=Math.min(s,e.y),r=Math.max(r,e.x),n=Math.max(n,e.y));return new Rectangle(i,s,r-i,n-s)}screenProjection(){let e=b9b.multiplyVertexes(this.vertexes,this.render.camera.cameraMatrix());return e=b9b.multiplyVertexes(e,this.render.projection.projectionMatrix),e=this.normilizeVertixes(e),b9b.multiplyVertexes(e,this.render.projection.toScreenMatrix)}drawElements(n,t){n.pushSmoothingModeToAntiAlias();for(let r=0;r<this.faces.length;r++){let e=this.faces[r],s=this.getFacePolygonPoints(e,t);if(this.is(IStiColor)&&2<s.length){let e=new List,t=(e.add(new StiLinesSegmentGeom(s)),null==this.colorsFaces?this.color:this.colorsFaces[r]),i=null;this.is(__.d.StiSeriesElementGeom3D)&&(i=this.getInteractionData()),n.fillPath2(t,e,Rectangle.empty,i,this.getToolTip())}}this.drawBorder(n,t),n.popSmoothingMode()}getToolTip(){return null}drawBorder(i,s){let r=this.getBorderColor();if(null==r)return;for(let t=0;t<this.faces.length;t++){let e=this.faces[t];this.drawFaceBorder(i,s,e,r)}}drawFaceBorder(e,s,r,t){let n=new List;for(let i=0;i<r.length;i++){let e=r[i],t=this.getPoint(s,e);n.add(t)}n.add(n[0]),e.drawLines(new StiPenGeom(t,1),n)}getFacePolygonPoints(r,n){let l=new List;for(let s=0;s<r.length;s++){let e=r[s],t=n.grid[e][0],i=n.grid[e][1];l.add(this.getPointN(t,i))}return l}getBorderColor(){var e;if(this.is(IStiBorderColor)&&null!=this.borderColor&&0!=(null==(e=this.borderColor)?void 0:e.a))return 10<this.borderColor.a?this.borderColor:Color.white;return null}getPoint(e,t){let i=e.grid[t][0],s=e.grid[t][1];return this.getPointN(i,s)}getPointN(e,t){let i=e*this.render.contextScale-this.render.contextTranslate.x,s=t*this.render.contextScale-this.render.contextTranslate.y;return new PointF(i,s)}translate(e){let t=__.d.StiMatrixHelper.translate(e.x,e.y,e.z);this.vertexes=b9b.multiplyVertexes(this.vertexes,t)}scale(e){let t=__.d.StiMatrixHelper.scale(e);this.vertexes=b9b.multiplyVertexes(this.vertexes,t)}rotateX(e){let t=__.d.StiMatrixHelper.rotateX(e);this.vertexes=b9b.multiplyVertexes(this.vertexes,t)}rotateY(e){let t=__.d.StiMatrixHelper.rotateY(e);this.vertexes=b9b.multiplyVertexes(this.vertexes,t)}rotateZ(e){let t=__.d.StiMatrixHelper.rotateZ(e);this.vertexes=b9b.multiplyVertexes(this.vertexes,t)}constructor(e){super(Rectangle.empty),this.drawEdges=!0,this.render=e}}__.d.StiGeom3D=b9b}__.d.StiLineGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=new StiPenGeom(this.color,1),s=(i.penStyle=this.penStyle,i.thickness=this.lineWidth,this.getPointN(t.grid[0][0],t.grid[0][1])),r=this.getPointN(t.grid[1][0],t.grid[1][1]);e.pushSmoothingModeToAntiAlias(),e.drawLine(i,s.x,s.y,r.x,r.y),e.popSmoothingMode()}constructor(e,t,i,s,r,n){super(n),this.color=i,this.penStyle=r,this.lineWidth=s,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1]])}},__.d.StiPlaneGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiColor]);return(this.implements=()=>e)()}constructor(e,t,i,s,r,n){super(n),this.color=r,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1],[i.x,i.y,i.z,1],[s.x,s.y,s.z,1]]),this.faces=new List,this.faces.add([0,1,2,3]),this.colorsFaces=[r]}};let StiStringFormatGeom=Stimulsoft.Base.Context.StiStringFormatGeom,StringFormat=Stimulsoft.System.Drawing.StringFormat;__.d.StiTextGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=new Rectangle;l.x=n.x-i.width/2,l.y=n.y-i.height/2,l.width=i.width,l.height=i.height,this.drawText(e,l)}drawText(e,t){let i=new StiSolidBrush(this.color),s=this.getStringFormat();e.drawRotatedString6(this.text,this.font,i,t,s,this.mode,this.angle,!0,t.width)}getStringFormat(){let e=new StringFormat;switch(e.trimming=StringTrimming.None,e.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,this.mode){case StiRotationMode.CenterCenter:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.LeftCenter:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.RightCenter:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.CenterTop:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.CenterBottom:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Far;break;case StiRotationMode.RightTop:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.LeftTop:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.LeftBottom:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Far;break;case StiRotationMode.RightBottom:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Far;break}let t=new StiStringFormatGeom(e);return t.isGeneric=!0,t}getLabelRect(e){return e.measureString(this.text,this.font)}constructor(e,t,i,s,r,n,l){super(l),this.text=e,this.font=t,this.color=i,this.mode=s,this.angle=r,this.vertexes=new __.d.StiMatrix([[n.x,n.y,n.z,1]])}},__.d.StiAreaGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiColor]);return(this.implements=()=>e)()}constructor(e){super(e)}},__.d.StiAxisAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e){super(e)}},__.d.StiAxisAreaViewGeom3D=class extends __.d.StiAreaGeom{draw(e){}drawGeom(e){super.drawGeom(e)}drawChildGeoms(t){if(null!=this.childGeoms){let e=this.clientRectangle.clone();e.x=0,e.y=0,t.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let e of this.childGeoms)this.allowChildDrawing(e)&&e.drawGeom(t);t.popTransform()}}constructor(e,t,i){super(e,t),this.render=i}},__.d.StiXYAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[0,t,0,1],[e,t,0,1],[e,0,0,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiXZAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[e,0,0,1],[e,0,-t,1],[0,0,-t,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiZYAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[0,t,0,1],[0,t,-e,1],[0,0,-e,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiAxisLabelGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=t.grid[0][0],s=t.grid[0][1],r=this.getPointN(i,s),n=this.axis.core.getFontGeom(e),l=this.axis.core.getStringFormatGeom(e,this.wordWrap),o=new StiSolidBrush(this.axis.labels.color),a=this.width*e.options.zoom;e.drawRotatedString9(this.text,n,o,r,l,this.rotationMode,this.angle,!0,a)}measureCientRect(){this.globalTransform();let e=this.screenProjection(),t=e.grid[0][0],i=e.grid[0][1],s=this.getPointN(t,i);return new Rectangle(s.x,s.y,this.clientSize.width,this.clientSize.height)}constructor(e,t,i,s,r,n,l,o,a,h){super(h),this.axis=e,this.clientSize=t,this.text=s,this.stripLine=r,this.rotationMode=n,this.angle=l,this.width=o,this.wordWrap=a;let u=i,S=this.getPointN(u.x,u.y);this.clientRectangle=new Rectangle(S.x,S.y,t.width,t.height),this.vertexes=new __.d.StiMatrix([[u.x,u.y,u.z,1]])}},__.d.StiAxisTitleGeom3D=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.axis.title.color),i=e.getDefaultStringFormat();e.drawRotatedString5(this.axis.title.text,this.font,t,this.clientRectangle,i,StiRotationMode.CenterCenter,this.angle,!0)}constructor(e,t,i,s){super(t),this.axis=e,this.angle=i,this.font=s}},__.d.StiXAxisGeom3D=class extends __.d.StiGeom3D{constructor(e,t){super(t)}},__.d.StiYAxisGeom3D=class extends __.d.StiGeom3D{constructor(e,t){super(t)}},__.d.StiLegendColumnMarker3D=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(r,n,l,o,a,e){try{let e=n,t=n.core.getSeriesColor(o,a,e.color),i=(t=n.processSeriesColors(o,t),new StiSolidBrush(t)),s=new StiPenGeom(n.core.getSeriesBorderColor(o,a));null!=n.chart&&null!=n.chart.style&&n.chart.style.core.fillColumn(r,l,i,null),r.drawRectangle2(s,l.x,l.y,l.width,l.height)}catch(e){}}},__.d.StiLegendLineMarker3D=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(s,r,n,l,o,e){try{let e=r,t=new StiSolidBrush(r.processSeriesColors(l,e.lineColor)),i=new StiPenGeom(r.core.getSeriesBorderColor(l,o));null!=r.chart&&null!=r.chart.style&&r.chart.style.core.fillColumn(s,n,t,null),s.drawRectangle2(i,n.x,n.y,n.width,n.height)}catch(e){}}},__.d.StiSeriesElementGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([__.d.IStiSeriesElement]);return(this.implements=()=>e)()}getInteractionData(){let e=this.series.chart,t=new StiInteractionDataGeom;return t.componentName=e.name,t.componentIndex=null!=e.page?e.page.components.indexOf(e).toString():"",t.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",t.pageIndex=null!=e.page?e.page.report.renderedPages.indexOf(e.page).toString():"",t.elementIndex=this.elementIndex.toString(),t.interactionData=this.interaction,t}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getToolTip(){let e=this.getValueIndex();return this.getToolTip2(e)}getToolTip2(e){let t=null;return null!=this.series.toolTips&&e<this.series.toolTips.length&&(t=this.series.toolTips[e]),t=!StiString.isNullOrEmpty(t)&&t.includes('"StiColor":"#ffffff"')?t.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(this.seriesColor,!1))):t}constructor(e,t,i,s,r){super(e),this.series=s,this.value=t,this.index=i,this.seriesColor=r}},__.d.StiBoxSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor,__.d.IStiDrawSidesGeom3D]);return(this.implements=()=>e)()}get backFace(){return[4,5,6,7]}get leftFace(){return[0,4,5,1]}get bottomFace(){return[0,3,7,4]}get topFace(){return[1,2,6,5]}get rightFace(){return[2,3,7,6]}get frontFace(){return[0,1,2,3]}get columnRect3D(){return this._columnRect3D}set columnRect3D(e){this._columnRect3D=e,this.setVertexes(e)}get drawLeft(){return this._drawLeft}set drawLeft(e){this._drawLeft=e,this.buildFaces(),this.buildColorFaces()}get drawBack(){return this._drawBack}set drawBack(e){this._drawBack=e,this.buildFaces(),this.buildColorFaces()}get drawTop(){return this._drawTop}set drawTop(e){this._drawTop=e,this.buildFaces(),this.buildColorFaces()}get drawBottom(){return this._drawBottom}set drawBottom(e){this._drawBottom=e,this.buildFaces(),this.buildColorFaces()}setVertexes(e){this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z+e.width,1],[e.x,e.y+e.height,e.z+e.width,1],[e.x+e.length,e.y+e.height,e.z+e.width,1],[e.x+e.length,e.y,e.z+e.width,1],[e.x,e.y,e.z,1],[e.x,e.y+e.height,e.z,1],[e.x+e.length,e.y+e.height,e.z,1],[e.x+e.length,e.y,e.z,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}buildFaces(){let e=new List;e.add(this.rightFace),e.add(this.frontFace),this.drawTop&&e.insert(0,this.topFace),this.drawBottom&&e.insert(0,this.bottomFace),this.drawBack&&e.insert(0,this.backFace),this.drawLeft&&e.insert(0,this.leftFace),this.faces=e}buildColorFaces(){let e=[];e.push(StiColorUtils.changeDarkness(this.color,.4)),e.push(this.color),this.drawTop&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBottom&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBack&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawLeft&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.colorsFaces=e}getFacePolygonPoints(r,n){let l=new List;if(this.isTopFace(r)&&!this.isDrawTopFace(n))return l;if(this.isBottomFace(r)&&!this.isDrawBottomFace(n))return l;for(let s=0;s<r.length;s++){let e=r[s],t=n.grid[e][0],i=n.grid[e][1];l.add(this.getPointN(t,i))}return l}isTopFace(t){if(t.length!=this.topFace.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!=this.topFace[e])return!1;return!0}isBottomFace(t){if(t.length!=this.bottomFace.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!=this.bottomFace[e])return!1;return!0}isDrawTopFace(e){let t=this.getPoint(e,1),i=this.getPoint(e,5);return 0<this.columnRect3D.height?t.y>i.y:t.y<i.y}isDrawBottomFace(e){let t=this.getPoint(e,0),i=this.getPoint(e,4);return 0<this.columnRect3D.height?t.y<i.y:t.y>i.y}constructor(e,t,i,s,r,n,l){super(l,t,i,s,r),this._drawLeft=!0,this._drawBack=!0,this._drawTop=!0,this._drawBottom=!0,this.columnRect3D=e,this.color=r,this.borderColor=n,this.buildFaces(),this.buildColorFaces()}},__.d.StiLineSeriesGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor]);return(this.implements=()=>e)()}constructor(e,t,i,s,r,n,l){super(l),this.color=r,this.borderColor=n,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1],[i.x,i.y,i.z,1],[s.x,s.y,s.z,1]]),this.faces=new List,this.faces.insert(0,[0,1,2,3]);let o=e.y>=i.y?r:StiColorUtils.changeDarkness(r,.4);this.colorsFaces=[o]}},__.d.StiPartialPyramidSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor,__.d.IStiDrawSidesGeom3D]);return(this.implements=()=>e)()}get backFace(){return[4,5,6,7]}get leftFace(){return[0,4,5,1]}get bottomFace(){return[0,3,7,4]}get topFace(){return[1,2,6,5]}get rightFace(){return[2,3,7,6]}get frontFace(){return[0,1,2,3]}get drawLeft(){return this._drawLeft}set drawLeft(e){this._drawLeft=e,this.buildFaces(),this.buildColorFaces()}get drawBack(){return this._drawBack}set drawBack(e){this._drawBack=e,this.buildFaces(),this.buildColorFaces()}get drawTop(){return this._drawTop}set drawTop(e){this._drawTop=e,this.buildFaces(),this.buildColorFaces()}get drawBottom(){return this._drawBottom}set drawBottom(e){this._drawBottom=e,this.buildFaces(),this.buildColorFaces()}setVertexes(e,t){let i=e.height/(t.y-e.y),s=e.height/(t.top-e.y),r=t.length/s/2,n=e.width/s/2,l=t.length/i/2,o=e.width/i/2;this.vertexes=new __.d.StiMatrix([[e.x+l,t.y,e.z+e.width-o,1],[e.x+r,t.y+t.height,e.z+e.width-n,1],[e.x+e.length-r,t.y+t.height,e.z+e.width-n,1],[e.x+e.length-l,t.y,e.z+e.width-o,1],[e.x+l,t.y,e.z+o,1],[e.x+r,t.y+t.height,e.z+n,1],[e.x+e.length-r,t.y+t.height,e.z+n,1],[e.x+e.length-l,t.y,e.z+o,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}buildFaces(){let e=new List;e.add(this.rightFace),e.add(this.frontFace),this.drawTop&&e.insert(0,this.topFace),this.drawBottom&&e.insert(0,this.bottomFace),this.drawBack&&e.insert(0,this.backFace),this.drawLeft&&e.insert(0,this.leftFace),this.faces=e}buildColorFaces(){let e=[];e.push(StiColorUtils.changeDarkness(this.color,.4)),e.push(this.color),this.drawTop&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBottom&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBack&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawLeft&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.colorsFaces=e}constructor(e,t,i,s,r,n,l,o){super(o,i,s,r,n),this._drawLeft=!0,this._drawBack=!0,this._drawTop=!0,this._drawBottom=!0,this.rect3D=e,this.partialRect3D=t,this.setVertexes(e,t),this.color=n,this.borderColor=l,this.buildFaces(),this.buildColorFaces()}},__.d.StiPyramidSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor]);return(this.implements=()=>e)()}get columnRect3D(){return this._columnRect3D}set columnRect3D(e){this._columnRect3D=e,this.setVertexes(e)}get backFace(){return[3,1,4]}get leftFace(){return[0,1,3]}get bottomFace(){return[0,3,4,2]}get rightFace(){return[2,1,4]}get frontFace(){return[0,1,2]}setVertexes(e){this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z+e.width,1],[e.x+e.length/2,e.y+e.height,e.z+e.width/2,1],[e.x+e.length,e.y,e.z+e.width,1],[e.x,e.y,e.z,1],[e.x+e.length,e.y,e.z,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}constructor(e,t,i,s,r,n,l){super(l,t,i,s,r),this.columnRect3D=e,this.color=r,this.borderColor=n,this.faces=new List,this.faces.add(this.backFace),this.faces.add(this.leftFace),this.faces.add(this.bottomFace),this.faces.add(this.rightFace),this.faces.add(this.frontFace),this.colorsFaces=[StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),r]}},__.d.StiSeriesLabelsGeom3D=class extends __.d.StiGeom3D{constructor(e,t,i,s,r){super(r),this.seriesLabels=e,this.series=t,this.index=i,this.value=s}},__.d.StiCenterAxisLabelsGeom3D=class extends __.d.StiSeriesLabelsGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=new Rectangle(n.x-i.width/2,n.y-i.height/2,i.width,i.height);this.drawLabelArea(e,l),this.drawLabelText(e,l)}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle2(i,t.x,t.y,t.width,t.height)}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.getFormatGeom(e);e.drawRotatedString6(this.text,s,i,t,r,StiRotationMode.CenterCenter,this.seriesLabels.angle,!0,t.width)}getFormatGeom(e){let t=this.seriesLabels.core.getStringFormatGeom(e);return this.seriesLabels.wordWrap&&(t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center),t}getLabelRect(e){let t=this.seriesLabels.width*e.options.zoom;if(this.seriesLabels.wordWrap)return e.measureString2(this.text,this.font,t,this.getFormatGeom(e));let i=e.measureString(this.text,this.font);return new SizeF(t,i.height)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,d),this.text=r,this.labelColor=n,this.labelBorderColor=l,this.seriesBrush=o,this.seriesLabelsBrush=a,this.seriesBorderColor=h,this.font=u,this.vertexes=new __.d.StiMatrix([[S.x,S.y,S.z,1]])}},__.d.StiOutsideAxisLabelsGeom3D=class extends __.d.StiCenterAxisLabelsGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=0<this.value?-i.height-4:i.height+4,o=new Rectangle(n.x-i.width/2,n.y+l,i.width,i.height);this.drawLabelArea(e,o),this.drawLabelText(e,o)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r,n,l,o,a,h,u,S,d)}},__.d.StiMatrixHelper=class{static translate(e,t,i){return new __.d.StiMatrix([[1,0,0,0],[0,1,0,0],[0,0,1,0],[e,t,i,1]])}static scale(e){return new __.d.StiMatrix([[e,0,0,0],[0,e,0,0],[0,0,e,0],[0,0,0,1]])}static rotateX(e){return new __.d.StiMatrix([[1,0,0,0],[0,Math.cos(e),Math.sin(e),0],[0,-Math.sin(e),Math.cos(e),0],[0,0,0,1]])}static rotateY(e){return new __.d.StiMatrix([[Math.cos(e),0,-Math.sin(e),0],[0,1,0,0],[Math.sin(e),0,Math.cos(e),0],[0,0,0,1]])}static rotateZ(e){return new __.d.StiMatrix([[Math.cos(e),Math.sin(e),0,0],[-Math.sin(e),Math.cos(e),0,0],[0,0,1,0],[0,0,0,1]])}},__.d.StiPoint3D=class{constructor(e,t,i){this.x=e,this.y=t,this.z=i}},__.d.StiRectangle3D=class{constructor(){this.x=0,this.y=0,this.z=0,this.length=0,this.height=0,this.width=0}get right(){return this.x+this.length}get front(){return this.z+this.width}get top(){return this.y+this.height}};{class Qpb extends StiService{constructor(){super(...arguments),this.chart=null,this._allowApplyStyle=!0}implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartAreas.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}static loadAreaFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return null!=this.core&&(e.core=this.core.clone(),e.core.area=e),e}toString(){return this.serviceName}getDefaultSeriesType(){return null}getSeriesTypes(){return null}getDefaultSeriesLabelsType(){return null}getSeriesLabelsTypes(){return null}get serviceCategory(){return"Chart"}get serviceType(){return Qpb}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}}__.d.StiArea3D=Qpb}__.d.StiAxisArea3D=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,__.d.IStiAxisArea3D,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_").set(e=>{this._interlacingHor.loadFromJsonObject(e.value),this._interlacingHor.needSetAreaJsonPropertyInternal&&(this._interlacingHor.needSetAreaJsonPropertyInternal=!1,this._interlacingHor.area=this)}).setXml(e=>{this._interlacingHor.loadFromXml(e),this._interlacingHor.area=this}),new StiObjectMeta("InterlacingVert","_").set(e=>{this._interlacingVert.loadFromJsonObject(e.value),this._interlacingVert.needSetAreaJsonPropertyInternal&&(this._interlacingVert.needSetAreaJsonPropertyInternal=!1,this._interlacingVert.area=this)}).setXml(e=>{this._interlacingVert.loadFromXml(e),this._interlacingVert.area=this}),new StiObjectMeta("GridLinesHor","_").set(e=>{this._gridLinesHor.loadFromJsonObject(e.value),this._gridLinesHor.needSetAreaJsonPropertyInternal&&(this._gridLinesHor.needSetAreaJsonPropertyInternal=!1,this._gridLinesHor.area=this)}).setXml(e=>{this._gridLinesHor.loadFromXml(e),this._gridLinesHor.area=this}),new StiObjectMeta("GridLinesVert","_").set(e=>{this._gridLinesVert.loadFromJsonObject(e.value),this._gridLinesVert.needSetAreaJsonPropertyInternal&&(this._gridLinesVert.needSetAreaJsonPropertyInternal=!1,this._gridLinesVert.area=this)}).setXml(e=>{this._gridLinesVert.loadFromXml(e),this._gridLinesVert.area=this}),new StiObjectMeta("YAxis","_"),new StiObjectMeta("XAxis","_"),new StiObjectMeta("ZAxis","_")]}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.xAxis=this.xAxis.clone(),e.yAxis=this.yAxis.clone(),e.zAxis=this.zAxis.clone(),e}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}get zAxis(){return this._zAxis}set zAxis(e){this._zAxis=e,null!=this._zAxis&&(this._zAxis.area=this)}get rotationX(){return this._rotationX}set rotationX(e){this._rotationX=e<-60?-60:0<e?0:e}get rotationY(){return this._rotationY}set rotationY(e){this._rotationY=e<10?10:60<e?60:e}get axisCore(){return this.core}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}getDefaultSeriesLabelsType(){return __.d.StiCenterAxisLabels3D}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels3D,__.d.StiOutsideAxisLabels3D]}constructor(){super(),this._rotationX=0,this._rotationY=20,this.scale=20,this.cameraX=3,this.cameraY=3,this.cameraZ=-80,this.nearPlane=.1,this.xAxis=new __.d.StiXAxis3D,this.yAxis=new __.d.StiYAxis3D,this.zAxis=new __.d.StiZAxis3D,this.gridLinesHor=new __.d.StiGridLinesHor,this.gridLinesVert=new __.d.StiGridLinesVert,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert}},__.d.StiClusteredColumnArea3D=class extends __.d.StiAxisArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("SideBySide","",!1,!0)]}get sideBySide(){return this._sideBySide}set sideBySide(e){this._sideBySide=e}getDefaultSeriesType(){return __.d.StiClusteredColumnSeries3D}getSeriesTypes(){return[__.d.StiClusteredColumnSeries3D]}constructor(){super(),this._sideBySide=!0,this.core=new __.d.StiClusteredColumnAreaCoreXF3D(this)}},__.d.StiLineArea3D=class extends __.d.StiClusteredColumnArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiLineArea3D,__.d.IStiClusteredColumnArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("SideBySide","",!1,!0).set(e=>{this.sideBySide=!1}).setXml(e=>{this.sideBySide=!1})]}get sideBySide(){return!1}set sideBySide(e){}getDefaultSeriesType(){return __.d.StiLineSeries3D}getSeriesTypes(){return[__.d.StiLineSeries3D]}constructor(){super(),this.core=new __.d.StiLineAreaCoreXF3D(this)}},__.d.StiStackedColumnArea3D=class extends __.d.StiAxisArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnArea3D,__.d.IStiAxisArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedColumnSeries3D}getSeriesTypes(){return[__.d.StiStackedColumnSeries3D]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels3D]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF3D(this)}},__.d.StiFullStackedColumnArea3D=class extends __.d.StiStackedColumnArea3D{implements(){let e=super.implements().concat([__.d.StiArea3D,__.d.IStiAxisArea3D,__.d.IStiFullStackedColumnArea3D,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedColumnSeries3D}getSeriesTypes(){return[__.d.StiFullStackedColumnSeries3D]}constructor(){super(),this.core=new __.d.StiFullStackedColumnAreaCoreXF3D(this)}},__.d.StiAxis3D=class{constructor(){this._allowApplyStyle=!0,this.info=new __.d.StiAxisInfoXF3D,this.labels=new __.d.StiAxisLabels3D,this.lineColor=Color.gray,this.visible=!0}implements(){let e=[IStiJsonReportObject,__.d.IStiAxis3D,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiObjectMeta("Labels"),new StiObjectMeta("Title"),new StiBoolMeta("Visible","",!0),new StiColorMeta("LineColor","",Color.gray)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.labels=this.labels.clone(),e.title=this.title.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get title(){return null==this._title&&(this._title=new __.d.StiAxisTitle3D,this.is(__.d.StiXAxis3D)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYAxis3D)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title}set title(e){null==this._title&&(this._title=new __.d.StiAxisTitle3D,this.is(__.d.StiXAxis3D)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYAxis3D)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title=e}};let IStiFont=__.e.IStiFont,StiDirection=(__.d.StiAxisLabels3D=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisLabels3D,IStiFont,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.Font=this.font.clone(),null!=this.core&&(e.Core=this.core.clone(),e.Core.Labels=e),e}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiFontMeta("Font","","Tahoma",8),new StiColorMeta("Color","",Color.black),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiNumberMeta("Angle"),new StiNumberMeta("Width"),new StiBoolMeta("WordWrap")]}constructor(e="",t="",i="",s=new Font("Tahoma",8),r=Color.black,n=!0,l=0,o=0,a=!1){this.allowApplyStyle=!0,this.format="",this.font=new Font("Tahoma",8),this.color=Color.black,this.textBefore="",this.textAfter="",this.angle=0,this.width=0,this.wordWrap=!1,this.format=e,this.textBefore=t,this.textAfter=i,this.font=s,this.color=r,this.allowApplyStyle=n,this.angle=l,this.width=o,this.wordWrap=a,this.core=new __.d.StiAxisLabelsCoreXF3D(this)}},__.d.StiDirection);__.d.StiAxisTitle3D=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisTitle3D,IStiFont,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.direction=this.direction,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.title=e),e}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiFontMeta("Font","","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.black),new StiEnumMeta("Direction","",StiDirection,StiDirection.LeftToRight)]}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=Color.black,s=StiDirection.LeftToRight,r=!0){this.allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.color=Color.black,this.direction=StiDirection.LeftToRight,this.font=e,this.text=t,this.color=i,this.direction=s,this.allowApplyStyle=r,this.core=new __.d.StiAxisTitleCoreXF3D(this)}},__.d.StiXAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxis3D,__.d.IStiXAxis3D,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowEdgeValues")]}get propName(){return""}constructor(){super(),this.showEdgeValues=!1,this.core=new __.d.StiXAxisCoreXF3D(this)}},__.d.StiYAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis3D,ICloneable]);return(this.implements=()=>e)()}get propName(){return""}constructor(){super(),this.core=new __.d.StiYAxisCoreXF3D(this)}},__.d.StiZAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiZAxis3D,ICloneable]);return(this.implements=()=>e)()}get propName(){return""}constructor(){super(),this.core=new __.d.StiZAxisCoreXF3D(this)}},__.d.StiSeries3D=class extends __.d.StiSeries{},__.d.StiBaseLineSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.darkGray)]}constructor(){super(),this.lineColor=Color.black,this.seriesLabels=new __.d.StiOutsideAxisLabels3D}},__.d.StiClusteredColumnSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D,IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiNumberMeta("Length","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("Color","",Color.darkGray),new StiEnumMeta("ColumnShape","",__.d.StiColumnShape3D)]}get length(){return this._length}set length(e){.01<=e&&e<=1&&(this._length=e)}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiClusteredColumnArea3D}constructor(){super(),this._length=.9,this._width=.9,this.borderColor=Color.gray,this.color=Color.darkGray,this.columnShape=__.d.StiColumnShape3D.Box,this.seriesLabels=new __.d.StiOutsideAxisLabels3D,this.core=new __.d.StiClusteredColumnSeriesCoreXF3D(this)}},__.d.StiLineSeries3D=class extends __.d.StiBaseLineSeries3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,__.d.IStiLineSeries3D]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiLineArea3D}constructor(){super(),this.width=.8,this.seriesLabels=new __.d.StiOutsideAxisLabels3D,this.core=new __.d.StiLineSeriesCoreXF3D(this)}},__.d.StiStackedColumnSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([__.d.IStiStackedColumnSeries3D,__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D,IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiNumberMeta("Length","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("Color","",Color.darkGray),new StiEnumMeta("ColumnShape","",__.d.StiColumnShape3D)]}get length(){return this._length}set length(e){.01<=e&&e<=1&&(this._length=e)}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea3D}constructor(){super(),this._length=.9,this._width=.9,this.borderColor=Color.gray,this.color=Color.darkGray,this.columnShape=__.d.StiColumnShape3D.Box,this.core=new __.d.StiStackedColumnSeriesCoreXF3D(this)}},__.d.StiFullStackedColumnSeries3D=class extends __.d.StiStackedColumnSeries3D{implements(){let e=super.implements().concat([__.d.IStiFullStackedColumnSeries3D,__.d.IStiStackedColumnSeries3D,__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea3D}constructor(){super(),this.core=new __.d.StiFullStackedColumnSeriesCoreXF3D(this)}},__.d.StiAxisSeriesLabels3D=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterAxisLabels3D=class extends __.d.StiAxisSeriesLabels3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterAxisLabelsCoreXF3D(this)}},__.d.StiOutsideAxisLabels3D=class extends __.d.StiAxisSeriesLabels3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideAxisLabelsCoreXF3D(this)}};{class Drb{static run(s,r){if(void 0===s)return void Drb.run(Stimulsoft,"Stimulsoft");if("Stimulsoft.ExternalLibrary"==r||"Stimulsoft.Blockly"==r||"Stimulsoft.Report.StiOptions"==r||"Stimulsoft.StiOptions"==r)return;r=r.replace("Stimulsoft.System","System");for(let i in s){let e=s[i],t=typeof e;"function"==t?(e.ssTypeName=i,e.ssNamespace=r):"object"==t&&Drb.run(e,r+`.`+i)}}}__.b.StiTypesHelper=Drb}__.b.StiTypesHelper.run();export{Stimulsoft};
8
+ `;throw new Exception(t,e)}return null}static getFilterResult(t,e,i,s,r,n,l,o,a){if(t.item==StiFilterItem.Expression)return a[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();let h=null;switch(t.item){case StiFilterItem.Argument:h=e;break;case StiFilterItem.Value:h=i;break;case StiFilterItem.ValueEnd:h=s;break;case StiFilterItem.ValueOpen:h=r;break;case StiFilterItem.ValueClose:h=n;break;case StiFilterItem.ValueLow:h=l;break;case StiFilterItem.ValueHigh:h=o;break}let u=!1;if(null!=h){if(t.dataType==StiFilterDataType.Numeric){let t=h[Stimulsoft.System.StiObject.stimulsoft]().as(String);if(null!=t){let e=StiNumber.tryParse(t);e.successfully&&(h=e.result)}}else if(t.dataType==StiFilterDataType.DateTime){let e=DateTime.fromString(h.toString(),!1);h=null!=e?e:DateTime.fromOADate(h[Stimulsoft.System.StiObject.stimulsoft]().toNumber())}let e=h;if(null!=e&&null!=a){h[Stimulsoft.System.StiObject.stimulsoft]().getType()!=a[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(h=h.toString(),a=a.toString(),e=h);try{switch(t.condition){case StiFilterCondition.EqualTo:return 0==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.NotEqualTo:return 0!=e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.GreaterThan:return 1==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.GreaterThanOrEqualTo:return 0<=e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.LessThan:return-1==e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a);case StiFilterCondition.LessThanOrEqualTo:return e[Stimulsoft.System.StiObject.stimulsoft]().compareTo(a)<=0;case StiFilterCondition.Containing:{let e=h.toString(),t=a.toString();return-1!=e.indexOf(t)}case StiFilterCondition.NotContaining:{let e=h.toString(),t=a.toString();return-1==e.indexOf(t)}case StiFilterCondition.BeginningWith:{let e=h.toString(),t=a.toString();return e.startsWith(t)}case StiFilterCondition.EndingWith:{let e=h.toString(),t=a.toString();return e.endsWith(t)}}}catch(e){}}}return u}static convertStringToColor(i){if(!StiString.isNullOrEmpty(i))try{return StiReportObjectStringConverter.convertStringToColor(i)}catch(e){let t=`Can't get color from '${i}'`;throw __.a.StiLogService.write(StiChartHelper,`ConvertStringToColor `+t),new Exception(t,e)}return null}static createChart(o,x){let A=new Hashtable,L=!1,T=0;while(T<x.series.count){let C=x.series.getByIndex(T),e=(this.setTitle(o,T,C),C.valuesStart=[],C.values=this.checkValueNaN(this.getValues(o,C)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiGanttSeries)),t=(null!=e&&(e.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,e,e.valueDataColumnEnd,e.invokeGetListOfValuesEnd,e.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeSeries)),i=(null!=t&&(t.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,t,t.valueDataColumnEnd,t.invokeGetListOfValuesEnd,t.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedRangeSeries)),s=(null!=i&&(i.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,i,i.valueDataColumnEnd,i.invokeGetListOfValuesEnd,i.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeBarSeries)),r=(null!=s&&(s.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,s,s.valueDataColumnEnd,s.invokeGetListOfValuesEnd,s.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineRangeSeries)),n=(null!=r&&(r.valuesEnd=this.checkValueNaN(this.getValuesEnd(o,r,r.valueDataColumnEnd,r.invokeGetListOfValuesEnd,r.invokeGetValueEnd))),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCandlestickSeries)),p=(null!=n&&(n.valuesHigh=this.getValuesHigh(o,n),n.valuesLow=this.getValuesLow(o,n),n.valuesClose=this.getValuesClose(o,n),n.valuesOpen=this.getValuesOpen(o,n)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiHeatmapSeries)),w=(null!=p&&(p.xValues=this.getXValues(o,p),p.yValues=this.getYValues(o,p)),x.series.getByIndex(T)[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiBubbleSeries)),l=(null!=w&&(w.weights=this.getWeights(o,w)),C[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPieSeries));if(null!=l&&this.setCutPieList(o,l),o.cacheValues(!0),C.arguments=this.getArguments(o,C),C.tags=this.getTags(o,C),C.hyperlinks=this.getHyperlinks(o,C),C.toolTips=this.getToolTips(o,C),this.checkParetoValues(C),C.is(__.d.StiHistogramSeries)){let e=C.chart.area.xAxis.labels.formatService;__.d.StiHistogramHelper.checkValuesAndArguments(C,e)}o.cacheValues(!1);let b=this.getAutoSeriesKeysFromAutoSeriesKeyDataColumn(o,C),_=this.getAutoSeriesTitleFromAutoSeriesTitleDataColumn(o,C),y=this.getAutoSeriesColorFromautoSeriesColorDataColumn(o,C);if(C.sortBy!=__.d.StiSeriesSortType.None||0<C.filters.count||0<b.length){let e=(C.values.length>C.arguments.length?C.values:C.arguments).length,f=[];for(let g=0;g<e;g++){let e=C.values.length>g?C.values[g]:0,t=C.arguments.length>g?C.arguments[g]:null,i=b.length>g?b[g]:null,s=_.length>g?_[g]:null,r=y.length>g?y[g]:null,n=C.tags.length>g?C.tags[g]:0,l=null,o=(C.is(__.d.IStiRangeSeries)&&(l=C.valuesEnd.length>g?C.valuesEnd[g]:0),null),a=null,h=null,u=null,S=(C.is(__.d.IStiFinancialSeries)&&(o=C.valuesOpen.length>g?C.valuesOpen[g]:0,a=C.valuesClose.length>g?C.valuesClose[g]:0,h=C.valuesLow.length>g?C.valuesLow[g]:0,u=C.valuesHigh.length>g?C.valuesHigh[g]:0),null),d=(null!=w&&(S=w.weights.length>g?w.weights[g]:0),null),m=null,c=(null!=p&&(d=p.xValues.length>g?p.xValues[g]:g,m=p.yValues.length>g?p.yValues[g]:g),C.toolTips.length>g?C.toolTips[g]:"");f.push(new __.d.StiDataItem(g,t,e,l,d,m,S,o,a,h,u,s,i,r,c,n))}let r=new Hashtable,i=0;for(let t of C.filters.list){let e=`${x.name}Filters_${T}_`+i;r.set(t,this.getFilterData(x.report,t,e)),i++}let n=[],l=null,o=null;if(0<C.filters.count){try{l=StiDataColumn.getDataSourceFromDataColumn(x.report.dictionary,C.valueDataColumn)}catch(e){}if(null==l)try{l=StiDataColumn.getDataSourceFromDataColumn(x.report.dictionary,C.argumentDataColumn)}catch(e){}null==l&&(l=x.dataSource);try{o=StiDataColumn.getBusinessObjectFromDataColumn(x.report.dictionary,C.valueDataColumn)}catch(e){}if(null==o)try{o=StiDataColumn.getBusinessObjectFromDataColumn(x.report.dictionary,C.argumentDataColumn)}catch(e){}null==o&&(o=x.businessObject)}null!=l&&(l.saveState("ChartFilter"),l.first()),null!=o&&(o.saveState("ChartFilter"),o.createEnumerator());for(let e of f){let i=StiArray.create(Boolean,C.filters.count),s=0;for(let t of C.filters.list){if(i[s]=this.getFilterResult(t,e.argument,e.value,e.valueEnd,e.valueOpen,e.valueClose,e.valueLow,e.valueHigh,r.get(t)),t.item==StiFilterItem.Expression){let e=`${x.name}Filters_${T}_`+s;try{i[s]=this.getFilterData(x.report,t,e)[Stimulsoft.System.StiObject.stimulsoft]().toBoolean()}catch(e){}}s++}let t=!0;if(C.filterMode==StiFilterMode.And){for(let e of i)if(!e){t=!1;break}}else{t=!1;for(let e of i)if(e){t=!0;break}}t&&n.push(e),null!=l&&l.next(),null!=o&&o.next()}if(null!=l&&l.restoreState("ChartFilter"),null!=o&&o.restoreState("ChartFilter"),f=n,C.sortBy!=__.d.StiSeriesSortType.None){let e=new __.d.StiDataItemComparer(C.sortBy,C.sortDirection);f[Stimulsoft.System.StiObject.stimulsoft]().sort2(e)}if(this.fillSeriesData(C,f),0<b.length){let n=new Hashtable,d=null;if(null!=C.arguments&&0<C.arguments.length){let i=[],s=new Hashtable({ignoreCase:!1,checkType:!0});for(let t of f){let e=t.argument;s.containsKey(e)||(i.push(e),s.add(e,null))}s.clear(),d=i.slice(),C.sortBy==__.d.StiSeriesSortType.Argument&&(StiArray.sort(d),C.sortDirection==__.d.StiSeriesSortDirection.Descending)&&StiArray.reverse(d)}else{let s=new Hashtable;for(let t of f){let e=s.get(t.key);null==e&&(e=[],s.set(t.key,e)),e.push(t)}let r=0;for(let i of s.values){r=Math.max(r,i.count);let t=0;for(let e of i)e.argument=t.toString(),n.set(e,t.toString()),t++}d=[];for(let e=0;e<r;e++)d[e]=e.toString()}let t=new Hashtable;for(let e of b)t.set(e,e);let m=t.keys.toArray(),e={ref:m},c=(this.sortArray(e),m=e.ref,StiArray.create2(__.d.StiDataItem,d.length,m.length)),l=new Hashtable({ignoreCase:!1,checkType:!0});for(let e=0;e<d.length;e++)l.set(d[e],e);let o=new Hashtable;for(let e=0;e<m.length;e++)o.set(m[e],e);let g=new Hashtable,p=new Hashtable;for(let r of f){let e=this.getKey(r.key),t=r.argument,i=(null!=C.arguments&&0!=C.arguments.length||(t=n.get(r)),o.get(e)),s=l.get(t);if(null!=r.title?g.set(e,r.title):g.set(e,r.key),p.set(e,r.color),null!=c[s][i])c[s][i].push(r);else{let e=[];e.push(r),c[s][i]=e}}let _=null;null!=w&&(_=w.clone());for(let S=0;S<m.length;S++){let e=m[S],r=null,t=(0==S?r=C:(r=C.clone(),x.series.insert(T+S,r)),r.coreTitle=g.get(e),p.get(e)),n=(A.set(r,t),[]),l=[],o=[],a=[],h=[],u=[];if(r.is(__.d.IStiScatterSeries)){let s=new List;for(let t=0;t<d.length;t++){let e=c[t][S];null!=e&&s.addRange(e)}for(let i of s=s.orderBy(e=>e.index).toList()){let e=null,t=r.is(__.d.IStiScatterSeries);if(null!=i&&"number"==typeof i.value&&(e=i.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),t=!1),null==i.argument)continue;n.push(e),t||o.push(i.argument),r.is(__.d.IStiRangeSeries)&&l.push(i.valueEnd[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=_&&a.push(i.weight[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=i.toolTip&&h.push(i.toolTip.toString()),null!=i.tag&&u.push(i.tag)}}else for(let s=0;s<d.length;s++){let e=c[s][S];if(null==e){if(r.is(__.d.IStiScatterSeries))continue;n.push(null),a.push(0),h.push(null),u.push(null),r.is(__.d.IStiRangeSeries)&&l.push(null),o.push(d[s])}else for(let i of e){let e=null,t=r.is(__.d.IStiScatterSeries);if(null!=i&&"number"==typeof i.value&&(e=i.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),t=!1),r.is(__.d.IStiScatterSeries)&&null==d[s])continue;n.push(e),t||o.push(d[s]),r.is(__.d.IStiRangeSeries)&&l.push(i.valueEnd[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=_&&a.push(i.weight[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),null!=i.toolTip&&h.push(i.toolTip.toString()),null!=i.tag&&u.push(i.tag)}}let i=n.slice(),s=(r.values=i,o.slice());if(r.arguments=s,r.is(__.d.IStiRangeSeries)){let e=l.slice();r.valuesEnd=e}if(r.is(__.d.StiBubbleSeries)){let e=a.slice();r.weights=e}r.toolTips=h,r.tags=u,this.checkArgumentsDateTimeStep(r),this.createTopN(r),r.filters=C.filters,L=!0}T+=m.length-1}else this.createTopN(C)}else this.checkArgumentsDateTimeStep(C),this.createTopN(C);T++}if(__.d.StiBoxAndWhiskerHelper.checkArgument(x),this.checkWaterfallTotals(x),Stimulsoft.StiOptions.Engine.allowInvokeProcessChartEventForTemplateOfChart&&x.invokeEvents(),L&&Stimulsoft.StiOptions.Engine.applyStylesInAutoSeries){x.series.applyStyle(x.style);let s=0;for(let i of x.series.list){let e=this.convertStringToColor(A.get(i)),t=new StiNewAutoSeriesEventArgs(s,i,null);null!=e&&(t.color=e),i.invokeNewAutoSeries(t),t.color instanceof Color&&i.core.applyStyle(x.style,t.color),s++}}}static getShorterListPoints(t){let i=[];for(let e=0;e<t.values.length;e++)i[e]=new PointD(t.values[e],e);let s=[.3,.6,1,5,9,15,20,25,30,40],r=[],n=[];for(let e=0;e<t.values.length;e++){if((r=__.d.StiSimplifyHelper.simplify(i,s[e],!0)).length/i.length<.02&&r.length<900&&null!=n){r=n;break}n=r}return r}static checkParetoValues(r){let e=r.as(__.d.StiParetoSeries);if(null!=e){let i=[],s=[];for(let t=0;t<r.values.length;t++){let e=r.values[t];0<e&&(i.push(e),null!=r.arguments&&t<r.arguments.length?s.push(r.arguments[t]):s.push(t+1))}e.values=i,e.arguments=s,e.valuesStart=[]}}static checkValueNaN(t){for(let e=0;e<t.length;e++)null!=t[e]&&isNaN(t[e])&&(t[e]=null);return t}static checkArgumentsDateTimeStep(_){let f=_.arguments;if(_.chart.area.is(__.d.StiAxisArea)){let c=_.chart.area.xAxis.dateTimeStep,g=c.step,p=c.numberOfValues;if(this.isArgumentsDateTime(f)&&g!=__.d.StiTimeDateStep.None){let o=StiArray.create(DateTime,f.length);for(let e=0;e<f.length;e++)o[e]=DateTime.fromString(f[e].toString());let a=this.maximumDate(o),e=this.minimumDate(o),t=(a=this.ceilDateTimeByStep(a,g),e=this.roundDateTimeByStep(e,g),StiMath.round2(this.getTotalTimeSpans(g,a,e))),h=[],u=[],S=e,i=this.getNextDate(e,g);for(let e=0;e<t;e++){let l=(i.toOADate()-S.toOADate())/p;for(let n=0;n<p;n++){let e=l*n;if(e>a.toOADate())continue;h.push(DateTime.fromOADate(S.toOADate()+e));let t=h[h.length-1],i=t,s=DateTime.fromOADate(t.toOADate()+l),r=this.getValueForDate(i,s,o,_.values,_);u.push(r)}S=i,i=this.getNextDate(i,g)}let s=StiArray.create(Object,h.length),r=StiArray.create(Number,u.length),n=(h[Stimulsoft.System.StiObject.stimulsoft]().copyTo(s),u[Stimulsoft.System.StiObject.stimulsoft]().copyTo(r),0),l=0,d=null,m=null;for(let e=0;e<r.length;e++){if(null!=r[e]&&null==d){n=e,d=r[e];continue}if(null!=r[e]&&null!=d){l=e,d=r[n],m=r[l];let t=(d-m)/(l-n);for(let e=n+1;e<l;e++)c.interpolation?r[e]=r[e-1]-t:r[e]=0;n=0,d=null,e--}}_.arguments=s,_.values=r}}}static ceilDateTimeByStep(e,t){switch(t){case __.d.StiTimeDateStep.Second:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,e.second).addSeconds(1);case __.d.StiTimeDateStep.Minute:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,0).addMinutes(1);case __.d.StiTimeDateStep.Hour:return new DateTime(e.year,e.month,e.day,e.hour,0,0).addHours(1);case __.d.StiTimeDateStep.Day:return new DateTime(e.year,e.month,e.day,0,0,0).addDays(1);case __.d.StiTimeDateStep.Month:return new DateTime(e.year,e.month,1,0,0,0).addMonths(1)}return e}static roundDateTimeByStep(e,t){switch(t){case __.d.StiTimeDateStep.Second:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,e.second);case __.d.StiTimeDateStep.Minute:return new DateTime(e.year,e.month,e.day,e.hour,e.minute,0);case __.d.StiTimeDateStep.Hour:return new DateTime(e.year,e.month,e.day,e.hour,0,0);case __.d.StiTimeDateStep.Day:return new DateTime(e.year,e.month,e.day,0,0,0);case __.d.StiTimeDateStep.Month:return new DateTime(e.year,e.month,1,0,0,0);case __.d.StiTimeDateStep.Year:return new DateTime(e.year,1,1,0,0,0);default:return e}}static checkWaterfallTotals(e){let l=0;for(let t of e.series.toCast()){let e=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiWaterfallSeries);null!=e&&(l=Math.max(l,e.values.length))}for(let n=0;n<e.series.count;n++){let r=e.series.list[n][Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiWaterfallSeries);if(null!=r){let t=[],i=[],s=0;for(let e=0;e<l;e++)0==n&&(e<r.arguments.length?t.push(r.arguments[e]):t.push(e)),r.values.length>e?(i.push(r.values[e]),s+=r.values[e]):i.push(null);r.total.visible&&i.push(s),0==n&&t.push(r.total.text),r.values=i,r.arguments=t,r.valuesStart=[]}}}static createTopN(e){if(e.topN.mode==__.d.StiTopNMode.None||e.values.length<=e.topN.count)return;let t=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiBubbleSeries);null!=t?this.createValuesWeightsTopN(t):this.createValuesTopN(e)}static createValuesTopN(t){let e=t.topN.count,i=t.values.slice(),s=[];for(let e=0;e<t.values.length;e++)s[e]=e;StiArray.sort3(i,s),t.topN.mode==__.d.StiTopNMode.Top&&(StiArray.reverse(i),StiArray.reverse(s));let r=StiArray.create(Number,e),n=StiArray.create(Number,e),l=(StiArray.copy(i,0,r,e),StiArray.copy(s,0,n,e),[]),o=[],a=0;for(let e=0;e<t.values.length;e++)this.findIndex(n,e)?(l.push(t.values[e]),e<t.arguments.length?o.push(t.arguments[e]):o.push(e)):a+=t.values[e];t.topN.showOthers&&(t.is(__.d.StiClusteredBarSeries)?(l[Stimulsoft.System.StiObject.stimulsoft]().insert(0,a),o[Stimulsoft.System.StiObject.stimulsoft]().insert(0,t.topN.othersText)):(l.push(a),o.push(t.topN.othersText)));let h=StiArray.create(Number,l.length),u=(l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(h),StiArray.create(Object,o.length));o[Stimulsoft.System.StiObject.stimulsoft]().copyTo(u),t.values=h,t.arguments=u}static createValuesWeightsTopN(t){let e=t.topN.count,i=t.weights.slice(),s=[];for(let e=0;e<t.weights.length;e++)s[e]=e;StiArray.sort3(i,s),t.topN.mode==__.d.StiTopNMode.Top&&(StiArray.reverse(i),StiArray.reverse(s));let r=StiArray.create(Number,e),n=StiArray.create(Number,e),l=(StiArray.copy(i,0,r,e),StiArray.copy(s,0,n,e),[]),o=[],a=[];for(let e=0;e<t.weights.length;e++)this.findIndex(n,e)&&(l.push(t.weights[e]),e<t.values.length&&o.push(t.values[e]),e<t.arguments.length)&&a.push(t.arguments[e]);let h=StiArray.create(Number,l.length),u=(l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(h),StiArray.create(Number,o.length)),S=(o[Stimulsoft.System.StiObject.stimulsoft]().copyTo(u),StiArray.create(Object,a.length));a[Stimulsoft.System.StiObject.stimulsoft]().copyTo(S),t.weights=h,t.values=u,t.arguments=S}static getNextDate(e,t){switch(t){case __.d.StiTimeDateStep.Second:return e.addSeconds(1);case __.d.StiTimeDateStep.Minute:return e.addMinutes(1);case __.d.StiTimeDateStep.Day:return e.addDays(1);case __.d.StiTimeDateStep.Hour:return e.addHours(1);case __.d.StiTimeDateStep.Month:return e.addMonths(1);case __.d.StiTimeDateStep.Year:return e.addYears(1)}return e}static getKey(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(!isNaN(t)&&e.split(",").join(".").split(".").length<=2)return t.toString();return e.toString()}static sortArray(e){let i=e.ref,s=[],r=[];for(let t=0;t<i.length;t++){let e=i[t][Stimulsoft.System.StiObject.stimulsoft]().toNumber();!isNaN(e)&&i[t].split(",").join(".").split(".").length<=2?s.push(e):r.push(i[t])}s.sort(),r.sort();let t=StiArray.create(String,i.length),n=0;for(let e of s)t[n]=e.toString(),n++;for(let e of r)t[n]=e,n++;i=t,e.ref=i}static findIndex(t,i){for(let e=0;e<t.length;e++)if(t[e]==i)return!0;return!1}static getValueForDate(t,i,s,r,e){var n;if(!s||!r||0===s.length)return null;let l=null,o=0,a=0,h=null,u=null;for(let e=0;e<s.length;e++){const S=s[e];if(S.toOADate()>=t.toOADate()&&(e<s.length&&S.toOADate()<i.toOADate()||e===s.length-1&&S.toOADate()<=i.toOADate())&&null!=r[e]){o++;const d=r[e];a+=d,(null===h||d<h)&&(h=d),(null===u||d>u)&&(u=d)}}if(0<o){const m=e.chart.area,c=null==(n=null==m?void 0:m.xAxis)?void 0:n.dateTimeStep;if(null!=c)switch(c.aggregation){case __.d.StiDateTimeStepAggregation.Sum:l=a;break;case __.d.StiDateTimeStepAggregation.Min:l=h;break;case __.d.StiDateTimeStepAggregation.Max:l=u;break;case __.d.StiDateTimeStepAggregation.Count:l=o;break;case __.d.StiDateTimeStepAggregation.Average:default:l=a/o;break}else l=a/o}return StiMath.round2(l,15)}static getTotalTimeSpans(e,t,i){let s=TimeSpan.fromTicks(t.ticks-i.ticks),r=0;switch(e){case __.d.StiTimeDateStep.Second:r=s.totalSeconds;break;case __.d.StiTimeDateStep.Minute:r=s.totalMinutes;break;case __.d.StiTimeDateStep.Hour:r=s.totalHours;break;case __.d.StiTimeDateStep.Day:r=s.totalDays;break;case __.d.StiTimeDateStep.Month:r=12*(t.year-i.year)+t.month-i.month;break;case __.d.StiTimeDateStep.Year:r=t.year-i.year;break}return r}static isArgumentsDateTime(e){if(0==e.length)return!1;for(let t of e){if(null==t)return!1;let e=t.toString();if(!DateTime.fromString(e,!1))return!1}return!0}static maximumDate(t){let i=null;for(let e of t){if(null==i){i=e;continue}e.toOADate2(!1)>i.toOADate2(!1)&&(i=e)}return i}static minimumDate(t){let i=null;for(let e of t){if(null==i){i=e;continue}e.toOADate2(!1)<i.toOADate2(!1)&&(i=e)}return i}static getAutoSeriesColorFromautoSeriesColorDataColumn(n,l){if(null!=l.autoSeriesColorDataColumn&&0<l.autoSeriesColorDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesColorDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesColorDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static getAutoSeriesTitleFromAutoSeriesTitleDataColumn(n,l){if(null!=l.autoSeriesTitleDataColumn&&0<l.autoSeriesTitleDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesTitleDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesTitleDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static getAutoSeriesKeysFromAutoSeriesKeyDataColumn(n,l){if(null!=l.autoSeriesKeyDataColumn&&0<l.autoSeriesKeyDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);e=null==e?"":e.toString(),i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.autoSeriesKeyDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.autoSeriesKeyDataColumn);e=null==e?"":e.toString(),i[t]=e,r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return[]}static setTitle(e,t,i){let s=new StiGetTitleEventArgs;s.series=i,s.index=t,i.invokeGetTitle(e,s),StiString.isNullOrEmpty(s.value)||(i.coreTitle=s.value)}static setCutPieList(e,t){let i=new StiGetValueEventArgs;t.invokeGetCutPieList(e,i),StiString.isNullOrEmpty(i.value)||(t.cutPieListValues=__.d.StiSeries.getValuesFromString(i.value))}static getArguments(e,t){let i=this.getArgumentsFromListOfArguments(e,t);if(null!=i)return i;if(null!=(i=this.getArgumentsFromArgumentDataColumn(e,t)))return i;if(null!=(i=this.getArgumentsFromArgumentExpression(e,t)))return i;return[]}static getArgumentsFromArgumentExpression(i,s){let r=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s.invokeGetArgument(i,e),r[t]=e.value,i.next()}return r}static getArgumentsFromArgumentDataColumn(s,r){if(null!=r.argumentDataColumn&&0<r.argumentDataColumn.trim().length){let e=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.argumentDataColumn);if(null!=e){e.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,e.count);e.first();for(let t=0;t<e.count;t++){try{i[t]=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.argumentDataColumn),null!=i&&i[t]instanceof DateTime&&(r.core.isDateTimeArguments=!0)}catch(e){i[t]=null}e.next()}return e.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.argumentDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn");let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.argumentDataColumn),t[e]instanceof DateTime&&(r.core.isDateTimeArguments=!0),i.next();return i.restoreState("ChartRender_DataColumn"),t}}return null}static getArgumentsFromListOfArguments(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfArguments(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getValues(e,t){let i=this.getValuesFromListOfValues(e,t);if(null!=i)return i;if(null!=(i=this.getValuesFromValueDataColumn(e,t)))return i;if(null!=(i=this.getValuesFromValueExpression(e,t)))return i;return[]}static getValuesFromValueExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValue(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesFromValueDataColumn(l,o){if(null!=o.valueDataColumn&&0<o.valueDataColumn.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumn),t=null;null!=(e=!o.is(__.d.StiGanttSeries)||null==e||e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))&&e instanceof DateTime?(t=e.toOADate2(!1),o.core.isDateTimeValues=!0):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumn),t=null;(e=e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesFromListOfValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValues(e,i,t),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesEnd(e,t,i,s,r){let n=this.getValuesEndFromListOfValuesEnd(e,t,s);if(null!=n)return n;if(null!=(n=this.getValuesEndFromValueDataColumnEnd(e,t,i)))return n;if(null!=(n=this.getValuesEndFromValueEndExpression(e,r,t)))return n;return[]}static getValuesEndFromValueEndExpression(i,s,r){let n=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s(i,e,r),n[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return n}static getValuesEndFromValueDataColumnEnd(l,o,a){if(null!=a&&0<a.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,a);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,a),t=null;(e=!o.is(__.d.StiGanttSeries)||null==e||e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,a);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,a),t=null;(e=e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)?e:DateTime.fromString(e.toString()))instanceof DateTime?(o.core.isDateTimeValues=!0,t=e.toOADate2(!1)):null!=e&&e!=DBNull.value&&(t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesEndFromListOfValuesEnd(e,t,i){let s=new StiGetValueEventArgs;if(i(e,s,t),null!=s.value&&0<s.value.length)return __.d.StiSeries.getNullableValuesFromString(t,s.value);return null}static getValuesOpen(e,t){let i=this.getValuesOpenFromListOfValuesOpen(e,t);if(null!=i)return i;if(null!=(i=this.getValuesOpenFromValueDataColumnOpen(e,t)))return i;if(null!=(i=this.getValuesOpenFromValuesOpenExpression(e,t)))return i;return[]}static getValuesOpenFromValuesOpenExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueOpen(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesOpenFromValueDataColumnOpen(l,o){if(null!=o.valueDataColumnOpen&&0<o.valueDataColumnOpen.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnOpen);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnOpen),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnOpen);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnOpen),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesOpenFromListOfValuesOpen(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesOpen(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesClose(e,t){let i=this.getValuesCloseFromListOfValuesClose(e,t);if(null!=i)return i;if(null!=(i=this.getValuesCloseFromValueDataColumnClose(e,t)))return i;if(null!=(i=this.getValuesCloseFromValuesCloseExpression(e,t)))return i;return[]}static getValuesCloseFromValuesCloseExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueClose(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesCloseFromValueDataColumnClose(l,o){if(null!=o.valueDataColumnClose&&0<o.valueDataColumnClose.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnClose);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnClose),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnClose);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnClose),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesCloseFromListOfValuesClose(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesClose(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesHigh(e,t){let i=this.getValuesHighFromListOfValuesHigh(e,t);if(null!=i)return i;if(null!=(i=this.getValuesHighFromValueDataColumnHigh(e,t)))return i;if(null!=(i=this.getValuesHighFromValuesHighExpression(e,t)))return i;return[]}static getValuesHighFromValuesHighExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueHigh(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesHighFromValueDataColumnHigh(l,o){if(null!=o.valueDataColumnHigh&&0<o.valueDataColumnHigh.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnHigh);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnHigh),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnHigh);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnHigh),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesHighFromListOfValuesHigh(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesHigh(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getValuesLow(e,t){let i=this.getValuesLowFromListOfValuesLow(e,t);if(null!=i)return i;if(null!=(i=this.getValuesLowFromValueDataColumnLow(e,t)))return i;if(null!=(i=this.getValuesLowFromValuesLowExpression(e,t)))return i;return[]}static getValuesLowFromValuesLowExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetValueLow(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getValuesLowFromValueDataColumnLow(l,o){if(null!=o.valueDataColumnLow&&0<o.valueDataColumnLow.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.valueDataColumnLow);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.valueDataColumnLow),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.valueDataColumnLow);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.valueDataColumnLow),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getValuesLowFromListOfValuesLow(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfValuesLow(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getWeights(e,t){let i=this.getWeightsFromListOfWeights(e,t);if(null!=i)return i;if(null!=(i=this.getWeightsFromWeightDataColumn(e,t)))return i;if(null!=(i=this.getWeightsWeightExpression(e,t)))return i;return[]}static getWeightsWeightExpression(i,s){let r=StiArray.create(Number,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiGetValueEventArgs;e.value="0",s.invokeGetWeight(i,e),r[t]=e.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),i.next()}return r}static getWeightsFromWeightDataColumn(l,o){if(null!=o.weightDataColumn&&0<o.weightDataColumn.trim().length){let r=StiDataColumn.getDataSourceFromDataColumn(l.report.dictionary,o.weightDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,r.count);r.first();for(let i=0;i<r.count;i++){let e=StiDataColumn.getDataFromDataColumn(l.report.dictionary,o.weightDataColumn),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,r.next()}return r.restoreState("ChartRender_DataColumn"),s}let n=StiDataColumn.getBusinessObjectFromDataColumn(l.report.dictionary,o.weightDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let s=StiArray.create(Number,n.count);n.first();for(let i=0;i<n.count;i++){let e=StiDataColumn.getDataFromBusinessObject(l.report.dictionary,o.weightDataColumn),t=(e instanceof DateTime||null==DateTime.fromString(e.toString(),!1)||(e=DateTime.fromString(e.toString())),0);t=e instanceof DateTime?(o.core.isDateTimeValues=!0,e.toOADate2(!1)):e[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),s[i]=t,n.next()}return n.restoreState("ChartRender_DataColumn"),s}}return null}static getWeightsFromListOfWeights(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfWeights(e,i,t),null!=i.value&&0<i.value.length)return __.d.StiSeries.getNullableValuesFromString(t,i.value);return null}static getXValues(e,t){let i=this.getXValuesFromListOfXValues(e,t);if(null!=i)return i;if(null!=(i=this.getXValuesFromXValueDataColumn(e,t)))return i;if(null!=(i=this.getXValuesFromXvalueExpression(e,t)))return i;return[]}static getXValuesFromXvalueExpression(i,e){let s=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s[t]=e.value,i.next()}return s}static getXValuesFromXValueDataColumn(s,r){if(null==r.xValuesDataColumn||r.xValuesDataColumn.trim().length<=0)return null;let n=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.xValuesDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,n.count);n.first();for(let t=0;t<n.count;t++){let e=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.xValuesDataColumn);i[t]=e,n.next()}return n.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.xValuesDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn"),i.createEnumerator(),i.specTotalsCalculation=!0;let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.xValuesDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}return null}static getXValuesFromListOfXValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfXValues(e,i),!StiString.isNullOrEmpty(i.value))return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getYValues(e,t){let i=this.getYValuesFromListOfYValues(e,t);if(null!=i)return i;if(null!=(i=this.getYValuesFromYValueDataColumn(e,t)))return i;if(null!=(i=this.getYValuesFromXvalueExpression(e,t)))return i;return[]}static getYValuesFromXvalueExpression(i,e){let s=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;s[t]=e.value,i.next()}return s}static getYValuesFromYValueDataColumn(s,r){if(null==r.yValuesDataColumn||r.yValuesDataColumn.trim().length<=0)return null;let n=StiDataColumn.getDataSourceFromDataColumn(s.report.dictionary,r.yValuesDataColumn);if(null!=n){n.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,n.count);n.first();for(let t=0;t<n.count;t++){let e=StiDataColumn.getDataFromDataColumn(s.report.dictionary,r.yValuesDataColumn);i[t]=e,n.next()}return n.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(s.report.dictionary,r.yValuesDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn"),i.createEnumerator(),i.specTotalsCalculation=!0;let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(s.report.dictionary,r.yValuesDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}return null}static getYValuesFromListOfYValues(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfYValues(e,i),!StiString.isNullOrEmpty(i.value))return __.d.StiSeries.getArgumentsFromString(i.value);return null}static getHyperlinks(e,t){let i=this.getHyperlinksFromListOfHyperlinks(e,t);if(null!=i)return i;if(null!=(i=this.getHyperlinksFromHyperlinkDataColumn(e,t)))return i;if(null!=(i=this.getHyperlinksFromHyperlinkExpression(e,t)))return i;return[]}static getHyperlinksFromHyperlinkExpression(i,s){let r=StiArray.create(String,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetHyperlink(i,e),null!=e.value&&(r[t]=e.value.toString()),i.next()}return r}static getHyperlinksFromHyperlinkDataColumn(n,l){if(null!=l.hyperlinkDataColumn&&0<l.hyperlinkDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);null!=e&&(i[t]=e.toString()),s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.hyperlinkDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.hyperlinkDataColumn);null!=e&&(i[t]=e.toString()),r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return null}static getHyperlinksFromListOfHyperlinks(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfHyperlinks(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getTags(e,t){let i=this.getTagsFromListOfTags(e,t);if(null!=i)return i;if(null!=(i=this.getTagsFromTagDataColumn(e,t)))return i;if(null!=(i=this.getTagsFromTagExpression(e,t)))return i;return[]}static getTagsFromTagExpression(i,s){let r=StiArray.create(Object,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetTag(i,e),r[t]=e.value,i.next()}return r}static getTagsFromTagDataColumn(r,n){if(null!=n.tagDataColumn&&0<n.tagDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(r.report.dictionary,n.tagDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(Object,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(r.report.dictionary,n.tagDataColumn);i[t]=e,s.next()}return s.restoreState("ChartRender_DataColumn"),i}let i=StiDataColumn.getBusinessObjectFromDataColumn(r.report.dictionary,n.tagDataColumn);if(null!=i){i.saveState("ChartRender_DataColumn");let t=StiArray.create(Object,i.count);i.first();for(let e=0;e<i.count;e++)t[e]=StiDataColumn.getDataFromBusinessObject(r.report.dictionary,n.tagDataColumn),i.next();return i.restoreState("ChartRender_DataColumn"),t}}return null}static getTagsFromListOfTags(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfTags(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getToolTips(e,t){let i=this.getToolTipsFromListOfToolTips(e,t);if(null!=i)return i;if(null!=(i=this.getToolTipsFromToolTipDataColumn(e,t)))return i;if(null!=(i=this.getToolTipsFromToolTipExpression(e,t)))return i;return[]}static getToolTipsFromToolTipExpression(i,s){let r=StiArray.create(String,i.count);i.first();for(let t=0;t<i.count;t++){let e=new StiValueEventArgs;e.value=null,s.invokeGetToolTip(i,e),null!=e.value&&(r[t]=e.value.toString()),i.next()}return r}static getToolTipsFromToolTipDataColumn(n,l){if(null!=l.toolTipDataColumn&&0<l.toolTipDataColumn.trim().length){let s=StiDataColumn.getDataSourceFromDataColumn(n.report.dictionary,l.toolTipDataColumn);if(null!=s){s.saveState("ChartRender_DataColumn");let i=StiArray.create(String,s.count);s.first();for(let t=0;t<s.count;t++){let e=StiDataColumn.getDataFromDataColumn(n.report.dictionary,l.toolTipDataColumn);null!=e&&(i[t]=e.toString()),s.next()}return s.restoreState("ChartRender_DataColumn"),i}let r=StiDataColumn.getBusinessObjectFromDataColumn(n.report.dictionary,l.toolTipDataColumn);if(null!=r){r.saveState("ChartRender_DataColumn");let i=StiArray.create(String,r.count);r.first();for(let t=0;t<r.count;t++){let e=StiDataColumn.getDataFromBusinessObject(n.report.dictionary,l.toolTipDataColumn);null!=e&&(i[t]=e.toString()),r.next()}return r.restoreState("ChartRender_DataColumn"),i}}return null}static getToolTipsFromListOfToolTips(e,t){let i=new StiGetValueEventArgs;if(t.invokeGetListOfToolTips(e,i),null!=i.value&&0<i.value.length)return __.d.StiSeries.getStringsFromString(i.value);return null}static getAnimationCompatibilitySeries(e,t){let i=StiChartHelper.getAnimationSeriesType(e),s=StiChartHelper.getAnimationSeriesType(t);if(i==__.d.StiSeriesAnimationType.None||s==__.d.StiSeriesAnimationType.None)return!1;return i==s}static getAnimationSeriesType(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().getType();if(t==__.d.StiClusteredColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiStackedColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiFullStackedColumnSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiRangeBarSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiHistogramSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiWaterfallSeries)return __.d.StiSeriesAnimationType.Column;if(t==__.d.StiLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiStackedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiFullStackedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiStackedSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiFullStackedSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiSteppedLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiScatterLineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiScatterSplineSeries)return __.d.StiSeriesAnimationType.Line;if(t==__.d.StiClusteredBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiStackedBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiFullStackedBarSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiGanttSeries)return __.d.StiSeriesAnimationType.Bar;if(t==__.d.StiAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiStackedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiFullStackedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiStackedSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiFullStackedSplineAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSteppedAreaSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiRangeSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSplineRangeSeries)return __.d.StiSeriesAnimationType.Range;if(t==__.d.StiSteppedRangeSeries)return __.d.StiSeriesAnimationType.Range;return __.d.StiSeriesAnimationType.None}}StiChartHelper.globalDurationElement=new TimeSpan(0,0,1),StiChartHelper.globalBeginTimeElement=new TimeSpan(0,0,1),__.d.StiChartHelper=StiChartHelper}let StiStringMeta=Stimulsoft.Base.Meta.StiStringMeta,StiMetaHelper=Stimulsoft.Base.Meta.StiMetaHelper,StiBrushMeta=Stimulsoft.Base.Meta.StiBrushMeta,StiColorMeta=Stimulsoft.Base.Meta.StiColorMeta,StiBoolMeta=Stimulsoft.Base.Meta.StiBoolMeta,IStiJsonReportObject=Stimulsoft.Base.JsonReportObject.IStiJsonReportObject,ICloneable=Stimulsoft.System.ICloneable,StiSolidBrush=Stimulsoft.Base.Drawing.StiSolidBrush,StiService=Stimulsoft.Base.Services.StiService,StiNumberMeta=Stimulsoft.Base.Meta.StiNumberMeta,StiActivator=Stimulsoft.Base.StiActivator;{class StiArea extends StiService{constructor(){super(...arguments),this.chart=null,this._allowApplyStyle=!0,this.colorEach=!1,this.showShadow=!1,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.white)}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ColorEach"),new StiBoolMeta("ShowShadow"),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","br"])]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartAreas.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}static loadAreaFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.area=e),e}toString(){return this.serviceName}getDefaultSeriesType(){return null}getSeriesTypes(){return null}getDefaultSeriesLabelsType(){return null}getSeriesLabelsTypes(){return null}get serviceCategory(){return"Chart"}get serviceType(){return StiArea}get isDefaultSeriesTypeFullStackedColumnSeries(){return this.getDefaultSeriesType()==__.d.StiFullStackedColumnSeries}get isDefaultSeriesTypeFullStackedBarSeries(){return this.getDefaultSeriesType()==__.d.StiFullStackedBarSeries}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}}__.d.StiArea=StiArea}let StiEnumMeta=Stimulsoft.Base.Meta.StiEnumMeta,StiObjectMeta=Stimulsoft.Base.Meta.StiObjectMeta,RectangleD=(__.d.StiRadarArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_"),new StiObjectMeta("InterlacingVert","_"),new StiObjectMeta("GridLinesHor","_"),new StiObjectMeta("GridLinesVert","_"),new StiObjectMeta("XAxis","_").set(e=>{this._xAxis.loadFromJsonObject(e.value),1==this._xAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea&&(this._xAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea=!1,this._xAxis.area=this)}).setXml(e=>{this._xAxis.loadFromXml(e),this._xAxis.area=this}),new StiObjectMeta("YAxis","_").set(e=>{this._yAxis.loadFromJsonObject(e.value),1==this._yAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea&&(this._yAxis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarAxis).jsonLoadFromJsonObjectArea=!1,this._yAxis.area=this)}).setXml(e=>{this._yAxis.loadFromXml(e),this._yAxis.area=this}),new StiEnumMeta("RadarStyle","",__.d.StiRadarStyle,__.d.StiRadarStyle.Circle)]}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.xAxis=this.xAxis.clone(),e.yAxis=this.yAxis.clone(),e}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiValueAxisLabels]}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}constructor(){super(),this.radarStyle=__.d.StiRadarStyle.Circle,this.xAxis=new __.d.StiXRadarAxis,this.yAxis=new __.d.StiYRadarAxis,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert,this.gridLinesHor=new __.d.StiRadarGridLinesHor,this.gridLinesVert=new __.d.StiRadarGridLinesVert}},Stimulsoft.System.Drawing.Rectangle),IStiSeriesElement=__.d.IStiSeriesElement,StiStringNullOrEmptyMeta=(__.d.StiChartCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.chart.style=e,this.chart.allowApplyStyle&&(this.chart.brush=e.core.chartBrush),null!=this.chart.title&&this.chart.title.core.applyStyle(e),null!=this.chart.area&&this.chart.area.core.applyStyle(e),null!=this.chart.legend&&this.chart.legend.core.applyStyle(e),null!=this.chart.seriesLabels&&this.chart.seriesLabels.core.applyStyle(e),null!=this.chart.series&&this.chart.series.applyStyle(e),null!=this.chart.constantLines&&this.chart.constantLines.applyStyle(e),null!=this.chart.strips&&this.chart.strips.applyStyle(e),null!=this.chart.table&&this.chart.table.core.applyStyle(e)}render(n,t,e){let l=new __.d.StiChartGeom(t);l.createChildGeoms();let r;if(e){let e=n.options.zoom;r=new RectangleD(t.x+this.chart.horSpacing*e,t.y+this.chart.vertSpacing*e,t.width-2*this.chart.horSpacing*e,t.height-2*this.chart.vertSpacing*e)}else r=t.clone();this.fullRectangle=r;let i=this.chart.title.core.render(n,this.chart.title,r);if(null!=i){switch(this.chart.title.dock){case __.d.StiChartTitleDock.Top:r.y+=i.clientRectangle.height,r.height-=i.clientRectangle.height;break;case __.d.StiChartTitleDock.Right:r.width-=i.clientRectangle.width;break;case __.d.StiChartTitleDock.Bottom:r.height-=i.clientRectangle.height;break;case __.d.StiChartTitleDock.Left:r.x+=i.clientRectangle.width,r.width-=i.clientRectangle.width;break}l.childGeoms.push(i)}let o=null,a=null,h=r.clone();if(null!=this.chart.legend&&(o=this.chart.area.core.render(n,h.clone()),null!=(a=this.chart.legend.core.render(n,o.clientRectangle.clone())))){let e=a.clientRectangle.clone(),t={ref:r},i={ref:h},s={ref:e};this.setLegendRect(n,this.chart,t,i,s),r=t.ref,e=s.ref,h=i.ref}let u=0,S=0,s=(this.chart.table.core.showTable()&&(o=this.chart.area.core.render(n,h.clone()),u=this.chart.table.core.getWidthCellLegend(n)+o.clientRectangle.width,S=this.chart.table.core.getHeightTable(n,u),h.height-=S),null!=this.chart.area&&null!=(o=this.chart.area.core.render(n,h.clone()))&&l.childGeoms.push(o),l.getSeriesElementGeoms());for(let t=0;t<s.length;t++){let e=s[t][Stimulsoft.System.StiObject.stimulsoft]().as(IStiSeriesElement);null!=e&&(e.elementIndex=t.toString())}if(this.chart.table.core.showTable()){let e=this.chart.series,r=this.chart.area;if(null!=e&&0<e.count){let e=h.x,t=(this.chart.table.core.getWidthCellLegend(n)<o.clientRectangle.x-h.x&&(e=o.clientRectangle.x-this.chart.table.core.getWidthCellLegend(n)),r.reverseHor&&r.yRightAxis.visible&&(e=o.clientRectangle.left),o.clientRectangle.bottom),i=(this.chart.table.chart.area.is(__.d.IStiClusteredBarArea)&&(t=h.bottom),new RectangleD(e,t,u,S)),s=this.chart.table.core.render(n,i);l.childGeoms.push(s)}}if(l.createChildGeoms(),null!=a){h=o.clientRectangle.clone();let e=a.clientRectangle.clone(),t={ref:r},i={ref:h},s={ref:e};this.setLegendRect(n,this.chart,t,i,s),r=t.ref,e=s.ref,h=i.ref,a.clientRectangle=e.clone(),l.childGeoms.push(a)}return l}setLegendRect(e,t,i,s,r){let n=i.ref,l=s.ref,o=r.ref,a=t.horSpacing*e.options.zoom,h=t.vertSpacing*e.options.zoom;switch(t.area.is(__.d.IStiHeatmapArea)&&(a+=2),t.legend.horAlignment){case __.d.StiLegendHorAlignment.LeftOutside:o.x=n.x,l.width-=o.width+a,l.x+=o.width+a;break;case __.d.StiLegendHorAlignment.Left:o.x=l.x+a;break;case __.d.StiLegendHorAlignment.Center:o.x=l.x+(l.width-o.width)/2;break;case __.d.StiLegendHorAlignment.Right:o.x=l.right-a-o.width,t.legend.showShadow&&t.legend.vertAlignment==__.d.StiLegendVertAlignment.BottomOutside&&(o.x-=5,l.width-=5);break;case __.d.StiLegendHorAlignment.RightOutside:o.x=n.right-o.width,l.width-=o.width+a,t.legend.showShadow&&(o.x-=5,l.width-=5);break}switch(t.legend.vertAlignment){case __.d.StiLegendVertAlignment.TopOutside:o.y=n.y,l.height-=o.height+h,l.y+=o.height+h;break;case __.d.StiLegendVertAlignment.Top:o.y=l.y+h;break;case __.d.StiLegendVertAlignment.Center:o.y=l.y+(l.height-o.height)/2;break;case __.d.StiLegendVertAlignment.Bottom:o.y=l.bottom-h-o.height,!t.legend.showShadow||t.legend.horAlignment!=__.d.StiLegendHorAlignment.LeftOutside&&t.legend.horAlignment!=__.d.StiLegendHorAlignment.RightOutside||(o.y-=5,l.height-=5);break;case __.d.StiLegendVertAlignment.BottomOutside:o.y=n.bottom-o.height,l.height-=o.height+h,t.legend.showShadow&&(o.y-=5,l.height-=5);break}t.legend.vertAlignment==__.d.StiLegendVertAlignment.BottomOutside||t.legend.vertAlignment==__.d.StiLegendVertAlignment.TopOutside?(t.legend.horAlignment==__.d.StiLegendHorAlignment.Left&&(o.x-=a),t.legend.horAlignment==__.d.StiLegendHorAlignment.Right&&(o.x+=a)):t.legend.horAlignment!=__.d.StiLegendHorAlignment.RightOutside&&t.legend.horAlignment!=__.d.StiLegendHorAlignment.LeftOutside||(t.legend.vertAlignment==__.d.StiLegendVertAlignment.Top&&(o.y-=h),t.legend.vertAlignment==__.d.StiLegendVertAlignment.Bottom&&(o.y+=h)),i.ref=n,s.ref=l,r.ref=o}constructor(e){this.chart=e}},Stimulsoft.Base.Meta.StiStringNullOrEmptyMeta),StiFontMeta=(__.d.StiChartTable=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartTable,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("Visible"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("MarkerVisible","",!0),new StiColorMeta("GridLineColor","",Color.gray),new StiBoolMeta("GridLinesHor","",!0),new StiBoolMeta("GridLinesVert","",!0),new StiBoolMeta("GridOutline","",!0),new StiStringNullOrEmptyMeta("Format"),new StiObjectMeta("Header"),new StiObjectMeta("DataCells")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e.header=this.header.clone(),e.dataCells=this.dataCells.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.chartTable=e),e}get font(){return this.dataCells.font}set font(e){this.dataCells.font=e}get textColor(){return this.dataCells.textColor}set textColor(e){this.dataCells.textColor=e}constructor(){this.visible=!1,this.allowApplyStyle=!0,this.markerVisible=!0,this.gridLineColor=Color.gray,this.gridLinesHor=!0,this.gridLinesVert=!0,this.gridOutline=!0,this.format="",this.chart=null,this.header=new __.d.StiChartTableHeader,this.dataCells=new __.d.StiChartTableDataCells,this.core=new __.d.StiChartTableCoreXF(this)}},Stimulsoft.Base.Meta.StiFontMeta),StringAlignment=Stimulsoft.System.Drawing.StringAlignment,Font=Stimulsoft.System.Drawing.Font,FontStyle=Stimulsoft.System.Drawing.FontStyle,StiJson=(__.d.StiChartTitle=class{implements(){let e=[__.d.IStiChartTitle,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiFontMeta(["Font","fn"],"","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta(["Text","text"]),new StiBrushMeta(["Brush","bh"]),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Alignment","",StringAlignment,StringAlignment.Center),new StiEnumMeta("Dock","",__.d.StiChartTitleDock,__.d.StiChartTitleDock.Top),new StiNumberMeta("Spacing","",2),new StiBoolMeta("Visible")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.alignment=this.alignment,e.font=this.font.clone(),e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.chartTitle=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=new StiSolidBrush(Color.saddleBrown),s=!0,r=StringAlignment.Center,n=__.d.StiChartTitleDock.Top,l=2,o=!1,a=!0){this._allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.brush=new StiSolidBrush(Color.saddleBrown),this.antialiasing=!0,this.alignment=StringAlignment.Center,this.dock=__.d.StiChartTitleDock.Top,this.spacing=2,this.visible=!1,this.chart=null,this.core=new __.d.StiChartTitleCoreXF(this),this.font=e,this.text=t,this.brush=i,this.antialiasing=s,this.alignment=r,this.dock=n,this.spacing=l,this.visible=o,this.allowApplyStyle=a}},Stimulsoft.Base.StiJson),StiLocalization=Stimulsoft.Base.Localization.StiLocalization,CollectionBase=Stimulsoft.System.Collections.CollectionBase,StiSizeMeta=(__.d.StiStripsCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiStripsCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiStrips;e.chart=this.chart,this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(s){for(let i=0;i<s.childNodes.length;i++){let t=s.childNodes[i];if(null==t.attributes)continue;let e=t.attributes.getNamedItem("type");if(null!=e&&"Stimulsoft.Report.Chart.StiStrips"==t.attributes.getNamedItem("type").value){let e=new __.d.StiStrips;e.chart=this.chart,this.add(e),e.loadFromXml(t)}}}applyStyle(t){for(let e of this.list)e.core.applyStyle(t)}getStripsTitle(){let e=StiLocalization.get("Chart","Strip"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.text==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.text)&&(e.text=this.getStripsTitle()),e.chart=this.chart),super.add(e)}},__.d.StiConstantLinesCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiConstantLinesCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiConstantLines;e.chart=this.chart,this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(s){for(let i=0;i<s.childNodes.length;i++){let t=s.childNodes[i];if(null==t.attributes)continue;let e=t.attributes.getNamedItem("type");if(null!=e&&"Stimulsoft.Report.Chart.StiConstantLines"==t.attributes.getNamedItem("type").value){let e=new __.d.StiConstantLines;e.chart=this.chart,this.add(e),e.loadFromXml(t)}}}applyStyle(t){for(let e of this.list)e.core.applyStyle(t)}getConstantLineTitle(){let e=StiLocalization.get("Chart","ConstantLine"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.text==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.text)&&(e.text=this.getConstantLineTitle()),e.chart=this.chart),super.add(e)}},Stimulsoft.Base.Meta.StiSizeMeta),SizeD=Stimulsoft.System.Drawing.Size,StiFormatService=__.e.TextFormats.StiFormatService,StiGeneralFormatService=__.e.TextFormats.StiGeneralFormatService;{class StiSeriesLabels extends StiService{constructor(){super(...arguments),this.preventIntersection=!1,this._allowApplyStyle=!0,this.showZeros=!1,this.showNulls=!0,this.markerVisible=!1,this.markerSize=new SizeD(8,6),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.step=0,this.valueType=__.d.StiSeriesLabelsValueType.Value,this.valueTypeSeparator="-",this.legendValueType=__.d.StiSeriesLabelsValueType.Value,this.textBefore="",this.textAfter="",this.angle=0,this.format="",this.antialiasing=!0,this.visible=!0,this.drawBorder=!0,this.useSeriesColor=!1,this.labelColor=Color.black,this.borderColor=Color.black,this.brush=new StiSolidBrush(Color.white),this.font=new Font("Arial",7),this.chart=null,this.wordWrap=!1,this.width=0}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("PreventIntersection"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ShowZeros"),new StiBoolMeta("ShowNulls","",!0),new StiBoolMeta("MarkerVisible"),new StiSizeMeta("MarkerSize"),new StiEnumMeta("MarkerAlignment","",__.d.StiMarkerAlignment,__.d.StiMarkerAlignment.Left),new StiNumberMeta("Step"),new StiEnumMeta("ValueType","",__.d.StiSeriesLabelsValueType,__.d.StiSeriesLabelsValueType.Value),new StiStringNullOrEmptyMeta("ValueTypeSeparator"),new StiEnumMeta("LegendValueType","",__.d.StiSeriesLabelsValueType,__.d.StiSeriesLabelsValueType.Value),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiNumberMeta("Angle"),new StiStringNullOrEmptyMeta("Format"),new StiBoolMeta("Antialiasing","",!0),new StiBoolMeta("Visible","",!0),new StiBoolMeta("DrawBorder","",!0),new StiBoolMeta("UseSeriesColor"),new StiColorMeta("LabelColor","",Color.black),new StiColorMeta("BorderColor","",Color.black),new StiBrushMeta(["Brush","bh"]),new StiFontMeta("Font","","Arial",7),new StiBoolMeta("WordWrap"),new StiNumberMeta("Width"),new StiObjectMeta("FormatService").check(()=>null!=this.formatService&&!this.formatService.is(StiGeneralFormatService)).set(e=>this.formatService=StiFormatService.createFromJsonObject(e.value)).setXml(e=>this.formatService=StiFormatService.loadFormatFromXml(e))]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e,t){let i=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),s=Stimulsoft.StiOptions.Services.chartSerieLabels.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==i);if(null==s)throw StiString.format("Type {0} is not found!",i);let r=StiActivator.createObject(s[Stimulsoft.System.StiObject.stimulsoft]().getType());return r.chart=t,r.loadFromJsonObject(e),r}static loadLabelsFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.seriesLabels=e),e}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiSeriesLabels}get axisCore(){return this.core}get pieCore(){return this.core}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}get conditions(){if(null==this.chart)return null;return this.chart.seriesLabelsConditions}set conditions(e){if(null==this.chart)return;this.chart.seriesLabelsConditions=e}get showOnZeroValues(){return this.showZeros}set showOnZeroValues(e){this.showZeros=e}toString(){return this.serviceName}}__.d.StiSeriesLabels=StiSeriesLabels}__.d.StiAxisSeriesLabels=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterAxisLabels=class extends __.d.StiAxisSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterAxisLabelsCoreXF(this)}};let StiPenStyle=Stimulsoft.Base.Drawing.StiPenStyle,StiRemoveMeta=(__.d.StiAxis=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxis,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("LogarithmicScale"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("StartFromZero","",!0),new StiObjectMeta("Interaction"),new StiObjectMeta("Labels"),new StiObjectMeta("Range"),new StiBoolMeta("Visible","",!0),new StiEnumMeta("ArrowStyle","",__.d.StiArrowStyle,__.d.StiArrowStyle.None),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.gray),new StiNumberMeta("LineWidth","",1),new StiObjectMeta("Title"),new StiObjectMeta("Ticks")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.arrowStyle=this.arrowStyle,e.lineStyle=this.lineStyle,e.labels=this.labels.clone(),e.range=this.range.clone(),e.title=this.title.clone(),e.ticks=this.ticks.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get step(){if(null==this.labels)return 0;return this.labels.step}set step(e){null!=this.labels&&(this.labels.step=e)}get title(){return null==this._title&&(this._title=new __.d.StiAxisTitle,this.is(__.d.StiXBottomAxis)||this.is(__.d.StiXTopAxis)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYRightAxis)?this._title.direction=__.d.StiDirection.TopToBottom:this.is(__.d.StiYLeftAxis)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title}set title(e){null==this._title&&(this._title=new __.d.StiAxisTitle,this.is(__.d.StiXBottomAxis)||this.is(__.d.StiXTopAxis)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYRightAxis)?this._title.direction=__.d.StiDirection.TopToBottom:this.is(__.d.StiYLeftAxis)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title=e}get titleDirection(){if(null==this.title)return __.d.StiLegendDirection.BottomToTop;switch(this.title.direction){case __.d.StiDirection.BottomToTop:return __.d.StiLegendDirection.BottomToTop;case __.d.StiDirection.LeftToRight:return __.d.StiLegendDirection.LeftToRight;case __.d.StiDirection.RightToLeft:return __.d.StiLegendDirection.RightToLeft;case __.d.StiDirection.TopToBottom:return __.d.StiLegendDirection.TopToBottom}return __.d.StiLegendDirection.BottomToTop}set titleDirection(e){if(null==this.title)return;switch(e){case __.d.StiLegendDirection.BottomToTop:this.title.direction=__.d.StiDirection.BottomToTop;break;case __.d.StiLegendDirection.LeftToRight:this.title.direction=__.d.StiDirection.LeftToRight;break;case __.d.StiLegendDirection.RightToLeft:this.title.direction=__.d.StiDirection.RightToLeft;break;case __.d.StiLegendDirection.TopToBottom:this.title.direction=__.d.StiDirection.TopToBottom;break}}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=!0,d=!1){this._allowApplyStyle=!0,this.logarithmicScale=!1,this.startFromZero=!0,this.interaction=new __.d.StiAxisInteraction,this.labels=new __.d.StiAxisLabels,this.range=new __.d.StiAxisRange,this.ticks=new __.d.StiAxisTicks,this.arrowStyle=__.d.StiArrowStyle.None,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.gray,this.lineWidth=1,this.visible=!0,this.info=new __.d.StiAxisInfoXF,this.labels=e,this.range=t,this._title=i,this.ticks=s,this.interaction=r,this.arrowStyle=n,this.lineStyle=l,this.lineColor=o,this.lineWidth=a,this.visible=h,this.startFromZero=u,this._allowApplyStyle=S,this.logarithmicScale=d}},__.d.StiYAxis=class extends __.d.StiAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("ShowYAxis","",__.d.StiShowYAxis,__.d.StiShowYAxis.Both)]}get propName(){return""}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowYAxis.Both,d=!0,m=!1){super(e,t,i,s,r,n,l,o,a,h,u,d,m),this.showYAxis=__.d.StiShowYAxis.Both,this.showYAxis=S}},Stimulsoft.Base.Meta.StiRemoveMeta),StiHorAlignment=Stimulsoft.Base.Drawing.StiHorAlignment,Enum=(__.d.StiYRightAxis=class extends __.d.StiYAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis,__.d.IStiYRightAxis]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ShowYAxis"),new StiBoolMeta("Visible")]}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=!0,d=!1){super(e,t,i,s,r,n,l,o,a,h,u,__.d.StiShowYAxis.Both,S,d),this.visible=!1,this.labels.textAlignment=StiHorAlignment.Left,this.core=new __.d.StiYRightAxisCoreXF(this)}},__.d.StiXAxis=class extends __.d.StiAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxis,__.d.IStiXAxis,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowEdgeValues"),new StiEnumMeta("ShowXAxis","",__.d.StiShowXAxis,__.d.StiShowXAxis.Both),new StiObjectMeta("DateTimeStep")]}get propName(){return""}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=new __.d.StiAxisDateTimeStep,g=!1){super(e,t,i,s,r,n,l,o,a,h,u,m,g),this.showEdgeValues=!1,this.showXAxis=__.d.StiShowXAxis.Both,this.dateTimeStep=new __.d.StiAxisDateTimeStep,this.showXAxis=S,this.dateTimeStep=c,this.showEdgeValues=d}},__.d.StiXTopAxis=class extends __.d.StiXAxis{implements(){let e=super.implements().concat([__.d.IStiXTopAxis,ICloneable,__.d.IStiAxis,__.d.IStiXAxis,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["Range","ShowXAxis","DateTimeStep"]),new StiBoolMeta("Visible")]}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!1,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=!1){super(e,t,i,s,r,n,l,o,a,h,u,__.d.StiShowXAxis.Both,d,m,new __.d.StiAxisDateTimeStep,c),this.core=new __.d.StiXTopAxisCoreXF(this)}},__.d.StiYLeftAxis=class extends __.d.StiYAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis,ICloneable,__.d.IStiAxis,__.d.IStiYLeftAxis]);return(this.implements=()=>e)()}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowYAxis.Both,d=!0,m=!1){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m),this.core=new __.d.StiYLeftAxisCoreXF(this)}},__.d.StiAxisLabels=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisLabels,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiNumberMeta("Angle"),new StiNumberMeta("Width"),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiFontMeta("Font","","Tahoma",8),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Placement","",__.d.StiLabelsPlacement,__.d.StiLabelsPlacement.OneLine),new StiColorMeta("Color","",Color.black),new StiEnumMeta("TextAlignment","",StiHorAlignment,StiHorAlignment.Right),new StiNumberMeta("Step"),new StiBoolMeta("WordWrap")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.placement=this.placement,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.labels=e),e}constructor(e="",t="",i="",s=0,r=new Font("Tahoma",8),n=!0,l=__.d.StiLabelsPlacement.OneLine,o=Color.black,a=0,h=StiHorAlignment.Right,u=0,S=!0,d=!1){this.allowApplyStyle=!0,this.format="",this.angle=0,this.width=0,this.textBefore="",this.textAfter="",this.font=new Font("Tahoma",8),this.antialiasing=!0,this.placement=__.d.StiLabelsPlacement.OneLine,this.color=Color.black,this.textAlignment=StiHorAlignment.Right,this.step=0,this.wordWrap=!1,this.format=e,this.textBefore=t,this.textAfter=i,this.angle=s,this.font=r,this.antialiasing=n,this.placement=l,this.color=o,this.width=a,this.textAlignment=h,this.step=u,this.allowApplyStyle=S,this.wordWrap=d,this.core=new __.d.StiAxisLabelsCoreXF(this)}},__.d.StiAxisRange=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxisRange];return(this.implements=()=>e)()}meta(){return[new StiNumberMeta("Minimum"),new StiNumberMeta("Maximum"),new StiBoolMeta("Auto","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(e=!0,t=0,i=0){this.minimum=0,this.maximum=0,this.auto=!0,this.auto=e,this.minimum=t,this.maximum=i}},__.d.StiAxisTicks=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisTicks,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiNumberMeta("LengthUnderLabels","_",5),new StiNumberMeta("Length","_",5),new StiNumberMeta("MinorLength","_",2),new StiNumberMeta("MinorCount","_",4),new StiNumberMeta("Step","_"),new StiBoolMeta("MinorVisible"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get lengthUnderLabels(){return this._lengthUnderLabels}set lengthUnderLabels(e){0<e&&(this._lengthUnderLabels=e)}get length(){return this._length}set length(e){0<e&&(this._length=e)}get minorLength(){return this._minorLength}set minorLength(e){0<e&&(this._minorLength=e)}get minorCount(){return this._minorCount}set minorCount(e){0<=e&&(this._minorCount=e)}get step(){return this._step}set step(e){0<=e&&(this._step=e)}constructor(e=!0,t=5,i=!1,s=2,r=4,n=0,l=5){this._lengthUnderLabels=5,this._length=5,this._minorLength=2,this._minorCount=4,this._step=0,this.minorVisible=!1,this.visible=!0,this.visible=e,this._length=t,this.minorVisible=i,this._minorLength=s,this._minorCount=r,this._step=n,this._lengthUnderLabels=l}},__.d.StiAxisInteraction=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisInteraction,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("ShowScrollBar"),new StiBoolMeta("RangeScrollEnabled","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}constructor(e=!1,t=!0){this.showScrollBar=!1,this.rangeScrollEnabled=!0,this.showScrollBar=e,this.rangeScrollEnabled=t}},__.d.StiAxisDateTimeStep=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiAxisDateTimeStep,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiEnumMeta("Step","",__.d.StiTimeDateStep,__.d.StiTimeDateStep.None),new StiNumberMeta("NumberOfValues","",1),new StiBoolMeta("Interpolation"),new StiEnumMeta("Aggregation","",__.d.StiDateTimeStepAggregation,__.d.StiDateTimeStepAggregation.Average)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(e=__.d.StiTimeDateStep.None,t=1,i=!1,s=__.d.StiDateTimeStepAggregation.Average){this.step=__.d.StiTimeDateStep.None,this.numberOfValues=1,this.interpolation=!1,this.aggregation=__.d.StiDateTimeStepAggregation.Average,this.step=e,this.numberOfValues=t,this.interpolation=i,this.aggregation=s}},__.d.StiXBottomAxis=class extends __.d.StiXAxis{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiXAxis,ICloneable,__.d.IStiXBottomAxis,__.d.IStiAxis]);return(this.implements=()=>e)()}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=null,s=new __.d.StiAxisTicks,r=new __.d.StiAxisInteraction,n=__.d.StiArrowStyle.None,l=StiPenStyle.Solid,o=Color.gray,a=1,h=!0,u=!0,S=__.d.StiShowXAxis.Both,d=!1,m=!0,c=new __.d.StiAxisDateTimeStep,g=!1){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g),this.dateTimeStep=c,this.core=new __.d.StiXBottomAxisCoreXF(this)}},__.d.StiGridLines=class{implements(){let e=[IStiJsonReportObject,__.d.IStiGridLines,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiColorMeta("Color","",Color.silver),new StiColorMeta("MinorColor","",Color.gainsboro),new StiEnumMeta("Style","",StiPenStyle,StiPenStyle.Dot),new StiEnumMeta("MinorStyle","",StiPenStyle,StiPenStyle.Dot),new StiBoolMeta("Visible","",!0),new StiBoolMeta("MinorVisible"),new StiNumberMeta("MinorCount","_"),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.style=this.style,e.minorStyle=this.minorStyle,null!=this.core&&(e.core=this.core.clone(),e.core.gridLines=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get minorCount(){return this._minorCount}set minorCount(e){0<=e&&(this._minorCount=e)}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.color=Color.silver,this.minorColor=Color.gainsboro,this.style=StiPenStyle.Dot,this.minorStyle=StiPenStyle.Dot,this.visible=!0,this.minorVisible=!1,this._minorCount=0,this.color=e,this.style=t,this.visible=i,this.minorColor=s,this.minorStyle=r,this.minorVisible=n,this._minorCount=l,this._allowApplyStyle=o,this.core=new __.d.StiGridLinesCoreXF(this)}},__.d.StiGridLinesVert=class extends __.d.StiGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiGridLines,ICloneable,__.d.IStiGridLinesVert]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){super(e,t,i,s,r,n,l,o)}},__.d.StiGridLinesHor=class extends __.d.StiGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiGridLines,__.d.IStiGridLinesHor,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Dot,i=!0,s=Color.gainsboro,r=StiPenStyle.Dot,n=!1,l=0,o=!0){super(e,t,i,s,r,n,l,o)}},__.d.StiInterlacing=class{implements(){let e=[__.d.IStiInterlacing,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiBrushMeta("InterlacedBrush"),new StiBoolMeta("Visible","",!0),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.interlacedBrush=this.interlacedBrush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.interlacing=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.interlacedBrush=new StiSolidBrush(Color.transparent),this.visible=!0,this.interlacedBrush=e,this.visible=t,this._allowApplyStyle=i,this.core=new __.d.StiInterlacingCoreXF(this)}},__.d.StiInterlacingVert=class extends __.d.StiInterlacing{implements(){let e=super.implements().concat([__.d.IStiInterlacing,__.d.IStiInterlacingVert,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){super(e,t,i)}},__.d.StiInterlacingHor=class extends __.d.StiInterlacing{implements(){let e=super.implements().concat([__.d.IStiInterlacing,__.d.IStiInterlacingHor,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(e=new StiSolidBrush(Color.transparent),t=!0,i=!0){super(e,t,i)}},__.d.StiAxisArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxisArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_").set(e=>{this._interlacingHor.loadFromJsonObject(e.value),this._interlacingHor.needSetAreaJsonPropertyInternal&&(this._interlacingHor.needSetAreaJsonPropertyInternal=!1,this._interlacingHor.area=this)}).setXml(e=>{this._interlacingHor.loadFromXml(e),this._interlacingHor.area=this}),new StiObjectMeta("InterlacingVert","_").set(e=>{this._interlacingVert.loadFromJsonObject(e.value),this._interlacingVert.needSetAreaJsonPropertyInternal&&(this._interlacingVert.needSetAreaJsonPropertyInternal=!1,this._interlacingVert.area=this)}).setXml(e=>{this._interlacingVert.loadFromXml(e),this._interlacingVert.area=this}),new StiObjectMeta("GridLinesHor","_").set(e=>{this._gridLinesHor.loadFromJsonObject(e.value),this._gridLinesHor.needSetAreaJsonPropertyInternal&&(this._gridLinesHor.needSetAreaJsonPropertyInternal=!1,this._gridLinesHor.area=this)}).setXml(e=>{this._gridLinesHor.loadFromXml(e),this._gridLinesHor.area=this}),new StiObjectMeta("GridLinesHorRight","_").set(e=>{this._gridLinesHorRight.loadFromJsonObject(e.value),this._gridLinesHorRight.needSetAreaJsonPropertyInternal&&(this._gridLinesHorRight.needSetAreaJsonPropertyInternal=!1,this._gridLinesHorRight.area=this)}).setXml(e=>{this._gridLinesHorRight.loadFromXml(e),this._gridLinesHorRight.area=this}),new StiObjectMeta("GridLinesVert","_").set(e=>{this._gridLinesVert.loadFromJsonObject(e.value),this._gridLinesVert.needSetAreaJsonPropertyInternal&&(this._gridLinesVert.needSetAreaJsonPropertyInternal=!1,this._gridLinesVert.area=this)}).setXml(e=>{this._gridLinesVert.loadFromXml(e),this._gridLinesVert.area=this}),new StiObjectMeta("YAxis","_"),new StiObjectMeta("YRightAxis","_"),new StiObjectMeta("XAxis","_"),new StiObjectMeta("XTopAxis","_"),new StiBoolMeta("ReverseHor"),new StiBoolMeta("ReverseVert")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesHorRight=this.gridLinesHorRight.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.yAxis=this.yAxis.clone(),e.yRightAxis=this.yRightAxis.clone(),e.xAxis=this.xAxis.clone(),e.xTopAxis=this.xTopAxis.clone(),e}get axisCore(){return this.core}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesHorRight(){return this._gridLinesHorRight}set gridLinesHorRight(e){this._gridLinesHorRight=e,null!=this._gridLinesHorRight&&(this._gridLinesHorRight.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}get yRightAxis(){return this._yRightAxis}set yRightAxis(e){this._yRightAxis=e,null!=this._yRightAxis&&(this._yRightAxis.area=this)}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get xTopAxis(){return this._xTopAxis}set xTopAxis(e){this._xTopAxis=e,null!=this._xTopAxis&&(this._xTopAxis.area=this)}getDefaultSeriesLabelsType(){return __.d.StiCenterAxisLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiInsideEndAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiLeftAxisLabels,__.d.StiValueAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.reverseHor=!1,this.reverseVert=!1,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert,this.gridLinesHor=new __.d.StiGridLinesHor,this.gridLinesHorRight=new __.d.StiGridLinesHor,this.gridLinesVert=new __.d.StiGridLinesVert,this.gridLinesHorRight.visible=!1,this.xAxis=new __.d.StiXBottomAxis,this.yAxis=new __.d.StiYLeftAxis,this.xTopAxis=new __.d.StiXTopAxis,this.yRightAxis=new __.d.StiYRightAxis}},__.d.StiClusteredColumnArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiRoundValuesArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues"),new StiBoolMeta("SideBySide","",!1,!0)]}getDefaultSeriesType(){return __.d.StiClusteredColumnSeries}getSeriesTypes(){return[__.d.StiClusteredColumnSeries,__.d.StiLineSeries,__.d.StiSteppedLineSeries,__.d.StiSplineSeries,__.d.StiAreaSeries,__.d.StiSteppedAreaSeries,__.d.StiSplineAreaSeries]}constructor(){super(),this.roundValues=!1,this.sideBySide=!0,this.core=new __.d.StiClusteredColumnAreaCoreXF(this)}},__.d.StiSeriesCollection=class extends CollectionBase{constructor(){super(...arguments),this.chart=null}implements(){let e=[IStiJsonReportObject,__.d.IStiApplyStyle,__.d.IStiSeriesCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let r of e.properties()){let e=r.value,t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartSeries.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());s.chart=this.chart,this.list.push(s),s.loadFromJsonObject(r.value)}}loadFromXml(i,r){for(let t=0;t<i.childNodes.length;t++){let s=i.childNodes[t];if(null==s.attributes)continue;let e=s.attributes.getNamedItem("type");if(null!=e){let e=s.attributes.getNamedItem("type").value,t=e.split(".").pop(),i=new __.d[t];i.chart=r,this.list.push(i),i.loadFromXml(s)}}}applyStyle(i){if(null==i)return;let s=0;for(let t of this.list){let e=i.core.getColors(this.length,t.core.seriesColors);t.core.applyStyle(i,e[s++])}}getSeriesTitle(){let e=StiLocalization.get("Chart","Series"),t=e,i=1,s=!0;while(s){t=e+" "+i.toString(),s=!1;for(let e of this.list)if(e.coreTitle==t){s=!0;break}i++}return t}add(e){null!=this.chart&&(StiString.isNullOrEmpty(e.coreTitle)&&(e.coreTitle=this.getSeriesTitle()),e.chart=this.chart),super.add(e),this.invokeSeriesAdded(e)}insert(e,t){null!=this.chart&&(StiString.isNullOrEmpty(t.coreTitle)&&(t.coreTitle=this.getSeriesTitle()),t.chart=this.chart),super.insert(e,t),this.invokeSeriesAdded(t)}remove(e){this.invokeSeriesRemoved(e),super.remove(e)}removeAt(e){let t=this.getByIndex(e);this.invokeSeriesRemoved(t),super.removeAt(e)}getByName(t){for(let e of this.list)if(e.coreTitle==t)return e;return null}setByName(i,s){for(let t=0;t<this.list.length;t++){let e=this.list[t];if(e.coreTitle==i)return void(this.list[t]=s)}this.add(s)}invokeSeriesAdded(e){null!=this.seriesAdded&&this.seriesAdded(e,EventArgs.empty)}invokeSeriesRemoved(e){null!=this.seriesRemoved&&this.seriesRemoved(e,EventArgs.empty)}},Stimulsoft.System.Enum),XMLConvert=(__.d.StiChartFilter=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartFilter,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiEnumMeta("Condition","",StiFilterCondition,StiFilterCondition.EqualTo),new StiEnumMeta("DataType","",StiFilterDataType,StiFilterDataType.String),new StiEnumMeta("Item","",StiFilterItem,StiFilterItem.Argument),new StiStringNullOrEmptyMeta("Value")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get index(){if(null==this.filters)return-1;let e=this.filters.indexOf(this);return e}get value(){return this._valueObj}set value(e){this._valueObj=e}toString(){let e="";switch(this.condition){case StiFilterCondition.EqualTo:e="=";break;case StiFilterCondition.NotEqualTo:e="<>";break;case StiFilterCondition.GreaterThan:e=">";break;case StiFilterCondition.GreaterThanOrEqualTo:e=">=";break;case StiFilterCondition.LessThan:e="<";break;case StiFilterCondition.LessThanOrEqualTo:e="=<";break}let t=StiLocalization.get("PropertyMain","Argument");switch(Enum.parse(StiFilterItem,t)){case StiFilterItem.Value:t=StiLocalization.get("PropertyMain","Value");break;case StiFilterItem.ValueEnd:t=StiLocalization.get("PropertyMain","Value");break}return StiString.format("{0} {1} {2}",t,e,this.value)}constructor(e=StiFilterItem.Argument,t=StiFilterDataType.String,i=StiFilterCondition.EqualTo,s=""){this.condition=StiFilterCondition.EqualTo,this.dataType=StiFilterDataType.String,this.item=StiFilterItem.Argument,this._valueObj="",this.filters=null,this.item=e,this.dataType=t,this.condition=i,this._valueObj=s}},__.d.StiChartCondition=class extends __.d.StiChartFilter{implements(){let e=super.implements().concat([__.d.IStiChartCondition,__.d.IStiChartFilter,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("Color","",Color.white),new StiEnumMeta("MarkerType","",__.d.StiMarkerType,__.d.StiMarkerType.Circle),new StiNumberMeta("MarkerAngle")]}clone(){return super.clone()}constructor(e=Color.white,t=StiFilterItem.Argument,i=StiFilterDataType.String,s=StiFilterCondition.EqualTo,r="",n,l){super(t,i,s,r),this.color=Color.white,this.markerType=__.d.StiMarkerType.Circle,this.markerAngle=0,this.conditions=null,this.color=e,null!=n&&(this.markerType=n),null!=l&&(this.markerAngle=l)}},Stimulsoft.System.Text.XMLConvert);{class StiChartConditionsCollection extends CollectionBase{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiChartConditionsCollection];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiChartCondition;e.loadFromJsonObject(t.value),this.list.push(e)}}loadFromXml(t){for(let e=0;e<t.childNodes.length;e++){let s=t.childNodes[e];if("value"==s.nodeName){let e=s.textContent.split(","),t=e[3],i=("GreaterThen"==t?t="GreaterThan":"GreaterThenOrEqualTo"==t?t="GreaterThanOrEqualTo":"LessThen"==t?t="LessThan":"LessThenOrEqualTo"==t&&(t="LessThanOrEqualTo"),new __.d.StiChartCondition(Stimulsoft.System.Text.StiReportObjectStringConverter.convertStringToColor(e[0]),Enum.parse(StiFilterItem,e[1]),Enum.parse(StiFilterDataType,e[2]),Enum.parse(StiFilterCondition,t),XMLConvert.decodeName(e[4])));this.add(i)}}}clone(){let t=new StiChartConditionsCollection;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e),null==e.conditions&&(e.conditions=this)}}__.d.StiChartConditionsCollection=StiChartConditionsCollection}let StiExpression=__.a.Expressions.StiExpression,StiExpressionMeta=Stimulsoft.Base.Meta.StiExpressionMeta,CultureInfo=Stimulsoft.System.Globalization.CultureInfo,XmlConvert=Stimulsoft.System.Text.XMLConvert,StiJsonSaveMode=Stimulsoft.Base.StiJsonSaveMode,StringBuilder=Stimulsoft.System.Text.StringBuilder,StiGuidUtils=Stimulsoft.Base.StiGuidUtils,StiGradientBrush=Stimulsoft.Base.Drawing.StiGradientBrush,StiGlareBrush=Stimulsoft.Base.Drawing.StiGlareBrush;{class StiSeries extends StiService{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiEnumMeta("SortBy","",__.d.StiSeriesSortType,__.d.StiSeriesSortType.None),new StiEnumMeta("SortDirection","",__.d.StiSeriesSortDirection,__.d.StiSeriesSortDirection.Ascending),new StiBoolMeta("ShowInLegend","",!0),new StiEnumMeta("ShowSeriesLabels","_",__.d.StiShowSeriesLabels,__.d.StiShowSeriesLabels.FromChart),new StiBoolMeta("ShowShadow","",!0),new StiEnumMeta("FilterMode","",StiFilterMode,StiFilterMode.And),new StiObjectMeta("Filters"),new StiObjectMeta("Conditions"),new StiObjectMeta("TopN"),new StiEnumMeta("YAxis","",__.d.StiSeriesYAxis,__.d.StiSeriesYAxis.LeftYAxis),new StiObjectMeta("SeriesLabels").set(e=>this.seriesLabels=__.d.StiSeriesLabels.loadFromJsonObjectInternal(e,this.chart)).setXml(e=>this.seriesLabels=__.d.StiSeriesLabels.loadLabelsFromXml(e,this.chart)),new StiObjectMeta("TrendLines"),new StiStringNullOrEmptyMeta("ValueDataColumn"),new StiStringNullOrEmptyMeta("ArgumentDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesTitleDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesKeyDataColumn"),new StiStringNullOrEmptyMeta("AutoSeriesColorDataColumn"),new StiStringNullOrEmptyMeta("ToolTipDataColumn"),new StiStringNullOrEmptyMeta("TagDataColumn"),new StiStringNullOrEmptyMeta("HyperlinkDataColumn"),new StiBoolMeta("DrillDownEnabled"),new StiStringNullOrEmptyMeta("DrillDownReport"),new StiStringNullOrEmptyMeta("DrillDownPageGuid"),new StiBoolMeta("AllowSeries","",!0),new StiBoolMeta("AllowSeriesElements","",!0),new StiObjectMeta("Interaction"),new StiExpressionMeta("Value"),new StiExpressionMeta("ListOfValues"),new StiExpressionMeta("Argument"),new StiExpressionMeta("ListOfArguments"),new StiExpressionMeta("Title").set(e=>{let t=new StiExpression;t.loadFromJsonObject(e),this.title=t.value,this.titleValue=t.value}).setXml(e=>{let t=new StiExpression;t.loadFromXml(e),this.title=t.value,this.titleValue=t.value}),new StiExpressionMeta("ToolTip"),new StiExpressionMeta("ListOfToolTips"),new StiExpressionMeta("Tag"),new StiExpressionMeta("ListOfTags"),new StiExpressionMeta("Hyperlink"),new StiExpressionMeta("ListOfHyperlinks"),new StiStringNullOrEmptyMeta("ValuesString"),new StiStringNullOrEmptyMeta("ArgumentsString"),new StiStringNullOrEmptyMeta("ToolTipsString"),new StiStringNullOrEmptyMeta("TagString"),new StiStringNullOrEmptyMeta("HyperlinkString"),new StiStringNullOrEmptyMeta("TitleValue"),new StiColorMeta("LegendColor","",null),new StiStringNullOrEmptyMeta("ValuesString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("ArgumentsString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("ToolTipsString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("TagString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("HyperlinkString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("TitleValue","",StiJsonSaveMode.Document),new StiColorMeta("LegendColor","",null,StiJsonSaveMode.Document)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=super.clone();return e.title=this.title,e.arguments=this.arguments.slice(),e.tags=this.tags.slice(),e.toolTips=this.toolTips.slice(),e.hyperlinks=this.hyperlinks.slice(),e.topN=this.topN.clone(),e.interaction=this.interaction.clone(),e.seriesLabels=this.seriesLabels.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.series=e),e}baseTransform(){}get parent(){return this.chart}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiSeries}get showLabels(){return!0}set showLabels(e){e&&(this.showSeriesLabels=__.d.StiShowSeriesLabels.FromChart)}get showSeriesLabels(){return this._showSeriesLabels}set showSeriesLabels(e){this._showSeriesLabels=e==__.d.StiShowSeriesLabels.None?__.d.StiShowSeriesLabels.FromChart:e}get seriesLabels(){return this._seriesLabels}set seriesLabels(e){this._seriesLabels=e,this._seriesLabels.chart=this.chart}get trendLine(){if(null!=this.trendLines&&0<this.trendLines.count)return this.trendLines.getByIndex(0);return new __.d.StiTrendLineNone}set trendLine(e){e.is(__.d.StiTrendLineNone)||this.trendLines.insert(0,e)}get chart(){return this._chart}set chart(e){this._chart!=e&&null!=(this._chart=e)&&(this.seriesLabels.chart=e)}get values(){if(null==this.chart||null!=this.chart&&!this.chart.isDesigning||this.isDashboard)return this._values;let e=this.chart.series.indexOf(this),t=[],i=this.as(__.d.StiWaterfallSeries);return t=null!=i?i.total.visible?[3,-1,2,4]:[3,-1,2]:this.is(__.d.IStiBoxAndWhiskerSeries)?[8,2,3,9,10]:this.is(__.d.IStiHistogramSeries)?[4,2,1]:StiString.isNullOrEmpty(this.listOfValues)||this.listOfValues.includes("{")?this.is(__.d.IStiSteppedRangeSeries)?[1+3*e,3+4*e,2+3*e,3+3*e,3+3*e]:this.is(__.d.IStiFunnelSeries)?[3,2,1]:this.is(__.d.IStiGanttSeries)?[1+3*e,3+4*e,7+3*e]:this.is(__.d.IStiScatterSeries)?[1+e,6+e,2+e]:this.is(__.d.IStiHeatmapSeries)?[1,2,3,2,3,2,3,2,1]:this.is(__.d.IStiPieSeries)?0==e?[1,3,2]:[1+e,3+e,4+e]:this.is(__.d.StiRadarSeries)?[1+e,2+e,3+e,4+e,5+e]:0==e?this._values:[1+e,3+e,2.5+e]:StiSeries.getNullableValuesFromString(this,this.listOfValues)}set values(t){let i,s=[];for(let e=0;e<t.length;e++)e<this.values.length&&0<(null==(i=this.valuesStart)?void 0:i.length)?s[e]=this.values[e]:s[e]=0;this.valuesStart=s,this._values=t}get valuesString(){let t=new StringBuilder,i=!0;for(let e of this._values)i?t.appendFormat("{0}",null==e?"":e):t.appendFormat(";{0}",null==e?"":e),i=!1;return t.toString()}set valuesString(e){if(null==e||0==e.trim().length)this._values=[];else{let t=e.split(";");this._values=[];for(let e of t)StiString.isNullOrEmpty(e)?this._values.push(null):this._values.push(e[Stimulsoft.System.StiObject.stimulsoft]().toNumber())}}get arguments(){return this.getArguments()}set arguments(e){this.setArguments(e)}getArguments(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._arguments;if(!StiString.isNullOrEmpty(this.listOfArguments))return StiSeries.getArgumentsFromString(this.listOfArguments);let e=this.as(__.d.StiWaterfallSeries);if(null!=e&&(null==this._arguments||0==this._arguments.length))return e.total.visible?["A","B","C",e.total.text]:["A","B","C"];if(this.is(__.d.IStiHistogramSeries))return["[1, 2]","(2, 3]","(3, 4]"];if((this.is(__.d.IStiTreemapSeries)||this.is(__.d.IStiGanttSeries)||this.is(__.d.IStiRangeBarSeries)||this.is(__.d.IStiCandlestickSeries)||this.is(__.d.StiSunburstSeries))&&(null==this._arguments||0==this._arguments.length))return["A","B","C"];if((this.is(__.d.IStiScatterSeries)||this.is(__.d.IStiScatterLineSeries)||this.is(__.d.IStiScatterSplineSeries))&&(null==this._arguments||0==this._arguments.length))return["1","5","4"];return this._arguments}setArguments(e){this._arguments=e}get argumentsString(){let i=new StringBuilder,s=!0;for(let t of this._arguments)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XmlConvert.encodeName(e)):i.appendFormat(";{0}",XmlConvert.encodeName(e)),s=!1}return i.toString()}set argumentsString(t){if(null==t||0==t.trim().length)this._arguments=[];else{let e=t.split(";");this._arguments=[];for(let i of e){let e=XmlConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._arguments.push(t.result):this._arguments.push(e)}}}get toolTips(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&!StiString.isNullOrEmpty(this.listOfToolTips))return StiSeries.getStringsFromString(this.listOfToolTips);return this._toolTips}set toolTips(e){this._toolTips=e}get toolTipsString(){let t=new StringBuilder,i=!0;for(let e of this._toolTips)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set toolTipsString(e){if(null==e||0==e.trim().length)this._toolTips=[];else{let t=e.split(";");this._toolTips=[];for(let e of t)this._toolTips.push(XmlConvert.decodeName(e))}}get tags(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&!StiString.isNullOrEmpty(this.listOfTags))return StiSeries.getArgumentsFromString(this.listOfTags);return this._tags}set tags(e){this._tags=e}get tagString(){let t=new StringBuilder,i=!0;for(let e of this.tags)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set tagString(e){if(null==e||0==e.trim().length)this._tags=[];else{let t=e.split(";");this._tags=[];for(let e of t)this._tags.push(XmlConvert.decodeName(e))}}get hyperlinks(){if((null!=this.chart&&this.chart.isDesigning||this.isDashboard)&&null!=this.listOfHyperlinks&&0<this.listOfHyperlinks.length)return StiSeries.getStringsFromString(this.listOfHyperlinks);return this._hyperlinks}set hyperlinks(e){this._hyperlinks=e}get hyperlinkString(){let t=new StringBuilder,i=!0;for(let e of this._hyperlinks)null!=e&&(i?t.appendFormat("{0}",XmlConvert.encodeName(e.toString())):t.appendFormat(";{0}",XmlConvert.encodeName(e.toString())),i=!1);return t.toString()}set hyperlinkString(e){if(null==e||0==e.trim().length)this._hyperlinks=[];else{let t=e.split(";");this._hyperlinks=[];for(let e of t)this._hyperlinks.push(XmlConvert.decodeName(e))}}get drillDownPage(){if(null==this.chart||null==this.chart.report)return null;for(let e of this.chart.report.pages.list)if(e.guid==this.drillDownPageGuid)return e;return null}set drillDownPage(e){null==e?this.drillDownPageGuid=null:(null==e.guid&&(e.guid=StiGuidUtils.newGuid()),this.drillDownPageGuid=e.guid)}get coreTitle(){let e=null;return e=null==(e=null!=this.chart&&this.chart.isDesigning?this.title:this.titleValue)?"":e}set coreTitle(e){this.title=e,this.titleValue=e}get interaction(){return this._interaction}set interaction(e){this._interaction!=e&&null!=(this._interaction=e)&&(this._interaction.parentSeries=this)}processSeriesColors(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.color;return e}processSeriesMarkerType(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.markerType;return e}processSeriesMarkerAngle(t,e){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return e.markerAngle;return e}processSeriesMarkerVisible(t){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return!0;return!1}processSeriesBrushes(t,i){for(let e of this.conditions.list)if(this.getConditionResult(t,e))return i=this.allowApplyStyle&&null!=this.chart.style?this.chart.style.core.getColumnBrush(e.color):new StiSolidBrush(e.color),this.chart.area.is(__.d.IStiClusteredBarArea)&&(i.is(StiGradientBrush)&&(i.angle+=90),i.is(StiGlareBrush))&&(i.angle+=90),i;return i}getConditionResult(e,t){if((null==this.values||this.values.length<=e)&&!this.is(__.d.IStiFinancialSeries))return!1;let i=null,s=null,r=null,n=null,l=null,o=null,a=null,h=(this.chart.area.is(__.d.IStiAxisArea)&&this.chart.area.reverseHor&&!this.chart.area.is(__.d.IStiClusteredBarArea)||this.chart.area.is(__.d.IStiClusteredBarArea)&&this.chart.area.reverseVert?(null!=this.values&&e<this.values.length&&(i=this.values[this.values.length-e-1]),this.is(__.d.IStiRangeSeries)&&e<this.valuesEnd.length&&(s=this.valuesEnd[this.valuesEnd.length-e-1]),this.is(__.d.IStiFinancialSeries)&&(e<this.valuesOpen.length&&(r=this.valuesOpen[this.valuesOpen.length-e-1]),e<this.valuesClose.length&&(n=this.valuesClose[this.valuesClose.length-e-1]),e<this.valuesLow.length&&(l=this.valuesLow[this.valuesLow.length-e-1]),e<this.valuesHigh.length)&&(o=this.valuesHigh[this.valuesHigh.length-e-1]),null!=this.arguments&&e<this.arguments.length&&(a=this.arguments[this.arguments.length-e-1])):(null!=this.values&&e<this.values.length&&(i=this.values[e]),this.is(__.d.IStiRangeSeries)&&e<this.valuesEnd.length&&(s=this.valuesEnd[e]),this.is(__.d.IStiFinancialSeries)&&(e<this.valuesOpen.length&&(r=this.valuesOpen[e]),e<this.valuesClose.length&&(n=this.valuesClose[e]),e<this.valuesLow.length&&(l=this.valuesLow[e]),e<this.valuesHigh.length)&&(o=this.valuesHigh[e]),null!=this.arguments&&e<this.arguments.length&&(a=this.arguments[e])),__.d.StiChartHelper.getFilterData(null,t,null));return __.d.StiChartHelper.getFilterResult(t,a,i,s,r,n,l,o,h)}toString(){return this.serviceName}static tryParseValue(t,i,s){this.storedCulture=null;try{StiString.isNullOrEmpty(i)||(this.storedCulture=CultureInfo.currentCulture,CultureInfo.currentCulture=CultureInfo.cultures[i]);let e=StiNumber.tryParse(t);return s.ref=e.result,e.successfully}finally{null!=this.storedCulture&&(CultureInfo.currentCulture=this.storedCulture)}}static getNullableValuesFromString(s,e){let r=[],t=e.split(";");for(let i of t)if(null!=i&&0<i.trim().length){let t=0;try{t=i[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){}let e=i[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(0<i.length&&!isNaN(e))t=e;else{let e=DateTime.fromString(i,!1);null!=e&&(s.core.isDateTimeValues=!0,t=e.toOADate())}r.push(t)}return r}static getValuesFromString(e){let i=[],s=e.split(";");for(let t of s)if(null!=t&&0<t.trim().length){let e=0;try{e=t[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){}i.push(e)}return i}static getStringsFromString(e){let t=[],i=e.split(";");for(let e of i)null!=e&&0<e.trim().length&&t.push(e);return t}static getArgumentsFromString(e){return e.split(";")}getDefaultAreaType(){return null}getDefaultLegendType(){return __.d.StiLegend}invokeNewAutoSeries(e){null!=this.newAutoSeries&&this.newAutoSeries(e.series,e)}onGetValue(e){}invokeGetValue(i,s){try{if(this.onGetValue(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesValue**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.value,e));s.value=i.report.toString2(t)}null!=this.getValue&&this.getValue(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"value").isAll)throw s}}onGetListOfValues(e){}invokeGetListOfValues(i,s,r){try{if(this.onGetListOfValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValues,e));s.value=i.report.toString2(t)}null!=r.getListOfValues&&r.getListOfValues(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"ListOfValues").isAll)throw s}}onGetArgument(e){}invokeGetArgument(i,s){try{if(this.onGetArgument(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesArgument**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.argument,e));s.value=i.report.toString2(t)}null!=this.getArgument&&this.getArgument(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"argument").isAll)throw s}}onGetListOfArguments(e){}invokeGetListOfArguments(i,s){try{if(this.onGetListOfArguments(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfArguments**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfArguments,e));s.value=i.report.toString2(t)}null!=this.getListOfArguments&&this.getListOfArguments(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfArguments").isAll)throw s}}onGetTitle(e){}invokeGetTitle(i,s){try{if(this.onGetTitle(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesTitle**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.title,e));s.value=i.report.toString2(t)}null!=this.getTitle&&this.getTitle(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"title").isAll)throw s}}onGetToolTip(e){}invokeGetToolTip(i,s){try{if(this.onGetToolTip(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesToolTip**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.toolTip,e));s.value=StiString.isNullOrEmpty(this.toolTip)?null:i.report.toString2(t)}null!=this.getToolTip&&this.getToolTip(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"toolTip").isAll)throw s}}onGetListOfToolTips(e){}invokeGetListOfToolTips(i,s){try{if(this.onGetListOfToolTips(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfToolTips**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfToolTips,e));s.value=i.report.toString2(t)}null!=this.getListOfToolTips&&this.getListOfToolTips(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfToolTips").isAll)throw s}}onGetTag(e){}invokeGetTag(e,t){try{this.onGetTag(t),null!=this.getTag&&this.getTag(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"tag").isAll)throw t}}onGetListOfTags(e){}invokeGetListOfTags(e,t){try{this.onGetListOfTags(t),null!=this.getListOfTags&&this.getListOfTags(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"listOfTags").isAll)throw t}}onGetHyperlink(e){}invokeGetHyperlink(e,t){try{this.onGetHyperlink(t),null!=this.getHyperlink&&this.getHyperlink(e,t)}catch(t){if(Exception.logSeriesExpression(t,this.chart,this.serviceName,"hyperlink").isAll)throw t}}onGetListOfHyperlinks(e){}invokeGetListOfHyperlinks(i,s){try{if(this.onGetListOfHyperlinks(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfHyperlinks**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfHyperlinks,e));s.value=i.report.toString2(t)}null!=this.getListOfHyperlinks&&this.getListOfHyperlinks(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"listOfHyperlinks").isAll)throw s}}get value(){return this.valueObj}set value(e){this.valueObj=e}constructor(){super(),this.allowApplyStyle=!0,this.format="",this.sortBy=__.d.StiSeriesSortType.None,this.sortDirection=__.d.StiSeriesSortDirection.Ascending,this.showInLegend=!0,this._showSeriesLabels=__.d.StiShowSeriesLabels.FromChart,this.showShadow=!0,this.filterMode=StiFilterMode.And,this.filters=new __.d.StiChartFiltersCollection,this.conditions=new __.d.StiChartConditionsCollection,this.topN=new __.d.StiSeriesTopN,this.yAxis=__.d.StiSeriesYAxis.LeftYAxis,this.trendLines=new __.d.StiTrendLinesCollection,this.isTotalLabel=!1,this.valuesStart=[],this._values=[1,3,2],this.valueDataColumn="",this._arguments=[],this.argumentDataColumn="",this.autoSeriesTitleDataColumn="",this.autoSeriesKeyDataColumn="",this.autoSeriesColorDataColumn="",this._toolTips=[],this.toolTipDataColumn="",this._tags=[],this.tagDataColumn="",this._hyperlinks=[],this.hyperlinkDataColumn="",this.drillDownEnabled=!1,this.drillDownReport="",this.drillDownPageGuid=null,this.allowSeries=!0,this.allowSeriesElements=!0,this.isDashboard=!1,this.valueObj="",this.listOfValues="",this.argument="",this.listOfArguments="",this.titleValue=null,this.title="",this.toolTip="",this.listOfToolTips="",this.tag="",this.listOfTags="",this.hyperlink="",this.listOfHyperlinks="",this.seriesLabels=new __.d.StiCenterAxisLabels,this.interaction=new __.d.StiSeriesInteraction}}__.d.StiSeries=StiSeries}let StiComponentInfo=__.a.Engine.StiComponentInfo,StiBaseStyle=(__.d.StiChartInfo=class extends StiComponentInfo{constructor(){super(...arguments),this.storedForProcessAtEndChart=null,this.interactiveComps=null}implements(){let e=[__.d.IStiChartInfo];return(this.implements=()=>e)()}},__.a.Styles.StiBaseStyle),StiElementStyleIdent=__.a.Dashboard.StiElementStyleIdent;{class StiChartStyle extends StiBaseStyle{constructor(){super(...arguments),this.isOffice2015Style=!1,this.allowDashboard=!1,this.styleIdent=StiElementStyleIdent.Blue}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiChartStyle,ICloneable]);return(this.implements=()=>e)()}saveToJsonObject(e){let t=new StiJson;return t.addPropertyStringNullOrEmpty("Ident",this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),t}loadFromJsonObject(e){}static loadFromXml(i){if(null!=i.attributes.getNamedItem("type")){let e=i.attributes.getNamedItem("type").value,t=e.split(".").pop();return new __.d[t]}return null}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString();if("StiCustomStyle"==t)return new __.d.StiCustomStyle;{let e=Stimulsoft.StiOptions.Services.chartStyles.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==e)throw StiString.format("Type {0} is not found!",t);return StiActivator.createObject(e[Stimulsoft.System.StiObject.stimulsoft]().getType())}}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return StiChartStyle}toString(){if(this.is(__.d.StiCustomStyle)&&null!=this.core.reportChartStyle)return this.core.reportChartStyle.name;return this.serviceName}compareChartStyle(e){if(null==e)return!1;let i=this[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCustomStyle),s=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCustomStyle);if(null!=i&&null!=s){let e=i.core.reportStyleName,t=(null!=i.core.reportStyle&&(e=i.core.reportStyle.name),s.core.reportStyleName);return null!=s.core.reportStyle&&(t=s.core.reportStyle.name),e==t}return this[Stimulsoft.System.StiObject.stimulsoft]().getType()==e[Stimulsoft.System.StiObject.stimulsoft]().getType()}}__.d.StiChartStyle=StiChartStyle}__.d.StiStyle25=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Green")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Green,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF25}},__.d.StiStyle29=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Blue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Blue,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF29}},__.d.StiLegend=class{implements(){let e=[IStiJsonReportObject,ICloneable,__.d.IStiLegend];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","_",!0),new StiBoolMeta("HideSeriesWithEmptyTitle"),new StiBoolMeta("ShowShadow","",!0),new StiColorMeta("BorderColor","",Color.gray),new StiBrushMeta(["Brush","bh"]),new StiColorMeta("TitleColor","",Color.gray),new StiColorMeta("LabelsColor","",Color.gray),new StiEnumMeta("Direction","",__.d.StiLegendDirection,__.d.StiLegendDirection.TopToBottom),new StiEnumMeta(["HorAlignment","ha"],"",__.d.StiLegendHorAlignment,__.d.StiLegendHorAlignment.Left),new StiEnumMeta(["VertAlignment","va"],"",__.d.StiLegendVertAlignment,__.d.StiLegendVertAlignment.Top),new StiFontMeta("TitleFont","","Arial",14,FontStyle.Bold),new StiFontMeta(["Font","fn"],"","Arial",8),new StiBoolMeta("Visible","",!0),new StiBoolMeta("MarkerVisible","",!0),new StiBoolMeta("MarkerBorder","",!0),new StiSizeMeta("MarkerSize"),new StiEnumMeta("MarkerAlignment","",__.d.StiMarkerAlignment,__.d.StiMarkerAlignment.Left),new StiNumberMeta("Columns","_"),new StiNumberMeta("HorSpacing","",4),new StiNumberMeta("VertSpacing","",2),new StiSizeMeta("Size"),new StiStringNullOrEmptyMeta("Title"),new StiNumberMeta("ColumnWidth")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){this.showShadow=!0,StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){this.showShadow=!0,StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e,t){let i=e.properties().firstOrDefault(e=>"Ident"==e.name),s=null!=i?i.value.toString():"StiLegend",r=Stimulsoft.StiOptions.Services.chartLegends.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==s);if(null==r)throw StiString.format("Type {0} is not found!",s);let n=StiActivator.createObject(r[Stimulsoft.System.StiObject.stimulsoft]().getType());return n.chart=t,n.loadFromJsonObject(e),n}static loadLabelsFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.brush=this.brush.clone(),e.font=this.font.clone(),e.titleFont=this.titleFont.clone(),e.direction=this.direction,e.horAlignment=this.horAlignment,e.vertAlignment=this.vertAlignment,e.markerAlignment=this.markerAlignment,null!=this.core&&(e.core=this.core.clone(),e.core.legend=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}get columns(){return this._columns}set columns(e){0<=e&&(this._columns=e)}constructor(){this._allowApplyStyle=!0,this.chart=null,this.hideSeriesWithEmptyTitle=!1,this.showShadow=!0,this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.white),this.titleColor=Color.gray,this.labelsColor=Color.gray,this.direction=__.d.StiLegendDirection.TopToBottom,this.horAlignment=__.d.StiLegendHorAlignment.Left,this.vertAlignment=__.d.StiLegendVertAlignment.Top,this.titleFont=new Font("Arial",14,FontStyle.Bold),this.font=new Font("Arial",8),this.visible=!0,this.markerVisible=!0,this.markerBorder=!0,this.markerSize=new SizeD(10,10),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.horSpacing=4,this.vertSpacing=2,this.title="",this.columnWidth=0,this._columns=0,this.size=new Stimulsoft.System.Drawing.Size(0,0),this.core=new __.d.StiLegendCoreXF(this)}};let IStiCornerRadius=__.e.IStiCornerRadius,StiCornerRadius=Stimulsoft.Base.Drawing.StiCornerRadius,StiFontIcons=__.a.Helpers.StiFontIcons,StiFont=(__.d.StiTreemapSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiTreemapSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.cornerRadius=this.cornerRadius.clone(),e}getDefaultAreaType(){return __.d.StiTreemapArea}constructor(){super(),this.borderColor=Color.gray,this.borderThickness=1,this.cornerRadius=new StiCornerRadius,this.brush=new StiSolidBrush(Color.gainsboro),this.icon=null,this.core=new __.d.StiTreemapSeriesCoreXF(this)}},__.d.StiPictorialSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPictorialSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.QuarterFull)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPictorialArea}constructor(){super(),this.icon=StiFontIcons.QuarterFull,this.core=new __.d.StiPictorialSeriesCoreXF(this)}},Stimulsoft.Base.StiFont),StiLegendHorAlignment=__.d.StiLegendHorAlignment,StiPictorialSeries=__.d.StiPictorialSeries,StiLegendVertAlignment=__.d.StiLegendVertAlignment,StiTreemapSeries=__.d.StiTreemapSeries,StiChartEditorType=__.d.StiChartEditorType,IStiGetFonts=Stimulsoft.Base.IStiGetFonts,StiAxisArea=__.d.StiAxisArea,IStiAxisArea=__.d.IStiAxisArea,StiSeriesLabels=__.d.StiSeriesLabels,StiChartStyle=__.d.StiChartStyle,StiArea=__.d.StiArea,StiJsonReportObjectHelper=Stimulsoft.Base.StiJsonReportObjectHelper,StiChartConditionsCollection=__.d.StiChartConditionsCollection,IStiChart=__.d.IStiChart,IStiClusteredColumnArea=__.d.IStiClusteredColumnArea,StiCenterAxisLabels=__.d.StiCenterAxisLabels,StiChartCoreXF=__.d.StiChartCoreXF,StiChartInfo=__.d.StiChartInfo,StiChartTitle=__.d.StiChartTitle,StiChartTable=__.d.StiChartTable,StiClusteredColumnArea=__.d.StiClusteredColumnArea,StiConstantLinesCollection=__.d.StiConstantLinesCollection,StiLegend=__.d.StiLegend,StiRadarArea=__.d.StiRadarArea,StiSeries=__.d.StiSeries,StiStripsCollection=__.d.StiStripsCollection,StiSeriesCollection=__.d.StiSeriesCollection,StiStyle29=__.d.StiStyle29,StiChartHelper=__.d.StiChartHelper,StiImageRotation=__.e.StiImageRotation,StiComponentPriority=__.e.StiComponentPriority,StiComponentType=__.e.StiComponentType,StiBorder=Stimulsoft.Base.Drawing.StiBorder,StiFilter=__.e.StiFilter,StiFiltersCollection=__.e.StiFiltersCollection,StiBrush=Stimulsoft.Base.Drawing.StiBrush,StiComponent=__.e.StiComponent,StiEvent=__.c.StiEvent;__.e.StiChart=class extends StiComponent{implements(){let e=super.implements().concat([__.e.IStiBorder,__.e.IStiBusinessObject,__.e.IStiBrush,__.e.IStiDataSource,__.e.IStiDataRelation,__.e.IStiMasterComponent,__.e.IStiSort,__.e.IStiFilter,__.e.IStiExportImage,__.e.IStiExportImageExtended,__.a.IStiIgnoryStyle,__.a.IStiGlobalizationProvider,IStiChart,IStiJsonReportObject,IStiGetFonts]);return(this.implements=()=>e)()}saveToJsonObject(e){let t,i=super.saveToJsonObject(e);return i.removeProperty("CanShrink"),i.removeProperty("CanGrow"),i.addPropertyBool("AllowApplyStyle",this.allowApplyStyle,!0),i.addPropertyEnum("FilterMode",__.e.StiFilterMode,this.filterMode,__.e.StiFilterMode.And),i.addPropertyBool("FilterOn",this.filterOn,!0),i.addPropertyStringNullOrEmpty("Border",StiJsonReportObjectHelper.Serialize.jBorder(this.border)),i.addPropertyStringNullOrEmpty("Brush",StiJsonReportObjectHelper.Serialize.jBrush(this.brush)),i.addPropertyStringNullOrEmpty("DataSourceName",this.dataSourceName),i.addPropertyStringNullOrEmpty("BusinessObjectGuid",this.businessObjectGuid),i.addPropertyNumber("CountData",this.countData),i.addPropertyStringNullOrEmpty("DataRelationName",this.dataRelationName),i.addPropertyBool("ProcessAtEnd",this.processAtEnd),i.addPropertyJObject("ProcessChartEvent",null==(t=this.processChartEvent)?void 0:t.saveToJsonObject(e)),i.addPropertyEnum("Rotation",StiImageRotation,this.rotation,StiImageRotation.None),i.addPropertyEnum("EditorType",StiChartEditorType,this.editorType,StiChartEditorType.Advanced),i.addPropertyStringNullOrEmpty("CustomStyleName",this.customStyleName),i.addPropertyNumber("HorSpacing",this.horSpacing,10),i.addPropertyNumber("VertSpacing",this.vertSpacing,10),null!=this.masterComponent&&i.addPropertyStringNullOrEmpty("MasterComponent",this.masterComponent.name),i.addPropertyJObject("Series",this._series.saveToJsonObject(e)),i.addPropertyJObject("Area",this._area.saveToJsonObject(e)),i.addPropertyJObject("Table",this.table.saveToJsonObject(e)),i.addPropertyJObject("SeriesLabels",this.seriesLabels.saveToJsonObject(e)),i.addPropertyJObject("Legend",this.legend.saveToJsonObject(e)),i.addPropertyJObject("Title",this._title.saveToJsonObject(e)),i.addPropertyJObject("Strips",this.strips.saveToJsonObject(e)),i.addPropertyJObject("ConstantLines",this.constantLines.saveToJsonObject(e)),i.addPropertyJObject("Style",this.style.saveToJsonObject(e)),e==StiJsonSaveMode.Report&&(i.addPropertyJObject("Filters",this.filters.saveToJsonObject(e)),i.addPropertyJObject("Sort",StiJsonReportObjectHelper.Serialize.stringArray(this.sort)),i.addPropertyJObject("SeriesLabelsConditions",this.seriesLabelsConditions.saveToJsonObject(e))),i}loadFromJsonObject(e){super.loadFromJsonObject(e);for(let t of e.properties())switch(t.name){case"FilterMode":this.filterMode=Enum.parse(__.e.StiFilterMode,t.value.toString());break;case"Filters":this.filters.loadFromJsonObject(t.value);break;case"FilterOn":this.filterOn=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"Border":case"br":this.border=StiJsonReportObjectHelper.Deserialize.border(t.value.toString());break;case"Brush":case"bh":this.brush=StiJsonReportObjectHelper.Deserialize.brush(t.value.toString());break;case"DataSourceName":this.dataSourceName=t.value.toString();break;case"BusinessObjectGuid":this.businessObjectGuid=t.value.toString();break;case"CountData":this.countData=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"DataRelationName":null!=t.value&&""!=t.value&&(this.dataRelationName=t.value.toString());break;case"ProcessAtEnd":this.processAtEnd=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"ProcessChartEvent":{let e=new StiEvent;e.loadFromJsonObject(t.value),this.processChartEvent=e;break}case"SeriesLabelsConditions":this.seriesLabelsConditions.loadFromJsonObject(t.value);break;case"Rotation":this.rotation=Enum.parse(StiImageRotation,t.value.toString());break;case"EditorType":this.editorType=Enum.parse(StiChartEditorType,t.value.toString());break;case"AllowApplyStyle":this.allowApplyStyle=t.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"CustomStyleName":this.customStyleName=t.value.toString();break;case"HorSpacing":this._horSpacing=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"VertSpacing":this._vertSpacing=t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"MasterComponent":this.jsonMasterComponentTemp=t.value.toString(),this.report.jsonLoaderHelper&&this.report.jsonLoaderHelper.masterComponents.push(this);break;case"Style":this.style=StiChartStyle.loadFromJsonObjectInternal(t.value);break;case"ConstantLines":this.constantLines.loadFromJsonObject(t.value);break;case"Strips":this.strips.loadFromJsonObject(t.value);break;case"Title":this.title.loadFromJsonObject(t.value);break;case"Legend":this.legend=StiLegend.loadFromJsonObjectInternal(t.value,this);break;case"SeriesLabels":this.seriesLabels=StiSeriesLabels.loadFromJsonObjectInternal(t.value,this);break;case"Table":this._table.loadFromJsonObject(t.value);break;case"Area":this._area=StiArea.loadFromJsonObjectInternal(t.value),this._area.chart=this;break;case"Series":this._series.loadFromJsonObject(t.value);break}null==this.report||this.report.isDocument||this.core.applyStyle(this.style)}loadFromXml(i){super.loadFromXml(i);let e=i.getAttribute("Ref");!StiString.isNullOrEmpty(e)&&this.report.jsonLoaderHelper&&(this.report.jsonLoaderHelper.refNames[e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()]=i.nodeName);for(let e=0;e<i.childNodes.length;e++){let t=i.childNodes[e];switch(t.nodeName){case"FilterMode":this.filterMode=Enum.parse(__.e.StiFilterMode,t.textContent);break;case"Filters":this.filters.loadFromXml(t);break;case"FilterOn":this.filterOn=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"Border":case"br":this.border=StiBorder.loadFromXml(t.textContent);break;case"Brush":this.brush=StiBrush.loadFromXml(t.textContent);break;case"DataSourceName":this._dataSourceName=t.textContent;break;case"BusinessObjectGuid":this._businessObjectGuid=t.textContent;break;case"CountData":this.countData=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"DataRelationName":this.dataRelationName=t.textContent;break;case"ProcessAtEnd":this.processAtEnd=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"ProcessChartEvent":{let e=new StiEvent;e.script=t.textContent,this.processChartEvent=e;break}case"Rotation":this.rotation=Enum.parse(StiImageRotation,t.textContent);break;case"EditorType":this.editorType=Enum.parse(StiChartEditorType,t.textContent);break;case"AllowApplyStyle":this.allowApplyStyle=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"CustomStyleName":this.customStyleName=t.textContent;break;case"HorSpacing":this._horSpacing=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"VertSpacing":this._vertSpacing=t.textContent[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break;case"MasterComponent":this.jsonMasterComponentTemp=t.getAttribute("isRef"),this.report.jsonLoaderHelper&&this.report.jsonLoaderHelper.masterComponents.push(this);break;case"Style":{let e=__.d.StiChartStyle.loadFromXml(t);null!=e&&(this.style=e);break}case"ConstantLines":this.constantLines.loadFromXml(t);break;case"Strips":this.strips.loadFromXml(t);break;case"Title":{let e=new __.d.StiChartTitle;e.loadFromXml(t),(e.chart=this).title=e;break}case"Legend":{let e=__.d.StiLegend.loadLabelsFromXml(t,this);(e.chart=this).legend=e;break}case"Table":{let e=new __.d.StiChartTable;e.chart=this,e.loadFromXml(t),this._table=e;break}case"SeriesLabels":{let e=__.d.StiSeriesLabels.loadLabelsFromXml(t,this);e&&(this.seriesLabels=e);break}case"Area":this._area=StiArea.loadAreaFromXml(t,this);break;case"Series":this._series.loadFromXml(t,this);break;case"SeriesLabelsConditions":this.seriesLabelsConditions.loadFromXml(t);break}}this.core.applyStyle(this.style)}convert(e,t,i=!1){super.convert(e,t,i),this.legend.size=t.convertSizeFromHInches(e.convertSizeToHInches(this.legend.size))}convertToHInches(e){return null!=this.report?this.report.unit.convertToHInches(e):e}setString(s,r){switch(s){case"Title.Text":this.title.text=r;break;case"Legend.Title":this.legend.title=r;break;case"SeriesLabels.TextBefore":this.seriesLabels.textBefore=r;break;case"SeriesLabels.TextAfter":this.seriesLabels.textAfter=r;break}let e=this.area.as(IStiAxisArea);if(null!=e)switch(s){case"Area.XAxis.Labels.TextBefore":e.xAxis.labels.textBefore=r;break;case"Area.XAxis.Labels.TextAfter":e.xAxis.labels.textAfter=r;break;case"Area.XAxis.Title.Text":e.xAxis.title.text=r;break;case"Area.YAxis.Labels.TextBefore":e.yAxis.labels.textBefore=r;break;case"Area.YAxis.Labels.TextAfter":e.yAxis.labels.textAfter=r;break;case"Area.YAxis.Title.Text":e.yAxis.title.text=r;break;case"Area.XTopAxis.Labels.TextBefore":e.xTopAxis.labels.textBefore=r;break;case"Area.XTopAxis.Labels.TextAfter":e.xTopAxis.labels.textAfter=r;break;case"Area.XTopAxis.Title.Text":e.xTopAxis.title.text=r;break;case"Area.YRightAxis.Labels.TextBefore":e.yRightAxis.labels.textBefore=r;break;case"Area.YRightAxis.Labels.TextAfter":e.yRightAxis.labels.textAfter=r;break;case"Area.YRightAxis.Title.Text":e.yRightAxis.title.text=r;break}let n=0;for(let i of this.series.list){let e=`Series${n}.Title`,t=(s==e&&i.coreTitle!=r&&(i.coreTitle=r),`Series${n}.TopN.OtherText`);s==t&&(i.topN.othersText=r),s==`Series${n}.Value`&&(i.value=r),s==`Series${n}.ValueDataColumn`&&(i.valueDataColumn=r),s==`Series${n}.ListOfValues`&&(i.listOfValues=r),s==`Series${n}.Argument`&&(i.argument=r),s==`Series${n}.ArgumentDataColumn`&&(i.argumentDataColumn=r),s==`Series${n}.ListOfArguments`&&(i.listOfArguments=r),n++}}getString(s){switch(s){case"Title.Text":return this.title.text;case"Legend.Title":return this.legend.title;case"SeriesLabels.TextBefore":return this.seriesLabels.textBefore;case"SeriesLabels.TextAfter":return this.seriesLabels.textAfter}let e=this.area.as(IStiAxisArea);if(null!=e)switch(s){case"Area.XAxis.Labels.TextBefore":return e.xAxis.labels.textBefore;case"Area.XAxis.Labels.TextAfter":return e.xAxis.labels.textAfter;case"Area.XAxis.Title.Text":return e.xAxis.title.text;case"Area.YAxis.Labels.TextBefore":return e.yAxis.labels.textBefore;case"Area.YAxis.Labels.TextAfter":return e.yAxis.labels.textAfter;case"Area.YAxis.Title.Text":return e.yAxis.title.text;case"Area.XTopAxis.Labels.TextBefore":return e.xTopAxis.labels.textBefore;case"Area.XTopAxis.Labels.TextAfter":return e.xTopAxis.labels.textAfter;case"Area.XTopAxis.Title.Text":return e.xTopAxis.title.text;case"Area.YRightAxis.Labels.TextBefore":return e.yRightAxis.labels.textBefore;case"Area.YRightAxis.Labels.TextAfter":return e.yRightAxis.labels.textAfter;case"Area.YRightAxis.Title.Text":return e.yRightAxis.title.text}let r=0;for(let i of this.series.list){let e=`Series${r}.Title`;if(s==e)return i.coreTitle;let t=`Series${r}.TopN.OtherText`;if(s==t)return i.topN.othersText;if(s==`Series${r}.Value`)return i.value;if(s==`Series${r}.ValueDataColumn`)return i.valueDataColumn;if(s==`Series${r}.ListOfValues`)return i.listOfValues;if(s==`Series${r}.Argument`)return i.argument;if(s==`Series${r}.ArgumentDataColumn`)return i.argumentDataColumn;if(s==`Series${r}.ListOfArguments`)return i.listOfArguments;r++}throw StiString.format("Property with name {0}",s)}getAllStrings(){let t=[];t.push("Title.Text"),t.push("Legend.Title"),t.push("SeriesLabels.TextBefore"),t.push("SeriesLabels.TextAfter"),this.area.is(IStiAxisArea)&&(t.push("Area.XAxis.Labels.TextBefore"),t.push("Area.XAxis.Labels.TextAfter"),t.push("Area.XAxis.Title.Text"),t.push("Area.YAxis.Labels.TextBefore"),t.push("Area.YAxis.Labels.TextAfter"),t.push("Area.YAxis.Title.Text"),t.push("Area.XTopAxis.Labels.TextBefore"),t.push("Area.XTopAxis.Labels.TextAfter"),t.push("Area.XTopAxis.Title.Text"),t.push("Area.YRightAxis.Labels.TextBefore"),t.push("Area.YRightAxis.Labels.TextAfter"),t.push("Area.YRightAxis.Title.Text"));for(let e=0;e<this.series.count;e++)t.push(`Series${e}.Title`),t.push(`Series${e}.TopN.OtherText`),t.push(`Series${e}.Value`),t.push(`Series${e}.ValueDataColumn`),t.push(`Series${e}.ListOfValues`),t.push(`Series${e}.Argument`),t.push(`Series${e}.ArgumentDataColumn`),t.push(`Series${e}.ListOfArguments`);return t}clone(){let e,s=super.clone();s.chartInfo=this.chartInfo.clone(),s.brush=this.brush.clone(),s.border=this.border.clone(),null!=this.sort?s.sort=this.sort.slice():s.sort=null,null!=this.filters?s.filters=this.filters.clone():s.filters=null,null!=s.title&&(s.title=this.title.clone()),null!=s.area&&(s.area=this.area.clone()),null!=s.seriesLabels&&(s.seriesLabels=this.seriesLabels.clone()),null!=s.legend&&(s.legend=this.legend.clone()),null!=s.table&&(s.table=this.table.clone()),s.series=new StiSeriesCollection,s.series.seriesAdded=this.series_SeriesAdded,s.series.seriesRemoved=this.series_SeriesRemoved;for(let i of this.series.list){let e=i.clone(),t=e.title;s.series.add(e),e.title=t}s.constantLines=new StiConstantLinesCollection;for(let e of this.constantLines.list)s.constantLines.add(e.clone());s.strips=new StiStripsCollection;for(let e of this.strips.list)s.strips.add(e.clone());return null!=s.core&&(s.core=this.core.clone(),s.core.chart=s),s.processChartEvent=null==(e=this.processChartEvent)?void 0:e.clone(),s}saveState(e){super.saveState(e),this.states.pushInt(e,this,"positionValue",this.positionValue),this.states.pushBool(e,this,"isEofValue",this.isEofValue),this.states.pushBool(e,this,"isBofValue",this.isBofValue),null!=this.dataSource&&this.dataSource.saveState(e)}restoreState(e){super.restoreState(e),this.states.isExist(e,this)&&(this.isBofValue=this.states.popBool(e,this,"isBofValue"),this.isEofValue=this.states.popBool(e,this,"isEofValue"),this.positionValue=this.states.popInt(e,this,"positionValue")),null!=this.dataSource&&this.dataSource.restoreState(e)}getImage(e,t=__.a.StiExportFormat.None){if(null!=this.report&&null!=this.report.preparedExportImages){let e=this.report.preparedExportImages.get(this);if(null!=e)return e}let i=new __.a.Export.StiSvgData,s=(i.component=this,i.x=0,i.y=0,i.width=this.report.unit.convertToHInches(this.width),i.height=this.report.unit.convertToHInches(this.height),this.report.isExporting&&t!==__.a.StiExportFormat.Html&&t!==__.a.StiExportFormat.Html5&&t!==__.a.StiExportFormat.HtmlDiv&&t!==__.a.StiExportFormat.HtmlSpan&&t!==__.a.StiExportFormat.HtmlTable);return __.a.Export.StiChartSvgHelper.getImage(i,s)}isExportAsImage(e){if(e==__.a.StiExportFormat.Pdf)return!1;if(e==__.a.StiExportFormat.ImageSvg)return!1;return!0}get filter(){return 0==this.filters.count&&this.filters.add(new StiFilter),this.filters.getByIndex(0).item=__.e.StiFilterItem.Expression,this.filters.getByIndex(0).expression}set filter(e){0==this.filters.count&&this.filters.add(new StiFilter),this.filters.getByIndex(0).item=__.e.StiFilterItem.Expression,this.filters.getByIndex(0).expression=e}get sort(){return this._sort}set sort(e){this._sort=e}get dataSource(){if(this.isCacheValues)return this.cachedDataSource;if(null==this.page||null==this.report||null==this.report.dataSources||null==this.dataSourceName||0==this.dataSourceName.length)return null;return this.report.dataSources.getByName(this.dataSourceName)}get dataSourceName(){return this._dataSourceName}set dataSourceName(e){this._dataSourceName!=e&&(this._dataSourceName=e)}get isDataSourceEmpty(){if(this.isCacheValues)return this.cachedIsDataSourceEmpty;return StiString.isNullOrEmpty(this.dataSourceName)||null==this.dataSource}get isBusinessObjectEmpty(){if(this.isCacheValues)return this.cachedIsBusinessObjectEmpty;return StiString.isNullOrEmpty(this.businessObjectGuid)||null==this.businessObject}get businessObject(){if(this.isCacheValues)return this.cachedBusinessObject;if(null==this.page||null==this.report||null==this.businessObjectGuid||0==this.businessObjectGuid.length)return null;return __.a.Dictionary.StiBusinessObjectHelper.getBusinessObjectFromGuid(this.report,this.businessObjectGuid)}get businessObjectGuid(){return this._businessObjectGuid}set businessObjectGuid(e){this._businessObjectGuid!=e&&(this._businessObjectGuid=e,StiString.isNullOrEmpty(e)||(this.dataSourceName=null))}first(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isEofValue=!1,this.isBofValue=!0,this.positionValue=0):this.dataSource.first():this.businessObject.first()}prior(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isBofValue=!1,this.isEofValue=!1,this.positionValue<=0?this.isBofValue=!0:this.positionValue--):this.dataSource.prior():this.businessObject.prior()}next(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isBofValue=!1,this.isEofValue=!1,this.positionValue>=this.countData-1?this.isEofValue=!0:this.positionValue++):this.dataSource.next():this.businessObject.next()}last(){this.isBusinessObjectEmpty?this.isDataSourceEmpty?(this.isEofValue=!0,this.isBofValue=!1,this.positionValue=this.countData-1):this.dataSource.last():this.businessObject.last()}get isEof(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isEofValue:this.dataSource.isEof:this.businessObject.isEof}set isEof(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isEofValue=e:this.dataSource.isEof=e:this.businessObject.isEof=e}get isBof(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isBofValue:this.dataSource.isBof:this.businessObject.isBof}set isBof(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.isBofValue=e:this.dataSource.isBof=e:this.businessObject.isBof=e}get isEmpty(){return this.isBusinessObjectEmpty?this.isDataSourceEmpty?0==this.countData:this.dataSource.isEmpty:this.businessObject.isEmpty}get position(){if(!this.isBusinessObjectEmpty)return this.businessObject.position;if(!this.isDataSourceEmpty)return this.dataSource.position;return this.positionValue}set position(e){this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.positionValue=e:this.dataSource.position=e:this.businessObject.position=e}get count(){if(this.isCacheValues)return this.cachedCount;return this.isBusinessObjectEmpty?this.isDataSourceEmpty?this.countData:this.dataSource.count:this.businessObject.count}cacheValues(e){e?(this.cachedCount=this.count,this.cachedIsBusinessObjectEmpty=this.isBusinessObjectEmpty,this.cachedIsDataSourceEmpty=this.isDataSourceEmpty,this.cachedDataSource=this.dataSource,this.cachedBusinessObject=this.businessObject):(this.cachedDataSource=null,this.cachedBusinessObject=null),this.isCacheValues=e}get dataRelation(){if(null==this.page||null==this.report||null==this.report.dictionary||null==this.report.dictionary.relations||null==this.dataRelationName||0==this.dataRelationName.length)return null;return this.report.dictionary.relations.getByName(this.dataRelationName)}getFonts(){let t=[...super.getFonts(),this.title.font,this.legend.font,this.table.dataCells.font,this.table.header.font,...this.constantLines.list.map(e=>e.font),...this.strips.list.map(e=>e.font)];this.area.is(StiAxisArea)&&t.push(this.area.xAxis.labels.font,this.area.xAxis.title.font,this.area.yAxis.labels.font,this.area.yAxis.title.font,this.area.xTopAxis.labels.font,this.area.xTopAxis.title.font,this.area.yRightAxis.labels.font,this.area.yRightAxis.title.font),this.area.is(StiRadarArea)&&t.push(this.area.xAxis.labels.font,this.area.yAxis.labels.font);for(let e of this.series.list)e.is(StiSeries)&&(t.push(...e.trendLines.list.map(e=>e.font)),null!=e.seriesLabels)&&t.push(e.seriesLabels.font);return StiFont.get(...t)}get priority(){return StiComponentPriority.Component}get localizedCategory(){return StiLocalization.get("Report","Components")}get componentType(){return StiComponentType.Simple}get localizedName(){return StiLocalization.get("Components","StiChart")}invokeEvents(){try{super.invokeEvents(),this.invokeProcessChart(this,EventArgs.empty)}catch(e){if(Exception.log(e,this,"invokeEvents").isAll)throw e}}onProcessChart(e){}invokeProcessChart(e,t){try{this.onProcessChart(t)}catch(t){if(Exception.logEvent(t,this,"processChart").isAll)throw t}}series_SeriesAdded(e){let t=e,i=t.chart;null!=i.area&&i.area.core.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())||(i.area=StiActivator.createObject(t.getDefaultAreaType()),null!=i.seriesLabels&&i.area.core.isAcceptableSeriesLabels(i.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().getType()))||(i.seriesLabels=StiActivator.createObject(i.area.getDefaultSeriesLabelsType())),null!=i.legend&&i.legend.core.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())||(i.legend=StiActivator.createObject(t.getDefaultLegendType())),1==i.series.length&&i.series.getByIndex(0).is(StiTreemapSeries)?i.legend.vertAlignment=StiLegendVertAlignment.TopOutside:1==i.series.length&&i.series.getByIndex(0).is(StiPictorialSeries)&&(i.legend.vertAlignment=StiLegendVertAlignment.TopOutside,i.legend.horAlignment=StiLegendHorAlignment.Center,i.legend.columns=1),i.core.applyStyle(i.style)}series_SeriesRemoved(e){let t=e,s=t.chart;if(0==s.series.count)return void(s.area.is(IStiClusteredColumnArea)||(s.area=new StiClusteredColumnArea,s.area.core.applyStyle(this.style)));if(null!=s.area){let i=s.area[Stimulsoft.System.StiObject.stimulsoft]().getType();for(let t of s.series.list){let e=t.getDefaultAreaType();if(e==i)return}}s.area=StiActivator.createObject(s.series.getByIndex(0).getDefaultAreaType()),this.allowApplyStyle&&this.core.applyStyle(s.style)}get chartType(){return this.area}set chartType(e){this.area=e}applyStyle(){this.allowApplyStyle&&this.core.applyStyle(this.style)}simplifyValues(){let e=0;while(e<this.series.count){let i=this.series.getByIndex(e);if(3e3<i.values.length){let t=StiChartHelper.getShorterListPoints(i);i.values=[],i.arguments=[];for(let e=1;e<t.length;e++)i.values[e]=t[e].x,i.arguments[e]=t[e].y}e++}}get series(){return this._series}set series(e){this._series=e,this._series.chart=this}get area(){return this._area}set area(e){this._area!=e&&(e.is(StiRadarArea)&&(this._area=e),null!=(this._area=e)?this._area.chart=this:this._area=null)}get table(){return this._table}set table(e){this._table!=e&&(this._table=e,this._table.chart=this)}get style(){return this._style}set style(e){this._style!=e&&null!=(this._style=e)&&(e.core.chart=this)}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&this.core.applyStyle(this.style)}get horSpacing(){return this._horSpacing}set horSpacing(e){0<=e&&(this._horSpacing=e)}get vertSpacing(){return this._vertSpacing}set vertSpacing(e){0<=e&&(this._vertSpacing=e)}get seriesLabels(){return this._seriesLabels}set seriesLabels(e){null!=(this._seriesLabels=e)&&(this._seriesLabels.chart=this)}get labels(){return this._seriesLabels}set labels(e){this._seriesLabels=e}get legend(){return this._legend}set legend(e){if(null==e)throw new Error("new NullReferenceException()");this._legend=e,this._legend.chart=this}get title(){return this._title}set title(e){this._title!=e&&(this._title=e,this._title.chart=this)}get strips(){return this._strips}set strips(e){this._strips=e,this._strips.chart=this}get constantLines(){return this._constantLines}set constantLines(e){this._constantLines=e,this._constantLines.chart=this}constructor(e=RectangleD.empty){super(e),this.filterMode=StiFilterMode.And,this.filters=new StiFiltersCollection,this.filterOn=!0,this.border=new StiBorder,this.brush=new StiSolidBrush(Color.transparent),this._sort=[],this._dataSourceName="",this._businessObjectGuid="",this.masterComponent=null,this.countData=0,this.isEofValue=!1,this.isBofValue=!1,this.isCacheValues=!1,this.cachedCount=0,this.cachedIsBusinessObjectEmpty=!1,this.cachedIsDataSourceEmpty=!1,this.cachedDataSource=null,this.cachedBusinessObject=null,this.dataRelationName="",this.processAtEnd=!1,this.defaultClientRectangle=new RectangleD(0,0,200,200),this.processChartEvent=null,this.seriesLabelsConditions=new StiChartConditionsCollection,this.rotation=StiImageRotation.None,this.editorType=StiChartEditorType.Advanced,this._style=new StiStyle29,this._allowApplyStyle=!0,this.customStyleName="",this._horSpacing=10,this._vertSpacing=10,this.isAnimation=!0,this.isAnimationChangingValues=!0,this.chartInfo=new StiChartInfo,this._allowApplyStyle=Stimulsoft.StiOptions.Engine.defaultValueOfAllowApplyStyleProperty,this.legend=new StiLegend,this.series=new StiSeriesCollection,this.series.seriesAdded=this.series_SeriesAdded,this.series.seriesRemoved=this.series_SeriesRemoved,this.area=new StiClusteredColumnArea,this.seriesLabels=new StiCenterAxisLabels,this.constantLines=new StiConstantLinesCollection,this.strips=new StiStripsCollection,this.title=new StiChartTitle,this.table=new StiChartTable,this.previousAnimations=new List,this.core=new StiChartCoreXF(this),this.core.applyStyle(this.style)}};{class Ip{static get oldChartPercentMode(){return Ip._oldChartPercentMode}static set oldChartPercentMode(e){Ip._oldChartPercentMode=e}}Ip._oldChartPercentMode=!1,__.d.StiChartOptions=Ip}__.d.StiInteractionOptions=class{constructor(){this.updateContext=!1,this.recallEvent=!1,this.recallTime=TimeSpan.zero,this.isRecalled=!1,this.mousePoint=PointD.empty,this.dragEnabled=!1,this.dragDelta=SizeD.empty,this.interactionToolTip=null,this.interactionHyperlink=null,this.seriesInteractionData=null}};{let l;(e=>{e[e["Left"]=0]="Left",e[e["Right"]=1]="Right",e[e["Beyond"]=2]="Beyond",e[e["Behind"]=3]="Behind",e[e["Between"]=4]="Between",e[e["Origin"]=5]="Origin",e[e["Destination"]=6]="Destination"})(l=l||{});class Lp{static getPointClassify(e,t,i){let s=new PointD(i.x-t.x,i.y-t.y),r=new PointD(e.x-t.x,e.y-t.y),n=s.x*r.y-r.x*s.y;if(0<n)return l.Left;if(n<0)return l.Right;if(s.x*r.x<0||s.y*r.y<0)return l.Behind;if(Math.sqrt(s.x*s.x+s.y*s.y)<Math.sqrt(r.x*r.x+r.y*r.y))return l.Beyond;if(t.equals(e))return l.Origin;if(i.equals(e))return l.Destination;return l.Between}static isPointInTriangle(e,t,i,s){return Lp.getPointClassify(e,t,i)!=l.Left&&Lp.getPointClassify(e,i,s)!=l.Left&&Lp.getPointClassify(e,s,t)!=l.Left}static isPointInPolygon(t,i){for(let e=0;e<i.length;e++)if(Lp.getPointClassify(t,i[e],e+1<i.length?i[e+1]:i[0])==l.Left)return!1;return!0}static getLineOffsetRectangle(e,t,i){let s=Math.atan2(t.y-e.y,t.x-e.x),r=i/2,n=StiArray.create(PointD,4,!0);return n[0]=new PointD(e.x+r*Math.cos(s+.5*Math.PI),e.y+r*Math.sin(s+.5*Math.PI)),n[1]=new PointD(t.x+r*Math.cos(s+.5*Math.PI),t.y+r*Math.sin(s+.5*Math.PI)),n[2]=new PointD(t.x+r*Math.cos(s+1.5*Math.PI),t.y+r*Math.sin(s+1.5*Math.PI)),n[3]=new PointD(e.x+r*Math.cos(s+1.5*Math.PI),e.y+r*Math.sin(s+1.5*Math.PI)),n}static isLineContainsPoint(e,t,i,s){let r=this.getLineOffsetRectangle(e,t,i);return Lp.isPointInPolygon(s,r)}static optimizePoints(s){if(s.length<800)return s;let r=1,n=0,l=0,o=0,a=0,h=[];while(n<s.length){if(null==s[n]){while(n<s.length&&null==s[n])n++;h.push(null);continue}let i=s[n];if(++n<s.length&&null!=s[n]&&null!=s[n]&&s[n].x-i.x<r){l=i.x,o=i.y,a=i.y;let e=i.y,t=i.y;while(n<s.length&&null!=s[n]&&null!=s[n]&&s[n].x-l<r)o=Math.min(o,s[n].y),a=Math.max(a,s[n].y),t=s[n].y,n++;t>e?(h.push(new PointD(l,o)),h.push(new PointD(l+r/2,a))):(h.push(new PointD(l,a)),h.push(new PointD(l+r/2,o)))}else h.push(i)}return h}}__.d.StiPointHelper=Lp}{class tq{static getSquareDistance(e,t){let i=e.x-t.x,s=e.y-t.y;return i*i+s*s}static getSquareSegmentDistance(t,e,i){let s=e.x,r=e.y,n=i.x-s,l=i.y-r;if(0!=n||0!=l){let e=((t.x-s)*n+(t.y-r)*l)/(n*n+l*l);1<e?(s=i.x,r=i.y):0<e&&(s+=n*e,r+=l*e)}return(n=t.x-s)*n+(l=t.y-r)*l}static simplifyRadialDistance(t,i){let s=t[0],r=[],n=(r.push(s),new PointD);for(let e=1;e<t.length;e++)n=t[e],tq.getSquareDistance(n,s)>i&&(r.push(n),s=n);return s!=n&&r.push(n),r}static simplifyDouglasPeucker(s,e){let t=s.length,r=StiArray.create(Number,t),n=0,l=t-1,o=0,a=[],i=[];r[n]=r[l]=1;while(null!=l){let i=0;for(let t=n+1;t<l;t++){let e=tq.getSquareSegmentDistance(s[t],s[n],s[l]);e>i&&(o=t,i=e)}if(i>e){r[o]=1;let e=[n,o,o,l];a.push(...e)}0<a.length?(l=a[a.length-1],a[Stimulsoft.System.StiObject.stimulsoft]().removeAt(a.length-1)):l=null,0<a.length?(n=a[a.length-1],a[Stimulsoft.System.StiObject.stimulsoft]().removeAt(a.length-1)):n=null}for(let e=0;e<t;e++)0!=r[e]&&i.push(s[e]);return i}static simplify(e,t,i){if(null==e||0==e.length)return[];let s=t*t;if(i)return tq.simplifyDouglasPeucker(e,s);let r=tq.simplifyRadialDistance(e,s);return tq.simplifyDouglasPeucker(r,s)}}__.d.StiSimplifyHelper=tq}__.d.StiBoxAndWhiskerHelper=class{static checkArgument(e){let i=[];for(let t of e.series.toCast()){let e=t.as(__.d.StiBoxAndWhiskerSeries);null!=e&&i.push(e.coreTitle)}for(let t of e.series.toCast()){let e=t.as(__.d.StiBoxAndWhiskerSeries);null!=e&&(e.arguments=i,e.originalArguments=i)}}};{class jr{static getColorFromRange(r,n,l,o){{let e=l-n,t=o-n,i=t/e,s=jr.getLinearGradientPoints(r.length);return jr.getColorAtOffset(r,s,i)}}static getColorAtOffset(t,i,s){if(isNaN(s))return Color.empty;if(0==t.length)return Color.empty;if(1==t.length)return t[0];let r,n,l,o;for(let e=0;e<t.length-1;e++)if(l=i[e],o=i[e+1],l<=s&&s<=o){r=t[e],n=t[e+1];break}let e=o-l,a=s-l,h=a/e,u=this.interpolate(r.r,n.r,h),S=this.interpolate(r.g,n.g,h),d=this.interpolate(r.b,n.b,h);return Color.fromArgb(255,u,S,d)}static interpolate(e,t,i){return Math.round(e+(t-e)*i)}static getLinearGradientPoints(t){let i=new List,s=1/(t-1);for(let e=0;e<t;e++)i[e]=s*e,e==t-1&&(i[e]=1);return i}}__.d.StiHeatmapHelper=jr}__.d.StiHistogramHelper=class{static checkValuesAndArguments(s,r){if(!s.is(__.d.StiHistogramSeries))return;let t=s.values,e=this.getStandardDeviation(t),n=3.5*e/Math.pow(t.length,1/3),i=(n=n||1,n=this.roundToSignificantDigits(n,6),t[Stimulsoft.System.StiObject.stimulsoft]().toList().min()),l=i-n/2,o=(i<0&&l<0?l=t[Stimulsoft.System.StiObject.stimulsoft]().toList().min():l<0&&(l=0),[]),a=[],h=0,u=0,S=0,d=l+n,m=s.chart.area.as(__.d.StiAxisArea);for(let e of t[Stimulsoft.System.StiObject.stimulsoft]().toList().orderBy(e=>e)){if(e>d||u==t.length-1){o.push(h);let e=null!=r?r.format(l):m.xAxis.core.getLabelText2(l,l,s),t=null!=r?r.format(d):m.xAxis.core.getLabelText2(d,d,s),i=0==S?"["+e+", "+t+"]":"("+e+", "+t+"]";a.push(i),h=0,S++,l+=n*S,d=l+n}u++,h++}s.values=o,s.arguments=a,s.originalArguments=a.slice(),s.valuesStart=[]}static roundToSignificantDigits(e,t){if(0==e)return 0;let i=Math.pow(10,Math.floor(StiMath.log10(Math.abs(e)))+1);return StiMath.round2(i*StiMath.round2(e/i,t),t)}static getStandardDeviation(e){let t=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.length,i=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(e=>Math.pow(e-t,2));return Math.sqrt(i/(e.length-1))}};{class ls{static createColorWithCorrectedLightness(e,t){if(0==t)return e;let i=e.r,s=e.g,r=e.b;return t<0?(t=1+t,i*=t,s*=t,r*=t):(i=(255-i)*t+i,s=(255-s)*t+s,r=(255-r)*t+r),Color.fromArgb(e.a,i,s,r)}static getActualAngle(e,t){let i=e.height*Math.cos(t*Math.PI/180),s=e.width*Math.sin(t*Math.PI/180),r=180*Math.atan2(s,i)/Math.PI;if(r<0)return r+360;return r}static transformAngle(e,t){let i=e.width*Math.cos(t*Math.PI/180),s=e.height*Math.sin(t*Math.PI/180),r=180*Math.atan2(s,i)/Math.PI;if(r<0)return r+360;return r}}ls.brightnessEnhancementFactor1=.3,__.d.StiPie3dHelper=ls}let StiEmptyCellsAs=__.a.Dashboard.StiEmptyCellsAs,StiShowEmptyCellsAs=__.d.StiShowEmptyCellsAs,StiFontGeom=(__.d.StiShowEmptyCellsAsHelper=class{static convert(e){switch(e){case StiEmptyCellsAs.Zero:return StiShowEmptyCellsAs.Zero;case StiEmptyCellsAs.Gap:return StiShowEmptyCellsAs.Gap;case StiEmptyCellsAs.ConnectPointsWithLine:return StiShowEmptyCellsAs.ConnectPointsWithLine;default:return StiShowEmptyCellsAs.Zero}}static seriesIsEmtyCellsAs(e){return e.is(__.d.StiLineSeries)||e.is(__.d.StiSplineSeries)}},Stimulsoft.Base.Context.StiFontGeom),StiColorUtils=(__.d.StiTextContentHelper=class{static getMeasureText(e,t,i,s){return this.getMeasureText2(e,t,StiFontGeom.create(i),s)}static getMeasureText2(i,s,r,n){for(let t=0;s.length>t;t++){let e=s.substr(0,t);if(n<i.measureString(e,r).width){if(4<e.length)return e.substr(0,e.length-3)+`...`;if(1<e.length)return e.substr(0,1)+`...`}}return s}},__.d.StiAreaCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAreaCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.area.allowApplyStyle&&(this.area.brush=e.core.chartAreaBrush,this.area.borderColor=e.core.chartAreaBorderColor,this.area.borderThickness=e.core.chartAreaBorderThickness,this.area.showShadow=e.core.chartAreaShowShadow)}render(e,t){return null}prepareInfo(e){}checkInLabelsTypes(t){let i=this.area.getSeriesLabelsTypes();for(let e of i)if(e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName())return!0;return!1}getSeries(){let t=new Hashtable,i=this.area.getSeriesTypes();for(let e of i)t.set(e,e);let s=[];for(let e of this.area.chart.series.list){if(null==t.get(e[Stimulsoft.System.StiObject.stimulsoft]().getType()))continue;s.push(e)}return s}isAcceptableSeries(t){let i=this.area.getSeriesTypes();for(let e of i)if(e==t)return!0;return!1}isAcceptableSeriesLabels(t){let i=this.area.getSeriesLabelsTypes();for(let e of i)if(e==t)return!0;return!1}get localizedName(){return null}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Vertical}get position(){return null}constructor(e){this.area=e}},Stimulsoft.Base.Drawing.StiColorUtils),IStiShowNullsSeriesAs=__.d.IStiShowNullsSeriesAs,IStiShowZerosSeriesAs=__.d.IStiShowZerosSeriesAs;__.d.StiBaseLineSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative,__.d.IStiShowNullsSeries,IStiShowNullsSeriesAs,__.d.IStiShowZerosSeries,IStiShowZerosSeriesAs]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowZeros","",!0),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiNumberMeta("LabelsOffset"),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative"),new StiEnumMeta("ShowNullsAs","",StiShowEmptyCellsAs,StiShowEmptyCellsAs.Zero),new StiEnumMeta("ShowZerosAs","",StiShowEmptyCellsAs,StiShowEmptyCellsAs.Zero)]}clone(){let e=super.clone();return e.marker=this.marker.clone(),e.lineStyle=this.lineStyle,e}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineColor(){return this.getLineColor()}set lineColor(e){this.setLineColor(e)}getLineColor(){return this._lineColor}setLineColor(e){this._lineColor=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}get showNullsAs(){return this._showNullsAs}set showNullsAs(e){this._showNullsAs=e,this.showNulls=e==StiShowEmptyCellsAs.Zero}get showZerosAs(){return this._showZerosAs}set showZerosAs(e){this._showZerosAs=e,this.showZeros=e==StiShowEmptyCellsAs.Zero}constructor(){super(),this.showNulls=!0,this.showZeros=!0,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this._lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.labelsOffset=0,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this._showNullsAs=StiShowEmptyCellsAs.Zero,this._showZerosAs=StiShowEmptyCellsAs.Zero,this.seriesLabels=new __.d.StiOutsideEndAxisLabels}};{class tt extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiScatterSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}getLineColor(){if(this[Stimulsoft.System.StiObject.stimulsoft]().getType()==tt){if(this.marker.brush.is(StiSolidBrush))return this.marker.brush.color;if(this.marker.brush.is(StiGradientBrush))return this.marker.brush.startColor}return super.getLineColor()}setLineColor(e){super.setLineColor(e)}constructor(){super(),this.core=new __.d.StiScatterSeriesCoreXF(this)}}__.d.StiScatterSeries=tt}__.d.StiScatterLineSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([__.d.IStiScatterLineSeries,__.d.IStiBaseLineSeries,__.d.IStiScatterSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}constructor(){super(),this.core=new __.d.StiScatterLineSeriesCoreXF(this)}};{class zt extends __.d.StiAreaCoreXF{implements(){let e=[__.d.IStiAxisAreaCoreXF];return(this.implements=()=>e)()}applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.xTopAxis&&t.xTopAxis.core.applyStyle(e),null!=t.yAxis&&t.yAxis.core.applyStyle(e),null!=t.yRightAxis)&&t.yRightAxis.core.applyStyle(e)}render(l,o){let a=this.area,h=(a.yAxis.info.minimum=0,a.yAxis.info.maximum=0,a.yRightAxis.info.minimum=0,a.yRightAxis.info.maximum=0,a.xAxis.info.minimum=0,a.xAxis.info.maximum=0,a.xTopAxis.info.minimum=0,a.xTopAxis.info.maximum=0,this.rightActualMin=null,this.rightActualMax=null,this.prepareInfo(o.clone()),null),u=null,S=null,d=null,m=null,c=null,e=null,t=null,i=null,s=null,r=null,n=null,g=RectangleD.empty,p=RectangleD.empty,_=RectangleD.empty,f=RectangleD.empty,C=RectangleD.empty,w=RectangleD.empty,b=RectangleD.empty,y=a.core.getSeries();if(0<y.length){let i=0,s=0,r=0,n=0;if(g=(a.reverseHor?a.yRightAxis:a.yAxis).core.getAxisRect(l,o,!0,!0,!1,!0),this.area.chart.table.core.showTable()){let e=this.area.chart.table.core.getWidthCellLegend(l);e>g.width&&(g.width=e,g.x=-e,0==g.height)&&(g.height=1)}if(g.isEmpty||(g.x+=o.x,g.y+=o.y),g.isEmpty||(r=g.width,g.top<o.top&&(i=Math.abs(o.top-g.top)),o.bottom<g.bottom&&(s=Math.abs(g.bottom-o.bottom))),(p=a.yAxis.core.getCenterAxisRect(l,o,!0,!0,!1)).isEmpty||(p.x+=o.x,p.y+=o.y),(_=(a.reverseHor?a.yAxis:a.yRightAxis).core.getAxisRect(l,o,!0,!0,!1,!0)).isEmpty||(_.x+=o.x,_.y+=o.y),_.isEmpty||(n=_.width,_.top<o.top&&(i=Math.max(i,Math.abs(o.top-_.top))),o.bottom<_.bottom&&(s=Math.max(s,Math.abs(_.bottom-o.bottom)))),(f=a.xTopAxis.core.getAxisRect(l,o,!0,!0,!1,!0)).isEmpty||(f.x+=o.x,f.y+=o.y),f.isEmpty||(i=Math.max(f.height,i),f.x<o.x&&(r=Math.max(r,Math.abs(o.left-f.left))),o.right<f.right&&(n=Math.max(n,Math.abs(f.right-o.right)))),(C=a.xAxis.core.getCenterAxisRect(l,o,!0,!0,!1)).isEmpty||(C.x+=o.x,C.y+=o.y),a.reverseHor){let e={ref:r},t={ref:n};this.swap(e,t),r=e.ref,n=t.ref}let e=new RectangleD(o.x+r,o.y,o.width-r-n,o.height),t=(a.xAxis.info.dpi=e.width/a.xAxis.info.range,this.calculateStepX(a.xAxis,e.left,e.right),{ref:a.xAxis.info.labelsCollection});if(this.calculatePositions(a.xAxis,t,0<a.xAxis.labels.step?StiMath.trunc(a.xAxis.labels.step):1,!1),a.xAxis.info.labelsCollection=t.ref,(w=a.xAxis.core.getAxisRect(l,e,!0,!0,!1,!0)).isEmpty||this.area.chart.table.core.showTable()||(w.x+=o.x,w.y+=o.y),w.isEmpty||this.area.chart.table.core.showTable()&&!this.area.chart.table.chart.area.is(__.d.IStiClusteredBarArea)||(s=Math.max(w.height,s),w.x<o.x&&(r=Math.max(r,Math.abs(o.left-w.left))),o.right<w.right&&(n=Math.max(n,Math.abs(w.right-o.right)))),a.reverseHor){let e={ref:r},t={ref:n};this.swap(e,t),r=e.ref,n=t.ref}if(a.reverseVert){let e={ref:i},t={ref:s};this.swap(e,t),i=e.ref,s=t.ref}o.x+=r,o.width-=r+n,o.y+=i,o.height-=i+s,this.prepareInfo(o),h=a.yAxis.core.renderView(l,o),u=a.yAxis.core.renderCenterView(l,o),S=a.yRightAxis.core.renderView(l,o),d=a.xTopAxis.core.renderView(l,o),m=a.xAxis.core.renderCenterView(l,o),c=a.xAxis.core.renderView(l,o)}b=o.clone();let x=this.calculateScrollValuesX(o.clone(),a),A=this.calculateScrollValuesY(o.clone(),a),L=(o.x=-this.scrollDistanceX,o.y=-this.scrollDistanceY,o.width*=x,o.height*=A,this.prepareInfo(o.clone()),0<y.length&&(e=a.yAxis.core.render(l,o.clone()),t=a.yAxis.core.renderCenter(l,o.clone()),i=a.yRightAxis.core.render(l,o.clone()),s=a.xTopAxis.core.render(l,o.clone()),r=a.xAxis.core.renderCenter(l,o.clone()),n=a.xAxis.core.render(l,o.clone()),null!=e&&(e.view=h),null!=t&&(t.view=u),null!=i&&(i.view=S),null!=s&&(s.view=d),null!=r&&(r.view=m),null!=n)&&(n.view=c),null!=c&&a.xAxis.core.renderScrollBar(l,c.clientRectangle,c),null!=d&&a.xTopAxis.core.renderScrollBar(l,d.clientRectangle,d),null!=h&&a.yAxis.core.renderScrollBar(l,h.clientRectangle,h),null!=S&&a.yRightAxis.core.renderScrollBar(l,S.clientRectangle,S),new __.d.StiAxisAreaViewGeom(a,b)),T=new __.d.StiAxisAreaGeom(L,a,o.clone());L.createChildGeoms(),L.childGeoms.push(T);for(let e of this.area.chart.strips.list)e.showBehind&&e.core.render(l,T,o.clone());for(let e of this.area.chart.constantLines.list)e.showBehind&&e.core.render(l,T,o.clone());this.renderSeries(l,o.clone(),T,y);for(let e of this.area.chart.strips.list)e.showBehind||e.core.render(l,T,o.clone());for(let e of this.area.chart.constantLines.list)e.showBehind||e.core.render(l,T,o.clone());return null!=e&&(L.createChildGeoms(),h.createChildGeoms(),L.childGeoms.push(h),h.childGeoms.push(e)),null!=t&&(L.createChildGeoms(),u.createChildGeoms(),L.childGeoms.push(u),u.childGeoms.push(t)),null!=i&&(L.createChildGeoms(),S.createChildGeoms(),L.childGeoms.push(S),S.childGeoms.push(i)),null!=s&&(L.createChildGeoms(),d.createChildGeoms(),L.childGeoms.push(d),d.childGeoms.push(s)),null!=r&&(L.createChildGeoms(),m.createChildGeoms(),L.childGeoms.push(m),m.childGeoms.push(r)),null==n||this.area.chart.table.core.showTable()&&!this.area.chart.table.chart.area.is(__.d.IStiClusteredBarArea)||(L.createChildGeoms(),c.createChildGeoms(),L.childGeoms.push(c),c.childGeoms.push(n)),L}calculateScrollValuesX(e,t){let i,s,r=1;if((this.isAutoRangeXAxis(t.xAxis)||(i=t.xAxis.range.minimum,s=t.xAxis.range.maximum,i>s))&&(i=t.xAxis.info.minimum,s=t.xAxis.info.maximum),this._scrollRangeX=t.xAxis.info.maximum-t.xAxis.info.minimum,this._scrollViewX=s-i,!t.xAxis.core.getStartFromZero()||t.xAxis.logarithmicScale?this.blockScrollValueX=!0:this.blockScrollValueX=!1,!this.blockScrollValueX&&!t.xAxis.interaction.showScrollBar){let e=i+Math.abs(t.xAxis.info.minimum);0<t.xAxis.info.minimum&&0<i&&(e=Math.abs(i-t.xAxis.info.minimum)),this.scrollValueX=t.reverseHor?this._scrollRangeX-e-this._scrollViewX:e}return r=this.scrollRangeX/this.scrollViewX,this._scrollDpiX=e.width*r/this.scrollRangeX,r}calculateScrollValuesY(e,t){let i,s,r=1;if((this.isAutoRangeYAxis(t.yAxis)||(i=t.yAxis.range.minimum,s=t.yAxis.range.maximum,i>s))&&(i=t.yAxis.info.minimum,s=t.yAxis.info.maximum),this._scrollRangeY=t.yAxis.info.maximum-t.yAxis.info.minimum,this._scrollViewY=s-i,!t.yAxis.core.getStartFromZero()||t.yAxis.logarithmicScale?this.blockScrollValueY=!0:this.blockScrollValueY=!1,this.blockScrollValueY)this.scrollValueY=0;else{let e=i+Math.abs(t.yAxis.info.minimum);t.reverseVert?this.scrollValueY=e:this.scrollValueY=this._scrollRangeY-e-this._scrollViewY}return r=this.scrollRangeY/this.scrollViewY,this._scrollDpiY=e.height*r/this.scrollRangeY,t.yRightAxis.range.auto||(this.rightActualMin=this.getRightActualMin(t.yAxis.range.minimum,t.yAxis.range.maximum,t.yAxis.info.minimum,t.yRightAxis.range.minimum,t.yRightAxis.range.maximum),this.rightActualMax=this.getRightActualMax(t.yAxis.range.minimum,t.yAxis.range.maximum,t.yAxis.info.maximum,t.yRightAxis.range.minimum,t.yRightAxis.range.maximum)),r}prepareInfo(h){let u=this.getSeries();if(0<u.length){let e=this.area,t=(this.valuesCount=0,this.is(__.d.StiClusteredBarAreaCoreXF)?e.yAxis:e.xAxis),i=this.is(__.d.StiClusteredBarAreaCoreXF)?e.yRightAxis:e.xTopAxis,s=this.is(__.d.StiClusteredBarAreaCoreXF)?e.xAxis:e.yAxis,r=this.is(__.d.StiClusteredBarAreaCoreXF)?e.xTopAxis:e.yRightAxis,n=(t.info.stripLines=new __.d.StiStripLinesXF,s.info.stripLines=new __.d.StiStripLinesXF,r.info.stripLines=new __.d.StiStripLinesXF,!1);for(let t=0;t<u.length;t++){let e=u[t].values;null!=(e=u[t].is(__.d.StiCandlestickSeries)?u[t].valuesOpen:e)&&(this.valuesCount=Math.max(e.length,this.valuesCount)),u[t].core.isDateTimeValues&&(n=!0)}this.is(__.d.StiBoxAndWhiskerAreaCoreXF)&&(this.valuesCount=u.length),this.prepareRange(t,i,s,r),!s.range.auto&&s.range.maximum>s.info.maximum&&(s.info.maximum=s.range.maximum),!s.range.auto&&s.range.minimum<s.info.minimum&&(s.info.minimum=s.range.minimum),(!r.range.auto&&r.range.maximum>r.info.maximum||e.is(__.d.StiParetoArea))&&(r.info.maximum=r.range.maximum),!r.range.auto&&r.range.minimum<r.info.minimum&&(r.info.minimum=r.range.minimum),null!=this.rightActualMin&&(r.info.minimum=this.rightActualMin,r.info.maximum=this.rightActualMax);let l=0<this.area.chart.series.count&&this.area.chart.series.getByIndex(0).is(__.d.StiScatterSeries),o=(s.logarithmicScale&&l?this.calculateMinimumAndMaximumYAxisLog(s):(this.checkStartFromZeroYAxis(s),this.checkStartFromZeroYAxis(r),this.calculateMinimumAndMaximumYAxis(s),r.range.auto&&this.calculateMinimumAndMaximumYAxis(r)),this.calculateMinimumAndMaximumXAxis(t),this.createStripLinesXAxis(t),this.createStripLinesYAxis(s,n),this.createStripLinesYAxis(r,n),this.checkStripLinesAndMaximumMinimumXAxis(t),this.checkStripLinesAndMaximumMinimumYAxis(s),null==this.rightActualMin&&this.checkStripLinesAndMaximumMinimumYAxis(r),e.is(__.d.IStiClusteredBarArea)&&(zt.rotateStripLines(t),zt.rotateStripLines(s),zt.rotateStripLines(r)),i.info=t.info.clone(),this.checkShowEdgeValues(t),this.checkShowEdgeValues(i),e.reverseHor&&(zt.rotateStripLines(e.xAxis),zt.rotateStripLines(e.xTopAxis)),e.reverseVert&&(zt.rotateStripLines(e.yAxis),zt.rotateStripLines(e.yRightAxis)),e.xAxis.info.dpi=h.width/e.xAxis.info.range,e.xTopAxis.info.dpi=h.width/e.xTopAxis.info.range,e.yAxis.info.dpi=h.height/e.yAxis.info.range,e.yRightAxis.info.dpi=h.height/e.yRightAxis.info.range,this.calculateStepX(e.xAxis,h.left,h.right),this.calculateStepX(e.xTopAxis,h.left,h.right),this.calculateStepY(e.yAxis,h.top,h.bottom),this.calculateStepY(e.yRightAxis,h.top,h.bottom),{ref:e.xAxis.info.labelsCollection}),a=(this.calculatePositions(e.xAxis,o,0<e.xAxis.labels.step?StiMath.trunc(e.xAxis.labels.step):1,!1),e.xAxis.info.labelsCollection=o.ref,o={ref:e.xTopAxis.info.labelsCollection},this.calculatePositions(e.xTopAxis,o,0<e.xTopAxis.labels.step?StiMath.trunc(e.xTopAxis.labels.step):1,!1),e.xTopAxis.info.labelsCollection=o.ref,o={ref:e.yAxis.info.labelsCollection},this.calculatePositions(e.yAxis,o,0<e.yAxis.labels.step?StiMath.trunc(e.yAxis.labels.step):1,!1),e.yAxis.info.labelsCollection=o.ref,o={ref:e.yRightAxis.info.labelsCollection},this.calculatePositions(e.yRightAxis,o,0<e.yRightAxis.labels.step?StiMath.trunc(e.yRightAxis.labels.step):1,!1),e.yRightAxis.info.labelsCollection=o.ref,{ref:e.xAxis.info.ticksCollection});this.calculatePositions(e.xAxis,a,0<e.xAxis.ticks.step?StiMath.trunc(e.xAxis.ticks.step):1,!0),e.xAxis.info.ticksCollection=a.ref,a={ref:e.xTopAxis.info.ticksCollection},this.calculatePositions(e.xTopAxis,a,0<e.xTopAxis.ticks.step?StiMath.trunc(e.xTopAxis.ticks.step):1,!0),e.xTopAxis.info.ticksCollection=a.ref,a={ref:e.yAxis.info.ticksCollection},this.calculatePositions(e.yAxis,a,0<e.yAxis.ticks.step?StiMath.trunc(e.yAxis.ticks.step):1,!0),e.yAxis.info.ticksCollection=a.ref,a={ref:e.yRightAxis.info.ticksCollection},this.calculatePositions(e.yRightAxis,a,0<e.yRightAxis.ticks.step?StiMath.trunc(e.yRightAxis.ticks.step):1,!0),e.yRightAxis.info.ticksCollection=a.ref}}renderSeries(r,n,l,e){let i=[],s=new Hashtable;for(let t of e)if(this.isAcceptableSeries(t[Stimulsoft.System.StiObject.stimulsoft]().getType())){let e=s.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],i.push(e),s.add(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let e of i){let s=e;if(s[0].is(__.d.StiStackedBarSeries)||s[0].is(__.d.StiStackedColumnSeries)||s[0].is(__.d.StiStackedBaseLineSeries)){let t=[],i=[];for(let e of s)(e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?t:i).push(e);0<t.length&&t[0].core.renderSeries(r,n,l,t),0<i.length&&i[0].core.renderSeries(r,n,l,i)}else s[0].core.renderSeries(r,n,l,s)}}isAutoRangeXAxis(e){return e.range.auto||e.range.minimum>=e.range.maximum||e.logarithmicScale}isAutoRangeYAxis(e){return e.range.auto||e.range.maximum==e.range.minimum||this.area.isDefaultSeriesTypeFullStackedColumnSeries||e.logarithmicScale}calculateMinimumAndMaximumXAxis(e){e.range.auto||(e.info.maximum=e.range.maximum,e.info.minimum=e.range.minimum)}calculateMinimumAndMaximumYAxisLog(t){if(t.is(__.d.IStiYAxis)){let e=.05;t.info.minimum=t.info.minimum-e,t.info.maximum=t.info.maximum+e}}calculateMinimumAndMaximumYAxis(i){if(0<this.getSeries().length&&this.getSeries()[0].is(__.d.StiGanttSeries))return void(i.range.auto||(i.info.maximum=i.range.maximum,i.info.minimum=i.range.minimum));if(!i.startFromZero&&i.range.auto&&i.is(__.d.IStiYAxis)){let e=.05*(i.info.maximum-i.info.minimum);if(0!=e)i.info.minimum-=e,i.info.maximum+=e,i.info.minimum<0&&0<=i.info.minimum+e&&(i.info.minimum=0);else if(0===i.info.minimum&&0===i.info.maximum)i.info.maximum=1,i.info.minimum=-1;else{let e=zt.getNextLowerDigit(i.info.maximum);i.info.maximum+=e,i.info.minimum-=e}}else{let e=.1,t=(0<this.getSeries().length&&this.getSeries()[0].seriesLabels.is(__.d.StiOutsideEndAxisLabels)&&(e=.15),Math.min(e,Math.abs(4/((i.info.maximum+i.info.minimum)/2))));i.info.maximum*=1+t*Math.sign(i.info.maximum),i.info.minimum*=1-t*Math.sign(i.info.minimum)}i.info.minimum==i.info.maximum&&(0==i.info.maximum?i.info.maximum=100:(i.info.minimum-=.1*i.info.minimum,i.info.maximum+=.1*i.info.maximum))}static getNextLowerDigit(e){if(0===e)return 1;let t=Math.abs(e),i=Math.pow(10,Math.floor(Math.log10(t))),s=i/10;return s}getArgumentLabel(e,t){if(null==e)return"";let i=this.area;return(i.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?i.xAxis:i.yAxis).core.getLabelText(e,t)}switchOff(){let e=this.area;e.gridLinesHor.visible=!1,e.gridLinesVert.visible=!1,e.interlacingHor.visible=!1,e.interlacingVert.visible=!1,e.xAxis.visible=!1,e.yAxis.visible=!1,e.xTopAxis.visible=!1,e.yRightAxis.visible=!1,e.yAxis.range.auto=!0,e.xAxis.range.auto=!0,e.xAxis.startFromZero=!0,e.gridLinesHor.minorVisible=!1,e.gridLinesVert.minorVisible=!1,e.gridLinesHorRight.visible=!1}swap(e,t){let i=e.ref;e.ref=t.ref,t.ref=i}prepareRange(e,t,i,s){}createStripLinesXAxis(s){let r=s.core.getStartFromZero(),t=r?this.valuesCount+1:this.valuesCount;for(let e=r?0:1;e<=t;e++)s.info.stripLines.add2(e,e);let i=this.getSeries();for(let e of i)for(let i=0;i<this.valuesCount;i++){let t=null;if(null!=e.arguments&&i<e.arguments.length&&null==(t=e.arguments[i]))continue;if(null!=t){let e=r?1+i:i;e<s.info.stripLines.count&&(s.info.stripLines.getByIndex(e).valueObject=t)}}}checkShowEdgeValues(t){if(0<t.info.stripLines.count){let e=(t.is(__.d.IStiXTopAxis)?t.area.xTopAxis:t.area.xAxis).showEdgeValues;e&&!t.area.is(__.d.IStiClusteredBarArea)||(t.info.stripLines.getByIndex(0).valueObject=null,t.info.stripLines.getByIndex(t.info.stripLines.count-1).valueObject=null)}}createStripLinesYAxis(l,e){if(this.area.isDefaultSeriesTypeFullStackedColumnSeries||this.area.isDefaultSeriesTypeFullStackedBarSeries){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=(0==t&&0==r&&(r=100),l.labels.step);0==n&&(n=__.d.StiStripLineCalculatorXF.getInterval(t,r,6)),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let t=l.labels.step;if(0==(t=0<t&&0<l.info.range&&500<l.info.range/t?0:t)){t=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6);let e=this.area.chart;e.isDashboard&&(l.labels.calculatedStep=t)}l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines2(l,t,e)}}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}checkStripLinesAndMaximumMinimumYAxis(e){0<e.info.stripLines.count?(e.info.maximum=e.info.stripLines.getByIndex(0).value,e.info.minimum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.maximum=100,e.info.minimum=0)}calculateStepX(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(0).value-e.info.stripLines.getByIndex(1).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}calculateStepY(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}checkStartFromZeroYAxis(e){e.core.getStartFromZero()&&(e.info.maximum<0&&(e.info.maximum=0),0<e.info.minimum)&&(e.info.minimum=0)}calculatePositions(s,e,t,r){let n=[],i=this.area,l=!1,o=(this.area.is(__.d.IStiYAxis)?l=i.reverseVert:this.area.is(__.d.IStiXAxis)&&(l=i.reverseHor),0),a=s.info.stripPositions.length;for(let i=0;i<a;i++){if(0==o){let e=new __.d.StiStripPositionXF,t=l?a-i-1:i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],l?n[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):n.push(e)}if(this.area.core.is(__.d.StiScatterAreaCoreXF)&&s.is(__.d.IStiXAxis)&&!s.logarithmicScale)continue;if(this.area.core.is(__.d.StiClusteredBarAreaCoreXF)&&s.is(__.d.IStiXAxis)&&!r)continue;if(!this.area.core.is(__.d.StiClusteredBarAreaCoreXF)&&s.is(__.d.IStiYAxis)&&!r)continue;if(i==a-1){let e=s;if(null!=e&&e.showEdgeValues){let e=new __.d.StiStripPositionXF,t=l?0:a-1;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],l?n[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):n.push(e)}}++o==t&&(o=0)}e.ref=n}calculateDivider(t){let e=this.area,i=0;if(null!=t.info.stripLines)for(let e of t.info.stripLines.list){if(0==e.value)return t.info.stripPositions[i];i++}return t.is(__.d.IStiYAxis)?e.reverseVert?-t.info.minimum*t.info.dpi:null==t.info.stripPositions||0==t.info.stripPositions.length?t.info.minimum*t.info.dpi:t.info.stripPositions[t.info.stripPositions.length-1]+t.info.minimum*t.info.dpi:t.is(__.d.IStiXAxis)?e.reverseHor?null==t.info.stripPositions||0==t.info.stripPositions.length?t.info.minimum*t.info.dpi:t.info.stripPositions[t.info.stripPositions.length-1]+t.info.minimum*t.info.dpi:-t.info.minimum*t.info.dpi:0}static rotateStripLines(t){let i=new __.d.StiStripLinesXF;for(let e of t.info.stripLines.list)i.insert(0,e);t.info.stripLines=i}getDividerX(){let e=this.area;if(this.is(__.d.StiClusteredBarAreaCoreXF)||this.is(__.d.StiScatterAreaCoreXF))return this.calculateDivider(e.xAxis);return 0}getDividerTopX(){let e=this.area;if(this.is(__.d.StiClusteredBarAreaCoreXF))return this.calculateDivider(e.xTopAxis);return 0}getDividerY(){let e=this.area;return this.is(__.d.StiClusteredBarAreaCoreXF)&&!this.is(__.d.StiGanttAreaCoreXF)?0:this.calculateDivider(e.yAxis)}getDividerRightY(){let e=this.area;return this.is(__.d.StiClusteredBarAreaCoreXF)&&!this.is(__.d.StiGanttAreaCoreXF)?0:this.calculateDivider(e.yRightAxis)}getRightActualMin(e,t,i,s,r){return s-(e-i)*(r-s)/(t-e)}getRightActualMax(e,t,i,s,r){return r+(i-t)*(r-s)/(t-e)}get scrollDistanceX(){return this.scrollDpiX*this.scrollValueX}get scrollDistanceY(){return this.scrollDpiY*this.scrollValueY}get scrollRangeX(){return this._scrollRangeX}get scrollRangeY(){return this._scrollRangeY}get scrollViewX(){return this._scrollViewX}get scrollViewY(){return this._scrollViewY}get scrollDpiX(){return this._scrollDpiX}get scrollDpiY(){return this._scrollDpiY}constructor(e){super(e),this.valuesCount=0,this._scrollRangeX=0,this._scrollRangeY=0,this._scrollViewX=0,this._scrollViewY=0,this.blockScrollValueX=!1,this.blockScrollValueY=!1,this.scrollValueX=0,this.scrollValueY=0,this.rightActualMin=null,this.rightActualMax=null,this._scrollDpiX=1,this._scrollDpiY=1,this.scrollDragStartValue=0}}__.d.StiAxisAreaCoreXF=zt}__.d.StiClusteredColumnAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareRange(e,t,s,r){let n=!0,l=!0,o=!1,a=!1,h=(s.info.maximum=0,s.info.minimum=0,r.info.maximum=0,r.info.minimum=0,this.getSeries());for(let e=0;e<h.length;e++){let t=h[e],i=t.values;for(let e of i)t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?null!=e&&(n?(o=!0,s.info.maximum=e,s.info.minimum=e,n=!1):(o=!0,s.info.maximum=Math.max(e,s.info.maximum),s.info.minimum=Math.min(e,s.info.minimum))):null!=e&&(l?(a=!0,r.info.maximum=e,r.info.minimum=e,l=!1):(a=!0,r.info.maximum=Math.max(e,r.info.maximum),r.info.minimum=Math.min(e,r.info.minimum)))}o||(s.info.maximum=r.info.maximum,s.info.minimum=r.info.minimum),a||(r.info.maximum=s.info.maximum,r.info.minimum=s.info.minimum)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}get position(){return __.d.StiChartAreaPosition.ClusteredColumn}constructor(e){super(e)}};let StiChartAreaPosition=__.d.StiChartAreaPosition,StiConvert=(__.d.StiBoxAndWhiskerAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","BoxAndWhisker")}get position(){return StiChartAreaPosition.Bubble}constructor(e){super(e)}},Stimulsoft.Base.StiConvert),StiEmptyBrush=(__.d.StiScatterAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{isXAxisAutoRange(e){let t=this.area;return e.range.auto||t.xAxis.range.maximum==t.xAxis.range.minimum||e.logarithmicScale}prepareRange(e,t,i,s){super.prepareRange(e,t,i,s);let r=!0,n=(e.info.maximum=0,e.info.minimum=0,this.isArgumentDateTime=!1,this.getSeries());for(let s of n){if(0<s.arguments.length&&"string"==typeof s.arguments[0]){let e=s.arguments[0];if(e.endsWith("AM")||e.endsWith("PM"))for(let t=0;t<s.arguments.length;t++){let e=DateTime.fromString(s.arguments[t].toString(),!1);null!=e&&(s.arguments[t]=e)}}for(let i of s.arguments){let t=0;if(i instanceof DateTime)this.isArgumentDateTime=!0,t=i.toOADate();else if("string"==typeof i){let e={ref:0};__.d.StiSeries.tryParseValue(i,s.chart.report.culture,e)&&(t=e.ref)}else try{t=StiConvert.changeType(i,Number)}catch(e){t=0}r?(r=!1,e.info.maximum=t,e.info.minimum=t):(e.info.maximum=Math.max(e.info.maximum,t),e.info.minimum=Math.min(e.info.minimum,t))}}}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}createStripLinesXAxis(s){if(!this.isArgumentDateTime&&!s.logarithmicScale&&this.isXAxisAutoRange(s)){let e=.05*Math.abs(s.info.maximum-s.info.minimum);if(0!=e)s.info.maximum+=e,s.info.minimum-=e,s.info.minimum<0&&0<=s.info.minimum+e&&(s.info.minimum=0);else if(0==s.info.minimum&&0==s.info.maximum)s.info.maximum=1,s.info.minimum=-1;else{let e=__.d.StiAxisAreaCoreXF.getNextLowerDigit(s.info.maximum);s.info.maximum+=e,s.info.minimum-=e}s.core.getStartFromZero()&&(s.info.maximum<0?s.info.maximum=0:s.info.minimum=0),s.info.minimum==s.info.maximum&&(0==s.info.maximum?s.info.maximum=100:(s.info.minimum-=.1*s.info.minimum,s.info.maximum-=.1*s.info.maximum))}let e=s.labels.step;0==e&&(e=__.d.StiStripLineCalculatorXF.getInterval(s.info.minimum,s.info.maximum,6));let r;r=s.logarithmicScale?__.d.StiStripLineCalculatorXF.getStripLinesLogScale(s.info.minimum,s.info.maximum):this.isArgumentDateTime?__.d.StiStripLineCalculatorXF.getScatterXDateStripLines(s.info.minimum,s.info.maximum,e):__.d.StiStripLineCalculatorXF.getStripLines2(s,e,!1),s.info.stripLines.clear();for(let i=r.count-1;0<=i;i--){let e=r.getByIndex(i).value,t=r.getByIndex(i).valueObject;this.isArgumentDateTime&&(t=DateTime.fromOADate(e)),s.info.stripLines.add2(t,e)}}createStripLinesYAxis(l,t){if(this.area.isDefaultSeriesTypeFullStackedColumnSeries||this.area.isDefaultSeriesTypeFullStackedBarSeries){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=l.labels.step;0==n&&(n=__.d.StiStripLineCalculatorXF.getInterval(t,r,6)),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let e=l.labels.step;0==(e=l.range.auto&&0<e&&0<l.info.range&&500<l.info.range/e?0:e)&&(e=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6)),l.info.stripLines=l.logarithmicScale?__.d.StiStripLineCalculatorXF.getStripLinesLogScale(l.info.minimum,l.info.maximum):__.d.StiStripLineCalculatorXF.getStripLines2(l,e,t)}}get localizedName(){return StiLocalization.get("Chart","Scatter")}get position(){return __.d.StiChartAreaPosition.Scatter}constructor(e){super(e),this.isArgumentDateTime=!1}},__.d.StiBubbleAreaCoreXF=class extends __.d.StiScatterAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Bubble")}get position(){return StiChartAreaPosition.Bubble}constructor(e){super(e)}},__.d.StiCandlestickAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Candlestick")}get position(){return __.d.StiChartAreaPosition.Candlestick}createStripLinesXAxis(s){s.info.stripLines.clear(),s.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let i of e.arguments){let t=!0;for(let e of s.info.stripLines.list)e.valueObject.toString()==i.toString()&&(t=!1);t&&s.info.stripLines.add2(i,s.info.stripLines.count)}s.info.stripLines.add2("",s.info.stripLines.count)}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.valuesOpen)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesClose)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e));for(let e of t.valuesHigh)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e));for(let e of t.valuesLow)null!=e&&(i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}constructor(e){super(e)}},__.d.StiClusteredBarAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","ClusteredBar")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.ClusteredBar}constructor(e){super(e)}},__.d.StiAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Area")}get position(){return __.d.StiChartAreaPosition.Area}constructor(e){super(e)}},__.d.StiHistogramAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Histogram")}get position(){return __.d.StiChartAreaPosition.Histogram}constructor(e){super(e)}},__.d.StiLineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Line")}get position(){return __.d.StiChartAreaPosition.Line}constructor(e){super(e)}},__.d.StiParetoAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Pareto")}get position(){return __.d.StiChartAreaPosition.Pareto}constructor(e){super(e)}},__.d.StiSplineAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SplineArea")}get position(){return __.d.StiChartAreaPosition.SplineArea}constructor(e){super(e)}},__.d.StiSplineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Spline")}get position(){return __.d.StiChartAreaPosition.Spline}constructor(e){super(e)}},__.d.StiSteppedAreaAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedArea")}get position(){return __.d.StiChartAreaPosition.SteppedArea}constructor(e){super(e)}},__.d.StiSteppedLineAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedLine")}get position(){return __.d.StiChartAreaPosition.SteppedLine}constructor(e){super(e)}},__.d.StiWaterfallAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareRange(e,t,s,i){let r=!0,n=0,l=(s.info.maximum=0,s.info.minimum=0,this.getSeries());for(let t=0;t<l.length;t++){let i=l[t],e=i.total.visible?1:0;for(let t=0;t<i.values.length-e;t++){let e=i.values[t];i.yAxis==__.d.StiSeriesYAxis.LeftYAxis&&null!=e&&(r?(n=e,s.info.maximum=Math.max(0,e),s.info.minimum=Math.min(0,e),r=!1):(n+=e,s.info.maximum=Math.max(n,s.info.maximum),s.info.minimum=Math.min(n,s.info.minimum)))}}}get localizedName(){return StiLocalization.get("Chart","Waterfall")}get position(){return __.d.StiChartAreaPosition.Waterfall}constructor(e){super(e)}},__.d.StiPieAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){this.prepareInfo(t);let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){this.valuesCount=0;let i=this.getSeries();if(0<i.length)for(let t=0;t<i.length;t++){let e=i[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}}get localizedName(){return StiLocalization.get("Chart","Pie")}get position(){return __.d.StiChartAreaPosition.Pie}constructor(e){super(e),this.valuesCount=0}},__.d.StiDoughnutAreaCoreXF=class extends __.d.StiPieAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;null!=t&&(t.indicator.value.color==Color.transparent&&(t.indicator.value.styleColor=e.core.seriesLabelsColor),t.indicator.title.color==Color.transparent)&&(t.indicator.title.styleColor=e.core.seriesLabelsColor)}render(e,t){this.prepareInfo(t);let i=new __.d.StiDoughnutAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}get localizedName(){return StiLocalization.get("Chart","Doughnut")}get position(){return __.d.StiChartAreaPosition.Doughnut}constructor(e){super(e)}},__.d.StiStackedBarAreaCoreXF=class extends __.d.StiClusteredBarAreaCoreXF{prepareSeriesRange(e){let s=[],r=[],n=[],l=[],o=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of o)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e)if(t.yAxis==__.d.StiSeriesYAxis.LeftYAxis){if(s.push(0),r.push(0),i<t.values.length){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}}else if(n.push(0),l.push(0),i<t.values.length){let e=t.values[i];0<e?l[i]=l[i]+e:n[i]=n[i]+e}let t=[s,r,n,l];return t}prepareRange(e,t,i,s){let r=this.getSeries(),n=new Hashtable;for(let e of r)n.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let l=[],o=[],a=[],h=[];for(let e of n.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])l.length<=i?l.push(e):l[i]=Math.min(l[i],e),i++;i=0;for(let e of t[1])o.length<=i?o.push(e):o[i]=Math.max(o[i],e),i++;i=0;for(let e of t[2])a.length<=i?a.push(e):a[i]=Math.min(a[i],e),i++;i=0;for(let e of t[3])h.length<=i?h.push(e):h[i]=Math.max(h[i],e),i++}0==l.length&&(l=a),0==o.length&&(o=h),0==a.length&&(a=l),0==h.length&&(h=o);let u=!0;for(let e of l)u?(i.info.minimum=e,u=!1):i.info.minimum=Math.min(e,i.info.minimum);u=!0;for(let e of o)u?(i.info.maximum=e,u=!1):i.info.maximum=Math.max(e,i.info.maximum);u=!0;for(let e of a)u?(s.info.minimum=e,u=!1):s.info.minimum=Math.min(e,s.info.minimum);u=!0;for(let e of h)u?(s.info.maximum=e,u=!1):s.info.maximum=Math.max(e,s.info.maximum)}get localizedName(){return StiLocalization.get("Chart","StackedBar")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.StackedBar}constructor(e){super(e)}},__.d.StiFullStackedBarAreaCoreXF=class extends __.d.StiStackedBarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedBar")}get position(){return __.d.StiChartAreaPosition.FullStackedBar}constructor(e){super(e)}},__.d.StiStackedColumnAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareSeriesRange(e){let s=[],r=[],n=[],l=[],o=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of o)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e)if(t.yAxis==__.d.StiSeriesYAxis.LeftYAxis){if(s.push(0),r.push(0),i<t.values.length){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}}else if(n.push(0),l.push(0),i<t.values.length){let e=t.values[i];0<e?l[i]=l[i]+e:n[i]=n[i]+e}let t=[s,r,n,l];return t}prepareRange(e,t,i,s){let r=this.getSeries(),n=new Hashtable;for(let e of r)n.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let l=[],o=[],a=[],h=[];for(let e of n.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])l.length<=i?l.push(e):l[i]=Math.min(l[i],e),i++;i=0;for(let e of t[1])o.length<=i?o.push(e):o[i]=Math.max(o[i],e),i++;i=0;for(let e of t[2])a.length<=i?a.push(e):a[i]=Math.min(a[i],e),i++;i=0;for(let e of t[3])h.length<=i?h.push(e):h[i]=Math.max(h[i],e),i++}0==l.length&&(l=a),0==o.length&&(o=h),0==a.length&&(a=l),0==h.length&&(h=o);let u=!0;for(let e of l)u?(i.info.minimum=e,u=!1):i.info.minimum=Math.min(e,i.info.minimum);u=!0;for(let e of o)u?(i.info.maximum=e,u=!1):i.info.maximum=Math.max(e,i.info.maximum);u=!0;for(let e of a)u?(s.info.minimum=e,u=!1):s.info.minimum=Math.min(e,s.info.minimum);u=!0;for(let e of h)u?(s.info.maximum=e,u=!1):s.info.maximum=Math.max(e,s.info.maximum)}get localizedName(){return StiLocalization.get("Chart","StackedColumn")}get position(){return __.d.StiChartAreaPosition.StackedColumn}constructor(e){super(e)}},__.d.StiFullStackedColumnAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedColumn")}get position(){return __.d.StiChartAreaPosition.FullStackedColumn}constructor(e){super(e)}},__.d.StiFullStackedAreaAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedArea")}get position(){return __.d.StiChartAreaPosition.FullStackedArea}constructor(e){super(e)}},__.d.StiFullStackedLineAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedLine")}get position(){return __.d.StiChartAreaPosition.FullStackedLine}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSplineArea")}get position(){return __.d.StiChartAreaPosition.FullStackedSplineArea}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaCoreXF=class extends __.d.StiFullStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSpline")}get position(){return __.d.StiChartAreaPosition.FullStackedSpline}constructor(e){super(e)}},__.d.StiFunnelAreaCoreXF=class extends __.d.StiAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Funnel")}get position(){return __.d.StiChartAreaPosition.Funnel}render(e,t){let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){}constructor(e){super(e)}},__.d.StiGanttAreaCoreXF=class extends __.d.StiClusteredBarAreaCoreXF{createStripLinesXAxis(r){r.info.stripLines.clear(),r.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let s of e.arguments){let i=!0;for(let t of r.info.stripLines.list){let e=null==s?"":s.toString();null!=t.valueObject&&t.valueObject.toString()==e&&(i=!1)}i&&r.info.stripLines.add2(null!=s?s:"",r.info.stripLines.count)}r.info.stripLines.add2("",r.info.stripLines.count)}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.values)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesEnd)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}get localizedName(){return StiLocalization.get("Chart","Gantt")}get seriesOrientation(){return __.d.StiChartSeriesOrientation.Horizontal}get position(){return __.d.StiChartAreaPosition.Gantt}constructor(e){super(e)}},__.d.StiHeatmapAreaCoreXF=class extends __.d.StiAxisAreaCoreXF{prepareInfo(h){let u=this.getSeries();if(0<u.length){let e=this.area,t=(this.xValuesCount=0,this.yValuesCount=0,e.xAxis),i=e.xTopAxis,s=e.yAxis,r=e.yRightAxis,n=(t.info.stripLines=new __.d.StiStripLinesXF,s.info.stripLines=new __.d.StiStripLinesXF,r.info.stripLines=new __.d.StiStripLinesXF,new List),l=new List;for(let s=0;s<u.length;s++){let e=u[s],t=e.xValues,i=(null!=t&&n.addRange(t),e.yValues);null!=i&&l.addRange(i)}this.xValuesCount=n.distinct().length,this.yValuesCount=l.distinct().length,this.createStripLinesXAxis(t),this.createStripLinesYAxis(s,!1),this.createStripLinesYAxis(r,!1),this.checkStripLinesAndMaximumMinimumXAxis(t),this.checkStripLinesAndMaximumMinimumXAxis(s),this.checkStripLinesAndMaximumMinimumXAxis(r),i.info=t.info.clone(),e.xAxis.info.dpi=h.width/e.xAxis.info.range,e.xTopAxis.info.dpi=h.width/e.xTopAxis.info.range,e.yAxis.info.dpi=h.height/e.yAxis.info.range,e.yRightAxis.info.dpi=h.height/e.yRightAxis.info.range,this.calculateStepX(e.xAxis,h.left,h.right),this.calculateStepX(e.xTopAxis,h.left,h.right),this.calculateStepY(e.yAxis,h.top,h.bottom),this.calculateStepY(e.yRightAxis,h.top,h.bottom);let o={ref:e.xAxis.info.labelsCollection},a=(this.calculatePositions(e.xAxis,o,0<e.xAxis.labels.step?e.xAxis.labels.step:1,!1),e.xAxis.info.labelsCollection=o.ref,o={ref:e.xTopAxis.info.labelsCollection},this.calculatePositions(e.xTopAxis,o,0<e.xTopAxis.labels.step?e.xTopAxis.labels.step:1,!1),e.xTopAxis.info.labelsCollection=o.ref,o={ref:e.yAxis.info.labelsCollection},this.calculatePositions(e.yAxis,o,1<e.yAxis.labels.step?e.yAxis.labels.step:1,!1),e.yAxis.info.labelsCollection=o.ref,o={ref:e.yRightAxis.info.labelsCollection},this.calculatePositions(e.yRightAxis,o,0<e.yRightAxis.labels.step?e.yRightAxis.labels.step:1,!1),e.yRightAxis.info.labelsCollection=o.ref,{ref:e.xAxis.info.ticksCollection});this.calculatePositions(e.xAxis,a,0<e.xAxis.ticks.step?e.xAxis.ticks.step:1,!0),e.xAxis.info.ticksCollection=a.ref,a={ref:e.xTopAxis.info.ticksCollection},this.calculatePositions(e.xTopAxis,a,0<e.xTopAxis.ticks.step?e.xTopAxis.ticks.step:1,!0),e.xTopAxis.info.ticksCollection=a.ref,a={ref:e.yAxis.info.ticksCollection},this.calculatePositions(e.yAxis,a,0<e.yAxis.ticks.step?e.yAxis.ticks.step:1,!0),e.yAxis.info.ticksCollection=a.ref,a={ref:e.yRightAxis.info.ticksCollection},this.calculatePositions(e.yRightAxis,a,0<e.yRightAxis.ticks.step?e.yRightAxis.ticks.step:1,!0),e.yRightAxis.info.ticksCollection=a.ref}}createStripLinesXAxis(t){let s=this.getSeries(),r=new List;for(let i=0;i<s.length;i++){let e=s[i],t=e.xValues;null!=t&&r.addRange(t)}let i=r.distinct();this.xValuesCount=i.length;for(let e=0;e<i.length;e++)t.info.stripLines.add2(i[e],e);t.info.stripLines.add2(this.xValuesCount,this.xValuesCount)}createStripLinesYAxis(t,e){let s=this.getSeries(),r=new List;for(let i=0;i<s.length;i++){let e=s[i],t=e.yValues;null!=t&&r.addRange(t)}let i=r.distinct();i.reverse(),this.yValuesCount=i.length;for(let e=0;e<i.length;e++)t.info.stripLines.add2(i[e],e);t.info.stripLines.add2(this.yValuesCount,this.yValuesCount)}calculatePositions(s,e,t,i){let r=[],n=this.area,l=!1,o=(this.area.is(__.d.IStiAxisArea)&&s.is(__.d.IStiYAxis)?l=n.reverseVert:this.area.is(__.d.IStiAxisArea)&&s.is(__.d.IStiXAxis)&&(l=n.reverseHor),0),a=s.info.stripPositions.length-1;for(let i=0;i<a;i++){if(0==o){let e=new __.d.StiStripPositionXF,t=l?a-i-1:i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t]+s.info.step/2,l?r[Stimulsoft.System.StiObject.stimulsoft]().insert(0,e):r.push(e)}++o==t&&(o=0)}e.ref=r}get localizedName(){return StiLocalization.get("Chart","Heatmap")}get position(){return __.d.StiChartAreaPosition.Heatmap}constructor(e){super(e),this.xValuesCount=0,this.yValuesCount=0}},__.d.StiPictorialAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiPictorialAreaGeom(this.area,t),s=this.getSeries();return e.pushTranslateTransform(t.x,t.y),0<s.length&&s[0].core.renderSeries(e,new RectangleD(0,0,t.width,t.height),i,s),e.popTransform(),i}get localizedName(){return StiLocalization.get("Chart","Pictorial")}get position(){return __.d.StiChartAreaPosition.Pictorial}constructor(e){super(e)}},__.d.StiPictorialStackedAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiPictorialAreaGeom(this.area,t),s=this.getSeries();return e.pushTranslateTransform(t.x,t.y),0<s.length&&s[0].core.renderSeries(e,new RectangleD(0,0,t.width,t.height),i,s),e.popTransform(),i}get localizedName(){return StiLocalization.get("Chart","PictorialStacked")}get position(){return __.d.StiChartAreaPosition.PictorialStacked}constructor(e){super(e)}},__.d.StiPie3dAreaCoreXF=class extends __.d.StiPieAreaCoreXF{render(e,t){this.prepareInfo(t);let i=new __.d.StiPieAreaGeom(this.area,t),s=this.getSeries();return this.renderSeries(e,t,i,s),i}get localizedName(){return StiLocalization.get("Chart","Pie")+"3D"}get position(){return __.d.StiChartAreaPosition.Pie3d}constructor(e){super(e)}},Stimulsoft.Base.Drawing.StiEmptyBrush);{class jC extends __.d.StiAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.yAxis&&t.yAxis.core.applyStyle(e),t.brush=new StiEmptyBrush)}render(e,t){let i=this.area,s=t.clone(),r=(s=jC.centerArea(s),this.prepareInfo(s),s=this.measureLabels(e,s).clone(),s=jC.centerArea(s).clone(),s=new RectangleD(t.x+(t.width-s.width)/2,t.y+(t.height-s.height)/2,s.width,s.height),this.prepareInfo(s),new __.d.StiRadarAreaGeom(this.area,s,this.valuesCount)),n=i.yAxis.yCore.render(e,s),l=(null!=n&&(r.createChildGeoms(),r.childGeoms.push(n)),0<this.area.chart.series.count&&this.renderArguments(e,r,this.area.chart.series.getByIndex(0)),this.getSeries());return this.renderSeries(e,s,r,l),r}static centerArea(e){return e.width>e.height?e.width=e.height:e.height=e.width,e}measureLabels(u,r){if(0==this.valuesCount)return r;let S=this.area;if(null!=S.xAxis&&S.xAxis.visible&&null!=S.yAxis.info.stripPositions){let n=S.yAxis.info.stripPositions[S.yAxis.info.stripPositions.length-1]+4*u.options.zoom,l=0,o=360/this.valuesCount,a=0,h=r.clone();for(let r of this.points){let e=l<this.arguments.length?this.arguments[l]:null,t=new PointD(this.centerPoint.x+n*r.x,this.centerPoint.y+n*r.y),i=S.xAxis.core.getLabelText(e),s=S.xAxis.xCore.getLabelRect(u,t,i,a).clone();s.isEmpty||(h=RectangleD.union(h,s)),a+=o,l++}let e=r.left-h.left,t=h.right-r.right,i=r.top-h.top,s=h.bottom-r.bottom;0<e&&(r.width-=e),0<t&&(r.width-=t),0<i&&(r.height-=i),0<s&&(r.height-=s)}return r}renderArguments(a,h,u){if(0==this.valuesCount)return;let S=this.area;if(null!=S.xAxis&&S.xAxis.visible&&null!=S.yAxis.info.stripPositions){let r=S.yAxis.info.stripPositions[S.yAxis.info.stripPositions.length-1]+4*a.options.zoom,n=0,l=360/this.valuesCount,o=0;for(let s of this.points){let e=n<this.arguments.length?this.arguments[n]:null,t=new PointD(this.centerPoint.x+r*s.x,this.centerPoint.y+r*s.y),i=(t.x-=h.clientRectangle.x,t.y-=h.clientRectangle.y,S.xAxis.xCore.renderLabel(a,u,t,e,o,n,this.valuesCount));null!=i&&(h.createChildGeoms(),h.childGeoms.push(i)),o+=l,n++}}}renderSeries(i,s,r,e){let n=[],l=new Hashtable;for(let t of e){let e=l.get(t[Stimulsoft.System.StiObject.stimulsoft]().getType());null==e&&(e=[],n.push(e),l.set(t[Stimulsoft.System.StiObject.stimulsoft]().getType(),e)),e.push(t)}for(let t of n){let e=t;e[0].core.renderSeries(i,s,r,e)}}prepareInfo(e){let t=this.area,s=(this.valuesCount=0,this.getSeries());if(0<s.length)for(let t=0;t<s.length;t++){let e=s[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}if(this.arguments=[],0<s.length){let i=s[0];for(let e of s)if(e.arguments.length==this.valuesCount){i=e;break}for(let t=0;t<this.valuesCount;t++)if(t<i.arguments.length){let e=null==i.arguments[t]?"":i.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);this.arguments.push(e)}}else this.arguments.push("1"),this.arguments.push("2"),this.arguments.push("3"),this.arguments.push("4"),this.arguments.push("5");this.centerPoint=new PointD(e.x+e.width/2,e.y+e.height/2);let i,r=(i=0<this.valuesCount?360/this.valuesCount:360/5,this.points=[],0);while(r<360){let e=(r-90)*Math.PI/180,t=new PointD(Math.cos(e),Math.sin(e));if(this.points.push(t),r+=i,this.points.length==this.valuesCount)break}let n=0,l=0;if(t.yAxis.range.auto){let i=!0;for(let e=0;e<s.length;e++){let t=s[e].values;if(null!=t)for(let e of t){if(null==e)continue;i?(n=e,l=e,i=!1):(n=Math.min(n,e),l=Math.max(l,e))}}0==s.length&&(l=1),0==(l=Math.abs(n)>l?Math.abs(n):l)&&0==n&&(l=1),n=0}else n=t.yAxis.range.minimum,l=t.yAxis.range.maximum;this.createStripLinesAxis(t.yAxis,n,l),null!=t.yAxis.info.stripLines&&0<t.yAxis.info.stripLines.count&&(t.yAxis.info.minimum=t.yAxis.info.stripLines.getByIndex(t.yAxis.info.stripLines.count-1).value,t.yAxis.info.maximum=t.yAxis.info.stripLines.getByIndex(0).value),t.yAxis.info.dpi=.5*e.height/t.yAxis.info.range,this.calculateStep(t.yAxis,0,e.height/2);let o={ref:t.yAxis.info.labelsCollection},a=(this.calculatePositions(t.yAxis,o,0<t.yAxis.labels.step?StiMath.trunc(t.yAxis.labels.step):1,!1),t.yAxis.info.labelsCollection=o.ref,{ref:t.yAxis.info.ticksCollection});this.calculatePositions(t.yAxis,a,0<t.yAxis.ticks.step?StiMath.trunc(t.yAxis.ticks.step):1,!0),t.yAxis.info.ticksCollection=a.ref}createStripLinesAxis(e,t,i){let s=this.area,r=s.yAxis.labels.step;0==r&&(r=__.d.StiStripLineCalculatorXF.getInterval(t,i,6)),s.yAxis.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,i,r,!1);for(let e of s.yAxis.info.stripLines.list)e.valueObject=StiString.format("{0}",e.valueObject)}calculateStep(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.yCore.calculateStripPositions(t,i)):e.info.step=1}calculatePositions(s,e,t,r){let n=[],l=0;if(null!=s.info.stripPositions){let e=s.info.stripPositions.length;for(let i=0;i<e;i++){if(0==l){let e=new __.d.StiStripPositionXF,t=i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],n.push(e)}++l!=t&&r||(l=0)}}e.ref=n}constructor(e){super(e),this.valuesCount=0,this.points=[],this.arguments=[],this.centerPoint=PointD.empty}}__.d.StiRadarAreaCoreXF=jC}__.d.StiRadarAreaAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarArea")}get position(){return __.d.StiChartAreaPosition.RadarArea}constructor(e){super(e)}},__.d.StiRadarLineAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarLine")}get position(){return __.d.StiChartAreaPosition.RadarLine}constructor(e){super(e)}},__.d.StiRadarPointAreaCoreXF=class extends __.d.StiRadarAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","RadarPoint")}get position(){return __.d.StiChartAreaPosition.RadarPoint}constructor(e){super(e)}},__.d.StiRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Range")}get position(){return __.d.StiChartAreaPosition.Range}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiRangeBarAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{createStripLinesXAxis(s){s.info.stripLines.clear(),s.info.stripLines.add2(0,0);let t=this.getSeries();for(let e of t)for(let i of e.arguments){let t=!0;for(let e of s.info.stripLines.list)e.valueObject.toString()==i.toString()&&(t=!1);t&&s.info.stripLines.add2(i,s.info.stripLines.count)}s.info.stripLines.add2("",s.info.stripLines.count),0<s.info.stripLines.count&&(s.area.xAxis.showEdgeValues||(s.info.stripLines.getByIndex(0).valueObject="",s.info.stripLines.getByIndex(s.info.stripLines.count-1).valueObject=""))}prepareRange(e,t,i,s){e.info.maximum=0,e.info.minimum=0,i.info.maximum=0,i.info.minimum=0;let r=this.getSeries(),n=!0;for(let t of r){for(let e of t.values)null!=e&&(n?(n=!1,i.info.maximum=e,i.info.minimum=e):(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e)));for(let e of t.valuesEnd)null!=e&&(i.info.maximum=Math.max(i.info.maximum,e),i.info.minimum=Math.min(i.info.minimum,e))}s.info.maximum=i.info.maximum,s.info.minimum=i.info.minimum}get localizedName(){return StiLocalization.get("Chart","RangeBar")}get position(){return __.d.StiChartAreaPosition.RangeBar}constructor(e){super(e)}},__.d.StiSplineRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SplineRange")}get position(){return __.d.StiChartAreaPosition.SplineRange}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiSteppedRangeAreaCoreXF=class extends __.d.StiClusteredColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","SteppedRange")}get position(){return __.d.StiChartAreaPosition.SteppedRange}prepareRange(e,t,a,h){let u=!0,S=!0,d=!1,m=!1,i=(a.info.maximum=0,a.info.minimum=0,h.info.maximum=0,h.info.minimum=0,this.getSeries());for(let t=0;t<i.length;t++){let n=i[t],l=n.values,o=n.valuesEnd,e=Math.min(l.length,o.length);for(let r=0;r<e;r++){let e=null!=l[r]?l[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,t=null!=o[r]?o[r][Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,i=Math.max(e,t),s=Math.min(e,t);n.yAxis==__.d.StiSeriesYAxis.LeftYAxis?u?(d=!0,a.info.maximum=i,a.info.minimum=s,u=!1):(d=!0,a.info.maximum=Math.max(i,a.info.maximum),a.info.minimum=Math.min(s,a.info.minimum)):S?(m=!0,h.info.maximum=i,h.info.minimum=s,S=!1):(m=!0,h.info.maximum=Math.max(i,h.info.maximum),h.info.minimum=Math.min(s,h.info.minimum))}}d||(a.info.maximum=h.info.maximum,a.info.minimum=h.info.minimum),m||(h.info.maximum=a.info.maximum,h.info.minimum=a.info.minimum)}constructor(e){super(e)}},__.d.StiStackedAreaAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedArea")}get position(){return __.d.StiChartAreaPosition.StackedArea}constructor(e){super(e)}},__.d.StiStackedLineAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedLine")}get position(){return __.d.StiChartAreaPosition.StackedLine}constructor(e){super(e)}},__.d.StiStackedSplineAreaAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedSplineArea")}get position(){return __.d.StiChartAreaPosition.StackedSplineArea}constructor(e){super(e)}},__.d.StiStackedSplineAreaCoreXF=class extends __.d.StiStackedColumnAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","StackedSpline")}get position(){return __.d.StiChartAreaPosition.StackedSpline}constructor(e){super(e)}},__.d.StiStockAreaCoreXF=class extends __.d.StiCandlestickAreaCoreXF{get localizedName(){return StiLocalization.get("Chart","Stock")}get position(){return __.d.StiChartAreaPosition.Stock}constructor(e){super(e)}},__.d.StiSunburstAreaCoreXF=class extends __.d.StiAreaCoreXF{render(e,t){let i=new __.d.StiSunburstAreaGeom(this.area,t),s=this.getSeries();return 0<s.length&&s[0].core.renderSeries(e,t,i,s),i}prepareInfo(e){}get localizedName(){return StiLocalization.get("Chart","Sunburst")}get position(){return __.d.StiChartAreaPosition.Sunburst}constructor(e){super(e)}};let StiValueHelper=Stimulsoft.Base.Helpers.StiValueHelper,StringTrimming=(__.d.StiTreemapAreaCoreXF=class extends __.d.StiAreaCoreXF{render(t,e){let i=new __.d.StiTreemapAreaGeom(this.area,e),s=this.getSeries(),r=[];for(let i of s){let t=[];for(let e of i.values)t.push(StiValueHelper.tryToNumber(e));r.push(t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum())}let n=new RectangleD(0,0,e.width,e.height),l=this.area.core.normalizeDataForArea(r,n.width*n.height),o=this.area.core.squarify(l,[],n,[]),a=!0;for(let e=0;e<s.length;e++)o.length-1>=e&&(s[e].core.renderSeries(t,o[e],i,s),a=!1);return a&&(i.createChildGeoms(),i.childGeoms.push(new __.d.StiTreemapEmptySeriesElementGeom(n))),i}renderSeries(t,i,e,s,r){for(let e=0;e<r.length;e++)i.length-1>=e&&r[e].core.renderSeries(t,i[e],s,r)}cutArea(i,s){let r;if(i.width>=i.height){let e=s/i.height,t=i.width-e;r=new RectangleD(i.x+e,i.y,t,i.height)}else{let e=s/i.width,t=i.height-e;r=new RectangleD(i.x,i.y+e,i.width,t)}return r}squarify(i,s,r,n){if(0==i.length)return n.push(...this.getCoordinates(r,s)),n;let e=Math.min(r.width,r.height),t=i[0];if(this.improvesRatio(s,t,e))s.push(t),this.squarify(i[Stimulsoft.System.StiObject.stimulsoft]().toList().skip(1),s,r,n);else{let e=this.cutArea(r,s[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()),t=(n.push(...this.getCoordinates(r,s)),[]);this.squarify(i,t,e,n)}return n}improvesRatio(e,t,i){if(0==e.length)return!0;let s=e.slice(),r=(s.push(t),this.calculateRatio(e,i)),n=this.calculateRatio(s,i);return n<=r}calculateRatio(e,t){let i=e[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(),s=Math.pow(t,2)*e[Stimulsoft.System.StiObject.stimulsoft]().toList().max()/Math.pow(i,2),r=Math.pow(i,2)/(Math.pow(t,2)*e[Stimulsoft.System.StiObject.stimulsoft]().toList().min());return Math.max(s,r)}normalizeDataForArea(t,e){let i=[],s=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum();if(0==s)return i;let r=e/s;for(let e=0;e<t.length;e++)i.push(t[e]*r);return i}getCoordinates(e,t){let i=[],s=e.x,r=e.y,n=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.height,l=t[Stimulsoft.System.StiObject.stimulsoft]().toList().sum()/e.width;if(e.height<=e.width)for(let e=0;e<t.length;e++)i.push(new RectangleD(s,r,n,t[e]/n)),r+=t[e]/n;else for(let e=0;e<t.length;e++)i.push(new RectangleD(s,r,t[e]/l,l)),s+=t[e]/l;return i}prepareInfo(e){}get localizedName(){return StiLocalization.get("Chart","Treemap")}get position(){return __.d.StiChartAreaPosition.Treemap}constructor(e){super(e)}},Stimulsoft.System.Drawing.StringTrimming),StringFormatFlags=Stimulsoft.System.Drawing.StringFormatFlags;{class KG{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAxisCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.axis.allowApplyStyle&&(this.axis.lineColor=e.core.axisLineColor,this.axis.labels.core.applyStyle(e),this.axis.title.core.applyStyle(e))}getStartFromZero(){if(1==this.axis.area.axisCore.valuesCount&&!this.axis.area.is(__.d.StiScatterArea))return!0;if(null!=this.axis&&null!=this.axis.range&&!this.axis.range.auto)return!0;return null==this.axis||this.axis.startFromZero}render(e,t){return null}renderView(e,t){return null}calculateStripPositions(r,n){if(n-=r,r=0,null==this.axis.info.stripLines||this.axis.info.stripLines.count<2)this.axis.info.stripPositions=[];else{let e=!1;if(0<this.axis.area.chart.series.count&&this.axis.area.chart.series.getByIndex(0).is(__.d.StiScatterSeries)&&(e=!0),this.axis.logarithmicScale&&e){let e=this.axis.info.stripLines.count,t=(this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=r,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=n,this.axis.info.stripLines.getByIndex(0).value),i=this.axis.info.stripLines.getByIndex(e-1).value,s=n/(StiMath.log10(i)-StiMath.log10(t));for(let t=1;t<this.axis.info.stripPositions.length-1;t++){let e=Math.abs(StiMath.log10(Math.abs(this.axis.info.stripLines.getByIndex(t).value))*s-StiMath.log10(Math.abs(this.axis.info.stripLines.getByIndex(t-1).value))*s);this.axis.info.stripPositions[t]=r+e,r=this.axis.info.stripPositions[t]}}else if(this.axis instanceof __.d.StiYRightAxis){this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count);for(let e=0;e<this.axis.info.stripPositions.length-1;e++)this.axis.info.stripPositions[this.axis.info.stripPositions.length-1-e]=n-e*this.axis.info.step}else{this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=r,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=n;for(let e=1;e<this.axis.info.stripPositions.length-1;e++)this.axis.info.stripPositions[e]=r+e*this.axis.info.step}}}getTicksMaxLength(e){return this.axis.core.ticksMaxLength*e.options.zoom}getArrowHeight(e){return 4*this.axis.core.arrowHeight*e.options.zoom}getLabelsSpaceAxis(e){return 5*e.options.zoom}getLabelsTwoLinesDestination(e){return 2*this.axis.labels.font.sizeInPoints*e.options.zoom}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom);return t}getTextAlignment(){if(this.axis.is(__.d.IStiYAxis)){let e=this.axis;if(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines){if(e.core.isLeftSide)return StiHorAlignment.Right;if(e.core.isRightSide)return StiHorAlignment.Left}}return this.axis.labels.textAlignment}getStringFormatGeom(e,t){let i=e.getGenericStringFormat();if(i.trimming=StringTrimming.None,t||(i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),0<this.axis.labels.width){let e=this.getTextAlignment();e==StiHorAlignment.Left?i.alignment=StringAlignment.Near:e==StiHorAlignment.Right?i.alignment=StringAlignment.Far:e==StiHorAlignment.Center&&(i.alignment=StringAlignment.Center)}return i}getAxisTitleSize(e){if(StiString.isNullOrEmpty(this.axis.title.text))return SizeD.empty;let t=StiFontGeom.changeFontSize(this.axis.title.font,this.axis.title.font.size*e.options.zoom),i=e.measureString(this.axis.title.text,t);switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:return i;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:return new SizeD(i.height,i.width)}return SizeD.empty}getAngleTitle(){let e=0;switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:e=0;break;case __.d.StiDirection.RightToLeft:e=180;break;case __.d.StiDirection.BottomToTop:e=-90;break;case __.d.StiDirection.TopToBottom:e=90;break}return e}getCorrectionFontSize(e,t,i){switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:e.width<t.width&&(i=e.width/t.width*i);break;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:e.height<t.height&&(i=e.height/t.height*i);break}return i}checkUseMaxWidth(e,t,i){switch(i.ref=0,this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:if(e.width<t.width)return i.ref=e.width,!0;break;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:if(e.height<t.height)return i.ref=e.width,!0;break}return!1}get ticksMaxLength(){return this.axis.visible?Math.max(this.axis.ticks.visible?this.axis.ticks.length:0,this.axis.ticks.minorVisible?this.axis.ticks.minorLength:0):0}get arrowWidth(){return 3}get arrowHeight(){if(this.is(__.d.StiXAxisCoreXF))return this.axis.area.reverseHor?-5:5;if(this.is(__.d.StiYAxisCoreXF))return this.axis.area.reverseVert?-5:5;return 0}get info(){return this.axis.info}set info(e){this.axis.info=e}constructor(e){this.axis=e}}KG.defaultScrollBarSize=12,KG.defaultScrollBarSmallFactor=.01,KG.defaultScrollBarFirstRecallTime=.3,KG.defaultScrollBarOtherRecallTime=.05,__.d.StiAxisCoreXF=KG}__.d.StiAxisInfoXF=class{constructor(){this.dpi=0,this.step=0,this.stripPositions=null,this.ticksCollection=null,this.labelsCollection=null,this.minimum=0,this.maximum=0}implements(){let e=[ICloneable,__.d.IStiAxisInfoXF];return(this.implements=()=>e)()}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.stripLines=this.stripLines.clone(),e}get range(){return this.maximum-this.minimum}},__.d.StiAxisLabelInfoXF=class{constructor(){this.clientRectangle=RectangleD.empty,this.textPoint=PointD.empty}},__.d.StiAxisLabelsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisLabelsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor)}constructor(e){this.labels=e}},__.d.StiAxisTitleCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisTitleCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.title.allowApplyStyle&&(this.title.color=e.core.axisTitleColor)}constructor(e){this.title=e}};let StiRotationMode=Stimulsoft.Base.Drawing.StiRotationMode,StiDateFormatService=__.e.TextFormats.StiDateFormatService,StiTimeFormatService=__.e.TextFormats.StiTimeFormatService,StiNumberFormatService=__.e.TextFormats.StiNumberFormatService;__.d.StiXAxisCoreXF=class extends __.d.StiAxisCoreXF{getStartFromZero(){if(null!=this.axis.info.labelsCollection&&this.isArgumentDateTime1(this.axis.info.labelsCollection)&&(this.axis.area.is(__.d.StiScatterArea)||this.axis.area.is(__.d.StiGanttArea)))return!1;return super.getStartFromZero()}render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!1).clone(),s=(i.x=0,i.y=0,this.axis.interaction.showScrollBar&&this.axis.is(__.d.IStiXTopAxis)&&this.axis.area.reverseVert&&(i.y+=__.d.StiAxisCoreXF.defaultScrollBarSize*e.options.zoom),new __.d.StiXAxisGeom(this.axis,i,!1));return this.renderLabels(e,i,s),this.renderTitle(e,i,s),s}renderView(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!0).clone();return new __.d.StiXAxisViewGeom(this.axis,i,!1)}renderScrollBar(i,o,a){if(this.axis.interaction.showScrollBar){let r=o.clone(),n=(r.x=0,r.height=__.d.StiAxisCoreXF.defaultScrollBarSize*i.options.zoom,this.axis.is(__.d.IStiXTopAxis)&&!this.axis.area.reverseVert||this.axis.is(__.d.IStiXBottomAxis)&&this.axis.area.reverseVert?r.y=o.height-r.height:r.y=0,new __.d.StiHorzScrollBarGeom(this.axis,r));if(a.createChildGeoms(),a.childGeoms.push(n),r.x=0,r.y=0,r.inflate(-2,-2),this.axis.interaction.rangeScrollEnabled){let e=r.clone(),t=(e.width=r.height,new __.d.StiLeftButtonGeom(this.axis,e)),i=(n.createChildGeoms(),n.childGeoms.push(t),r.clone()),s=(i.width=r.height,i.x=r.right-i.width,new __.d.StiRightButtonGeom(this.axis,i));n.createChildGeoms(),n.childGeoms.push(s),r.inflate(-r.height-2,0)}let s=r.clone(),e=this.axis.area.xAxis,l=this.axis.area.core;if(!e.range.auto){let e=r.width/l.scrollRangeX,t=l.scrollValueX*e,i=l.scrollViewX<l.scrollRangeX?l.scrollViewX*e:l.scrollRangeX*e;s=new RectangleD(t+r.x,r.y,i,r.height)}let t=new __.d.StiHorzTrackBarGeom(this.axis,s,n);n.createChildGeoms(),n.childGeoms.push(t)}}renderCenter(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.yAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone();return i.x=0,i.y=0,new __.d.StiXAxisGeom(this.axis,i,!0)}renderCenterView(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.yAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=new __.d.StiXAxisViewGeom(this.axis,i,!0);return s}getLabelText(e,t){return this.getLabelText2(e.valueObject,e.value,t)}getLabelText2(i,e,s){var t;null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let r=null==(t=this.axis.area.chart.report)?void 0:t.getParsedCulture();try{if(null!=this.axis.labels.formatService&&!this.axis.labels.formatService.is(StiGeneralFormatService)){if(this.axis.area.is(__.d.StiClusteredBarArea)&&this.setTotalNumberCapacity(),i instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(i)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+i+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e)+this.axis.labels.textAfter}StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=CultureInfo.cultures[r]);let t="";if(null!=(t=null!=(t=null!=s?s.format:t)&&0!=t.trim().length?t:this.axis.labels.format)&&0!=t.trim().length){if("string"==typeof i){let e=Stimulsoft.System.StiNumber.tryParse(i);if(e.successfully)i=e.result;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,i,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+t+"}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.ceil(Math.abs(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}get isLabelsAngleByWidth(){return this.axis.labels.angle<30||150<this.axis.labels.angle}checkAutoAngleLabels(S,d){if(this.axis.labels.placement!=__.d.StiLabelsPlacement.AutoRotation)return!1;let m=[];if(null!=this.axis.info.labelsCollection){let r=this.getStringFormatGeom(S,this.axis.labels.wordWrap),n=this.getFontGeom(S),l=StiRotationMode.CenterCenter,o=-this.axis.labels.angle,a=PointD.empty,h=(l=this.isTopSide?StiRotationMode.CenterBottom:StiRotationMode.LeftCenter,0),t=0,u=this.axis.area.reverseVert?this.isBottomSide:this.isTopSide;for(let s of this.axis.info.labelsCollection){if(u&&this.axis.area.yRightAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==t){m.push(new __.d.StiAxisLabelInfoXF),t++;continue}if(u&&this.axis.area.yAxis.arrowStyle!=__.d.StiArrowStyle.None&&t==this.axis.info.stripLines.count-1){m.push(new __.d.StiAxisLabelInfoXF),t++;continue}let i=this.getLabelText(s.stripLine,null),e=s.position;if(a=this.isTopSide?new PointD(e,d.height-(this.getTicksMaxLength(S)+this.getLabelsSpaceAxis(S))):new PointD(e,this.getTicksMaxLength(S)+this.getLabelsSpaceAxis(S)),this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=S.measureRotatedString3(i,n,a,r,l,o,StiMath.trunc(this.axis.labels.width*S.options.zoom)),t=new __.d.StiAxisLabelInfoXF;t.angle=o,t.clientRectangle=e,t.rotationMode=l,t.textPoint=a,t.text=i,t.stripLine=s.stripLine,m.push(t),this.isLabelsAngleByWidth&&(h=Math.max(h,e.width))}else m.push(new __.d.StiAxisLabelInfoXF);t++}for(let i=1;i<m.length;i++){let e=m[i-1].clientRectangle,t=m[i].clientRectangle;if(e.intersectsWith(t))return!0}}return!1}measureStripLines(u,S){let d=[],m=null,c=-this.axis.labels.angle,g=this.axis.labels.width,p=this.axis.labels.wordWrap,e=this.checkAutoAngleLabels(u,S);if(e){c=-45,m=this.axis.is(__.d.IStiXTopAxis)?StiRotationMode.LeftBottom:StiRotationMode.RightTop,p=Stimulsoft.StiOptions.Engine.wordWrapAxisLabelsForPlacementAutoRotation;let e=this.axis.area.chart.core.fullRectangle.height;g=e/3.5}if(null!=this.axis.info.labelsCollection&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let a=0,h=0;for(let o of this.axis.info.labelsCollection){let e=this.axis.area.reverseVert?this.isBottomSide:this.isTopSide;if(e&&this.axis.area.yRightAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==h){d.push(new __.d.StiAxisLabelInfoXF),h++;continue}if(e&&this.axis.area.yAxis.arrowStyle!=__.d.StiArrowStyle.None&&h==this.axis.info.stripLines.count-1){d.push(new __.d.StiAxisLabelInfoXF),h++;continue}let n=this.getLabelText(o.stripLine,null),l=(!p&&0<g&&(n=__.d.StiTextContentHelper.getMeasureText(u,n,this.axis.labels.font,g)),o.position);if(this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.getStringFormatGeom(u,p),t=this.getFontGeom(u),i=(m=StiRotationMode.CenterCenter,PointD.empty),s=(m=this.isTopSide?(i=new PointD(l,S.height-(this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u))),0==c?StiRotationMode.CenterBottom:StiRotationMode.LeftCenter):(i=new PointD(l,this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u)),0==c?StiRotationMode.CenterTop:StiRotationMode.RightTop),this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&h)&&(this.isTopSide&&(i.y-=this.getLabelsTwoLinesDestination(u)),this.isBottomSide)&&(i.y+=this.getLabelsTwoLinesDestination(u)),u.measureRotatedString3(n,t,i,e,m,c,StiMath.trunc(g*u.options.zoom))),r=new __.d.StiAxisLabelInfoXF;r.angle=c,r.width=g,r.wordWrap=p,r.clientRectangle=s,r.rotationMode=m,r.textPoint=i,r.text=n,r.stripLine=o.stripLine,d.push(r),this.isLabelsAngleByWidth&&(a=Math.max(a,s.width))}else d.push(new __.d.StiAxisLabelInfoXF);h++}let r=1;if(this.axis.range.auto)if(e){let e=S.width/(this.axis.info.stripLines.count-1);r=Math.ceil(.66*a/e)}else{this.isLabelsAngleByWidth||(a=1.5*this.axis.labels.font.sizeInPoints*u.options.zoom);let e=S.width/this.axis.info.stripLines.count,t=a/e;1<t&&(r=StiMath.trunc(__.d.StiStripLineCalculatorXF.getInterval(0,this.axis.info.labelsCollection.length,6)),this.axis.logarithmicScale)&&(r=1)}else r=StiMath.trunc(Math.max(1,this.axis.step));let n=!1,l=0,o=0;if(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&1<d.length&&(o=d[0].textPoint.y,l=d[1].textPoint.y),1==r||0!=this.axis.labels.step)return d;{let i=0,s=[];for(let t=0;t<d.length;t++){let e=d[t];(0==i||t==d.length-1&&this.axis.showEdgeValues)&&(this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&1<d.length&&(n=n?(e.textPoint.y=l,!1):(e.textPoint.y=o,!0)),s.push(e)),++i==r&&(i=0)}return s}}return d}getCenterAxisRect(e,t,i,s,r){if(0<=this.axis.area.yAxis.info.minimum)return RectangleD.empty;let n=-this.getTicksMaxLength(e);return new RectangleD(0,n,t.width,this.getTicksMaxLength(e))}getAxisRect(t,i,e,s,r,n){let l=RectangleD.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(t,i);if(0==o.length)l=this.isTopSide?new RectangleD(0,-this.getTicksMaxLength(t),i.width,this.getTicksMaxLength(t)):new RectangleD(0,i.height,i.width,this.getTicksMaxLength(t));else{for(let e of o){if(e.clientRectangle.isEmptyF)continue;l=l.isEmpty?e.clientRectangle:RectangleD.union(l,e.clientRectangle)}this.axis.interaction.showScrollBar&&n&&(l.height+=__.d.StiAxisCoreXF.defaultScrollBarSize*t.options.zoom),l.height+=this.getTicksMaxLength(t)+this.getLabelsSpaceAxis(t);let e=l.clone();this.isTopSide&&(l=new RectangleD(0,-l.height,i.width,l.height)),this.isBottomSide&&(l=new RectangleD(0,i.height,i.width,l.height)),s&&(l.x=e.x,l.width=e.width)}if(this.axis.arrowStyle!=__.d.StiArrowStyle.None&&e){let e=this.getArrowHeight(t);this.axis.area.reverseHor&&(e=-e),l=RectangleD.union(l,new RectangleD(i.width,l.y+l.height/2,e,1))}let a=this.getAxisTitleSize(t);return a.isEmpty||this.axis.title.position!=__.d.StiTitlePosition.Outside||(l.height+=a.height,0==l.width&&(l.width=a.width),this.isTopSide&&(l.y-=a.height)),l}renderLabels(u,t,s){if(null!=this.axis.info.stripLines&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(u,t),i=(s.createChildGeoms(),this.axis.area.xAxis);if(this.isArgumentDateTime2(e)&&null!=i&&i.dateTimeStep.step!=__.d.StiTimeDateStep.None){let e,t,r=i.info.labelsCollection,n=[],l="",o=!0,a=0;for(let s=0;s<r.length;s++){if(null==r[s].stripLine.valueObject)continue;if(e=r[s].stripLine.valueObject,t=s<r.length-2&&!i.area.is(__.d.StiScatterArea)?r[s+1].stripLine.valueObject:e,!e.ticks||!t.ticks)continue;switch(o&&(a=r[s].position,o=!1),this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMMdd")==t.toString("yyyyMMMMdd")&&s!=r.length-2||(l=e.toString("dd"));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMddHH")==t.toString("yyyyMMMMddHH")&&s!=r.length-2||(l=e.toString("HH"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddHHmm")==t.toString("yyyyMMMMddHHmm")&&s!=r.length-2||(l=e.toString("mm"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyyMMMM")==t.toString("yyyyMMMM")&&s!=r.length-2||(l=StiLocalization.get("A_WebViewer","Month"+e.toString("MMMM")));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddHHmmss")==t.toString("yyyyMMMMddHHmmss")&&s!=r.length-2||(l=e.toString("ss"));break;case __.d.StiTimeDateStep.Year:e.toString("yyyy")==t.toString("yyyy")&&s!=r.length-2||(l=e.toString("yyyy"));break}if(""!=l){l=``+this.axis.labels.textBefore+l+this.axis.labels.textAfter;let e=new PointD((r[s].position+a)/2,this.getTicksMaxLength(u)+this.getLabelsSpaceAxis(u)),t=0,i=new __.d.StiAxisLabelInfoXF;i.angle=t,i.clientRectangle=u.measureRotatedString3(l,this.getFontGeom(u),e,this.getStringFormatGeom(u,i.wordWrap),StiRotationMode.CenterCenter,t,StiMath.trunc(this.axis.labels.width*u.options.zoom)),i.rotationMode=StiRotationMode.CenterCenter,i.stripLine=r[s].stripLine,i.text=l,i.textPoint=e,n.push(i),o=!0,l=""}}o=!0;let h=[];for(let s=0;s<n.length-1;s++){switch(e=n[s].stripLine.valueObject,t=n[s+1].stripLine.valueObject,o&&(a=n[s].textPoint.x,o=!1),this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMM")==t.toString("yyyyMMMM")&&s!=n.length-2||(l=StiLocalization.get("A_WebViewer","Month"+e.toString("MMMM")));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMdd")==t.toString("yyyyMMMMdd")&&s!=n.length-2||(l=e.toString("dd"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddhh")==t.toString("yyyyMMMMddhh")&&s!=n.length-2||(l=e.toString("hh"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyy")==t.toString("yyyy")&&s!=n.length-2||(l=e.toString("yyyy"));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddhhmm")==t.toString("yyyyMMMMddhhmm")&&s!=n.length-2||(l=e.toString("mm"));break;case __.d.StiTimeDateStep.Year:if(e.toString("yyyy")!=t.toString("yyyy")||s==n.length-2)continue;break}if(""!=l){l=``+this.axis.labels.textBefore+l+this.axis.labels.textAfter;let e=new PointD((n[s+1].textPoint.x+a)/2,this.getTicksMaxLength(u)+2*this.getLabelsSpaceAxis(u)),t=0,i=new __.d.StiAxisLabelInfoXF;i.angle=t,i.clientRectangle=u.measureRotatedString3(l,this.getFontGeom(u),e,this.getStringFormatGeom(u,i.wordWrap),StiRotationMode.CenterCenter,t,StiMath.trunc(this.axis.labels.width*u.options.zoom)),i.rotationMode=StiRotationMode.CenterTop,i.stripLine=n[s].stripLine,i.text=l,i.textPoint=e,h.push(i),o=!0,l=""}}n.push(...h);for(let t of n)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.width,t.rotationMode,t.wordWrap);s.childGeoms.push(e)}}else for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.width,t.rotationMode,t.wordWrap);s.childGeoms.push(e)}}}renderTitle(e,t,i){if(StiString.isNullOrEmpty(this.axis.title.text))return;let s=this.getAxisTitleSize(e),r=RectangleD.empty;if(this.isTopSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,0,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD((t.width-s.width)/2,0,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,0,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.y+=t.height)}if(this.isBottomSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,t.height-s.height,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD((t.width-s.width)/2,t.height-s.height,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,t.height-s.height,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.y-=t.height)}let n=this.axis.title.font.size*e.options.zoom,l={ref:0},o=(this.axis.area.chart.isDashboard&&this.checkUseMaxWidth(t,r,l)&&(n=this.getCorrectionFontSize(t,r,n)),StiFontGeom.changeFontSize(this.axis.title.font,n)),a=this.getAngleTitle(),h=new __.d.StiAxisTitleGeom(this.axis,r,a,this.axis.title.alignment,o);i.createChildGeoms(),i.childGeoms.push(h)}isArgumentDateTime1(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}isArgumentDateTime2(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}get dock(){return null}get isTopSide(){return this.dock==__.d.StiXAxisDock.Top&&!this.axis.area.reverseVert||this.dock==__.d.StiXAxisDock.Bottom&&this.axis.area.reverseVert}get isBottomSide(){return this.dock==__.d.StiXAxisDock.Bottom&&!this.axis.area.reverseVert||this.dock==__.d.StiXAxisDock.Top&&this.axis.area.reverseVert}constructor(e){super(e)}},__.d.StiXBottomAxisCoreXF=class extends __.d.StiXAxisCoreXF{get dock(){return __.d.StiXAxisDock.Bottom}constructor(e){super(e)}},__.d.StiXTopAxisCoreXF=class extends __.d.StiXAxisCoreXF{get dock(){return __.d.StiXAxisDock.Top}constructor(e){super(e)}},__.d.StiYAxisCoreXF=class extends __.d.StiAxisCoreXF{render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!1).clone(),s=(i.x=0,i.y=0,this.axis.interaction.showScrollBar&&this.axis.is(__.d.IStiYLeftAxis)&&this.axis.area.reverseHor&&(i.x+=__.d.StiAxisCoreXF.defaultScrollBarSize*e.options.zoom),new __.d.StiYAxisGeom(this.axis,i.clone(),!1));return this.renderLabels(e,i.clone(),s),this.axis.range.auto||(this.axis.area.reverseVert?i.y=(this.axis.info.minimum-this.axis.range.minimum)*this.axis.info.dpi:i.y=(this.axis.info.maximum-this.axis.range.maximum)*this.axis.info.dpi,i.height=(this.axis.range.maximum-this.axis.range.minimum)*this.axis.info.dpi),this.renderTitle(e,i,s),s}renderView(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t,!1,!1,!0,!0).clone();return new __.d.StiYAxisViewGeom(this.axis[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiYAxis),i,!1)}renderScrollBar(e,t,i){}renderCenter(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.xAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=(i.x=0,i.y=0,new __.d.StiYAxisGeom(this.axis,i,!0));return s}renderCenterView(e,t){if(!this.axis.visible)return null;if(0<=this.axis.area.xAxis.info.minimum)return null;let i=this.getCenterAxisRect(e,t,!1,!1,!0).clone(),s=new __.d.StiYAxisViewGeom(this.axis,i,!0);return s}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.ceil(Math.abs(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}getLabelText(e,t){let i,s=e.valueObject;null==s&&(s="");try{if(null!=this.axis.labels.formatService){if(this.setTotalNumberCapacity(),s instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(s)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+s+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e.value)+this.axis.labels.textAfter}if(null!=this.axis.labels.format&&0!=this.axis.labels.format.trim().length){this.storedCulture=CultureInfo.currentCulture;let e=null==(i=this.axis.area.chart.report)?void 0:i.getParsedCulture();StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=CultureInfo.cultures[e]);try{if("string"==typeof s&&(s=s[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),!__.d.StiChartOptions.oldChartPercentMode&&this.axis.labels.format.startsWith("P")){let e=0;return 1<this.axis.labels.format.length&&(e=parseInt(this.axis.labels.format[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1))),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,s,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+this.axis.labels.format+"}{2}",this.axis.labels.textBefore,s,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,s,this.axis.labels.textAfter)}catch(e){}return s.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}measureStripLines(g,p){let _=[];if(null!=this.axis.info.labelsCollection&&this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let m=this.getAxisTitleSize(g),c=0;for(let d of this.axis.info.labelsCollection){let e=this.axis.area.reverseHor?this.isLeftSide:this.isRightSide;if(e&&this.axis.area.xTopAxis.arrowStyle!=__.d.StiArrowStyle.None&&0==c){_.push(new __.d.StiAxisLabelInfoXF),c++;continue}if(e&&this.axis.area.xAxis.arrowStyle!=__.d.StiArrowStyle.None&&c==this.axis.info.stripLines.count-1){_.push(new __.d.StiAxisLabelInfoXF),c++;continue}let t=this.getLabelText(d.stripLine,null),i=d.position,s=g.getGenericStringFormat(),r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*g.options.zoom),n=this.getTextAlignment(),l=StiRotationMode.LeftCenter,o=-this.axis.labels.angle,a=PointD.empty,h=(a=this.isLeftSide?n==StiHorAlignment.Left?(l=StiRotationMode.LeftCenter,new PointD(m.width,i)):n==StiHorAlignment.Center?(l=StiRotationMode.CenterCenter,new PointD((p.width-m.width)/2,i)):(l=StiRotationMode.RightCenter,new PointD(p.width-this.getTicksMaxLength(g)-this.getLabelsSpaceAxis(g),i)):n==StiHorAlignment.Left?(l=StiRotationMode.LeftCenter,new PointD(this.getTicksMaxLength(g)+this.getLabelsSpaceAxis(g),i)):n==StiHorAlignment.Center?(l=StiRotationMode.CenterCenter,new PointD((p.width-m.width)/2,i)):(l=StiRotationMode.RightCenter,new PointD(p.width-m.width,i)),this.axis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&c)&&(this.isLeftSide&&(a.x-=this.getLabelsTwoLinesDestination(g)),this.isRightSide)&&(a.x+=this.getLabelsTwoLinesDestination(g)),g.measureRotatedString3(t,r,a,s,l,o,this.axis.labels.width*g.options.zoom)),u=this.axis.labels.width*g.options.zoom;if(0!=u){switch(l.toString()){case"3":case"4":case"5":h.x-=(u-h.width)/2;break;case"6":case"7":case"8":h.x-=u-h.width;break}h.width=u}let S=new __.d.StiAxisLabelInfoXF;S.angle=o,S.clientRectangle=h,S.rotationMode=l,S.textPoint=a,S.text=t,S.stripLine=d.stripLine,_.push(S),c++}}if(this.axis.range.auto){let e=this.axis.labels.font.getHeight()*g.options.zoom,t=p.height/this.axis.info.stripLines.count,i=Math.ceil(e/t),s=0,r=new List;_.reverse();for(let e=0;e<_.length;e++)0==s&&r.push(_[e]),++s==i&&(s=0);return r}return _}getCenterAxisRect(e,t,i,s,r){if(0<=this.axis.area.xAxis.info.minimum)return RectangleD.empty;let n=-this.getTicksMaxLength(e);return new RectangleD(n,0,this.getTicksMaxLength(e),t.height)}getAxisRect(t,i,e,s,r,n){let l=RectangleD.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(t,i);if(0==o.length)l=this.isLeftSide?new RectangleD(-this.getTicksMaxLength(t),0,this.getTicksMaxLength(t),i.height):new RectangleD(i.width,0,this.getTicksMaxLength(t),i.height);else{for(let e of o){if(e.clientRectangle.isEmpty)continue;l=l.isEmpty?e.clientRectangle.clone():RectangleD.union(l,e.clientRectangle)}this.axis.interaction.showScrollBar&&n&&(l.width+=__.d.StiAxisCoreXF.defaultScrollBarSize*t.options.zoom),l.width+=this.getTicksMaxLength(t)+this.getLabelsSpaceAxis(t);let e=l.clone();this.isLeftSide&&(l=new RectangleD(-l.width,0,l.width,i.height)),this.isRightSide&&(l=new RectangleD(i.width,0,l.width,i.height)),s&&(l.y=e.y,l.height=e.height)}if(this.axis.arrowStyle!=__.d.StiArrowStyle.None&&e){let e=this.getArrowHeight(t);this.axis.area.reverseVert&&(e=-e),l=RectangleD.union(l,new RectangleD(l.x,-e,1,e))}let a=this.getAxisTitleSize(t);return a.isEmpty||this.axis.title.position!=__.d.StiTitlePosition.Outside||(l.width+=a.width,this.isLeftSide&&(l.x-=a.width)),l}renderLabels(t,i,s){if(this.axis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiAxisLabelGeom(this.axis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,this.axis.labels.width,t.rotationMode,this.axis.labels.wordWrap);s.childGeoms.push(e)}}}renderTitle(e,t,i){if(StiString.isNullOrEmpty(this.axis.title.text))return;let s=this.getAxisTitleSize(e),r=RectangleD.empty;if(this.isLeftSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(0,t.height-s.height+t.y,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD(0,(t.height-s.height)/2+t.y,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(0,t.y,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.x+=t.width)}if(this.isRightSide){switch(this.axis.title.alignment){case StringAlignment.Near:r=new RectangleD(t.width-s.width,t.height-s.height+t.y,s.width,s.height);break;case StringAlignment.Center:r=new RectangleD(t.width-s.width,(t.height-s.height)/2+t.y,s.width,s.height);break;case StringAlignment.Far:r=new RectangleD(t.width-s.width,t.y,s.width,s.height);break}this.axis.title.position==__.d.StiTitlePosition.Inside&&(r.x-=t.width)}let n=this.axis.title.font.size*e.options.zoom,l={ref:0},o=(this.axis.area.chart.isDashboard&&this.checkUseMaxWidth(t,r,l)&&(n=this.getCorrectionFontSize(t,r,n)),StiFontGeom.changeFontSize(this.axis.title.font,n)),a=this.getAngleTitle(),h=new __.d.StiAxisTitleGeom(this.axis,r,a,this.axis.title.alignment,o);i.createChildGeoms(),i.childGeoms.push(h)}get dock(){return null}get isLeftSide(){return this.dock==__.d.StiYAxisDock.Left&&!this.axis.area.reverseHor||this.dock==__.d.StiYAxisDock.Right&&this.axis.area.reverseHor}get isRightSide(){return this.dock==__.d.StiYAxisDock.Right&&!this.axis.area.reverseHor||this.dock==__.d.StiYAxisDock.Left&&this.axis.area.reverseHor}constructor(e){super(e)}},__.d.StiYLeftAxisCoreXF=class extends __.d.StiYAxisCoreXF{get dock(){return __.d.StiYAxisDock.Left}constructor(e){super(e)}},__.d.StiYRightAxisCoreXF=class extends __.d.StiYAxisCoreXF{get dock(){return __.d.StiYAxisDock.Right}getStartFromZero(){if(1==this.axis.area.axisCore.valuesCount)return!0;if(null!=this.axis&&null!=this.axis.range&&!this.axis.range.auto)return!1;return null==this.axis||this.axis.startFromZero}constructor(e){super(e)}};{class lM{static getInterval1(e){let t=Math.abs(e),i=0;if(1<e){while(1<t)t/=10,i++;t=t<.15?.1:t<.3?.2:t<.75?.5:1;while(0<i)t*=10,i--}else if(0<e){while(10*t<1)t*=10,i++;t=t<.15?.1:t<.3?.2:t<.75?.5:1;while(0<i)t/=10,i--}return t}static getInterval(e,t,i){if(t==e)return 0;return lM.getInterval1((t-e)/i)}static getStripLines(e,t,i,s){let r=new __.d.StiStripLinesXF;if(e==t)return r;let n=e,l=t,o=i,a=0;a=StiMath.trunc(n/o)*(1e3*o)/1e3;while(n<a+o)a-=o;let h=this.getCountAfterComma(o),u=this.getCountAfterComma(a),S=Math.max(h,u);while(a<l)a+=o,0<S&&(a=StiMath.round2(a,S)),s?r.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(a),a)):r.insert(0,new __.d.StiStripLineXF(a.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),a));return r}static getStripLines2(e,t,i){let s=e.info.minimum,r=e.info.maximum,n=new __.d.StiStripLinesXF;if(s==r)return n;let l=s,o=r,a=t,h=0;if(h=e.startFromZero||e.range.auto?StiMath.trunc(l/a)*(1e3*a)/1e3:e.range.minimum,!e.range.auto&&e instanceof __.d.StiYRightAxis)h=e.info.minimum,h-=a;else while(l<h+a)h-=a;let u=this.getCountAfterComma(a),S=this.getCountAfterComma(h),d=Math.max(u,S);while(h<o)h+=a,0<d&&(h=StiMath.round2(h,d)),i?n.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(h),h)):n.insert(0,new __.d.StiStripLineXF(h.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),h));return n}static getScatterXDateStripLines(e,t,i){let s=new __.d.StiStripLinesXF;if(e==t)return s;let r=e,n=t,l=i,o=0;o=r;while(r<=o+l)o-=l;while(o<n)o+=l,s.insert(0,new __.d.StiStripLineXF(DateTime.fromOADate(o),o));return s}static getCountAfterComma(e){let t=e.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",","."),i=t.indexOf("."),s=0;return s=0<i?t.substring(i).length-1:s}static getStripLinesLogScale(e,t){let i=new __.d.StiStripLinesXF;if(e==t)return i;let s=e,r=t,n=1,l=1;if(0<e&&e<1)while(s<n)n/=10;if(1<e){while(s>n)n*=10;n/=10}if(0<r&&r<1){while(l>r)l/=10;l*=10}if(1<r)while(r>l)l*=10;let o=n,a=o,h=1;while(o<=l)i.insert(0,new __.d.StiStripLineXF(o.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),o)),o+=a,10==++h&&(h=1,a=o);return i}}__.d.StiStripLineCalculatorXF=lM}__.d.StiStripLineXF=class{implements(){let e=[ICloneable,__.d.IStiStripLinesXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get value(){return this.valueObj}set value(e){this.valueObj=e}constructor(e,t){this.valueObject=null,this.valueObj=0,this.valueObject=e,this.valueObj=t}};{class pN extends CollectionBase{implements(){let e=[ICloneable,__.d.IStiStripLinesXF];return(this.implements=()=>e)()}clone(){let i=new pN;for(let t of this.list){let e=t.clone();i.add(e)}return i}add2(e,t){this.add(new __.d.StiStripLineXF(e,t))}}__.d.StiStripLinesXF=pN}__.d.StiStripPositionXF=class{implements(){let e=[__.d.IStiStripPositionXF];return(this.implements=()=>e)()}},__.d.StiChartTitleCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartTitleCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.chartTitle.allowApplyStyle&&(this.chartTitle.brush=new StiSolidBrush(e.core.axisTitleColor))}render(e,t,i){if(!t.visible)return null;let s=new StiFontGeom(t.font.fontFamily.name,t.font.size,t.font.style,t.font.unit),r=e.getDefaultStringFormat(),n=(r.alignment=t.alignment,e.measureRotatedString2(t.text,s,i,r,StiRotationMode.CenterCenter,t.dock,0));switch(t.dock){case __.d.StiChartTitleDock.Top:n.height+=t.spacing,n.height*=e.options.zoom,n.y=i.y,t.alignment!=StringAlignment.Center&&(n.width*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.x=i.x),t.alignment==StringAlignment.Center&&(n.x=i.x+i.width/2-n.width/2),t.alignment==StringAlignment.Far&&(n.x=i.x+i.width-n.width);break;case __.d.StiChartTitleDock.Right:n.width+=t.spacing,n.width*=e.options.zoom,n.x=i.x+i.width-n.width,t.alignment!=StringAlignment.Center&&(n.height*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.y=i.y),t.alignment==StringAlignment.Center&&(n.y=i.y+i.height/2-n.height/2),t.alignment==StringAlignment.Far&&(n.y=i.y+i.height-n.height);break;case __.d.StiChartTitleDock.Bottom:n.height+=t.spacing,n.height*=e.options.zoom,n.y=i.y+i.height-n.height,t.alignment!=StringAlignment.Center&&(n.width*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.x=i.x+i.width-n.width),t.alignment==StringAlignment.Center&&(n.x=i.x+i.width/2-n.width/2),t.alignment==StringAlignment.Far&&(n.x=i.x);break;case __.d.StiChartTitleDock.Left:n.width+=t.spacing,n.width*=e.options.zoom,n.x=i.x,t.alignment!=StringAlignment.Center&&(n.height*=e.options.zoom),t.alignment==StringAlignment.Near&&(n.y=i.y+i.height-n.height),t.alignment==StringAlignment.Center&&(n.y=i.y+i.height/2-n.height/2),t.alignment==StringAlignment.Far&&(n.y=i.y);break}return new __.d.StiChartTitleGeom(t,n)}constructor(e){this.chartTitle=e}};let StiReportParser=__.a.Dashboard.StiReportParser,RectangleF=(__.d.StiConstantLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiConstantLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.constantLines.allowApplyStyle&&(this.constantLines.lineColor=e.core.seriesLabelsColor)}renderXConstantLines(e,l){let o=e.area;if(null==o)return;let a,t=DateTime.fromString(this.constantLines.axisValue,!1);if(null!=t)a=t.toOADate();else try{let e=StiReportParser.parse2(this.constantLines.axisValue,o.chart.report);a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}o.reverseVert&&(a=-a);let h=0;if(o.xAxis.logarithmicScale&&0<o.xAxis.info.stripLines.count){let e=o.xAxis.info.stripLines.count,t=o.reverseHor?e-1:0,i=o.reverseHor?0:e-1,s=o.xAxis.info.stripLines.getByIndex(t).value,r=o.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(l.width/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(a)*n-StiMath.log10(o.xAxis.info.stripLines.getByIndex(t).value)*n)}else{h=o.axisCore.getDividerX()+a*o.xAxis.info.dpi;for(let e of o.xAxis.info.stripLines.list)null!=e.valueObject&&e.valueObject.toString()==this.constantLines.axisValue&&(a=e.value,o.reverseHor&&(a=-a),h=a*o.xAxis.info.dpi+o.axisCore.getDividerX())}let i=new PointD(0,0),s=StiRotationMode.LeftTop;switch(this.constantLines.position){case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new PointD(h+this.constantLines.lineWidth/2,0);break;case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new PointD(h-this.constantLines.lineWidth/2,0);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new PointD(h+this.constantLines.lineWidth/2,l.height/2);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new PointD(h-this.constantLines.lineWidth/2,l.height/2);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new PointD(h+this.constantLines.lineWidth/2,l.height);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new PointD(h-this.constantLines.lineWidth/2,l.height);break}let r=new __.d.StiConstantLinesVerticalGeom(this.constantLines,new RectangleD(h,0,h,l.height),i,s);e.createChildGeoms(),e.childGeoms.push(r)}renderYConstantLines(e,l){let o=e.area;if(null==o)return;let a;try{let e=StiReportParser.parse2(this.constantLines.axisValue,o.chart.report);a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}o.reverseVert&&(a=-a);let h;if(o.yAxis.logarithmicScale){let e=o.yAxis.info.stripLines.count,t=0,i=e-1,s=o.yAxis.info.stripLines.getByIndex(t).value,r=o.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(l.height/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(o.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(a)*n)}else h=this.constantLines.orientation==__.d.StiConstantLines_StiOrientation.Horizontal?o.axisCore.getDividerY()-a*o.yAxis.info.dpi:o.axisCore.getDividerRightY()-a*o.yRightAxis.info.dpi;let t=new PointD(0,0),i=StiRotationMode.LeftTop;switch(this.constantLines.position){case __.d.StiConstantLines_StiTextPosition.LeftTop:i=StiRotationMode.LeftBottom,t=new PointD(-l.x,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.LeftBottom:i=StiRotationMode.LeftTop,t=new PointD(-l.x,h+this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:i=StiRotationMode.CenterBottom,t=new PointD(l.width/2,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:i=StiRotationMode.CenterTop,t=new PointD(l.width/2,h+this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.RightTop:i=StiRotationMode.RightBottom,t=new PointD(l.width,h-this.constantLines.lineWidth/2);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:i=StiRotationMode.RightTop,t=new PointD(l.width,h+this.constantLines.lineWidth/2);break}let s=new __.d.StiConstantLinesYGeom(this.constantLines,new RectangleD(0,h,l.width,h),t,i);e.createChildGeoms(),e.childGeoms.push(s)}render(e,t,i){if(!this.constantLines.visible)return;this.constantLines.orientation==__.d.StiConstantLines_StiOrientation.Vertical&&this.renderXConstantLines(t,i),this.constantLines.orientation!=__.d.StiConstantLines_StiOrientation.Horizontal&&this.constantLines.orientation!=__.d.StiConstantLines_StiOrientation.HorizontalRight||this.renderYConstantLines(t,i)}constructor(e){this.constantLines=e}},__.d.StiGridLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiGridLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.gridLines.allowApplyStyle&&(this.gridLines[Stimulsoft.System.StiObject.stimulsoft]().is(__.d.IStiGridLinesVert)?(this.gridLines.color=e.core.gridLinesVertColor,this.gridLines.minorColor=e.core.gridLinesVertColor):(this.gridLines.color=e.core.gridLinesHorColor,this.gridLines.minorColor=e.core.gridLinesHorColor))}constructor(e){this.gridLines=e}},__.d.StiRadarGridLinesCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiRadarGridLinesCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.gridLines.allowApplyStyle&&(this.gridLines[Stimulsoft.System.StiObject.stimulsoft]().is(__.d.IStiRadarGridLinesVert)?this.gridLines.color=e.core.gridLinesVertColor:this.gridLines.color=e.core.gridLinesHorColor)}constructor(e){this.gridLines=e}},__.d.StiInterlacingCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiInterlacingCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.interlacing.allowApplyStyle&&(this.interlacing.is2(__.d.IStiInterlacingVert)?this.interlacing.interlacedBrush=e.core.interlacingVertBrush:this.interlacing.interlacedBrush=e.core.interlacingHorBrush)}constructor(e){this.interlacing=e}},Stimulsoft.System.Drawing.Rectangle),StiChartSeriesOrientation=__.d.StiChartSeriesOrientation,Point=(__.d.StiLegendCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiLegendCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.legend.allowApplyStyle&&(this.legend.brush=e.core.legendBrush.clone(),this.legend.labelsColor=e.core.legendLabelsColor,this.legend.titleColor=e.core.legendTitleColor,this.legend.borderColor=e.core.legendBorderColor,this.legend.showShadow=e.core.legendShowShadow,this.legend.font=e.core.legendFont)}isAcceptableSeries(e){return e!=__.d.StiHeatmapSeries}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}render(u,e){let S,t={ref:S},d=this.getLegendItems(t);if(S=t.ref,!this.legend.visible||0==d.length)return null;let h,m,i={ref:h},s={ref:m},r=this.getLegendSize(u,e,i,s),n=(h=i.ref,m=s.ref,new RectangleD(e.x,e.y,r.width,r.height)),c=n.clone(),l=(c.location=new PointD(0,0),null);if(!StiString.isNullOrEmpty(this.legend.title)){let e=this.getTitleSize(u),t=n.clone();t.location=new PointD(0,0),t.height=e.height,l=new __.d.StiLegendTitleGeom(this.legend,t),c.y+=t.height,c.height-=t.height}let g=new __.d.StiLegendGeom(this.legend,n,d),p=(null!=l&&(g.createChildGeoms(),g.childGeoms.push(l),g.legendTitleGeom=l),this.legend.horSpacing*u.options.zoom),_=this.legend.vertSpacing*u.options.zoom;if(0<n.width&&0<n.height)if(0==this.legend.columns){let e=p+c.x,i=_+c.y,n=e,l=i,s=this.getMatrixIndexItem(h,m,d.length),o=0,r=new List;for(let t=0;t<s.length;t++)for(let e=0;e<s[0].length;e++){let i=s[t][e];if(0<=i){let e=d[i],t=this.getItemRealSize(u,e);o=Math.max(o,t.height),r.add(t)}}let a=0;for(let t=0;t<s.length;t++){for(let e=0;e<s[0].length;e++){let r=s[t][e];if(0<=r){let e=d[r],t=this.getItemRealSize(u,e),i=(a=Math.max(a,t.width),new RectangleF(n,l,t.width,o)),s=new __.d.StiLegendItemGeom(this.legend,e,i,e.colorIndex,S,e.index);g.createChildGeoms(),g.childGeoms.push(s)}l+=o+_}l=i,n+=a+p,a=0}}else{let s=0,r=0,n=this.getItemSize1(u,d,0),l=(this.legend.direction==__.d.StiLegendDirection.LeftToRight||this.legend.direction==__.d.StiLegendDirection.TopToBottom?(s=p+c.x,r=_+c.y):this.legend.direction==__.d.StiLegendDirection.RightToLeft?(s=c.right-p-n.width,r=_+c.y):this.legend.direction==__.d.StiLegendDirection.BottomToTop&&(s=p+c.x,r=c.bottom-_-n.height),s),o=r,a=0,h=0;for(let i of d){n=this.getItemSize2(u,d,i);let e=new RectangleD(l,o,n.width,n.height),t=new __.d.StiLegendItemGeom(this.legend,i,e,i.colorIndex,S,i.index);g.createChildGeoms(),g.childGeoms.push(t),a++,this.legend.direction==__.d.StiLegendDirection.TopToBottom?(o+=_+e.height,a==this.legend.columns&&(o=r,l+=n.width+p,a=0)):this.legend.direction==__.d.StiLegendDirection.LeftToRight?(l+=p+e.width,a==this.legend.columns&&(l=s,o+=n.height+_,a=0)):this.legend.direction==__.d.StiLegendDirection.RightToLeft?(n=this.getItemSize1(u,d,h+1),l-=p+n.width,a==this.legend.columns&&(l=s,o+=n.height+_,a=0)):this.legend.direction==__.d.StiLegendDirection.BottomToTop&&(o-=_+e.height,a==this.legend.columns)&&(o=r,l+=n.width+p,a=0),h++}}return g}getMatrixIndexItem(s,r,n){let l=StiArray.create2(Number,s,r);if(this.legend.direction==__.d.StiLegendDirection.TopToBottom){let i=0;for(let t=0;t<r;t++)for(let e=0;e<s;e++)l[e][t]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.BottomToTop){let i=0;for(let t=r-1;0<=t;t--)for(let e=0;e<s;e++)l[e][t]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.LeftToRight){let i=0;for(let t=0;t<s;t++)for(let e=0;e<r;e++)l[t][e]=i<n?i:-1,i++}else if(this.legend.direction==__.d.StiLegendDirection.RightToLeft){let i=0;for(let t=s-1;0<=t;t--)for(let e=0;e<r;e++)l[t][e]=i<n?i:-1,i++}return l}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getLegendItemColumn(t,i){let s=0,r=0;for(let e of t){if(e==i)break;++s>=this.legend.columns&&(s=0,r++)}if(this.legend.direction==__.d.StiLegendDirection.TopToBottom||this.legend.direction==__.d.StiLegendDirection.BottomToTop)return r;return s}getTitleSize(e){if(StiString.isNullOrEmpty(this.legend.title))return new SizeD(0,0);let t=StiFontGeom.changeFontSize(this.legend.titleFont,this.legend.titleFont.size*e.options.zoom),i=e.getDefaultStringFormat(),s=(i.formatFlags=0,e.measureString(this.legend.title,t));return s.width++,s}getItemSize1(t,i,s){if(0<=s&&s<i.length){let e=i[s];return this.getItemSize2(t,i,e)}return new SizeD(0,0)}getItemSize2(i,e,t){let s=0,r=0,n=this.getLegendItemColumn(e,t),l=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom);for(let t of e)if(this.getLegendItemColumn(e,t)==n){let e=t.measureString(i,l);s=Math.max(e.width,s+2),r=Math.max(e.height,r)}return this.legend.markerVisible&&(s=Math.max(this.legend.markerSize.width*i.options.zoom,s)+this.legend.markerSize.width*i.options.zoom,r=Math.max(this.legend.markerSize.height*i.options.zoom,r)),new SizeD(s,r)}getItemRealSize(e,t){let i=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),s=t.measureString(e,i),r=s.width,n=s.height;return this.legend.markerVisible&&(r+=this.legend.markerSize.width*e.options.zoom,n=Math.max(this.legend.markerSize.height*e.options.zoom,n)),new SizeD(r,n)}getItemsSize(i,s){let r=this.legend.horSpacing*i.options.zoom,n=0,l=0,t=this.legend.columns;this.legend.direction!=__.d.StiLegendDirection.TopToBottom&&this.legend.direction!=__.d.StiLegendDirection.BottomToTop||(t=StiMath.trunc((s.length-1)/this.legend.columns)+1);for(let e=0;e<t;e++)for(let t of s)if(this.getLegendItemColumn(s,t)==e){let e=this.getItemSize2(i,s,t);n+=e.width+r,l=Math.max(e.height,l);break}return new SizeD(n,l)}getItemsAutoSize(n,l,o,e,t){let a=this.legend.direction==__.d.StiLegendDirection.TopToBottom||this.legend.direction==__.d.StiLegendDirection.BottomToTop,h=this.legend.horSpacing*n.options.zoom,u=this.legend.vertSpacing*n.options.zoom,S=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*n.options.zoom),d=0,m=0,c=new List,g=new List,p=0,_=null;for(let r=0;r<l.length;r++){let e=l[r],t=e.measureString(n,S),i=t.width+h,s=t.height+u;if(this.legend.markerVisible&&(i+=this.legend.markerSize.width*n.options.zoom,s=Math.max(this.legend.markerSize.height*n.options.zoom+u,s)),p=Math.max(s,p),a){if(c.length-1<d&&null==_||c.length-1<d&&null!=_&&d<=_)c.push(i);else if(c[d]<i){c[d]=i,c.removeRange(d+1,c.length-(d+1)),r=-1,d=0,m=0;continue}d++,null!=_&&_<=d&&(d=0,m++),c.sum()+h>o.width&&1<c.length&&(d=0,m++,0<r&&r--,0<c.length)&&(c.removeAt(c.length-1),_=c.length)}else g.length-1<m&&g.push(s),m++,c.length-1<d?c.push(i):c[d]=Math.max(c[d],i),g.sum()+u>o.height&&1<g.length&&(d++,(m=0)<r&&r--,0<g.length)&&g.removeAt(g.length-1)}return e.ref=c.length,t.ref=a?Math.ceil(l.length/c.length):g.length,new SizeD(c.sum()+h,t.ref*p+u)}getSeriesSize(i,t,s,r){let n=this.legend.horSpacing*i.options.zoom,l=this.legend.vertSpacing*i.options.zoom,e={ref:0},o=this.getLegendItems(e),a=e.ref,h=0,u=0;if(0==this.legend.columns){let e=this.getItemsAutoSize(i,o,t,s,r);h=e.width,u=e.height}else{r.ref=0,s.ref=this.legend.columns;let t=this.getItemsSize(i,o);switch(this.legend.direction){case __.d.StiLegendDirection.TopToBottom:case __.d.StiLegendDirection.BottomToTop:{h=t.width+n;let e=this.legend.columns;e>a&&(e=a),u=(t.height+l)*e+l;break}case __.d.StiLegendDirection.LeftToRight:case __.d.StiLegendDirection.RightToLeft:{let e=Math.ceil(a/this.legend.columns);e*this.legend.columns<a&&e++,h=t.width+n,u=(t.height+l)*e+l;break}}}return new SizeD(h,u)}getLegendSize(e,t,i,s){let r=this.getTitleSize(e),n={ref:i},l={ref:s},o=this.getSeriesSize(e,t,n,l),a=(i.ref=n.ref,s.ref=l.ref,new SizeD(Math.max(r.width,o.width),r.height+o.height)),h=0,u=0;return u=null!=this.legend.chart?(h=this.legend.chart.convertToHInches(this.legend.size.width*e.options.zoom),this.legend.chart.convertToHInches(this.legend.size.height*e.options.zoom)):(h=this.legend.size.width*e.options.zoom,this.legend.size.height*e.options.zoom),0!=h&&(a.width=h),0!=u&&(a.height=u),a.width=Math.round(a.width),a.height=Math.round(a.height),a}getLegendItems(e){let r=0,o=this.legend.chart.area.core.getSeries()[Stimulsoft.System.StiObject.stimulsoft]().toList(),a=this.legend.chart.area.as(__.d.IStiAxisArea),h=[];if(this.legend.chart.area.colorEach||o.any(e=>e.is(__.d.IStiFunnelSeries))||o.any(e=>e.is(__.d.IStiPictorialSeries))||o.any(e=>e.is(__.d.IStiDoughnutSeries))){let i=0;for(let e of o)i=Math.max(e.values.length,i);let l=0;for(let n of o)if(this.legend.chart.area.core.isAcceptableSeries(n[Stimulsoft.System.StiObject.stimulsoft]().getType()))for(let t=0;t<i;t++){if(n.showInLegend&&null!=n.values){let e=null!=a&&(a.reverseHor||a.axisCore.seriesOrientation==StiChartSeriesOrientation.Horizontal);if(t>=n.values.length)continue;let s=e?n.values.length-t-1:t,r=n.values[s];if(null!=r){let e=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeries),t=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeries),i=n[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiDoughnutSeries);(null!=e&&!e.showZeros||null!=i&&!i.showZeros||null!=t&&!t.showZeros)&&0==r||h.push(new __.d.StiLegendItemCoreXF(this.legend.chart.seriesLabels.core.getLabelText(n,r,this.getArgumentText(n,s),n.core.getTag(s),n.coreTitle,!0),n,s,l))}}r++,l++}}else if(this.legend.chart.area.is2(__.d.IStiSunburstArea)){if(1<=o.length){let i=o[0],e=i.arguments[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy(e=>e).select(e=>e.key).toList(),s=0;for(let t of e){if(null!=t){let e=t.toString();StiString.isNullOrEmpty(e)||h.push(new __.d.StiLegendItemCoreXF(e,i,s,s))}s++,r++}}}else if(this.legend.chart.area.is2(__.d.IStiBoxAndWhiskerArea)){if(1<=o.length){let t=o[0],i=0;for(let e of o)h.push(new __.d.StiLegendItemCoreXF(e.coreTitle,t,i,i)),i++,r++}}else if(this.legend.chart.area.is2(__.d.IStiWaterfallArea)){if(1<=o.length){let e=o[0];h.push(new __.d.StiLegendItemCoreXF(StiLocalization.get("PropertyMain","Positive"),e,0,0)),h.push(new __.d.StiLegendItemCoreXF(StiLocalization.get("PropertyMain","Negative"),e,0,1)),h.push(new __.d.StiLegendItemCoreXF(e.total.text,e,0,2)),r=3}}else for(let e of o)!this.legend.chart.area.core.isAcceptableSeries(e[Stimulsoft.System.StiObject.stimulsoft]().getType())||!e.showInLegend||this.legend.hideSeriesWithEmptyTitle&&StiString.isNullOrEmpty(e.coreTitle)&&!this.legend.chart.isDesigning||(h.push(new __.d.StiLegendItemCoreXF(e.coreTitle,e,-1,0)),r++);return e.ref=r,h}constructor(e){this.legend=e}},Stimulsoft.System.Drawing.Point),Rectangle=Stimulsoft.System.Drawing.Rectangle,StiPathGeom=(__.d.StiHeatmapLegendCoreXF=class extends __.d.StiLegendCoreXF{render(i,e){let l=this.getItemCores();if(!this.legend.visible||0==l.length)return null;let t=this.getLegendSize(i,e),s=new Rectangle(e.x,e.y,t.width,t.height),o=s,r=(o.location=new Point(0,0),null);if(!StiString.isNullOrEmpty(this.legend.title)){let e=this.getTitleSize(i),t=s.clone();t.location=new Point(0,0),t.height=e.height,r=new __.d.StiLegendTitleGeom(this.legend,t),o.y+=t.height,o.height-=t.height}let a=new __.d.StiHeatmapLegendGeom(this.legend,s),n=(null!=r&&(a.createChildGeoms(),a.childGeoms.push(r),a.legendTitleGeom=r),this.legend.chart.series.getByIndex(0).core),h=this.getSpacingVertical(i),u=(o=new Rectangle(o.x,o.y+h/2,o.width,o.height-h)).height/(l.length-1);for(let n=0;n<l.length;n++){let e=0==n?l[n]:null,t=n<l.length-1?l[n+1]:null,i=n<l.length?u*n:0,s=new Rectangle(o.x,o.y+i,o.width,u),r=new __.d.StiHeatmapLegendItemGeom(this.legend,s,e,t);a.createChildGeoms(),a.childGeoms.push(r)}let S=n.getHeatmapColors(),d=new __.d.StiHeatmapLegendMarkerGeom(this.legend,S.slice().reverse(),o);return a.createChildGeoms(),a.childGeoms.push(d),a}getSpacingVertical(e){let t=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),i=e.getDefaultStringFormat();return i.formatFlags=StringFormatFlags.NoWrap,e.measureString2("0",t,0,i).height}getLegendSize(e,t){let i=this.getTitleSize(e),s=this.getBodyValueTextSize(e,t),r=this.getMarkerSize(e,t),n=new SizeD(Math.max(i.width,s.width+r.width),s.height),l=0,o=0;return o=null!=this.legend.chart?(l=this.legend.chart.convertToHInches(this.legend.size.width*e.options.zoom),this.legend.chart.convertToHInches(this.legend.size.height*e.options.zoom)):(l=this.legend.size.width*e.options.zoom,this.legend.size.height*e.options.zoom),0!=l&&(n.width=l),0!=o&&(n.height=o),n.width=Math.round(n.width),n.height=Math.round(n.height),n}getMarkerSize(e,t){let i=this.legend.markerSize.width*e.options.zoom;return new SizeD(i,t.height)}getBodyValueTextSize(i,e){let s=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom),r=0,n=this.getItemCores();for(let t of n){let e=t.measureString(i,s);r=Math.max(r,e.width)}return new SizeD(r,e.height)}getItemCores(){let r=new List,n=this.legend.chart.area.core.getSeries()[0],e=n.core,t=e.getAllValues();if(0==t.length)return r;let i=t.min(),s=t.max(),l=e.getHeatmapColors(),o=new List,a=(s-i)/(l.length+1);for(let e=0;e<=l.length;e++)0==e?o.add(i):e==l.length?o.add(s):o.add(o[e-1]+a);let h=this.roundValues(o);for(let s=0;s<h.length;s++){let e=__.a.StiAbbreviationNumberFormatHelper.simpleAbbreviateNumber(h[s]),t=s<l.length?l[s]:Color.empty,i=new __.d.StiHeatmapLegendItemCoreXF(e,n,t);r.add(i)}return r.reverse(),r}roundValues(e){let i=new List;for(let t of e){let e=this.naiveRound(t,2);while(i.contains(e))e+=.01;i.add(e)}return i}naiveRound(e,t){let i=Math.pow(10,t);return Math.round(e*i)/i}isAcceptableSeries(e){return e==__.d.StiHeatmapSeries}constructor(e){super(e)}},__.d.StiHeatmapLegendItemCoreXF=class{getText(e,t){let i=this.series.chart.legend.columnWidth*e.options.zoom;if(0==i||this.series.chart.legend.wordWrap)return this.text;return __.d.StiTextContentHelper.getMeasureText2(e,this.text,t,i)}measureString(e,t){let i=this.getText(e,t),s=this.series.chart.legend.columnWidth*e.options.zoom,r=e.getDefaultStringFormat(),n=(this.series.chart.legend.wordWrap||(r.formatFlags=StringFormatFlags.NoWrap),e.measureString2(i,t,s,r));return n.width<s&&(n.width=s),n}constructor(e,t,i){this.text=e,this.series=t,this.color=i}},__.d.StiLegendItemCoreXF=class{getText(e,t){let i=this.series.chart.legend.columnWidth*e.options.zoom;if(0==i)return this.text;return __.d.StiTextContentHelper.getMeasureText2(e,this.text,t,i)}measureString(e,t){let i=this.getText(e,t),s=this.series.chart.legend.columnWidth*e.options.zoom,r=e.getDefaultStringFormat(),n=(r.formatFlags=StringFormatFlags.NoWrap,e.measureString2(i,t,s,r));return n.width<s&&(n.width=s),n}constructor(e,t,i,s){this.index=-1,this.colorIndex=0,this.text=e,this.series=t,this.index=i,this.colorIndex=s}},Stimulsoft.Base.Context.StiPathGeom),StiPenGeom=Stimulsoft.Base.Context.StiPenGeom,StiLinesSegmentGeom=Stimulsoft.Base.Context.StiLinesSegmentGeom,StiScaleAnimation=Stimulsoft.Base.Context.Animation.StiScaleAnimation,StiArcSegmentGeom=Stimulsoft.Base.Context.StiArcSegmentGeom,StiLineSegmentGeom=Stimulsoft.Base.Context.StiLineSegmentGeom,SizeF=Stimulsoft.System.Drawing.Size;{class GT{implements(){let e=[ICloneable,__.d.IStiMarkerCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}drawMarkers(i,s,r){if(0==s.length)return;if(null!=this.marker&&this.marker.visible){i.pushSmoothingModeToAntiAlias();let t=i.options.zoom;for(let e of s)this.marker.core.draw(i,this.marker,e,t,r,!1,!1,!1,"",null,null);i.popSmoothingMode()}}static getMarkerRect(e,t,i){let s=t*i/2;return new RectangleD(e.x-s,e.y-s,2*s,2*s)}draw(e,t,i,s,r,n,l,o,a,h,u){let S=new StiSolidBrush(Color.fromArgb3(55,Color.black)),d=GT.getMarkerRect(i,t.size,s).clone(),m=(r&&t.visible&&(d.x+=2*s,d.y+=2*s,this.drawPoint(e,d.x+d.width/2,d.y+d.height/2,s,S,null,t.type,t.icon,t.size,t.angle,!1,o,a,null,null),d.x-=2*s,d.y-=2*s),t.brush);if(o&&l&&!t.visible){let e=null==t.brush?Color.lightGray:StiBrush.toColor(t.brush);m=new StiSolidBrush(Color.fromArgb(0,e.r,e.g,e.b)),o=!1}let c=l?null:new StiPenGeom(t.borderColor);(t.visible||l)&&this.drawPoint(e,d.x+d.width/2,d.y+d.height/2,s,m,c,t.type,t.icon,t.size,t.angle,n,o,a,h,u)}drawLine(e,t,i,s,r,n,l,o,a,h,u,S){this.drawLines(e,[new PointD(t,i),new PointD(s,r)],n,l,o,a,h,u,S)}drawLines(S,d,m,c,g,p,_,f,C){if(S.pushSmoothingModeToAntiAlias(),d.length<2)return;let w=0;for(let u=0;u<d.length-1;u++){let e=d[u],t=d[u+1];if(null==e||null==t)continue;let i=e.x,s=e.y,r=t.x,n=t.y,l=r-i,o=n-s,a=Math.sqrt(l*l+o*o),h=_;while(w<a){let e=i+l*w/a,t=s+o*w/a;this.drawPoint(S,e,t,m,c,g,p,this.marker.icon,f,C,!1,!1,"",null,null),w+=h*m}w-=a}S.popSmoothingMode()}drawPoint(s,e,t,i,r,n,l,o,a,h,u,S,d,m,c){let g=a*i/2,p=e-g,_=e+g,f=t-g,C=t+g;if(null!=o){let e=new Rectangle(p,f,a*i,a*i);return void __.a.StiFontIconsHelper.drawDirectionIcons(s,r,e,new SizeF(e.height,e.height),o,d,c,!1)}switch(l){case __.d.StiMarkerType.Star5:this.drawPolygon(s,r,n,e,t,g,10,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star6:this.drawPolygon(s,r,n,e,t,g,12,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star7:this.drawPolygon(s,r,n,e,t,g,14,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Star8:this.drawPolygon(s,r,n,e,t,g,16,h,!0,u,S,d,m,c);break;case __.d.StiMarkerType.Hexagon:this.drawPolygon(s,r,n,e,t,g,6,30+h,!1,u,S,d,m,c);break;case __.d.StiMarkerType.Rectangle:this.drawPolygon(s,r,n,e,t,g,4,45+h,!1,u,S,d,m,c);break;case __.d.StiMarkerType.Circle:if(S){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);s.fillDrawAnimationEllipse(r,n,p,f,_-p,C-f,d,m,e,c)}else null!=r&&s.fillEllipse3(r,p,f,_-p,C-f,d,c),u&&s.fillEllipse3(__.d.StiMouseOverHelper.getMouseOverColor(),p,f,_-p,C-f,d,null),null!=n&&s.drawEllipse(n,p,f,_-p,C-f);break;case __.d.StiMarkerType.HalfCircle:{let t=new Rectangle(p,f,_-p,C-f),e=new Rectangle(0,0,_-p,C-f),i=new List;if(i.push(new StiArcSegmentGeom(new Rectangle(e.x,e.top+e.height/4,e.width,e.height),360,-180)),i.push(new StiLineSegmentGeom(new Point(e.x,e.bottom-e.height/4),new Point(e.right,e.bottom-e.height/4))),s.pushTranslateTransform(t.x+t.width/2,t.y+t.height/2),s.pushRotateTransform(h),s.pushTranslateTransform(-t.width/2,-t.height/2),S){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);s.fillDrawAnimationPath(r,n,i,t,m,e,c)}else null!=r&&s.fillPath2(r,i,e,null,d.toString()),u&&s.fillPath2(__.d.StiMouseOverHelper.getMouseOverColor(),i,t,null,d.toString()),null!=n&&s.drawPath(n,i,e);s.popTransform(),s.popTransform(),s.popTransform();break}case __.d.StiMarkerType.Triangle:this.drawPolygon(s,r,n,e,t,g,3,h,!1,u,S,d,m,c);break}}drawPolygon(t,i,s,r,n,l,o,e,a,h,u,S,d,m){let c=[],g=-90+(e=-e),p=StiArray.create(PointD,o+1,!0);if(a)for(let e=0;e<o;e+=2)p[e].x=r+l*Math.cos(g*Math.PI/180),p[e].y=n+l*Math.sin(g*Math.PI/180),g+=360/o,p[e+1].x=r+l/2*Math.cos(g*Math.PI/180),p[e+1].y=n+l/2*Math.sin(g*Math.PI/180),g+=360/o;else for(let e=0;e<o;e++)p[e].x=r+l*Math.cos(g*Math.PI/180),p[e].y=n+l*Math.sin(g*Math.PI/180),g+=360/o;if(p[o]=p[0],c.push(new StiLinesSegmentGeom(p)),u){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);t.fillDrawAnimationPath(i,s,c,StiPathGeom.getBoundsState,d,e,m)}else{let e=null!=S?S.toString():null;null!=i&&t.fillPath2(i,c,StiPathGeom.getBoundsState,null,e),h&&t.fillPath2(__.d.StiMouseOverHelper.getMouseOverColor(),c,StiPathGeom.getBoundsState,null,e),null!=s&&t.drawPath(s,c,null)}}constructor(e){this.marker=e}}__.d.StiMarkerCoreXF=GT}__.d.StiRadarAxisCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiRadarAxisCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){}constructor(e){this.axis=e}},__.d.StiRadarAxisLabelsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiRadarAxisLabelsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor,this.labels.brush=new StiEmptyBrush)}constructor(e){this.labels=e}},__.d.StiXRadarAxisCoreXF=class extends __.d.StiRadarAxisCoreXF{implements(){let e=[__.d.IStiXRadarAxisCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.axis.allowApplyStyle&&this.axis.labels.core.applyStyle(e)}renderLabel(e,t,i,s,r,n,l){let o=this.getLabelText(s),a=this.getLabelRect(e,i,o,0).clone(),h=(a.x=-a.width/2,a.y=-a.height/2,this.getLabelRect(e,i,o,r).clone()),u=this.axis.labels.borderColor,S=new StiSolidBrush(this.axis.labels.color);return new __.d.StiXRadarAxisLabelGeom(this.axis,o,S,u,r,a,h,i)}getLabelText(i){try{null==i&&(i="");let t=this.axis;if(null!=t.labels.format&&0!=t.labels.format.trim().length)try{if(!__.d.StiChartOptions.oldChartPercentMode&&t.labels.format.startsWith("P")){let e=0;return t.labels.format.length,StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",t.labels.textBefore,i,"%",t.labels.textAfter)}return StiString.format("{0}{1:"+t.labels.format+"}{2}",t.labels.textBefore,i,t.labels.textAfter)}catch(e){}return StiString.format("{0}{1}{2}",t.labels.textBefore,i,t.labels.textAfter)}catch(e){}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getLabelRect(e,t,i,s){let r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom),n=e.getGenericStringFormat();return n.trimming=StringTrimming.None,this.axis.labels.wordWrap||(n.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),e.measureRotatedString3(i,r,t,n,StiRotationMode.CenterBottom,s,StiMath.trunc(this.axis.labels.width*e.options.zoom))}get xAxis(){return this.axis}constructor(e){super(e)}},__.d.StiYRadarAxisCoreXF=class extends __.d.StiRadarAxisCoreXF{implements(){let e=[__.d.IStiYRadarAxisCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.axis.allowApplyStyle&&(this.yAxis.lineColor=e.core.axisLineColor,this.yAxis.labels.core.applyStyle(e))}render(e,t){if(!this.axis.visible)return null;let i=this.getAxisRect(e,t).clone(),s=new __.d.StiRadarAxisGeom(this.axis,i);return this.renderLabels(e,i,s),s}measureStripLines(d,m){let c=[];if(null!=this.yAxis.info.labelsCollection&&this.yAxis.labels.placement!=__.d.StiLabelsPlacement.None){let S=0;for(let u of this.yAxis.info.labelsCollection){let e=this.getLabelText(u.stripLine),t=u.position,i=d.getGenericStringFormat(),s=StiFontGeom.changeFontSize(this.yAxis.labels.font,this.yAxis.labels.font.size*d.options.zoom),r=this.getTextAlignment(),n,l=-this.yAxis.labels.angle,o=PointD.empty,a=(r==StiHorAlignment.Left?(n=StiRotationMode.LeftCenter,o=new PointD(0,t),l=0):(n=StiRotationMode.RightCenter,o=new PointD(m.width-this.getTicksMaxLength(d)-this.getLabelsSpaceAxis(d),t)),this.yAxis.labels.placement==__.d.StiLabelsPlacement.TwoLines&&0!=(1&S)&&(o.x-=this.getLabelsTwoLinesDestination(d)),d.measureRotatedString3(e,s,o,i,n,l,StiMath.trunc(this.yAxis.labels.width*d.options.zoom))),h=new __.d.StiAxisLabelInfoXF;h.angle=l,h.clientRectangle=a.clone(),h.rotationMode=n,h.textPoint=o,h.text=e,h.stripLine=u.stripLine,c.push(h),S++}}return c}renderLabels(t,i,s){if(this.yAxis.labels.placement!=__.d.StiLabelsPlacement.None){let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientRectangle.isEmpty){let e=new __.d.StiYRadarAxisLabelGeom(this.yAxis,t.clientRectangle,t.textPoint,t.text,t.stripLine,t.angle,t.rotationMode);s.childGeoms.push(e)}}}calculateStripPositions(t,e){if(e-=t,t=0,null==this.yAxis.info.stripLines||this.yAxis.info.stripLines.count<2)this.yAxis.info.stripPositions=[];else{this.yAxis.info.stripPositions=StiArray.create(Number,this.yAxis.info.stripLines.count),this.yAxis.info.stripPositions[0]=t,this.yAxis.info.stripPositions[this.yAxis.info.stripPositions.length-1]=e;for(let e=1;e<this.yAxis.info.stripPositions.length-1;e++)this.yAxis.info.stripPositions[e]=t+e*this.yAxis.info.step}}getAxisRect(e,t){let i=new RectangleD(t.width/2-this.getTicksMaxLength(e),0,this.getTicksMaxLength(e),t.height/2);return i}getTicksMaxLength(e){return this.yAxis.yCore.ticksMaxLength*e.options.zoom}getLabelsSpaceAxis(e){return 5*e.options.zoom}getLabelsTwoLinesDestination(e){return 2*this.yAxis.labels.font.sizeInPoints*e.options.zoom}getTextAlignment(){if(this.yAxis.labels.placement==__.d.StiLabelsPlacement.TwoLines)return StiHorAlignment.Right;return this.yAxis.labels.textAlignment}setTotalNumberCapacity(){let i=this.yAxis.labels.formatService.as(StiNumberFormatService);if(null!=i){let e=this.yAxis.labels.calculatedStep;if(0==e)return;let t=Math.abs(Math.trunc(Math.log10(e)));i.totalNumberCapacity=t,null!=(i=this.yAxis.area.chart.seriesLabels.formatService.as(StiNumberFormatService))&&(i.totalNumberCapacity=t)}}getLabelText(e){let t,i=null!=(t=null==e?void 0:e.valueObject)?t:"";try{if(null!=this.yAxis.labels.formatService)return this.setTotalNumberCapacity(),``+this.yAxis.labels.textBefore+this.yAxis.labels.formatService.format(e.value)+this.yAxis.labels.textAfter;if(null!=this.yAxis.labels.format&&0!=this.yAxis.labels.format.trim().length)try{if(!__.d.StiChartOptions.oldChartPercentMode&&this.yAxis.labels.format.startsWith("P")){let e=0;return this.yAxis.labels.format.length,StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.yAxis.labels.textBefore,i,"%",this.yAxis.labels.textAfter)}return StiString.format("{0}{1:"+this.yAxis.labels.format+"}{2}",this.yAxis.labels.textBefore,i,this.yAxis.labels.textAfter)}catch(e){}return StiString.format("{0}{1}{2}",this.yAxis.labels.textBefore,i,this.yAxis.labels.textAfter)}catch(e){}return i.toString().replace(".",",")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getStringFormatGeom(e){let t=e.getGenericStringFormat();if(t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,0<this.yAxis.labels.width){let e=this.getTextAlignment();e==StiHorAlignment.Left?t.alignment=StringAlignment.Near:e==StiHorAlignment.Right?t.alignment=StringAlignment.Far:e==StiHorAlignment.Center&&(t.alignment=StringAlignment.Center)}return t}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.yAxis.labels.font,this.yAxis.labels.font.size*e.options.zoom);return t}get yAxis(){return this.axis}get info(){return this.yAxis.info}set info(e){this.yAxis.info=e}get ticksMaxLength(){return this.axis.visible?Math.max(this.yAxis.ticks.visible?this.yAxis.ticks.length:0,this.yAxis.ticks.minorVisible?this.yAxis.ticks.minorLength:0):0}constructor(e){super(e)}};let StiSeriesInteractionData=Stimulsoft.Base.Context.StiSeriesInteractionData;{class kX{implements(){let e=[ICloneable,__.d.IStiApplyStyleSeries,__.d.IStiSeriesCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e,t){this.series.allowApplyStyle&&(this.series.showShadow=e.core.seriesShowShadow,null!=this.series.seriesLabels)&&this.series.seriesLabels.core.applyStyle(e)}checkLabelsRect(e,t,i){return this.checkLabelsRect2(e,t.clientRectangle,i)}checkLabelsRect2(t,i,s){if(null!=t&&t.preventIntersection){s.x<0&&(s.x=0),s.y<0&&(s.y=14),s.right>i.width&&(s.x=i.width-s.width),i.height<s.bottom&&(s.y=i.height-s.height);let e=this.getDrawRectangle(s.clone(),t.angle);if(e.y<0)return s.y=e.height/2,s;e.y+e.height>i.height&&(s.y-=e.height/2)}return s}getDrawRectangle(e,t){let i=new PointD(e.left,e.top),s=new PointD(e.right,e.top),r=new PointD(e.right,e.bottom),n=new PointD(e.left,e.bottom),l=new PointD((e.left+e.right)/2,(e.top+e.bottom)/2),o=this.rotatePoint(i,l,t),a=this.rotatePoint(s,l,t),h=this.rotatePoint(r,l,t),u=this.rotatePoint(n,l,t),S=Math.min(Math.min(o.y,a.y),Math.min(h.y,u.y)),d=Math.max(Math.max(o.y,a.y),Math.max(h.y,u.y)),m=Math.min(Math.min(o.x,a.x),Math.min(h.x,u.x)),c=Math.max(Math.max(o.x,a.x),Math.max(h.x,u.x));return new RectangleD(m,S,c-m,d-S)}rotatePoint(e,t,i){let s=i*(Math.PI/180),r=Math.cos(s),n=Math.sin(s);return new PointD(StiMath.trunc(r*(e.x-t.x)-n*(e.y-t.y)+t.x),StiMath.trunc(n*(e.x-t.x)+r*(e.y-t.y)+t.y))}checkIntersectionLabels(o){let t=o.childGeoms,a=[];if(null!=t)for(let e of t)e.is(__.d.StiSeriesLabelsGeom)&&a.push(e);let e=a.length,i=!0,s=0;while(i&&s<29){s++;for(let l=0;l<e;l++)for(let n=0;n<e;n++){if(n==l)continue;let e=this.getDrawRectangle(a[l].clientRectangle.clone(),a[l].seriesLabels.angle),t=this.getDrawRectangle(a[n].clientRectangle.clone(),a[n].seriesLabels.angle),i=!1,s=!1,r=e.height-Math.abs(t.y-e.y)+2;e.intersectsWith(t)&&(s=(i=(e.y>t.y?(e.y+=r/2,t.y-=r/2):(e.y-=r/2,t.y+=r/2),!0),!0)),e.y<0&&(e.y=0,i=!0),t.y<2&&(t.y=0,s=!0),e.y+e.height>o.clientRectangle.height&&(e.y=o.clientRectangle.height-e.height-2,i=!0),t.y+r/2+t.height>o.clientRectangle.height&&(t.y=o.clientRectangle.height-t.height-2,s=!0),i&&(a[l].clientRectangle=this.getDrawRectangle(e.clone(),-a[l].seriesLabels.angle)),s&&(a[n].clientRectangle=this.getDrawRectangle(t.clone(),-a[n].seriesLabels.angle))}}}getLabelRectangle(e,t){let i=Math.pow(Math.pow(t.width,2)+Math.pow(t.height,2),.5),s=Math.atan(t.height/t.width)/Math.PI*180;return e+=s,new RectangleD(t.x,t.y,i*Math.cos(e*Math.PI/180),i*Math.sin(e*Math.PI/180))}renderSeries(e,t,i,s){}getSeriesBrush(s,r){if(null==this.series.chart||null==this.series.chart.area)return null;if((this.series.chart.area.colorEach||this.is(__.d.StiBoxAndWhiskerSeriesCoreXF)||this.is(__.d.StiDoughnutSeriesCoreXF)||this.is(__.d.StiSunburstSeriesCoreXF)||this.is(__.d.StiPictorialSeriesCoreXF)||this.is(__.d.StiPictorialStackedSeriesCoreXF)||this.is(__.d.StiWaterfallSeriesCoreXF))&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){
9
+ let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=e.getColorByIndex(s,r,this.seriesColors),i=e.getColumnBrush(t);return this.series.chart.area.is(__.d.IStiClusteredBarArea)&&(i.is(StiGradientBrush)&&(i.angle+=90),i.is(StiGlareBrush))&&(i.angle+=90),i}return null}getSeriesBorderColor(i,s){if(null==this.series.chart||null==this.series.chart.area)return null;if(this.series.chart.area.colorEach&&this.series.allowApplyStyle||this.is(__.d.StiBoxAndWhiskerSeriesCoreXF)||this.is(__.d.StiDoughnutSeriesCoreXF)||this.is(__.d.StiSunburstSeriesCoreXF)||this.is(__.d.StiPictorialStackedSeriesCoreXF)||this.is(__.d.StiHeatmapSeriesCoreXF)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=e.getColorByIndex(i,s,this.seriesColors);return e.getColumnBorder(t)}return null}getSeriesLabels(){if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart)return this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisSeriesLabels);if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries)return this.series.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisSeriesLabels);return null}getTag(e){return null!=this.series.tags&&e<this.series.tags.length&&null!=this.series.tags[e]?this.series.tags[e].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator):""}getInteraction(e,t,i){if(null!=t.core.interaction&&t.core.interaction.drillDownEnabled)return new StiSeriesInteractionData(e,t,i);return null}get localizedName(){return null}get interaction(){return this.series.interaction}set interaction(e){this.series.interaction=e}constructor(e){this.isDateTimeValues=!1,this.isDateTimeArguments=!1,this.series=e}}kX.falseObject={},kX.trueObject={},__.d.StiSeriesCoreXF=kX}let PointF=Stimulsoft.System.Drawing.Point,StiOpacityAnimation=Stimulsoft.Base.Context.Animation.StiOpacityAnimation,StiLabelAnimation=(__.d.StiBoxAndWhiskerSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderThickness=e.core.seriesBorderThickness)}renderSeries(w,b,y,x){let e=y.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBoxAndWhiskerArea),A=e.xAxis.info.dpi,L=e.yAxis.info.dpi,T=e.xAxis.startFromZero?0:-1,D=e.axisCore.getDividerY(),v=1;for(let e of x){let _=e,f=[],C=_.brush;if(_.allowApplyBrush&&(C=_.core.getSeriesBrush(v-1,x.length),C=_.processSeriesBrushes(v-1,C)),0<_.values.length){let i=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min(),s=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max(),e=this.getMedian(_.values),t=this.getFirstQuartile(_.values),r=this.getThirdQuartile(_.values),n=(v+T)*A,l=Math.abs(D-s*L),o=Math.abs(D-i*L),a=Math.abs(D-e*L),h=Math.abs(D-t*L),u=Math.abs(D-r*L),S=new Rectangle(n-A/4,o,A/2,l-o),d=StiBrush.toColor(StiBrush.dark(C,30)),m=(f.push([i,new PointF(n,o)]),f.push([s,new PointF(n,l)]),f.push([e,new PointF(n,a)]),f.push([t,new PointF(n,h)]),f.push([r,new PointF(n,u)]),[]);if(_.showInnerPoints)for(let e of _.values){let t=e;if(t!=i&&t!=s&&!m.includes(t)){let e=Math.abs(D-t*L);m.push(e),f.push([t,new PointF(n,e)])}}let c=null;if(_.showMeanMarkers){let e=_.values[Stimulsoft.System.StiObject.stimulsoft]().toList().sum(),t=e/_.values.length;c=Math.abs(D-t*L),f.push([t,new PointF(n,c)])}let g=new __.d.StiBoxAndWhiskerSeriesElementGeom(y,_,n,o,l,h,u,a,m,c,S,C,d,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/x.length*v)),p=(y.createChildGeoms(),y.childGeoms.push(g),_.core.getSeriesLabels());if(null!=p&&p.visible)for(let i of f){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero),t=p.core.renderLabel(_,w,i[1],i[1],v,i[0],i[0],i[0].toString(),null,0,1,b,e);null!=t&&(y.createChildGeoms(),y.childGeoms.push(t))}}v++}}getFirstValues(e){let t=this.getMedianIndices(e),i=[],s=1==t.length?t[0]+1:t[1];return StiArray.copy2(e,0,i,0,s),i}getSecondValues(e){let t=this.getMedianIndices(e),i=[],s=1==t.length?t[0]+1:t[1];return StiArray.copy2(e,s-1,i,0,s),i}getThirdQuartile(e){e.sort((e,t)=>e-t);let t=this.getSecondValues(e);return this.getMedian(t)}getFirstQuartile(e){e.sort((e,t)=>e-t);let t=this.getFirstValues(e);return this.getMedian(t)}getMedian(t){t.sort((e,t)=>e-t);let i=this.getMedianIndices(t),s=0;for(let e of i)s+=t[e];return s/i.length}getMedianIndices(t){let i=t.length%2==0?[0,1]:[0];if(1==i.length){let e=Math.ceil(t.length/2)-1;i[0]=e}else{let e=t.length/2-1;i[0]=e,i[1]=e+1}return i}get localizedName(){return StiLocalization.get("Chart","BoxAndWhisker")}constructor(e){super(e)}},Stimulsoft.Base.Context.Animation.StiLabelAnimation),StiChart=(__.d.StiBaseLineSeriesCoreXF=class extends __.d.StiSeriesCoreXF{implements(){let e=super.implements().concat([__.d.IStiApplyStyleSeries]);return(this.implements=()=>e)()}applyStyle(t,i){super.applyStyle(t,i);let s=this.series;if(s.allowApplyStyle){if(s.lineColor=i,s.lighting=t.core.seriesLighting,null!=s.marker){let e=s.marker[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiMarker);null!=e&&e.extendedVisible!=__.d.StiExtendedStyleBool.FromStyle?s.marker.visible=e.extendedVisible==__.d.StiExtendedStyleBool.True:s.marker.visible=t.core.markerVisible,s.marker.brush=new StiSolidBrush(StiColorUtils.light(i,100)),s.marker.borderColor=StiColorUtils.dark(i,100)}null!=s.lineMarker&&(s.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(i,50)),s.lineMarker.borderColor=StiColorUtils.dark(i,150))}}clipLinePoints(e,i,s,t,r){let n=t.ref,l=r.ref;if(this.series.chart.area.xAxis.range.auto)return n=0,l=s.length,t.ref=n,r.ref=l,s;n=-1,l=-1;let o=i.view.clientRectangle.clone(),a=(o.x=0,o.y=0,0);for(let t of s){if(null!=t){let e=t;if(e.x+=i.clientRectangle.x,e.y+=i.clientRectangle.y,o.x<=e.x&&e.x<o.right&&-1==n&&(n=a),!(o.x<=e.x&&e.x<o.right)&&-1!=n){l=a;break}}a++}-1==l&&(l=s.length-1),n--,l++,n<0&&(n=0);let h=(l=l>=s.length?s.length-1:l)-n+1;if(h==s.length)return t.ref=n,r.ref=l,s;let u=StiArray.create(PointD,h,!0);return StiArray.copy(s,n,u,h),t.ref=n,r.ref=l,u}renderMarkers(n,l,e){let o=l.area,a=this.series;if(0==e.length)return;let h=!a.marker.visible&&0<a.toolTips.length;if(null!=a.marker){let r=0;for(let s of e){if(null!=s){let e=o.reverseHor?a.values[a.values.length-r-1]:a.values[r],t=(null==e&&a.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(this.series,r,e,s,a.marker,a.showShadow,n.options.zoom,h);if(null!=t){if(null!=a.core.interaction){let e=this.getInteraction(o,a,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}getInteractions(e,s,r){if(null!=this.series.core.interaction&&this.series.core.interaction.drillDownEnabled){let i=[];for(let t=0;t<r.length;t++){let e=this.getInteraction(s.area,this.series,t);e.point=r[t],i.push(e)}return i}return null}renderLines(e,t,i){}renderAreas(e,t,i){}renderSeries(m,d,c,g){let p,e=c.area;if(null==g||0==g.length||null==this.series.chart)return;let _=e,n=_.xAxis.core.getStartFromZero(),f=(d.width+=.001,0),i=[],C=[],w=[],b=[],y=[];for(let t=0;t<g.length;t++){let o=g[t],e=o.values.length,a=StiArray.create(PointD,e,!0),h=StiArray.create(PointD,e,!0),u=StiArray.create(String,e,!0),r=o.valuesStart;for(let s=0;s<e;s++){let e=n?s+1:s;if(e>=_.xAxis.info.stripPositions.length)break;let t=_.xAxis.info.stripPositions[e],i=(a[s]=this.getPointValue(s,o,o.values,_,t),h[s]=this.getPointValue(s,o,r,_,t),_.xAxis.info.stripLines.getByIndex(e).valueObject);u[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let S=this.getPointsZeroConnect(o,o.values,_),d=this.getPointsNullConnect(o,o.values,_);if(w.push(S),b.push(d),y.push(u),0<a.length){a=__.d.StiPointHelper.optimizePoints(a);let e,t,i={ref:e},s={ref:t},r=this.clipLinePoints(m,c,a,i,s),n=this.clipLinePoints(m,c,h,i,s),l=(e=i.ref,t=s,new __.d.StiSeriesPointsInfo);l.pointsFrom=n,l.points=r,l.pointsZeroConnect=S,l.pointsNullConnect=d,l.pointsIds=u,o.core.renderAreas(m,c,l),this.isTopmostLine(o)||o.core.renderLines(m,c,l)}i.push(a),C.push(h)}let x=0;for(let S of i){let e,t,i={ref:e},s={ref:t},r=this.clipLinePoints(m,c,S,i,s),n=this.clipLinePoints(m,c,C[x],i,s),l=(e=i.ref,t=s.ref,y[x]),o=this.clipLinePoints(m,c,w[x],i,s),a=this.clipLinePoints(m,c,b[x],i,s),h=g[x];if(this.isTopmostLine(g[x])){let e=new __.d.StiSeriesPointsInfo;e.pointsFrom=n,e.points=r,e.pointsZeroConnect=o,e.pointsNullConnect=a,e.pointsIds=l,h.core.renderLines(m,c,e)}h.as(__.d.StiSeries).trendLines.list.forEach(e=>{null!=e&&e.core.renderTrendLine(c,r,_.axisCore.getDividerY())});let u=h.core.getSeriesLabels();if(null!=u&&u.visible)for(let o=e;o<=t;o++)if(h.values.length>o){let r=_.reverseHor?h.values[h.values.length-o-1]:h.values[o],n=r=null==r&&h.showNulls?0:r,l=(_.reverseVert&&null!=r&&(n=-n),f=h.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),S[o]);if(null!=l){let t=0,i=(null!=h.valuesStart&&h.valuesStart.length>o&&(t=_.reverseHor?h.valuesStart[h.values.length-o-1]:h.valuesStart[o]),new PointD(l.x,f)),s=null;if(this.series.chart.isAnimationChangingValues&&u.valueType==__.d.StiSeriesLabelsValueType.Value)if(u.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(u.format)&&null!=(p=u.formatService)&&p.is(StiGeneralFormatService)){let e=C[x].length>o?C[x][o]:null;s=new StiLabelAnimation(t,r,e,l,__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero)}else s=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==u.step||o%u.step==0){let e=_.xAxis.startFromZero?o+1:o,t=u.core.renderLabel(h,m,this.correctPoint(l,d,h.labelsOffset*m.options.zoom),this.correctPoint(i,d,h.labelsOffset*m.options.zoom),o,n,r,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(e),h),h.core.getTag(o),0,1,d,s);null!=t&&(c.createChildGeoms(),c.childGeoms.push(t),t.clientRectangle=this.checkLabelsRect(u,c,t.clientRectangle))}}}x++}c.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(c)}getPointsZeroConnect(e,i,t){let s=[];if(__.d.StiShowEmptyCellsAsHelper.seriesIsEmtyCellsAs(e.as(__.d.StiSeries))&&e.is(IStiShowZerosSeriesAs)&&e.showZerosAs!=__.d.StiShowEmptyCellsAs.ConnectPointsWithLine)return s;let r=new List,n=new List;for(let t=0;t<i.length;t++){let e=i[t];0==e?(n.add(t),1==n.length&&r.add(n)):n=new List}return s=this.getPointConnect(e,i,t,r)}getPointsNullConnect(e,i,t){let s=[];if(__.d.StiShowEmptyCellsAsHelper.seriesIsEmtyCellsAs(e.as(__.d.StiSeries))&&e.is(IStiShowNullsSeriesAs)&&e.showNullsAs!=__.d.StiShowEmptyCellsAs.ConnectPointsWithLine)return s;let r=new List,n=new List;for(let t=0;t<i.length;t++){let e=i[t];null==e?(n.add(t),1==n.length&&r.add(n)):n=new List}return s=this.getPointConnect(e,i,t,r)}getPointConnect(o,a,h,e){let u=[];for(let l of e){let t=l[0]-1,i=l[l.length-1]+1,s=0,r=0;if(0<=t&&t<a.length){s=a[t];let e=this.getPointValue2(o,h,s,t);u.push(e)}let n=((r=0<=i&&i<a.length?a[i]:r)-s)/(l.length+1);for(let i=0;i<l.length;i++){let e=s+n*(i+1),t=this.getPointValue2(o,h,e,l[i]);u.push(t)}if(0<=i&&i<a.length){let e=this.getPointValue2(o,h,r,i);u.push(e)}u.push(null)}return u}getPointValue2(e,t,i,s){if((s=t.xAxis.core.getStartFromZero()?s+1:s)>=t.xAxis.info.stripPositions.length)return PointD.empty;let r=t.xAxis.info.stripPositions[s],n=0;return n=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-i*t.yAxis.info.dpi+t.axisCore.getDividerY():-i*t.yRightAxis.info.dpi+t.axisCore.getDividerRightY(),new PointD(r,n)}getPointValue(e,t,i,s,r){let n=0;return i.length>e&&(n=s.reverseHor?i[i.length-e-1]:i[e]),this.getPointValue1(n,t,s,r)}getPointValue1(e,t,i,s){let r=t.is(__.d.StiStackedAreaSeries)||t.is(__.d.StiStackedSplineAreaSeries)||t.is(__.d.StiSteppedAreaSeries);if(0==e&&!t.showZeros&&!r)return null;if(null==e&&!t.showNulls&&!r)return null;null==e&&t.showNulls&&(e=0),i.reverseVert&&null!=e&&(e=-e);let n=0;return n=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-e*i.yAxis.info.dpi+i.axisCore.getDividerY():-e*i.yRightAxis.info.dpi+i.axisCore.getDividerRightY(),new PointD(s,n)}isTopmostLine(e){if(e.is(__.d.IStiSplineAreaSeries))return e.topmostLine;if(e.is(__.d.IStiSteppedAreaSeries))return e.topmostLine;if(e.is(__.d.IStiAreaSeries))return e.topmostLine;return!0}correctPoint(e,t,i){if(e.y+i<0)return new PointD(e.x,0);if(e.y+i>t.height)return new PointD(e.x,t.height);return new PointD(e.x,e.y+i)}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s){if(this.series.is(__.d.StiBubbleSeries)){let e=this.series;return e.brush}return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20))}if(null==s)return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20));return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s){if(this.series.is(__.d.StiBubbleSeries)){let e=this.series;return e.borderColor}return i.lineColor}return s}constructor(e){super(e)}},__.d.StiScatterSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries);i.allowApplyStyle&&!e.core.markerVisible&&(i.marker.visible=!0)}renderLines(e,t,i){this.renderMarkers(e,t,i.points)}renderSeries(h,u,S,d){if(null==d||0==d.length||null==this.series.chart)return;let m=S.area,c=0,l=[],g=[];for(let i=0;i<d.length;i++){let s=d[i],e=Math.min(s.values.length,s.arguments.length),t=StiArray.create(PointD,e,!0),r=StiArray.create(String,e,!0),n=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let i=0;i<e;i++){let h=s.values[i];if(0==(h=null==h&&this.series.showNulls?0:h)&&!this.series.showZeros){t[i]=null,r[i]="_zero_";continue}if(null!=h){m.reverseVert&&null!=h&&!m.yAxis.logarithmicScale&&(h=-h);let l=0;if(m.yAxis.logarithmicScale){let e=m.yAxis.info.stripLines.count,t=0,i=e-1,s=m.yAxis.info.stripLines.getByIndex(t).value,r=m.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(u.height/(StiMath.log10(r)-StiMath.log10(s)));l=Math.abs(StiMath.log10(m.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(h)*n)}else l=s.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-h*m.yAxis.info.dpi+m.axisCore.getDividerY():-h*m.yRightAxis.info.dpi+m.axisCore.getDividerRightY();let o=null;if(s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n)instanceof DateTime){let e=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n);o=e.toOADate()[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}else try{if(null==s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n))o=null;else{let t=s.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n);if(null==t)o=null;else if("string"==typeof t){let e={ref:0};o=__.d.StiSeries.tryParseValue(t,s.chart.report.getParsedCulture(),e)?e.ref:null}else o=StiConvert.changeType(t,Number)}}catch(e){o=null}if(null==(o=null==o&&this.series.showNulls?0:o)||0==o&&!this.series.showZeros){t[i]=null,r[i]="_zero_";continue}let a=0;if(m.xAxis.logarithmicScale&&0<m.xAxis.info.stripLines.count){let e=m.xAxis.info.stripLines.count,t=m.reverseHor?e-1:0,i=m.reverseHor?0:e-1,s=m.xAxis.info.stripLines.getByIndex(t).value,r=m.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(u.width/(StiMath.log10(r)-StiMath.log10(s)));a=StiMath.log10(o)*n-StiMath.log10(m.xAxis.info.stripLines.getByIndex(t).value)*n}else a=(o-m.xAxis.info.minimum)*m.xAxis.info.dpi;m.reverseHor&&(a=u.width-a),Number.isFinite(a)&&Number.isFinite(l)?(t[i]=new PointD(a,l),r[i]=o[Stimulsoft.System.StiObject.stimulsoft]().toString()):(t[i]=null,r[i]="_zero_")}else t[i]=null,r[i]="_zero_"}s.showNullsAs==__.d.StiShowEmptyCellsAs.ConnectPointsWithLine&&(t=t.filter(e=>null!=e),r=r.filter(e=>null!=e)),l.push(t),g.push(r)}let i=0;for(let t of l){let l=d[i],o=l.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys(),e=new __.d.StiSeriesPointsInfo,a=(e.points=t,e.pointsIds=g[i],l.core.renderLines(h,S,e),l[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).trendLines.list.forEach(e=>{null!=e&&e.core.renderTrendLine(S,t,m.axisCore.getDividerY())}),l.core.getSeriesLabels());if(null!=a&&a.visible)for(let n=0;n<t.length;n++){let i=l.values[n],s=i,r=(m.reverseVert&&null!=i&&(s=-s),c=l.yAxis==__.d.StiSeriesYAxis.LeftYAxis?m.axisCore.getDividerY():m.axisCore.getDividerRightY(),t[n]);if(null!=r){let t=new PointD(r.x,c);if((u.contains(t.x,t.y)||t.y==u.bottom||u.contains(r.x,r.y))&&(0==a.step||n%a.step==0)){let e=a.core.renderLabel(l,h,this.correctPoint(r,u,l.labelsOffset*h.options.zoom),this.correctPoint(t,u,l.labelsOffset*h.options.zoom),n,s,i,l.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(n,o).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),l.core.getTag(n),0,1,u);null!=e&&(S.createChildGeoms(),S.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(a,S,e.clientRectangle.clone()))}}}i++}S.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(S)}get localizedName(){return StiLocalization.get("Chart","Scatter")}constructor(e){super(e)}},__.d.StiBubbleSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderColor=e.core.getColumnBorder(t),this.series.borderThickness=e.core.seriesBorderThickness)}renderLines(e,t,i){}renderBubbles(e,o,a,h,t){let i=0,u=0;for(let e of a.chart.series.list){let t=e;if(null==t)continue;for(let e of t.weights)i=0==u?e:Math.max(e,i),u++}let S=o.area,s=Math.min(S.xAxis.info.step,S.yAxis.info.step)*a.bubbleScale/100,d=s/i,m=__.d.StiChartHelper.globalBeginTimeElement;u=0;for(let l of t){let n=h[u];if(null!=n&&0<l){let e=l*d,t=new RectangleD(n.x-e/2,n.y-e/2,e,e),i=this.getSeriesBrush(u,h.length),s=a.core.getSeriesBorderColor(u,h.length),r=new __.d.StiBubbleSeriesElementGeom(o,l,u,i,s,a,t,new TimeSpan(m.ticks/S.core.valuesCount*u));if(null!=a.core.interaction){let e=this.getInteraction(S,a,u);r.interaction=e}o.createChildGeoms(),o.childGeoms.push(r)}u++}}renderSeries(h,u,S,d){if(null==d||0==d.length||null==this.series.chart)return;let m=S.area,c=0,g=[],p=[];for(let t=0;t<d.length;t++){let r=d[t],e=Math.min(r.values.length,r.arguments.length),n=[],l=[];for(let s=0;s<e;s++){let e=r.values[s],t=(null==e&&r.showNulls&&(e=0),m.reverseVert&&null!=e&&(e=-e),0),i=(t=r.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-e*m.yAxis.info.dpi+m.axisCore.getDividerY():-e*m.yRightAxis.info.dpi+m.axisCore.getDividerRightY(),null);if(r.arguments[s]instanceof DateTime){let e=r.arguments[s];i=e.toOADate()[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}else try{null!=r.arguments[s]&&r.arguments[s]!=DBNull.value&&(i=r.arguments[s][Stimulsoft.System.StiObject.stimulsoft]().toNumber())}catch(e){i=null}if(null==i&&r.showNulls&&(i=0),null!=e&&null!=i){let e=(i-m.xAxis.info.minimum)*m.xAxis.info.dpi;m.reverseHor&&(e=u.width-e),n.push(new PointD(e,t))}else n.push(null);l.push(s<r.weights.length?r.weights[s]:0)}g.push(n),p.push(l)}for(let s=0;s<g.length;s++){let e=p[s],l=g[s],o=d[s],t=(o.core.renderBubbles(h,S,o,l,e),o[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).trendLines),i=StiArray.create(PointD,l.length,!0);l[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i);for(let e of t.list)e.core.renderTrendLine(S,i,m.axisCore.getDividerY());let a=o.core.getSeriesLabels();if(null!=a&&a.visible)for(let n=0;n<l.length;n++){let i=o.values[n],s=i,r=(m.reverseVert&&null!=s&&(s=-s),c=o.yAxis==__.d.StiSeriesYAxis.LeftYAxis?m.axisCore.getDividerY():m.axisCore.getDividerRightY(),l[n]);if(null!=r){let t=new PointD(r.x,c);if((u.contains(t.x,t.y)||t.y==u.bottom||u.contains(r.x,r.y))&&(0==a.step||n%a.step==0)){let e=a.core.renderLabel2(o,h,this.correctPoint(r,u,o.labelsOffset*h.options.zoom),this.correctPoint(t,u,o.labelsOffset*h.options.zoom),n,s,i,o.arguments[n].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),o.core.getTag(n),o.weights[n],n,l.length,u);null!=e&&(S.createChildGeoms(),S.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(a,S,e.clientRectangle))}}}}}get localizedName(){return StiLocalization.get("Chart","Bubble")}constructor(e){super(e)}},__.d.StiClusteredColumnSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t),this.series.borderColor=e.core.getColumnBorder(t),this.series.borderThickness=e.core.seriesBorderThickness,this.series.cornerRadius=e.core.seriesCornerRadius)}renderSeries(m,c,g,t){let p,_=[],i=g.area;if(null==t||0==t.length||null==this.series.chart)return;let f=i,s=!0;if(i.is2(__.d.IStiClusteredColumnArea)){let e=i;s=e.sideBySide}let r=f.xAxis.core.getStartFromZero(),C=f.axisCore.getDividerY(),w=0,b=f.axisCore.valuesCount*t.length,y=[];for(let e=0;e<t.length;e++)y.push([]);let n=0;if(s)for(let e of t)n+=f.xAxis.info.step/t.length*e.width;for(let d=0;d<f.axisCore.valuesCount;d++){let u=this.measureLeftPosition(f,d,n,r),S=0;f.reverseHor&&(S=t.length-1);while(S<t.length&&!f.reverseHor||0<=S&&f.reverseHor){let o=t[S],a=s?f.xAxis.info.step/t.length*o.width:f.xAxis.info.step*o.width,e=2*m.options.zoom;if(a<e&&(a=e),!s){let e=r?d+1:d;u=f.xAxis.info.step*e-a/2}let h=o.valuesStart;if(d<o.values.length){let l=this.getSeriesCurrentValue(f,o,d),s=this.getColumnRect(m,o,l,u,a),t=this.getSeriesValueStart(f,o.valuesStart,d),e=this.getSeriesValueStart(f,h,d),r=this.getColumnRect(m,o,null!=e?e:0,u,a);for(let e of o.as(__.d.StiSeries).trendLines.list)if(!e.is(__.d.IStiTrendLineNone)){y[S].push(new PointD(u+a/2,s.y));break}let i=g.view.clientRectangle.clone(),n=(i.x=0,i.y=0,s.clone());if(n.x+=g.clientRectangle.x,n.y+=g.clientRectangle.y,n.right>i.x&&n.x<i.right||this.series.chart.area.xAxis.range.auto){let e=this.getSeriesBrush2(o,l,w,b,d),i=o.core.getSeriesBorderColor(w,b);if(null!=this.series.chart&&null!=this.series.chart.style&&0<s.height){let t=new __.d.StiClusteredColumnSeriesElementGeom(g,l,d,e,i,o,s,r);if(null!=o.core.interaction){let e=this.getInteraction(f,o,d);t.interaction=e}g.createChildGeoms(),g.childGeoms.push(t)}let n=o.core.getSeriesLabels();if(null!=n&&n.visible){let i=this.getPointEnd(o,l,u,a),s=0,r=(null!=l&&(s=f.reverseVert?-l:l),null);if(this.series.chart.isAnimationChangingValues)if(n.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(n.format)&&null!=(p=n.formatService)&&p.is(StiGeneralFormatService)){let e=this.getPointEnd(o,t,u,a);r=new StiLabelAnimation(t,l,new PointD(e.x,e.y),new PointD(i.x,i.y),__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero)}else r=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==n.step||d%n.step==0){let e=f.xAxis.startFromZero?d+1:d,t=n.core.renderLabel(o,m,this.correctPoint(i,c),this.correctPoint(new PointD(i.x,C),c),d,l,s,f.axisCore.getArgumentLabel(f.xAxis.info.stripLines.getByIndex(e),o),o.core.getTag(d),w,b,c,r);null!=t&&(_.push(t),t.clientRectangle=this.checkLabelsRect(n,g,t.clientRectangle))}}}}u+=a,w++,f.reverseHor?S--:S++}}for(let i=0;i<t.length;i++)t[i].trendLines.list.forEach(t=>{if(!t.is2(__.d.IStiTrendLineNone)){let e=y[i];null!=t&&t.core.renderTrendLine(g,e,f.axisCore.getDividerY())}});for(let e of _)g.createChildGeoms(),g.childGeoms.push(e);g.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(g)}getPointEnd(e,t,i,s){let r,n=e.chart.area,l=n.axisCore.getDividerY(),o=n.axisCore.getDividerRightY();return r=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?new PointD(i+s/2,-(t*n.yAxis.info.dpi)+l):new PointD(i+s/2,-(t*n.yRightAxis.info.dpi)+o)}getColumnRect(e,t,i,s,r){let n=t.chart.area,l=0,o=0,a=n.axisCore.getDividerY(),h=n.axisCore.getDividerRightY();return o=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?(n.reverseVert,-(l=i*n.yAxis.info.dpi)+a):-(l=i*n.yRightAxis.info.dpi)+h,!t.showZeros||0!=i&&null!=i||(l=Math.max(e.options.zoom,2),n.reverseVert)||(o-=l),i<0&&(o=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?a:h,l=-l),new RectangleD(s,o,r,l)}correctPoint(e,t){if(e.y<0)return new PointD(e.x,0);if(e.y>t.height)return new PointD(e.x,t.height);return e}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}measureLeftPosition(e,t,i,s){let r=s?e.xAxis.info.stripPositions[t+1]:e.xAxis.info.stripPositions[t],n=(r-=e.xAxis.info.step/2)+(e.xAxis.info.step-i)/2;return n}getSeriesCurrentValue(e,t,i){let s=e.reverseHor?t.values[t.values.length-i-1]:t.values[i];return s=e.reverseVert&&null!=s?-s:s}getSeriesValueStart(e,t,i){let s=null;return s=this.series.chart.isAnimationChangingValues&&(null!=t&&t.length>i&&(s=e.reverseHor?t[t.length-i-1]:t[i]),e.reverseVert)&&null!=s?-s:s}getSeriesBrush2(e,t,i,s,r){let n=e.core.getSeriesBrush(i,s);return e.allowApplyBrushNegative&&t<0&&(n=e.brushNegative),n=e.processSeriesBrushes(r,n)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}constructor(e){super(e)}},__.d.StiClusteredBarSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{implements(){let e=super.implements().concat([__.d.IStiApplyStyleSeries]);return(this.implements=()=>e)()}applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.brush.is(StiGradientBrush)&&(i.brush.angle+=90),i.brush.is(StiGlareBrush)&&(i.brush.angle+=90),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(p,_,n,s){let l,f,C=[],e=n.area;if(null==s||0==s.length||null==this.series.chart)return;let w=e,o=!0,t=e,b=(t&&(o=t.sideBySide),w.yAxis.core.getStartFromZero()),y=w.axisCore.getDividerX(),x=w.axisCore.getDividerTopX(),A=w.axisCore.valuesCount*s.length,L=w.reverseVert?A-1:0,T=w.axisCore.valuesCount,D=[];for(let e=0;e<s.length;e++)D.push([]);let r=s[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let g=0;g<T;g++){let e=b?w.yAxis.info.stripPositions[g+1]-w.yAxis.info.step/2:w.yAxis.info.stripPositions[g]-w.yAxis.info.step/2,t=0;if(o)for(let e of s)t+=w.yAxis.info.step/s.length*e.width;let m=e+(w.yAxis.info.step-t)/2,i=0,c=(w.reverseVert&&(i=s.length-1),__.d.StiChartHelper.globalBeginTimeElement);while(i<s.length&&!w.reverseVert||0<=i&&w.reverseVert){let S=s[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,r),d=o?w.yAxis.info.step/s.length*S.width:w.yAxis.info.step*S.width;if(g<S.values.length){let a=-(w.reverseVert?S.values[g]:S.values[S.values.length-g-1]);if(!o){let e=b?g+1:g;m=w.yAxis.info.step*e-d/2}let t=a*w.xAxis.info.dpi,s=this.getBarRect(p,S,a,m,d),r=Rectangle.empty,h=null;this.series.chart.isAnimationChangingValues&&((null==(l=S.valuesStart)?void 0:l.length)>g&&(h=-(w.reverseVert?S.valuesStart[g]:S.valuesStart[S.valuesStart.length-g-1])),r=w.reverseHor?a<0?Rectangle.fromLTRB(s.right,s.top,s.right,s.bottom):Rectangle.fromLTRB(s.left,s.top,s.left,s.bottom):0<=a?Rectangle.fromLTRB(s.right,s.top,s.right,s.bottom):Rectangle.fromLTRB(s.left,s.top,s.left,s.bottom));for(let e of S.as(__.d.StiSeries).trendLines.list)if(!e.is(__.d.IStiTrendLineNone)){D[i].push(new PointD(t,m+d/2));break}let u=n.view.clientRectangle.clone(),e=(u.x=0,u.y=0,s.clone());if(e.x+=n.clientRectangle.x,e.y+=n.clientRectangle.y,e.bottom>u.y&&e.y<u.bottom||this.series.chart.area.yAxis.range.auto){if(null!=this.series.chart&&null!=this.series.chart.style&&0<s.width){let e=S.core.getSeriesBrush(L,A),t=(S.allowApplyBrushNegative&&0<a&&(e=S.brushNegative),e=S.processSeriesBrushes(T-1-g,e),S.core.getSeriesBorderColor(L,A)),i=new __.d.StiClusteredBarSeriesElementGeom(n,h,w.reverseHor?-a:a,g,e,t,S,r,s);if(null!=S.core.interaction){let e=this.getInteraction(w,S,T-1-g);i.interaction=e}n.createChildGeoms(),n.childGeoms.push(i)}let o=S.core.getSeriesLabels();if(null!=o&&o.visible){let i=a,s=(null!=a&&(i=w.reverseHor?a:-a),S.yAxis==__.d.StiSeriesYAxis.RightYAxis?x:y),r=(S.yAxis==__.d.StiSeriesYAxis.RightYAxis?w.xTopAxis:w.xAxis).info.dpi,n=new PointD(i*r+s,m+d/2),l=null;if(this.series.chart.isAnimationChangingValues)if(o.valueType==__.d.StiSeriesLabelsValueType.Value&&StiString.isNullOrEmpty(o.format)&&null!=(f=o.formatService)&&f.is(StiGeneralFormatService)){let e=new PointD(-(h*r)+s,m+d/2),t=null,i=null;null!=h&&(t=w.reverseHor?h:-h),null!=a&&(i=w.reverseHor?a:-a),l=new StiLabelAnimation(t,i,new PointD(e.x,e.y),new PointD(n.x,n.y),c,TimeSpan.zero)}else l=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,TimeSpan.zero);if(0==o.step||g%o.step==0){let e=w.yAxis.startFromZero?g+1:g,t=o.core.renderLabel(S,p,this.correctPoint(n,_),this.correctPoint(new PointD(y,n.y),_),g,a,w.reverseHor?-i:i,w.axisCore.getArgumentLabel(w.yAxis.info.stripLines.getByIndex(e),S),S.core.getTag(T-1-g),L,A,_,l);null!=t&&(C.push(t),t.clientRectangle=this.checkLabelsRect2(o,u,t.clientRectangle))}}}}m+=d,L=w.reverseVert?L-1:L+1,w.reverseVert?i--:i++}}for(let i=0;i<s.length;i++)s[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,r).trendLines.list.forEach(t=>{if(!t.is2(__.d.IStiTrendLineNone)){let e=D[i];null!=t&&t.core.renderTrendLine(n,e,w.axisCore.getDividerY())}});for(let e of C)n.createChildGeoms(),n.childGeoms.push(e)}getBarRect(e,t,i,s,r){let n=t.chart.area,l=n.axisCore.getDividerX(),o=n.axisCore.getDividerTopX(),a=t.yAxis==__.d.StiSeriesYAxis.RightYAxis?o:l,h=(t.yAxis==__.d.StiSeriesYAxis.RightYAxis?n.xTopAxis:n.xAxis).info.dpi,u=i*h,S=-u+a;return!this.series.showZeros||0!=i&&null!=i||(u=Math.max(e.options.zoom,2)),i<0&&(S=a,u=-u),new Rectangle(S,s,u,r)}correctPoint(e,t){if(e.x<0)return new PointD(0,e.y);if(e.x>t.width)return new PointD(t.width,e.y);return e}get localizedName(){return StiLocalization.get("Chart","ClusteredBar")}constructor(e){super(e)}},__.d.StiLineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(t,i,s){if(null!=s.points&&1<s.points.length){let e=new __.d.StiLineSeriesGeom(i,s,this.series);i.createChildGeoms(),i.childGeoms.push(e),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers(t,i,s.points)}get localizedName(){return StiLocalization.get("Chart","Line")}constructor(e){super(e)}},__.d.StiAreaSeriesCoreXF=class extends __.d.StiLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","Area")}constructor(e){super(e)}},__.d.StiHistogramSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","Histogram")}constructor(e){super(e)}},__.d.StiParetoSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;this.series.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.lighting=e.core.seriesLighting,i.marker.visible=e.core.markerVisible,i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius,null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100)),null!=i.lineMarker)&&(i.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(t,50)),i.lineMarker.borderColor=StiColorUtils.dark(t,150)),i.allowApplyLineColor||(i.lineColor=StiColorUtils.light(t,50))}renderSeries(e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;super.renderSeries(e,t,i,s),this.renderLinePareto(e,t,i,s)}renderLinePareto(e,t,i,s){let r=i.area,d=r,m=d.xAxis.core.getStartFromZero(),n=(t.width+=.001,[]),l=[],c=[];for(let t=0;t<s.length;t++){let o=s[t],a=this.getParetoValues(o.values),e=o.values.length,h=StiArray.create(PointD,e,!0),u=StiArray.create(PointD,e,!0),S=StiArray.create(String,e,!0);for(let l=0;l<e;l++){let e=m?l+1:l;if(e>=d.xAxis.info.stripPositions.length)break;let t=d.xAxis.info.stripPositions[e],i=d.reverseHor?a[a.length-l-1]:a[l],s=(h[l]=this.getPointValue(i,o,d,t),this.getParetoValues(o.valuesStart)),r=0,n=(s.length>l&&(r=d.reverseHor?s[s.length-l-1]:s[l]),u[l]=this.getPointValue(r,o,d,t),d.xAxis.info.stripLines.getByIndex(e).valueObject);S[l]=null==n?"":n[Stimulsoft.System.StiObject.stimulsoft]().toString()}if(0<h.length){h=__.d.StiPointHelper.optimizePoints(h);let e=new __.d.StiSeriesPointsInfo;e.pointsFrom=u,e.points=h,e.pointsIds=S,this.renderLines(i,e,o)}n.push(h),this.series.chart.isAnimationChangingValues&&(l.push(u),c.push(S))}}renderLines(t,i,s){if(null!=i.points&&1<i.points.length){let e=new __.d.StiLineSeriesGeom(t,i,s);t.createChildGeoms(),t.childGeoms.push(e)}}getParetoValues(t){let i=new List,s=new List,r=0;for(let e of t)r+=e,i.push(r);for(let t of i){let e=t/r*100;s.push(e)}return s}getPointValue(e,t,i,s){let r=-(e=i.reverseVert&&null!=e?-e:e)*i.yRightAxis.info.dpi+i.axisCore.getDividerRightY();return new PointD(s,r)}get localizedName(){return StiLocalization.get("Chart","ClusteredColumn")}constructor(e){super(e)}},__.d.StiSplineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiSplineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),null!=this.interaction&&(s.interactions=this.getInteractions(e,t,i.points)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","Spline")}constructor(e){super(e)}},__.d.StiSplineAreaSeriesCoreXF=class extends __.d.StiSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiSplineAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","SplineArea")}constructor(e){super(e)}},__.d.StiSteppedLineSeriesCoreXF=class extends __.d.StiBaseLineSeriesCoreXF{renderLines(t,i,s){let e=this.series;if(1<s.points.length||e.pointAtCenter&&0<s.points.length){let e=new __.d.StiSteppedLineSeriesGeom(i,s,this.series);null!=e&&(i.createChildGeoms(),i.childGeoms.push(e)),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers(t,i,s.points)}get localizedName(){return StiLocalization.get("Chart","SteppedLine")}constructor(e){super(e)}},__.d.StiSteppedAreaSeriesCoreXF=class extends __.d.StiSteppedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){let s=this.series;if(null==i.points||0==i.points.length||1==i.points.length&&!s.pointAtCenter)return;let r=new __.d.StiSteppedAreaSeriesGeom(t,i,this.series);null!=r&&(t.createChildGeoms(),t.childGeoms.push(r))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","SteppedArea")}constructor(e){super(e)}},__.e.StiChart),StiPieSegmentGeom=(__.d.StiWaterfallSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{renderSeries(e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;this.renderColumns(e,t,i,s)}getSumSeriesWidth(t,i){let s=0;for(let e of i)s+=t.xAxis.info.step/i.length*e.width;return s}getDividerYSeries(e,t){let i=e.axisCore.getDividerY(),s=[];for(let e=0;e<t.length;e++)s[e]=i;return s}renderColumns(c,g,p,t){let _=p.area,f=new List,C=_,w=this.getDividerYSeries(C,t),b=0,y=C.axisCore.valuesCount*t.length,i=this.getSumSeriesWidth(C,t);for(let m=0;m<C.axisCore.valuesCount;m++){let e=C.xAxis.core.getStartFromZero()?C.xAxis.info.stripPositions[m+1]:C.xAxis.info.stripPositions[m],S=(e-=C.xAxis.info.step/2)+(C.xAxis.info.step-i)/2,d=C.reverseHor?t.length-1:0;while(d<t.length&&!C.reverseHor||0<=d&&C.reverseHor){let h=t[d],u=C.xAxis.info.step/t.length*h.width;if(m<h.values.length){let o=C.reverseHor?h.values[h.values.length-m-1]:h.values[m],a=(null==o&&(u=0),C.reverseVert&&null!=o&&(o=-o),m==h.values.length-1),e=a&&h.total.visible?C.axisCore.getDividerY():w[d],t={ref:e},i={ref:w[d]},r=a&&h.total.visible?this.getColumnRect(c,h,o,S,u,t):this.getColumnRect(c,h,o,S,u,i);e=t.ref,w[d]=i.ref;let s,n=(s=o<0?Rectangle.fromLTRB(r.left,r.top,r.right,r.top):Rectangle.fromLTRB(r.left,r.bottom,r.right,r.bottom),p.as(__.d.StiAxisAreaGeom).view.clientRectangle.clone()),l=(n.x=0,n.y=0,r);if(l.x+=p.clientRectangle.x,l.y+=p.clientRectangle.y,n.x<l.right&&l.x<n.right||this.series.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea).xAxis.range.auto){let t,i;if(i=_.colorEach?(t=h.core.getSeriesBrush(b,y),h.allowApplyBrushNegative&&o<0&&(t=h.brushNegative),t=h.processSeriesBrushes(m,t),h.core.getSeriesBorderColor(b,y)):(t=!h.connectorLine.visible||a&&h.total.visible?h.core.getSeriesBrush(2,3):h.core.getSeriesBrush(0,3),o<0&&(t=h.allowApplyBrushNegative?h.brushNegative:h.core.getSeriesBrush(1,3)),t=h.processSeriesBrushes(m,t),t=StiBrush.light(t,10*d),h.core.getSeriesBorderColor(0,3)),null!=this.series.chart&&null!=this.series.chart.style&&0<r.height){let e=null;if(0<r.height&&(e=new __.d.StiClusteredColumnSeriesElementGeom(p,o,m,t,i,h,r,s)),h.connectorLine.visible&&!a){let e=new StiPenGeom(h.connectorLine.lineColor,h.connectorLine.lineWidth),t=(e.penStyle=h.connectorLine.lineStyle,0<o?r.top:r.bottom),i=r.right+C.xAxis.info.step-u,s=new __.d.StiWaterfallLineGeom(new PointF(r.right,t),new PointF(i,t),e,new Rectangle(r.right,t,i-r.right,t),h.chart[Stimulsoft.System.StiObject.stimulsoft]().as(StiChart).isAnimation);p.createChildGeoms(),p.childGeoms.push(s)}null!=e&&(p.createChildGeoms(),p.childGeoms.push(e))}let l=h.core.getSeriesLabels();if(null!=l&&l.visible&&null!=o){let i=a&&h.total.visible?C.axisCore.getDividerY():e,s=this.getPointEnd(h,o,S,u,i),r=C.reverseVert?-o:o,n=null;if(0==l.step||m%l.step==0){let e=C.xAxis.startFromZero?m+1:m,t=l.core[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAxisSeriesLabelsCoreXF).renderLabel(h,c,this.correctPoint(s,g),this.correctPoint(new PointF(s.x,i),g),m,o,r,C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(e),h),h.core.getTag(m),b,y,g,n);null!=t&&(f.push(t),t.clientRectangle=this.checkLabelsRect(l,p,t.clientRectangle))}}}}S+=u,b++,C.reverseHor?d--:d++}}for(let e of f)p.createChildGeoms(),p.childGeoms.push(e);p.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(p)}getPointEnd(e,t,i,s,r=null){let n,l=e.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea),o=l.axisCore.getDividerRightY();return n=e.yAxis==__.d.StiSeriesYAxis.LeftYAxis?new PointF(i+s/2,-(t*l.yAxis.info.dpi)+r):new PointF(i+s/2,-(t*l.yRightAxis.info.dpi)+o)}getColumnRect(e,t,i,s,r,n=null){let l=t.chart.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiAxisArea),o=0,a=0,h=l.axisCore.getDividerRightY();return a=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?(l.reverseVert,-(o=i*l.yAxis.info.dpi)+n.ref):-(o=i*l.yRightAxis.info.dpi)+h,!t.showZeros||0!=i&&null!=i||(o=Math.max(e.options.zoom,2),l.reverseVert)||(a-=o),i<0&&(a=t.yAxis==__.d.StiSeriesYAxis.LeftYAxis?n.ref:h,o=-o),n.ref=0<i?a:a+o,new Rectangle(s,a,r,o)}get localizedName(){return StiLocalization.get("Chart","Waterfall")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiPieSegmentGeom),StiCloseFigureSegmentGeom=(__.d.StiPieSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lighting=e.core.seriesLighting,i.borderThickness=e.core.seriesBorderThickness,i.allowApplyBrush&&(i.brush=e.core.getColumnBrush(t)),i.allowApplyBorderColor)&&(i.borderColor=e.core.getColumnBorder(t))}correctBrush(e){return e.is(StiGradientBrush)&&((e=e.clone()).angle=-45),e.is(StiGlareBrush)&&((e=e.clone()).angle=-45),e}renderPieElement(e,t,i,s,r,n,l,o,a,h,u,S,d){let m,c,g=RectangleD.empty,p=(r=this.correctBrush(r),{ref:m}),_={ref:c},f={ref:g},C=this.measurePieElementCore(e,t,i,n,l,h,u,p,_,f);if(C.isEmpty)return null;return new __.d.StiPieSeriesElementGeom(S,o,a,h,g=f.ref,m=p.ref,c=_.ref,s,r,n,n+l,i)}renderPieElementShadow(t,e,i,s,r,n,l,o){if(this.series.chart.isAnimation)return;let a,h,u=RectangleD.empty,S=(s=this.correctBrush(s),{ref:a}),d={ref:h},m={ref:u},c=this.measurePieElementCore(t,e,i,r,n,l,o,S,d,m);if(a=S.ref,h=d.ref,u=m.ref,c.isEmpty)return;if(t.pushSmoothingModeToAntiAlias(),t.fillPath(s,a,u,null),null!=h){let e=new StiGradientBrush(Color.fromArgb3(100,Color.white),Color.fromArgb3(50,Color.black),45);t.fillPath(e,h,u,null)}t.popSmoothingMode()}measurePieElement(e,t,i,s,r,n,l){let o,a,h=RectangleD.empty,u={ref:o},S={ref:a},d={ref:h},m=this.measurePieElementCore(e,t,i,s,r,n,l,u,S,d);return o=u.ref,a=S.ref,h=d.ref,m}measurePieElementCore(e,t,i,s,r,n,l,o,a,h){let u=[],S=null,d=RectangleD.empty;if(0==r||isNaN(r))return RectangleD.empty;if(0<l&&(t=this.getPoint(t,l*e.options.zoom,s+r/2)),(d=new RectangleD(t.x-i,t.y-i,2*i,2*i)).width<=0&&d.height<=0)return RectangleD.empty;if(u.push(new StiPieSegmentGeom(new RectangleD(d.x,d.y,d.width,d.height),s,r,null,null,null)),n.lighting&&!Color.transparent.equals(n.borderColor)){let e=0;e=.02*i,(S=[]).push(new StiArcSegmentGeom(d,s,r)),S.push(new StiLineSegmentGeom(this.getPoint(t,i-e,s+r),this.getPoint(t,i-e,s+r))),S.push(new StiArcSegmentGeom(new RectangleD(d.x+e,d.y+e,d.width-2*e,d.height-2*e),s+r,-r)),S.push(new StiLineSegmentGeom(this.getPoint(t,i-e,s),this.getPoint(t,i-e,s)))}return o.ref=u,a.ref=S,h.ref=d,e.getPathBounds(u)}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return i.ref=o,t.ref=n,s.ref=h,a}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(u,h,S,t){let d=this.getRadius(u,h),m=this.getPointCenter(h);if(null==t||0==t.length||null==this.series.chart)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiPieEmptySeriesElementGeom(new Rectangle(m.x-d,m.y-d,2*d,2*d)));let c=__.d.StiChartHelper.globalDurationElement,g=__.d.StiChartHelper.globalBeginTimeElement,p=this.series.chart,_=this.getColorCount(t),e={ref:0},i=(this.checkNonZerovalue(t,e,{ref:-1},{ref:null}),e.ref),f=this.getGradPerValue(t),C=this.getPercentPerValue(t),w=t[0],s=w.core.getPieSeriesLabels(),b=w.startAngle,y=new RectangleD(0,0,h.width,h.height);for(let e of t)if(1<i){let s=e,r=0;for(let i of e.values){let e=f*Math.abs(i),t=this.measurePieElement(u,m,d,b,e,s,this.getPieDistance(r));0!=i&&(y=RectangleD.union(y,t)),b+=e,r++}}let r=Math.max(-y.left,y.right-h.width),n=Math.max(-y.top,y.bottom-h.height),l=Math.max(r,n),x=(d-=1.2*l,StiArray.create(RectangleD,_)),A=StiArray.create(Number,_),L=StiArray.create(Number,4),o=(StiArray.clear(L,0,L.length),b=w.startAngle,(y=new RectangleD(10*u.options.zoom,10*u.options.zoom,h.width-20*u.options.zoom,h.height-20*u.options.zoom)).clone()),T=0;for(let h of t){let o=h,a=0;for(let l of h.values){let r=f*Math.abs(l),n=o.core.getPieSeriesLabels();if(null!=n&&n.visible){let e=d,t=(0<this.getPieDistance(a)&&(e+=o.distance*u.options.zoom),b+r/2),i={ref:null},s=(n.core.renderLabel(o,u,m,e,0,t,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!0,a,_,C,i,!1,0),i.ref);s.isEmpty||(y=RectangleD.union(y,s)),(0!=l||n.showZeros)&&(x[T]=s,A[T]=s.y,0<=t&&t<=90&&L[0]++,90<t&&t<=180&&L[1]++,180<t&&t<=270&&L[2]++,270<t)&&t<=360&&L[3]++}b+=r,a++,0==l&&!this.series.chart.seriesLabels.showZeros||T++}}if(0==w.diameter){let e=0;e=Math.min(e,y.left-o.left),e=Math.min(e,o.right-y.right),e=Math.min(e,y.top-o.top),e=Math.min(e,o.bottom-y.bottom),d+=e}T=0;for(let h of t){let o=h,a=0;for(let l of h.values){let r=f*l,n=o.core.getPieSeriesLabels();if(null!=n&&n.visible){let e=d,t=(0<this.getPieDistance(a)&&(e+=o.distance*u.options.zoom),b+r/2),i={ref:null},s=(n.core.renderLabel(this.series,u,m,e,0,t,a,l,l,this.getArgumentText(h,a),o.core.getTag(a),!0,a,_,C,i,!1,0),i.ref);0==l&&!n.showZeros||(x[T]=s,A[T]=s.y)}b+=r,a++,0==l&&!this.series.chart.seriesLabels.showZeros||T++}}if(null!=this.series.chart&&null!=this.series.chart.seriesLabels){let e=this.series.chart.seriesLabels.as(__.d.IStiTwoColumnsPieLabels);if(null!=e&&e.preventIntersection){let t=0;if(0<L[0]){let e=StiArray.create(RectangleD,L[0],!0);if(StiArray.copy(x,0,e,L[0]),this.isIntersectionLabels(e)){t=y.height/2/L[0],x[0].y=y.y+y.height/2+t/2-x[0].height/2;for(let e=1;e<L[0];e++)x[e].y=x[e-1].y+t}}let i=L[0];if(0<L[1]){let e=StiArray.create(RectangleD,L[1],!0);if(StiArray.copy(x,0,e,L[1]),this.isIntersectionLabels(e)){t=y.height/2/L[1],x[i].y=y.y+y.height-t/2-x[i].height/2;for(let e=i+1;e<i+L[1];e++)x[e].y=x[e-1].y-t}}if(i+=L[1],0<L[2]){let e=StiArray.create(RectangleD,L[2],!0);if(StiArray.copy(x,0,e,L[2]),this.isIntersectionLabels(e)){t=y.height/2/L[2],x[i].y=y.y+y.height/2-t/2-x[i].height/2;for(let e=i+1;e<i+L[2];e++)x[e].y=x[e-1].y-t}}if(i+=L[2],0<L[3]){let e=StiArray.create(RectangleD,L[3],!0);if(StiArray.copy(x,0,e,L[3]),this.isIntersectionLabels(e)){t=y.height/2/L[3],x[i].y=y.y+t/2-x[i].height/2;for(let e=i+1;e<i+L[3];e++)x[e].y=x[e-1].y+t}}for(let e=0;e<T;e++){if(null==x[e])continue;A[e]=x[e].y-A[e]}}}if(d<=5)return;if(w.showShadow){b=w.startAngle;for(let e of t){if(1==i){let e=new RectangleD(m.x-d,m.y-d,2*d,2*d),t=new RectangleD(0,0,2*d,2*d),i=u.createShadowGraphics(),s=(null!=i&&i.fillEllipse2(Color.fromArgb3(100,Color.black),t,null),new __.d.StiPieSeriesShadowElementGeom(w,e,.01*d+2*u.options.zoom,i,c,g));S.createChildGeoms(),S.childGeoms.push(s);break}{let o=e,a=0;for(let l of e.values){let e=f*Math.abs(l),t=m,i=new StiSolidBrush(Color.fromArgb3(100,Color.black)),s=u.createShadowGraphics(),r=h.clone(),n=(r.x=0,r.y=0,p.isAnimation&&(r.x=m.x-d,r.y=m.y-d,r.height=2*d,r.width=2*d),this.renderPieElementShadow(s,t,d,i,b,e,o,this.getPieDistance(a)),new __.d.StiPieSeriesShadowElementGeom(w,r,.01*d+2*u.options.zoom,s,c,g));S.createChildGeoms(),S.childGeoms.push(n),b+=e,a++}}}}let a=this.getPieElementGeoms(u,S,d,h,t);if(a.length<1)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiPieEmptySeriesElementGeom(new RectangleD(m.x-d,m.y-d,2*d,2*d)));for(let t=0;t<a.length;t++){let e=a[t];e.is(__.d.StiPieSeriesFullElementGeom)?(null!=e.series.core.interaction&&(e.interaction=this.getInteraction(S.area,e.series,e.index)),S.createChildGeoms(),S.childGeoms.push(e)):e.is(__.d.StiPieSeriesElementGeom)&&(e.count=a.length,null!=e.series.core.interaction&&(e.interaction=this.getInteraction(S.area,e.series,e.index)),S.createChildGeoms(),S.childGeoms.push(e))}b=w.startAngle;let D=this.getPieLabelGeoms(u,d,h,t,A);if(this.series.chart.isAnimationChangingValues&&null!=s&&s.valueType==__.d.StiSeriesLabelsValueType.Value){let e=d/1.75,t=new RectangleD;t.x=m.x-e,t.y=m.y-e,t.width=2*e,t.height=2*e;for(let t=0;t<a.length;t++){let e=D.length>t?D[t]:null;null!=e&&(S.createChildGeoms(),S.childGeoms.push(e))}}else for(let e of D)this.series.chart.isAnimationChangingValues&&e.is(__.d.StiCenterPieLabelsGeom)&&(e.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement)),S.createChildGeoms(),S.childGeoms.push(e);let v=this.getPieSeriesLabels();null!=v&&v.preventIntersection&&(v.is(__.d.IStiTwoColumnsPieLabels)?this.checkIntersectionTwoColumnsLabels(S,o):v.is(__.d.IStiOutsidePieLabels)?this.checkIntersectionOutLabels(S):this.checkIntersectionLabels(S))}getColorCount(t,i=!1){let s=0;for(let e of t)i&&null!=e.valuesStart&&(s+=e.valuesStart.length),i||null==e.values||(s+=e.values.length);return s}isIntersectionLabels(i){for(let t=0;t<i.length;t++)for(let e=0;e<i.length;e++){if(t==e)continue;if(i[t].intersectsWith(i[e]))return!0}return!1}getPieLabelGeoms(u,S,e,t,d,i=!1){let m=[],c=0,g=0,s=t[0],r=this.getGradPerValue(t,i),p=this.getPercentPerValue(t,i),_=this.getPointCenter(e),f=s.startAngle,C=this.getColorCount(t,i);for(let h of t){let o=h,a=0,e=i?h.valuesStart:h.values;for(let l of e){let t=r*Math.abs(l),i=o.core.getPieSeriesLabels();if(null!=i&&i.visible){let n=i,e=i;if(null!=n){let i=S,s=(0<this.getPieDistance2(o,a)&&(i+=o.distance*u.options.zoom),f+t/2),r=0;if(null!=e&&e.preventIntersection&&(r+=d[g]),0==n.step||a%n.step==0){let e={ref:null},t=n.core.renderLabel(o,u,_,i,0,s,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!1,c,C,p,e,!1,r);null!=t&&m.push(t),n.is(__.d.IStiOutsidePieLabels)&&n.showValue&&null!=(t=n.core.renderLabel(o,u,_,i,0,s,a,Math.abs(l),l,this.getArgumentText(h,a),o.core.getTag(a),!1,c,C,p,e,!0,0))&&m.push(t)}}}c++,f+=t,a++,(0!=l||null!=i&&i.showZeros)&&g++}}return m}getPieSeriesLabels(){var e,t;if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart)return null==(e=this.series.chart.seriesLabels)?void 0:e.as(__.d.IStiPieSeriesLabels);if(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries)return null==(t=this.series.seriesLabels)?void 0:t.as(__.d.IStiPieSeriesLabels);return null}getPieElementGeoms(h,u,S,e,t,i=!1){let d=[],s=t[0],m=this.getGradPerValue(t,i),c=this.getPointCenter(e),g=s.startAngle,p=this.getColorCount(t,i),r={ref:0},n={ref:-1},l={ref:null},o=(this.checkNonZerovalue(t,r,n,l,i),r.ref),_=0;for(let a of t){if(0==o)break;{let e=i?a.valuesStart:a.values;for(let o=0;o<e.length;o++){let l=e[o];if(0!=l){let e=m*Math.abs(l),t=a.brush,i=(a.allowApplyBrush&&(t=a.core.getSeriesBrush(_,p),t=a.processSeriesBrushes(o,t)),a.borderColor),s=(a.allowApplyBorderColor&&(i=a.core.getSeriesBorderColor(_,p)),0==a.values.length?0:__.d.StiChartHelper.globalBeginTimeElement.ticks/a.values.length*o),r=new TimeSpan(s),n=this.renderPieElement(h,c,S,i,t,g,e,Math.abs(l),o,a,this.getPieDistance2(a,o),u,r);null!=n&&d.push(n),g+=e}_++}}}return d}checkIntersectionOutLabels(n){let t=n.childGeoms,l=[];if(null!=t)for(let e of t)e.is(__.d.StiOutsidePieLabelsGeom)&&l.push(e);let e=l.length,i=!0,s=0;while(i&&s<29){s++;for(let r=0;r<e;r++)for(let s=0;s<e;s++){if(s==r)continue;if(l[r].labelRect.intersectsWith(l[s].labelRect)){let t=l[r].labelRect,i=l[s].labelRect;if(t.intersectsWith(i)){let e=t.height-Math.abs(l[s].labelRect.y-l[r].labelRect.y)+2;t.y>i.y?(t.y+=e/2,i.y-=e/2):(t.y-=e/2,i.y+=e/2),t.y<0&&(t.y=0),i.y<0&&(i.y=0),t.y+t.height>n.clientRectangle.height&&(t.y=n.clientRectangle.height-t.height),i.y+e/2+i.height>n.clientRectangle.height&&(i.y=n.clientRectangle.height-i.height),l[r].labelRect=t,l[s].labelRect=i}}}}}checkIntersectionTwoColumnsLabels(e,t){let i=e.childGeoms;if(null==i)return;let s=this.getPointCenter(t),r=[],n=[];for(let e of i)e.is(__.d.StiTwoColumnsPieLabelsGeom)&&(e.clientRectangle.x<s.x?r:n).push(e);this.isIntersectionLabels(r.map(e=>e.clientRectangle))&&this.checkLabelPosition(r,t),this.isIntersectionLabels(n.map(e=>e.clientRectangle))&&this.checkLabelPosition(n,t)}checkIntersectionLabels(n){let t=n.childGeoms,l=[];if(null!=t)for(let e of t)e.is(__.d.StiCenterPieLabelsGeom)&&l.push(e);let e=l.length,i=!0,s=0;while(i&&s<29){s++;for(let r=0;r<e;r++)for(let s=0;s<e;s++){if(s==r)continue;if(l[r].clientRectangle.intersectsWith(l[s].clientRectangle)){let t=l[r].labelRect,i=l[s].labelRect;if(t.intersectsWith(i)){let e=t.height-Math.abs(l[s].clientRectangle.y-l[r].clientRectangle.y)+2;t.y>i.y?(t.y+=e/2,i.y-=e/2):(t.y-=e/2,i.y+=e/2),t.y<0&&(t.y=0),i.y<0&&(i.y=0),t.y+t.height>n.clientRectangle.height&&(t.y=n.clientRectangle.height-t.height),i.y+e/2+i.height>n.clientRectangle.height&&(i.y=n.clientRectangle.height-i.height),l[r].labelRect=t,l[s].labelRect=i}}}}}checkLabelPosition(t,e){let i=e.height;for(let e of t=t[Stimulsoft.System.StiObject.stimulsoft]().toList().orderBy(e=>e.clientRectangle.y))i-=e.clientRectangle.height;let s=i/(t.length+1),r=e.y;for(let e of t)e.clientRectangle=new RectangleD(e.clientRectangle.x,r+s,e.clientRectangle.width,e.clientRectangle.height),e.endPoint=new PointD(e.endPoint.x,e.clientRectangle.y+e.clientRectangle.height/2),r=e.clientRectangle.y+e.clientRectangle.height}getGradPerValue(t,i=!1){let s=0,r=0;for(let e of t){let t=i?e.valuesStart:e.values;for(let e of t)s+=Math.abs(e),r++}return 0==r&&(r=1),0<s?360/s:360/r}getPercentPerValue(t,i=!1){let s=0;for(let e of t){let t=i?e.valuesStart:e.values;for(let e of t)s+=Math.abs(e)}return 1/s*100}getPointCenter(e){return new PointD(e.width/2,e.height/2)}getRadius(e,t){let i=this.series;if(0<i.diameter)return i.diameter/2*e.options.zoom;return.95*Math.min(t.width/2,t.height/2)}getPoint(e,t,i){let s=Math.PI*i/180;return new PointD(e.x+Math.cos(s)*t,e.y+Math.sin(s)*t)}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getPieDistance(e){return this.getPieDistance2(this.series,e)}getPieDistance2(t,i){if(0==t.distance)return 0;if(0==t.cutPieListValues.length)return t.distance;for(let e of t.cutPieListValues)if(e==i+1)return t.distance;return 0}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}get localizedName(){return StiLocalization.get("Chart","Pie")}constructor(e){super(e)}},__.d.StiDoughnutSeriesCoreXF=class extends __.d.StiPieSeriesCoreXF{renderDoughnutElement(t,e,i,s,r,n,l,o,a,h,u,S,d,m){if(s<0&&(s=1),0==o||isNaN(o))return null;let c=new RectangleD(e.x-i,e.y-i,2*i,2*i),g=new RectangleD(e.x-s,e.y-s,2*s,2*s);if(c.width<=0&&c.height<=0)return null;S||(n.is(StiGradientBrush)&&((n=n.clone()).angle=-45),n.is(StiGlareBrush)&&((n=n.clone()).angle=-45));let p=[],_=null,f=null,C=null,w=null,b=0,y=(u.lighting&&!S&&(C=[],w=[],b=.02*i,_=new StiGradientBrush(Color.fromArgb3(100,Color.white),Color.fromArgb3(50,Color.black),45),f=new StiGradientBrush(Color.fromArgb3(50,Color.black),Color.fromArgb3(100,Color.white),45)),this.series.chart);if(p.push(new StiArcSegmentGeom(c,l,o)),o-l!=360&&p.push(new StiLineSegmentGeom(this.getPoint(e,i,l+o),this.getPoint(e,s,l+o))),p.push(new StiArcSegmentGeom(g,l+o,-o)),o-l!=360&&p.push(new StiLineSegmentGeom(this.getPoint(e,s,l),this.getPoint(e,i,l))),S)if(y.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),m);t.fillDrawAnimationPath(n,null,p,c,null,e,null)}else t.fillPath(n,p,c,null);if(null==_||S||(C.push(new StiLineSegmentGeom(this.getPoint(e,i-b,l),this.getPoint(e,i,l))),C.push(new StiArcSegmentGeom(c,l,o)),C.push(new StiLineSegmentGeom(this.getPoint(e,i,l+o),this.getPoint(e,i-b,l+o))),C.push(new StiArcSegmentGeom(new RectangleD(c.x+b,c.y+b,c.width-2*b,c.height-2*b),l+o,-o)),w.push(new StiLineSegmentGeom(this.getPoint(e,s+b,l),this.getPoint(e,s,l))),w.push(new StiArcSegmentGeom(g,l,o)),w.push(new StiLineSegmentGeom(this.getPoint(e,s,l+o),this.getPoint(e,s+b,l+o))),w.push(new StiArcSegmentGeom(new RectangleD(g.x-b,g.y-b,g.width+2*b,g.height+2*b),l+o,-o))),!S){let e=new __.d.StiDoughnutSeriesElementGeom(d,a,h,u,c,g,p,C,w,r,n,_,f,l,l+o,i,s,m);return e}return null}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(u,e,S,a){let t=this.getRadius(u,e),d=this.getPointCenter(e);if(null==a||0==a.length||null==this.series.chart||null!=a&&!this.isNotNullValues(a))return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiDoughnutEmptySeriesElementGeom(new Rectangle(d.x-t,d.y-t,2*t,2*t)));let m=__.d.StiChartHelper.globalDurationElement,c=__.d.StiChartHelper.globalBeginTimeElement,g=t/(a.length+1),i=g,p=0;for(let e of a)null!=e.values&&(p+=e.values.length),i+=0!=e.width?e.width:g;if(i<t&&(t=i),0==p)return;let _=a[0],f=0,h=new RectangleD(10*u.options.zoom,10*u.options.zoom,e.width-20*u.options.zoom,e.height-20*u.options.zoom),s=h.clone(),C=0,w=0,b=t;for(let o of a){let l=0,t=(w=o.startAngle,this.getGradPerValue([o]));for(let n of o.values){let s=this.getPercentPerValue([o]),r=t*Math.abs(n),e=null;if(o.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),o.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=_.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let i=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeriesLabels);if(null!=i&&i.visible){C=0!=o.width?b-o.width:b-g;let e,t={ref:e};i.core.renderLabel(o,u,d,b,C,w+r/2,l,Math.abs(n),n,this.getArgumentText(o,l),_.core.getTag(l),!0,f,p,s,t,!1,0),(e=t.ref).isEmpty||(h=RectangleD.union(h,e))}}f++,w+=r,l++}b-=0!=o.width?o.width+.2*g:1.2*g}let r=0,o=(r=Math.min(r,h.left-s.left),r=Math.min(r,s.right-h.right),r=Math.min(r,h.top-s.top),r=Math.min(r,s.bottom-h.bottom),t+=r,this.series.chart);if(_.showShadow&&!o.isAnimation){let n=new RectangleD(d.x-t,d.y-t,2*t,2*t),l=u.createShadowGraphics(),o=new StiSolidBrush(Color.fromArgb3(100,Color.black));g=t/(a.length+1),b=t;for(let r of a){w=r.startAngle;let i=this.getGradPerValue([r]),s=0;for(let t of r.values){let e=i*Math.abs(t);C=0!=r.width?b-r.width:b-g,this.renderDoughnutElement(l,new PointD(n.width/2,n.height/2),b,C,Color.black,o,w,e,Math.abs(t),s,r,!0,S,new TimeSpan(c.ticks)),w+=e,s++}b-=0!=r.width?r.width+.2*g:1.2*g}let e=new __.d.StiPieSeriesShadowElementGeom(_,n,.01*t+2*u.options.zoom,l,m,c);S.createChildGeoms(),S.childGeoms.push(e)}g=t/(a.length+1),f=0,b=t;let y=0;for(let o of a){let l=0,e=(o.chart.area.colorEach||(f=0),w=o.startAngle,this.getGradPerValue([o])),t={ref:null},i={ref:null},s={ref:null},r=(this.checkNonZerovalue(a,t,i,s),t.ref),n=i.ref;if(0!=r){if(1==r){let e=o.brush,t=(o.allowApplyBrush&&(e=o.core.getSeriesBrush(n,p),e=o.processSeriesBrushes(n,e)),_.core.getSeriesBorderColor(f,p));if(n>=o.values.length)continue;C=0!=o.width?b-o.width:b-g;let i=this.renderDoughnutElement(u,d,b,C,t,e,0,360,o.values[n],n,o,!1,S,new TimeSpan(c.ticks));null!=i&&(null!=o.core.interaction&&(i.interaction=this.getInteraction(S.area,o,0)),S.createChildGeoms(),S.childGeoms.push(i)),b-=1.2*g,l++,f++,y++;continue}{let n=0;for(let r of o.values){let s=e*Math.abs(r);if(0!=r){let e=o.brush,t=(o.allowApplyBrush&&(e=o.core.getSeriesBrush(f,p),e=o.processSeriesBrushes(l,e)),o.borderColor),i=(o.allowApplyBorderColor&&(t=o.core.getSeriesBorderColor(f,p)),C=0!=o.width?b-o.width:b-g,this.renderDoughnutElement(u,d,b,C,t,e,w,s,Math.abs(r),n,o,!1,S,new TimeSpan(c.ticks/o.values.length*f)));if(null!=i){if(null!=o.core.interaction){let e=this.getInteraction(S.area,o,n);i.interaction=e}S.createChildGeoms(),S.childGeoms.push(i)}w+=s}l++,f++,y++,n++}}}b-=0!=o.width?o.width+.2*g:1.2*g}let x=S.area[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiDoughnutArea);if(null!=x&&x.indicator.visible){let e=x.indicator,t=1.414*C,i=t/2,s=new Rectangle(d.x-i,d.y-i,t,t),r=StiReportParser.parse(e.value.value,o),n=StiReportParser.parse(e.title.text,o),l=new __.d.StiDoughnutAreaIndicatorGeom(s,r,n,e);S.createChildGeoms(),S.childGeoms.push(l)}if(0==y)return S.createChildGeoms(),void S.childGeoms.push(new __.d.StiDoughnutEmptySeriesElementGeom(new Rectangle(d.x-t,d.y-t,2*t,2*t)));f=0,b=t;for(let h of a){let a=0,t=(w=h.startAngle,this.getGradPerValue([h]));for(let o of h.values){let n=this.getPercentPerValue([h]),l=t*Math.abs(o),e=null;if(h.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),h.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=_.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let r=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiPieSeriesLabels);if(null!=r&&r.visible&&(0==r.step||a%r.step==0)){let e,t=0!=h.width?b-h.width:b-g,i={ref:e},s=r.core.renderLabel(h,u,d,b,t,w+l/2,a,Math.abs(o),o,this.getArgumentText(h,a),this.getTag(a),!1,f,p,n,i,!1,0);e=i.ref,null!=s&&(s.duration=m,s.beginTime=new TimeSpan(c.ticks/h.values.length*f),S.createChildGeoms(),S.childGeoms.push(s))}}f++,w+=l,a++}b-=0!=h.width?h.width+.2*g:1.2*g}}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getGradPerValue(t){let i=0;for(let e of t[0].values)i+=Math.abs(e);return 360/i}getPercentPerValue(t){let i=0;for(let e of t[0].values)i+=Math.abs(e);return 1/i*100}getArgumentText(e,t){if(e.arguments.length>t)return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}get localizedName(){return StiLocalization.get("Chart","Doughnut")}constructor(e){super(e)}},__.d.StiCandlestickSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(i,s){if(super.applyStyle(i,s),this.series.allowApplyStyle){let e=i.core.getColumnBrush(s),t=(this.series.brush=e,i.core.getColumnBorder(s));Color.transparent.equals(t)&&(t=StiBrush.toColor(e)),this.series.borderColor=t}}renderSeries(e,t,A,i){var L,T;if(null==i||0==i.length||null==this.series.chart)return;let D=A.area,v=D.axisCore.getDividerY(),F=__.d.StiChartHelper.globalBeginTimeElement;for(let x of i){let _=x.valuesOpen,f=x.valuesClose,C=x.valuesHigh,w=x.valuesLow,b=Math.min(Math.min(_.length,f.length),Math.min(C.length,w.length)),e=x.arguments.length,t=Math.min(b,e),y=x.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let p=0;p<t;p++){let t=_[p],i=f[p],s=C[p],r=w[p];if(null==t||null==i||null==s||null==r)continue;let n=0;for(let e of D.xAxis.info.stripLines.list){if((null==(L=x.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,y))?void 0:L.toString())==(null==(T=e.valueObject)?void 0:T.toString()))break;n++}let e=D.xAxis.info.dpi,l=new StiSolidBrush,o;if(t>i?(l=x.brush,o=x.borderColor,s<t&&(s=t),i<r&&(r=i)):(l=x.brushNegative,o=x.borderColorNegative,r>t&&(r=t),i>s&&(s=i),t=f[p],i=_[p]),D.reverseVert&&t>i){let e=t;t=i,i=e,e=r,r=s,s=e}let a=D.yAxis.info.dpi,h=Math.abs(v-t*a),u=Math.abs(v-i*a),S=Math.abs(v-s*a),d=Math.abs(v-r*a),m=n*e,c=new RectangleD(m-e/4,h,e/2,u-h),g=(l=x.processSeriesBrushes(p,l),new __.d.StiCandlestickSeriesElementGeom(A,x,c,h,u,S,d,m,n-1,l,o,new TimeSpan(F.ticks/b*p)));if(null!=g&&null!=x.core.interaction){let e=this.getInteraction(A.area,x,p);g.interaction=e}A.createChildGeoms(),A.childGeoms.push(g)}}}get localizedName(){return StiLocalization.get("Chart","Candlestick")}constructor(e){super(e)}},__.d.StiStockSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.lineColor=t)}renderSeries(e,t,x,i){var A,L;if(null==i||0==i.length||null==this.series.chart)return;let T=x.area,D=T.axisCore.getDividerY(),v=__.d.StiChartHelper.globalBeginTimeElement;for(let y of i){let _=y.valuesOpen,f=y.valuesClose,C=y.valuesHigh,w=y.valuesLow,b=Math.min(Math.min(_.length,f.length),Math.min(C.length,w.length)),e=y.arguments.length,t=Math.min(b,e);for(let p=0;p<t;p++){let e=_[p],t=f[p],i=C[p],s=w[p],r=0,n=y.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();for(let e of T.xAxis.info.stripLines.list){if((null==(A=y.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,n))?void 0:A.toString())==(null==(L=e.valueObject)?void 0:L.toString()))break;r++}let l=T.xAxis.info.dpi,o=y.lineColor;if(!y.allowApplyColorNegative&&e<t&&(o=y.lineColorNegative),null==e||null==t||null==i||null==s)continue;let a=T.yAxis.info.dpi,h=Math.abs(D-e*a),u=Math.abs(D-t*a),S=Math.abs(D-i*a),d=Math.abs(D-s*a),m=r*l;if(T.reverseHor){let e=h;h=u,u=e}let c=new RectangleD(m-l/3,Math.min(S,d),2*l/3,Math.abs(d-S)),g=(o=y.processSeriesColors(p,o),new __.d.StiStockSeriesElementGeom(x,y,c,h,u,S,d,m,r-1,o,new TimeSpan(v.ticks/b*p)));if(null!=g&&null!=y.core.interaction){let e=this.getInteraction(x.area,y,p);g.interaction=e}x.createChildGeoms(),x.childGeoms.push(g)}}}get localizedName(){return StiLocalization.get("Chart","Stock")}constructor(e){super(e)}},__.d.StiStackedBarSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.brush.is(StiGradientBrush)&&(i.brush.angle+=90),i.brush.is(StiGlareBrush)&&(i.brush.angle+=90),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(C,w,b,y){if(null==y||0==y.length||null==this.series.chart)return;let x=[],A=[],e=b.area,L=e,r=this.series,T=L.axisCore.getDividerX(),D=L.xAxis.info.dpi,v=L.axisCore.valuesCount,F=[],s=0;for(let i=0;i<y.length;i++){let t=[];for(let e=0;e<y[i].values.length;e++)t.push(s),s++;F.push(t)}let B=s;for(let f=0;f<v;f++){let d=0,m=0,e={ref:d},t={ref:m},i=(this.calculateTotalWidth(y,f,e,t),d=e.ref,m=t.ref,L.yAxis.info.stripPositions[L.yAxis.startFromZero?f+1:f]-L.yAxis.info.step/2),c=L.yAxis.info.step-L.yAxis.info.step*(1-r.width),g=i+(L.yAxis.info.step-c)/2,p=0,_=0;if(0==y.length)return;let s=y[0].showShadow;if(s=y[0].chart.isAnimation&&!y[0].chart.report.isDesigning?!1:s){for(let i=0;i<y.length;i++)if(f<y[i].values.length){let e=y[i],t=L.reverseVert?e.values[f]:e.values[e.values.length-f-1];0<(t=L.reverseHor&&null!=t?-t:t)?p+=t:_+=t}if(this.series.is(__.d.IStiFullStackedBarSeries)){let e=L.reverseHor?m:d,t=L.reverseHor?d:m;if(0<e&&0<t){let e=new RectangleD(-8,g,w.width+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}else if(0<e){let e=new RectangleD(L.axisCore.getDividerX()-8,g,w.width-L.axisCore.getDividerX()+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e.clone(),!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}else if(0<t){let e=new RectangleD(-8,g,L.axisCore.getDividerX()+8,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e.clone(),!1,!1);b.createChildGeoms(),b.childGeoms.push(t)}}else{if(0<p){let e=new RectangleD(T,g,p*D,c),t=(e.x-=7,e.width+=7,new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!1,!0));b.createChildGeoms(),b.childGeoms.push(t)}if(_<0){let e=new RectangleD(T+_*D,g,-_*D,c),t=new __.d.StiStackedBarSeriesShadowElementGeom(y[0],e,!0,!1);b.createChildGeoms(),b.childGeoms.push(t)}}}p=0;for(let l=_=0;l<y.length;l++){let S=y[l];if(f<S.values.length){let o=F[l][f],a=L.reverseVert?S.values[f]:S.values[S.values.length-f-1],h=null!=a?-a:a,u=L.reverseHor?y[Stimulsoft.System.StiObject.stimulsoft]().toList().take(l+1).cast().sum(e=>e.values[f]):y[Stimulsoft.System.StiObject.stimulsoft]().toList().take(l+1).cast().sum(e=>e.values[S.values.length-f-1]),e=(!this.series.is(__.d.IStiFullStackedBarSeries)||0==d&&0==m||null==h||(D=0<h?L.axisCore.getDividerX()/m:(w.width-L.axisCore.getDividerX())/d),(h=L.reverseHor&&null!=h?-h:h)*D),t=-e+T,s=(0<h?t-=p:(t=_+T,e=-e),!S.showZeros||0!=h&&null!=h||(e=Math.max(C.options.zoom,1),L.reverseHor)||(t-=e),new RectangleD(t,g,e,c));s=this.correctRect(s,w.clone());let r,i=(r=h<0?RectangleD.fromLTRB(s.left,s.top,s.left,s.bottom):RectangleD.fromLTRB(s.right,s.top,s.right,s.bottom),b.view.clientRectangle.clone()),n=(i.x=0,i.y=0,s.clone());if(n.x+=b.clientRectangle.x,n.y+=b.clientRectangle.y,n.bottom>i.y&&n.y<i.bottom||this.series.chart.area.yAxis.range.auto){let i=S.core.getSeriesBrush(o,B);if(S.allowApplyBrushNegative&&0<h&&(i=S.brushNegative),i=S.processSeriesBrushes(v-1-f,i),0!=s.height&&0<StiMath.round2(s.width,2)&&null!=i){let e=S.core.getSeriesBorderColor(o,B),t=new __.d.StiStackedBarSeriesElementGeom(b,h,f,i,e,S,s,r);if(null!=S.core.interaction){let e=this.getInteraction(L,S,v-1-f);t.interaction=e}A.push(t)}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&0<StiMath.round2(s.width,2)){let r=new PointD(s.x,s.y+s.height/2),n=new PointD(s.right,s.y+s.height/2);if(h<0&&(n.x=s.x,r.x=s.right),h<0&&(n.x=s.x,r.x=s.right),0==l.step||f%l.step==0){let e=h,t=(!S[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).isTotalLabel&&l.valueType!=__.d.StiSeriesLabelsValueType.Total||(e=a=u),L.yAxis.startFromZero?f+1:f),i=L.yAxis.info.stripLines.count>f?L.yAxis.info.stripLines.getByIndex(t):null,s=l.core.renderLabel(S,C,r,n,f,e,a,L.axisCore.getArgumentLabel(i,S),S.core.getTag(v-1-f),o,B,w);null!=s&&x.push(s)}}}0<h?p+=e:_+=e,o++}}}for(let t=A.length-1;0<=t;t--){let e=A[t];b.createChildGeoms(),b.childGeoms.push(e)}for(let e of x)b.createChildGeoms(),b.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,b,e.clientRectangle.clone())}calculateTotalWidth(e,i,t,s){let r=0,n=0;if(this.series.is(__.d.IStiFullStackedBarSeries))for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseVert?t.values[i]:t.values[t.values.length-i-1];0<e?r+=e:n+=Math.abs(e)}t.ref=r,s.ref=n}correctRect(t,i){if(t.x>i.width||t.right<0)return t.width=0,t;if(t.x<0){let e=-t.x;t.x+=e,t.width-=e}if(i.width<t.right){let e=t.right-i.width;t.width-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","StackedBar")}constructor(e){super(e)}},__.d.StiFullStackedBarSeriesCoreXF=class extends __.d.StiStackedBarSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedBar")}constructor(e){super(e)}},__.d.StiStackedBaseLineSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lineColor=t,i.lighting=e.core.seriesLighting,i.marker.visible=e.core.markerVisible,null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100)),null!=i.lineMarker)&&(i.lineMarker.brush=new StiSolidBrush(StiColorUtils.light(t,50)),i.lineMarker.borderColor=StiColorUtils.dark(t,150))}clipLinePoints(e,i,s,t,r,n,l,o){let a=r.ref,h=n.ref,u=l.ref,S=o.ref;if(this.series.chart.area.xAxis.range.auto)return u=0,S=s.length,a=s,h=t,r.ref=a,n.ref=h,l.ref=u,void(o.ref=S);u=-1,S=-1;let d=i.view.clientRectangle.clone(),m=(d.x=0,d.y=0,0);for(let t of s){let e=new PointD(t.x,t.y);if(e.x+=i.clientRectangle.x,e.y+=i.clientRectangle.y,d.x<=e.x&&e.x<d.right&&-1==u&&(u=m),!(d.x<=e.x&&e.x<d.right)&&-1!=u){S=m;break}m++}-1==S&&(S=s.length-1),u--,S++,u<0&&(u=0);let c=(S=S>=s.length?s.length-1:S)-u+1;if(c==s.length)return a=s,h=t,r.ref=a,n.ref=h,l.ref=u,void(o.ref=S);a=StiArray.create(PointD,c,!0),StiArray.copy(s,u,a,c),null!=t?(h=StiArray.create(PointD,c,!0),StiArray.copy(t,u,h,c)):h=null,r.ref=a,n.ref=h,l.ref=u,o.ref=S}renderMarkers(n,l,e){let o=l.area,a=this.series;if(0==e.length)return;let h=!a.marker.visible&&0<a.toolTips.length;if(null!=a.marker&&(a.marker.visible||h)){let r=0;for(let s of e){if(null!=s){let e=o.reverseHor?this.series.values[this.series.values.length-r-1]:this.series.values[r],t=(null==e&&a.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(this.series,r,e,s,a.marker,this.series.showShadow,n.options.zoom,h);if(null!=t){if(null!=a.core.interaction){let e=this.getInteraction(o,a,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}renderLines(e,t,i){}renderAreas(e,t,i){}renderSeries(c,g,p,_){let f=this.series,d=[],e=p.area;if(null==_||0==_.length||null==this.series.chart)return;let C=e,w=this.series.yAxis==__.d.StiSeriesYAxis.LeftYAxis?C.axisCore.getDividerY():C.axisCore.getDividerRightY(),b=C.xAxis.core.getStartFromZero(),y=new Hashtable,x=new Hashtable,i=[],A=[],L=[],T=C.yAxis.info.dpi;this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(T=C.yRightAxis.info.dpi);for(let t=0;t<_.length;t++){let u=_[t],e=u.values.length,S=StiArray.create(PointD,e,!0),d=StiArray.create(PointD,e,!0),m=StiArray.create(String,e,!0);for(let h=0;h<e;h++){let o=b?C.xAxis.info.stripPositions[h+1]:C.xAxis.info.stripPositions[h],a=C.reverseHor?u.values[u.values.length-h-1]:u.values[h];if(null!=a||u.showNulls){null==a&&u.showNulls&&(a=0);let e=0,t=0,i={ref:e},s={ref:t},r=(this.calculateTotalHeight(_,h,i,s),e=i.ref,t=s.ref,!f.core.isFullStacked||0==e&&0==t||null==a||(T=0<=a?w/e:(g.height-w)/t),-(a=C.reverseVert&&null!=a?-a:a)*T),n=0,l=(0<=a?null!=y.get(h)&&(n=y.get(h)):null!=x.get(h)&&(n=x.get(h)),r+=n,(0<=a?y:x).set(h,r),d[h]=new PointD(o,n+w),S[h]=new PointD(o,r+w),(b?C.xAxis.info.stripLines.getByIndex(h+1):C.xAxis.info.stripLines.getByIndex(h)).valueObject);m[h]=null==l?"":l[Stimulsoft.System.StiObject.stimulsoft]().toString()}else d[h]=null,S[h]=null,m[h]=null}if(0<S.length&&0<d.length){let e,t,i=null,s=null,r={ref:i},n={ref:s},l={ref:e},o={ref:t},a=(this.clipLinePoints(c,p,d,S,r,n,l,o),i=r.ref,s=n.ref,e=l.ref,t=o.ref,new __.d.StiSeriesPointsInfo);a.pointsStart=i,a.pointsEnd=s,a.pointsIds=m,u.core.renderAreas(c,p,a)}i.push(S),A.push(d),L.push(m)}let m=0,D=StiArray.create(Number,C.axisCore.valuesCount),v=StiArray.create(Number,C.axisCore.valuesCount);for(let e=0;e<C.axisCore.valuesCount;e++)D[e]=w,v[e]=w;for(let S of i){let e,t,i=null,s=null,r={ref:i},n={ref:s},l={ref:e},o={ref:t},a=(this.clipLinePoints(c,p,S,null,r,n,l,o),i=r.ref,s=n.ref,e=l.ref,t=o.ref,_[m]),h=new __.d.StiSeriesPointsInfo,u=(h.points=i,h.pointsFrom=A[m],h.pointsIds=L[m],a.core.renderLines(c,p,h),a.core.getSeriesLabels());if(null!=u&&u.visible)for(let n=e;n<=t;n++)if(n<a.values.length){let i=a.values[n],e=w,s=(0<(i=null==i&&f.showNulls?0:i)?(e=D[n],null!=S[n]&&(D[n]=S[n].y)):(e=v[n],null!=S[n]&&(v[n]=S[n].y)),i),r=(C.reverseVert&&null!=i&&(s=-s),S[n]);if(null!=r){let t=new PointD(r.x,e);if(0==u.step||n%u.step==0){let e=u.core.renderLabel(a,c,r,t,n,s,i,C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(n),a),a.core.getTag(n),0,1,g);null!=e&&d.push(e)}}}m++}for(let e of d)p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,p,e.clientRectangle.clone())}calculateTotalHeight(e,i,t,s){let r=this.series,n=0,l=0;if(r.core.isFullStacked)for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseHor?t.values[t.values.length-i-1]:t.values[i];0<(e=null==e&&r.showNulls?0:e)?n+=e:l+=Math.abs(e)}t.ref=n,s.ref=l}correctPoint(e,t){if(e.y<0)return new PointD(e.x,0);if(e.y>t.height)return new PointD(e.x,t.height);return e}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return new StiSolidBrush(StiColorUtils.dark(i.lineColor,20));return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.lineColor;return s}get isFullStacked(){return this.is2(__.d.StiFullStackedAreaSeriesCoreXF)||this.is2(__.d.StiFullStackedLineSeriesCoreXF)||this.is2(__.d.StiFullStackedSplineSeriesCoreXF)||this.is2(__.d.StiFullStackedSplineAreaSeriesCoreXF)}constructor(e){super(e)}},__.d.StiStackedLineSeriesCoreXF=class extends __.d.StiStackedBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiStackedLineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","StackedLine")}constructor(e){super(e)}},__.d.StiStackedAreaSeriesCoreXF=class extends __.d.StiStackedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.pointsStart||i.pointsStart.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let s=new __.d.StiStackedAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","StackedArea")}constructor(e){super(e)}},__.d.StiFullStackedAreaSeriesCoreXF=class extends __.d.StiStackedAreaSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedArea")}constructor(e){super(e)}},__.d.StiStackedColumnSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(f,C,w,b){if(null==b||0==b.length||null==this.series.chart)return;let y=[],x=[],e=w.area,A=e,L=this.series,r=A.xAxis.core.getStartFromZero(),T=A.axisCore.getDividerY(),D=A.yAxis.info.dpi,v=(this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(D=A.yRightAxis.info.dpi),[]),s=0;for(let i=0;i<b.length;i++){let t=[];for(let e=0;e<b[i].values.length;e++)t.push(s),s++;v.push(t)}let F=s;for(let _=0;_<A.axisCore.valuesCount;_++){let l=0,d=0,e={ref:l},t={ref:d},i=(this.calculateTotalHeight(b,_,e,t),l=e.ref,d=t.ref,r?A.xAxis.info.stripPositions[_+1]:A.xAxis.info.stripPositions[_]),m=(i-=A.xAxis.info.step/2,A.xAxis.info.step-A.xAxis.info.step*(1-L.width)),c=i+(A.xAxis.info.step-m)/2,g=0,p=0;if(0==b.length)return;let s=b[0].showShadow;if(s=b[0].chart.isAnimation&&!b[0].chart.report.isDesigning?!1:s){for(let i=0;i<b.length;i++)if(_<b[i].values.length){let e=b[i],t=A.reverseHor?e.values[e.values.length-_-1]:e.values[_];null!=t&&(0<(t=A.reverseVert?-t:t)?g+=t:p+=t)}if(this.is(__.d.StiFullStackedColumnSeriesCoreXF)){let e=A.reverseVert?d:l,t=A.reverseVert?l:d;if(0<e&&0<t){let e=new RectangleD(c,-8,m,C.height+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}else if(0<e){let e=new RectangleD(c,-8,m,A.axisCore.getDividerY()+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}else if(0<t){let e=new RectangleD(c,A.axisCore.getDividerY()-8,m,C.height-A.axisCore.getDividerY()+8),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!1);w.createChildGeoms(),w.childGeoms.push(t)}}else{if(0<g){let e=new RectangleD(c,-g*D+T,m,g*D),t=new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!0,!1);w.createChildGeoms(),w.childGeoms.push(t)}if(p<0){let e=new RectangleD(c,T,m,-p*D),t=(e.y-=7,e.height+=7,new __.d.StiStackedColumnSeriesShadowElementGeom(b[0],e,!1,!0));w.createChildGeoms(),w.childGeoms.push(t)}}}g=0;for(let n=p=0;n<b.length;n++){let S=b[n];if(_<S.values.length){let o=v[n][_],a=A.reverseHor?S.values[S.values.length-_-1]:S.values[_],h=A.reverseHor?b[Stimulsoft.System.StiObject.stimulsoft]().toList().take(n+1).cast().sum(e=>e.values[S.values.length-_-1]):b[Stimulsoft.System.StiObject.stimulsoft]().toList().take(n+1).cast().sum(e=>e.values[_]),e=(!this.series.is(__.d.IStiFullStackedColumnSeries)||0==l&&0==d||null==a||(D=0<=a?A.axisCore.getDividerY()/l:(C.height-A.axisCore.getDividerY())/d),(a=A.reverseVert&&null!=a?-a:a)*D),t=-e+T,u=(0<a?t-=g:(t=p+T,e=-e),!L.showZeros||0!=a&&null!=a||(e=Math.max(f.options.zoom,1),A.reverseVert)||(t-=e),new RectangleD(c,t,m,e));u=this.correctRect(u,C);let s,i=(s=a<0?RectangleD.fromLTRB(u.left,u.top,u.right,u.top):RectangleD.fromLTRB(u.left,u.bottom,u.right,u.bottom),w.view.clientRectangle.clone()),r=(i.x=0,i.y=0,u.clone());if(r.x+=w.clientRectangle.x,r.y+=w.clientRectangle.y,r.right>i.x&&r.x<i.right||this.series.chart.area.xAxis.range.auto){let i=S.core.getSeriesBrush(o,F);if(S.allowApplyBrushNegative&&a<0&&(i=S.brushNegative),i=S.processSeriesBrushes(_,i),0!=u.width&&0<StiMath.round2(u.height,2)&&null!=i){let e=S.core.getSeriesBorderColor(o,F),t=new __.d.StiStackedColumnSeriesElementGeom(w,a,_,i,e,S,u,s);if(null!=S.core.interaction){let e=this.getInteraction(A,S,_);t.interaction=e}x.push(t)}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&0<StiMath.round2(u.height,2)){let s=new PointD(u.x+u.width/2,u.y),r=new PointD(u.x+u.width/2,u.bottom),n=S.values[_];if(A.reverseVert&&null!=n&&(n=-a),a<0&&(r.y=u.y,s.y=u.bottom),0==l.step||_%l.step==0){let e=a,t=(!S[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).isTotalLabel&&l.valueType!=__.d.StiSeriesLabelsValueType.Total||(e=n=h),A.xAxis.startFromZero?_+1:_),i=l.core.renderLabel(S,f,s,r,_,e,n,A.axisCore.getArgumentLabel(A.xAxis.info.stripLines.getByIndex(t),S),S.core.getTag(_),o,F,C);null!=i&&y.push(i)}}}0<a?g+=e:p+=e,o++}}}for(let t=x.length-1;0<=t;t--){let e=x[t];w.createChildGeoms(),w.childGeoms.push(e)}for(let e of y)w.createChildGeoms(),w.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(e.seriesLabels,w,e.clientRectangle.clone())}calculateTotalHeight(e,i,t,s){let r=0,n=0;if(this.series.is(__.d.IStiFullStackedColumnSeries))for(let t of e)if(i<t.values.length){let e=this.series.chart.area.reverseHor?t.values[t.values.length-i-1]:t.values[i];0<e?r+=e:n+=Math.abs(e)}t.ref=r,s.ref=n}correctRect(t,i){if(t.y>i.height||t.bottom<0)return t.height=0,t;if(t.top<0){let e=-t.top;t.y+=e,t.height-=e}if(i.height<t.bottom){let e=t.bottom-i.height;t.height-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","StackedColumn")}constructor(e){super(e)}},__.d.StiFullStackedColumnSeriesCoreXF=class extends __.d.StiStackedColumnSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedColumn")}constructor(e){super(e)}},__.d.StiFullStackedLineSeriesCoreXF=class extends __.d.StiStackedLineSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedLine")}constructor(e){super(e)}},__.d.StiStackedSplineSeriesCoreXF=class extends __.d.StiStackedBaseLineSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiStackedSplineSeriesGeom(t,i,this.series);t.createChildGeoms(),t.childGeoms.push(s),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","StackedSpline")}constructor(e){super(e)}},__.d.StiStackedSplineAreaSeriesCoreXF=class extends __.d.StiStackedSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderAreas(e,t,i){if(null==i.pointsStart||i.pointsStart.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let s=new __.d.StiStackedSplineAreaSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s))}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}get localizedName(){return StiLocalization.get("Chart","StackedSplineArea")}constructor(e){super(e)}},__.d.StiFullStackedSplineAreaSeriesCoreXF=class extends __.d.StiStackedSplineAreaSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSplineArea")}constructor(e){super(e)}},__.d.StiFullStackedSplineSeriesCoreXF=class extends __.d.StiStackedSplineSeriesCoreXF{get localizedName(){return StiLocalization.get("Chart","FullStackedSpline")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiCloseFigureSegmentGeom),Dictionary=(__.d.StiFunnelSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(d,m,c,n){var r,l,g;if(null==n||0==n.length||null==this.series.chart)return void this.renderFunnelEmpty(c,m);let t=n,p=this.getAllValues(t),_=this.getAllTrueValues(t),f=0;for(let e of n)null!=e.values&&(f+=e.values.length);if(0==f)return void this.renderFunnelEmpty(c,m);let C=this.getSingleValueHeight(f,m),w=this.getSingleValueWidth(p,m),b=(this.labels=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeriesLabels),m.clone()),y=m.clone();for(let S of n){let e=S;if(null!=this.labels&&this.labels.visible){for(let s=0;s<e.values.length;s++)if(S.values.length>s){let t=null!=(r=e.values[s])?r:0,i=s==e.values.length-1?null!=t?t:0:null!=(l=e.values[s+1])?l:0;if(0==this.labels.step||s%this.labels.step==0){let e={ref:b};this.labels.core.renderLabel(S,d,s,t,i,this.getArgumentText(S,s),S.core.getTag(s),0,f,m,C,w,1,e),b=e.ref,y=b.width<y.width?b:y}}b=y.clone()}C=this.getSingleValueHeight(f,b),w=this.getSingleValueWidth(p,b);let o=0,a=0,h,u=(h=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?b.width/2+b.x:b.width/2,__.d.StiChartHelper.globalBeginTimeElement);for(let l of t){let e={ref:null},t={ref:null},i={ref:null},s=(this.checkNonZerovalue(n,e,t,i),e.ref),r=t.ref;if(0!=s)if(1==s){let e=l.brush,t=(l.allowApplyBrush&&(e=l.core.getSeriesBrush(r,l.values.length),e=l.processSeriesBrushes(r,e)),l.borderColor),i=(l.allowApplyBorderColor&&(t=l.core.getSeriesBorderColor(a,f)),this.renderFunnelElement(t,e,null!=(g=l.values[r])?g:0,0,a,r,l,c,b,C,w,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks)));if(null!=i){if(null!=l.core.interaction){let e=this.getInteraction(c.area,l,r);i.interaction=e}c.createChildGeoms(),c.childGeoms.push(i)}}else for(let n=0;n<l.values.length;n++){let i=this.getCurrentValue(l,o,_);if(0==i&&!l.showZeros){o++;continue}let s=this.getNextCurrentValue(l,o,_),e=l.brush,t=(l.allowApplyBrush&&(e=l.core.getSeriesBrush(o,f),e=l.processSeriesBrushes(o,e)),l.borderColor),r=(l.allowApplyBorderColor&&(t=l.core.getSeriesBorderColor(a,f)),this.renderFunnelElement(t,e,null!=i?i:0,null!=s?s:0,a,n,l,c,b,C,w,new TimeSpan(u.ticks/p.length*n)));if(null!=r){if(null!=S.core.interaction){let e=this.getInteraction(c.area,S,n);r.interaction=e}c.createChildGeoms(),c.childGeoms.push(r)}if(null!=this.labels&&this.labels.visible&&(0==this.labels.step||n%this.labels.step==0)){let e={ref:b},t=this.labels.core.renderLabel(l,d,a,null!=i?i:0,null!=s?s:0,this.getArgumentText(l,n),l.core.getTag(n),a,f,m,C,w,h,e);b=e.ref,null!=t&&(c.createChildGeoms(),c.childGeoms.push(t),t.clientRectangle=this.checkLabelsRect(this.labels,c,t.clientRectangle))}a++,o++}}}}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getSeriesBorderColor(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors);return i.getColumnBorder(s)}getSeriesBrush(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors),r=i.getColumnBrush(s);return r}getCurrentValue(e,t,i){var s;return null!=(s=i[t])?s:0}getNextCurrentValue(t,i,s){if(i!=s.length-1){let e=s[i+1];if(0==e&&!t.showZeros)while(0==e&&i<s.length-2)i++,e=s[i+1];return e}return s[i]}getAllValues(e){let i=[];for(let t of e)for(let e of t.values){if(0==(null!=e?e:0)&&!t.showZeros)continue;i.push(null!=e?e:0)}return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(null!=e?e:0);return i}getValues(t){let i=[];for(let e of t.values){if(!t.showZeros&&0==e)continue;i.push(e)}return i}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}renderFunnelEmpty(r,n){let l,o=[3,2,1],a=.9*n.height/o.length,h=.9*n.width/o.length;for(let s=0;s<o.length;s++){let e=null!=(l=o[s])?l:0,t=s!=o.length-1?o[s+1]:o[s],i=this.measureFunnelElementCore(e,null!=t?t:0,s,n,a,h);r.createChildGeoms(),r.childGeoms.push(new __.d.StiFunnelEmptySeriesElementGeom(n,i))}}renderFunnelElement(e,t,i,s,r,n,l,o,a,h,u,S){let d=this.measureFunnelElementCore(i,s,r,a,h,u);return new __.d.StiFunnelSeriesElementGeom(o,i,n,l,a,t,e,d,S)}getSingleValueHeight(e,t){return.9*t.height/e}getSingleValueWidth(t,e){let i=Number.NEGATIVE_INFINITY;for(let e of t)i=i>(null!=e?e:0)?i:null!=e?e:0;return.9*e.width/i}measureFunnelElementCore(e,t,i,s,r,n){let l=new List,o=.05*s.height,a,h=(a=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?s.width/2+s.x:s.width/2,new PointD(a-e/2*n,r*i+o)),u=new PointD(a+e/2*n,r*i+o),S=new PointD(a+t/2*n,r*(i+1)+o),d=new PointD(a-t/2*n,r*(i+1)+o),m=[h,u,S,d,h];return l.push(new StiLinesSegmentGeom(m)),l.push(new StiCloseFigureSegmentGeom),l}get localizedName(){return StiLocalization.get("Chart","Funnel")}constructor(e){super(e)}},__.d.StiFunnelWeightedSlicesSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}renderSeries(a,h,u,S){if(null==S||0==S.length||null==this.series.chart)return void this.renderFunnelEmpty(u,h);let e=S,d=0;for(let e of S)null!=e.values&&(d+=e.values.length);if(0==d)return void this.renderFunnelEmpty(u,h);let m=new List,c=this.getAllValues(e),g=this.getAllTrueValues(e),p=.9*h.height/this.getSumValues(g),_=0,f=0,C,w=(C=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?h.width/2+h.x:h.width/2,__.d.StiChartHelper.globalBeginTimeElement);for(let o of S){let n=o,l=this.getValues(n),e=(this.labels=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiFunnelSeriesLabels),{ref:null}),t={ref:null},i={ref:null},s=(this.checkNonZerovalue(S,e,t,i),e.ref),r=t.ref;if(0!=s)if(1==s){let e=n.brush,t=(n.allowApplyBrush&&(e=n.core.getSeriesBrush(r,n.values.length),e=n.processSeriesBrushes(r,e)),n.borderColor),i=(n.allowApplyBorderColor&&(t=n.core.getSeriesBorderColor(_,d)),this.renderFunnelElement(t,e,n.values[r],c,_,r,n,u,h,p,new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks)));if(null!=i){if(null!=n.core.interaction){let e=this.getInteraction(u.area,n,r);i.interaction=e}u.createChildGeoms(),u.childGeoms.push(i)}}else for(let r=0;r<l.length;r++){let s=l[r];if(!n.showZeros&&0==s){_++;continue}let e=n.brush,t=(n.allowApplyBrush&&(e=n.core.getSeriesBrush(_,d),e=n.processSeriesBrushes(_,e)),n.borderColor),i=(n.allowApplyBorderColor&&(t=n.core.getSeriesBorderColor(_,d)),this.renderFunnelElement(t,e,s,c,f,r,o,u,h,p,new TimeSpan(w.ticks/o.values.length*r)));if(null!=i){if(null!=o.core.interaction){let e=this.getInteraction(u.area,o,r);i.interaction=e}u.createChildGeoms(),u.childGeoms.push(i)}if(null!=this.labels&&this.labels.visible){let i=_==g.length-1?s:g[r+1];if(0==this.labels.step||r%this.labels.step==0){let e={ref:h},t=this.labels.core.renderLabel(n,a,_,s,i,this.getArgumentText(n,r),n.core.getTag(r),_,d,h,p,0,C,e);h=e.ref,null!=t&&m.push(t)}}f++,_++}}for(let e of m)u.createChildGeoms(),u.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(this.labels,u,e.clientRectangle)}checkNonZerovalue(e,t,i,s,r=!1){let n=0,l=0,o=0,a=0,h=null;for(let i of e){let t=r?i.valuesStart:i.values;for(let e of t)0==e||null==e||isNaN(e)||(n++,a=e,h=i,1==n&&(o=l)),l++}return t.ref=n,i.ref=o,s.ref=h,a}getSeriesBorderColor(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors);return i.getColumnBorder(s)}getSeriesBrush(e,t){if(null==this.series.chart||null==this.series.chart.area)return null;let i=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,s=i.getColorByIndex(e,t,this.seriesColors),r=i.getColumnBrush(s);return r}getAllValues(e){let i=[];for(let t of e)for(let e of t.values){if(0==e&&!t.showZeros)continue;i.push(e)}return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(e);return i}getValues(t){let i=[];for(let e of t.values){if(!t.showZeros&&0==e)continue;i.push(e)}return i}getArgumentText(e,t){let i=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(e.arguments.length>t&&null!=e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i))return e.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(t,i).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}renderFunnelEmpty(i,s){let r=[3,2,1],n=.9*s.height/this.getSumValues(r);for(let t=0;t<r.length;t++){let e=this.measureFunnelElementCore(t,s,n,r);i.createChildGeoms(),i.childGeoms.push(new __.d.StiFunnelEmptySeriesElementGeom(s,e))}}getPathFunnelEmpty(e){let t=new List,i=.05*e.height,s=e.width/2,r=new PointD(s-.9*e.width/2,i),n=new PointD(s+.9*e.width/2,i),l=new PointD(s-.1*e.width/2,e.height+i-e.height/5),o=new PointD(s+.1*e.width/2,e.height+i-e.height/5),a=new PointD(s+.1*e.width/2,e.height+i),h=new PointD(s-.1*e.width/2,e.height+i),u=[r,n,o,a,h,l];return t.push(new StiLinesSegmentGeom(u)),t.push(new StiCloseFigureSegmentGeom),t}renderFunnelElement(e,t,i,s,r,n,l,o,a,h,u){let S=this.measureFunnelElementCore(r,a,h,s);return new __.d.StiFunnelSeriesElementGeom(o,i,n,l,a,t,e,S,u)}getSumValues(t){let i=0;for(let e of t)i+=Math.abs(e);return i}getSumLastValues(t,i){let s=0;for(let e=0;e<t;e++){if(e>=i.length)break;s+=Math.abs(i[e])}return s}measureFunnelElementCore(e,t,i,s){let r=[],n=.05*t.height,l;l=null!=this.labels&&this.labels.is(__.d.StiOutsideLeftFunnelLabels)?t.width/2+t.x:t.width/2;let o,a,h=new PointD,u=new PointD,S,d,m=!1,c=this.getSumLastValues(e,s),g=!1,p=t.height-i*c,_=(p<t.height/5&&(p=t.height/5,g=!0),.9*t.width*p/t.height);o=new PointD(l-_/2,i*c+n),a=new PointD(l+_/2,i*c+n),c=this.getSumLastValues(e+1,s),(p=t.height-i*c)<t.height/5&&(p=t.height/5,g||(_=.9*t.width*p/t.height,h=new PointD(l-_/2,t.height+n-p),u=new PointD(l+_/2,t.height+n-p),m=!0)),_=.9*t.width*p/t.height,S=new PointD(l+_/2,i*c+n),d=new PointD(l-_/2,i*c+n);let f;return f=m?[o,a,u,S,d,h,o]:[o,a,S,d,o],r.push(new StiLinesSegmentGeom(f)),r.push(new StiCloseFigureSegmentGeom),r}get localizedName(){return StiLocalization.get("Chart","FunnelWeightedSlices")}constructor(e){super(e)}},__.d.StiGanttSeriesCoreXF=class extends __.d.StiClusteredBarSeriesCoreXF{renderSeries(C,w,b,e){let y,x=[];if(null==e||0==e.length||null==this.series.chart)return;let A=b.area,L=A.axisCore.getDividerX(),T=A.axisCore.getDividerY();for(let f of e){let e=f.values.length,t=(f.valuesEnd.length<e&&(e=f.valuesEnd.length),f.arguments.length),c=Math.min(e,t),g=t-1,p=0,_=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();while(p<c){let r=f.values[p],n=f.valuesEnd[p],e=(null==r&&(r=0),null==n&&(n=0),Math.abs(r-n)*A.xAxis.info.dpi),t=L,l=Math.min(r,n),i=(A.reverseHor?t-=l*A.xAxis.info.dpi+e:t+=l*A.xAxis.info.dpi,A.yAxis.info.stripLines.count-1);for(let t of A.yAxis.info.stripLines.list){let e=null!=(y=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_))?y:"";if(null==e&&null==t.valueObject||null!=e&&null!=t.valueObject&&e.toString()==t.valueObject.toString())break;i--}A.reverseVert&&(i=A.yAxis.info.stripLines.count-1-i);let o=A.yAxis.info.step/2,a=T-o/2,s=(A.reverseVert?a+=A.yAxis.info.step*i:a-=A.yAxis.info.step*i,new RectangleD(t,a,e,o)),h=RectangleD.fromLTRB(s.left,s.top,s.left,s.bottom),u=f.core.getSeriesBrush(g,c),S=f.processSeriesBrushes(p,u),d=new __.d.StiGanttSeriesElementGeom(b,l,p,f,s,h,S);if(null!=f.core.interaction){let e=this.getInteraction(A,f,p);d.interaction=e}b.createChildGeoms(),b.childGeoms.push(d);let m=f.core.getSeriesLabels();if(null!=m&&m.visible)if(m.is(__.d.StiValueAxisLabels)){let i=new PointD(t,a+o/2),s=new PointD(t+e,a+o/2);if(0==m.step||p%m.step==0){if(n<r){let e=r;r=n,n=e}let e=m.core.renderLabel(f,C,s,s,p,n,n,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w),t=m.core.renderLabel(f,C,i,i,p,r,r,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w);null!=t&&(x.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone())),null!=e&&(x.push(e),e.clientRectangle=this.checkLabelsRect(m,b,e.clientRectangle.clone()))}}else if(!m.is(__.d.StiNoneLabels)){let i,s,r=(s=m.is(__.d.StiCenterAxisLabels)?(i=new PointD(t,a+o/2),new PointD(t+e,a+o/2)):(i=new PointD(t+e/2,a),new PointD(t+e/2,a)),l);if(0==m.step||p%m.step==0){let e=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_),t=(e=null==e?"":e,m.core.renderLabel(f,C,s,i,p,l,r,e.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w));null!=t&&(x.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone()))}}g-=1,p++}}for(let e of x)b.createChildGeoms(),b.childGeoms.push(e)}get localizedName(){return StiLocalization.get("Chart","Gantt")}constructor(e){super(e)}},Stimulsoft.System.Collections.Dictionary);__.d.StiHeatmapSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}renderSeries(S,e,d,t){let m=__.d.StiChartHelper.globalDurationElement,c=__.d.StiChartHelper.globalBeginTimeElement,g=d.area,o=g.xAxis.info,a=g.yAxis.info,p=new Dictionary;for(let e=0;e<o.labelsCollection.length;e++){let l=o.labelsCollection[e];for(let n=0;n<a.labelsCollection.length;n++){let e=a.labelsCollection[n],t=l.position-o.step/2,i=e.position-a.step/2,s=new Rectangle(t,i,o.step,a.step),r=l.stripLine.valueObject[Stimulsoft.System.StiObject.stimulsoft]().toString()+` , `+e.stripLine.valueObject[Stimulsoft.System.StiObject.stimulsoft]().toString();p.containsKey(r)||p.add(r,s)}}let i=this.getAllValues();if(0==i.length)return;let _=i.min(),f=i.max(),C=new List;for(let e of t){let u=e;for(let h=0;h<u.values.length;h++){let o=u.values[h];if(h>=u.xValues.length||h>=u.yValues.length)break;let e=u.xValues[h],t=u.yValues[h],a=e+` , `+t;if(p.containsKey(a)){let s=p.get(a),r=o,e=this.getHeatmapColors(),t=__.d.StiHeatmapHelper.getColorFromRange(e,_,f,r),n=new StiSolidBrush(t),l=this.series.core.getSeriesBorderColor(h,u.values.length);if(0!=l.a||this.series.chart.area.colorEach||(l=Color.white),null!=this.series.chart&&null!=this.series.chart.style&&0<s.height){let e=new TimeSpan(c.ticks/u.values.length*h),t=new StiOpacityAnimation(m,e),i=new __.d.StiHeatmapSeriesElementGeom(d,r,h,n,l,u,s,t);null!=u.core.interaction&&(i.interaction=this.getInteraction(g,u,h)),d.createChildGeoms(),d.childGeoms.push(i)}let i=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCenterHeatmapLabels);if(null!=i&&i.visible){let e=i.core.renderLabel(this.series,S,h,r,this.getArgumentText(this.series,h),this.series.core.getTag(h),0,u.values.length,s,null);null!=e&&C.add(e)}}}}for(let e of C)d.createChildGeoms(),d.childGeoms.push(e);d.area.chart.seriesLabels.preventIntersection&&this.checkIntersectionLabels(d)}getArgumentText(e,t){let i=e,s=new StringBuilder;return i.xValues.length>t&&null!=i.xValues[t]&&s.append(i.xValues[t]),i.yValues.length>t&&null!=i.yValues[t]&&(s.append(e.seriesLabels.valueTypeSeparator),s.append(i.yValues[t])),s.toString()}getAllValues(){let t=new List;for(let e of this.series.chart.series.list)t.addRange(e.values);let i=new List;for(let e of t)null==e||i.contains(e)||i.add(e);return i}getHeatmapColors(){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29,t=null!=this.seriesColors?this.seriesColors:e.styleColors;return t}getSeriesBrush(e,t){return new StiSolidBrush(Color.transparent)}get localizedName(){return StiLocalization.get("Chart","Heatmap")}constructor(e){super(e)}};{class Uwa{constructor(e,t,i){this.value=e,this.series=t,this.index=i}}__.d.DataPictorial=Uwa,__.d.StiPictorialSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.brush=e.core.getColumnBrush(t))}get localizedName(){return StiLocalization.get("Chart","Pictorial")}getSingleSize(e){return new SizeD(this.singleSizeConst.width*e.options.zoom,this.singleSizeConst.height*e.options.zoom)}showEmptyGeom(t){for(let e of t)if(0<e.values.length)return!1;return!0}renderSeries(e,u,S,t){let d=this.getSingleSize(e),i=Math.floor(u.width/d.width),s=Math.floor(u.height/d.height),r=i*d.width,n=s*d.height,l=u.x+(u.width-r)/2,o=u.y+(u.height-n)/2,m=new RectangleD(l,o,r,n),a=i*s;if(this.showEmptyGeom(t)&&0<t.length){let e=new __.d.StiPictorialEmptySeriesElementGeom(S,1,0,new StiSolidBrush(Color.lightGray),t[0],StiFontIcons.Circle,new List([m]),new List([m]),m,null);return S.createChildGeoms(),void S.childGeoms.push(e)}let c=this.series.chart.area,g=[];for(let e of t){let i=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPictorialSeries),s=0;for(let t of e.values){let e=null==t?0:c.roundValues?Math.round(t):t;g.push(new Uwa(Math.abs(e),i,s)),s++}}let h=0;for(let e of g)h+=e.value;let p=a/h,_=(1<p&&c.actual&&(p=1),new PointD(m.x,m.y)),f=0;for(let l=0;l<g.length;l++){let e=Math.abs(g[l].value);if(0==e)continue;let t=p*e,i=c.roundValues?this.roundPictirialValue(t,f):t,s=(f+=t-i,i*d.width*d.height),r=s/d.height,o=r,a=[],h=[];do{let e=0,t=_,i=m.right-_.x,s=(_=i>o?(e=o,new PointD(_.x+o,_.y)):(e=i,new PointD(m.x,_.y+d.height)),o-=e,(t.x-m.x)/d.width),r=(s-Math.floor(s))*d.width,n=new RectangleD(t.x-r,t.y,e+r,d.height),l=new RectangleD(t.x,t.y,e,d.height);a.push(n),h.push(l)}while(0<o&&_.y<m.bottom);let n=new __.d.StiPictorialSeriesElementGeom(S,e,g[l].index,this.getSeriesBrush(l,g.length),g[l].series,g[l].series.icon,a,h,u,null);if(null!=g[l].series.core.interaction){let e=this.getInteraction(c,g[l].series,l);n.interaction=e}S.createChildGeoms(),S.childGeoms.push(n)}}roundPictirialValue(e,t){return 0<t?Math.ceil(e):t<0?Math.floor(e):Math.round(e)}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}constructor(e){super(e),this.singleSizeConst=new SizeD(25,25)}}}{let o=Stimulsoft.Base.Drawing.PointD;__.d.StiPictorialStackedSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness)}renderSeries(o,a,h,e){if(a.width<=0||a.height<=0)return;if(null==e||0==e.length||null==this.series.chart||null!=e&&!this.isNotNullValues(e))return h.createChildGeoms(),void h.childGeoms.push(new __.d.StiPictorialStackedEmptySeriesElementGeom(h,1,0,new StiSolidBrush(Color.fromArgb2(240,240,240)),e[0],StiFontIcons.Coffee,a,a,null));let u=e,t=this.getAllTrueValues(u),S=0,d=0;for(let e of u)null!=e.values&&(d+=e.values.length);let m=this.series.chart.seriesLabels,i=m.width*o.options.zoom,l=0,c=(0!=i?l=i:e.forEach(n=>{if(null!=m&&m.visible)for(let r=0;r<n.values.length;r++)if(n.values.length>r){let s=n.values[r];if(0==m.step||r%m.step==0){let e=m.core.getLabelText(n,s,this.getArgumentText(n,r),n.core.getTag(r),n.coreTitle,!1),t=StiFontGeom.changeFontSize(m.font,m.font.size*o.options.zoom),i=o.measureString(e,t);l=Math.max(l,Math.ceil(i.width))}}}),l*=1.1,m.is(__.d.StiOutsideLeftPictorialStackedLabels)?a=new Rectangle(a.x+l,a.y,a.width-l,a.height):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(a=new Rectangle(a.x,a.y,a.width-l,a.height)),e[0].icon),s=this.getRectangle(o,a,c),r=this.correctionMainPoint(s,c),g=(s=new Rectangle(s.x+r.x,s.y,s.width,s.height),a.clone()),p=4,_=((a=new Rectangle(a.x+r.x,a.y+r.y,a.width,a.height)).height>=a.width?m.is(__.d.StiOutsideLeftPictorialStackedLabels)?g=new Rectangle(a.x-l,s.y,l,s.height):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(g=new Rectangle(a.right-p,s.y,l,s.height)):m.is(__.d.StiOutsideLeftPictorialStackedLabels)?(g=new Rectangle(a.x-l,s.y,l,s.height),p=s.left-g.right-l-s.width*this.correctionAlfa):m.is(__.d.StiOutsideRightPictorialStackedLabels)&&(g=new Rectangle(s.right,s.y,l,s.height),p=a.right-s.right),s.height/this.getSumValues(t)*1.23),f=new List,C=a.x,w=s.y;for(let o=0;o<u.length;o++){let l=u[o];for(let n=0;n<l.values.length;n++){let e=l.values[n];if(0==e||null==e){S++;continue}let t=l.core.getSeriesBrush(S,d),i=(t=l.processSeriesBrushes(S,t),t=new StiSolidBrush(StiBrush.toColor(t)),_*Math.abs(e)),s=(o==u.length-1&&n==l.values.length-1&&(i=a.bottom-w),new Rectangle(C,w,a.width,i)),r=new __.d.StiPictorialStackedSeriesElementGeom(h,e,S,t,l,c,a,s,null);null!=r&&(null!=l.core.interaction&&(r.interaction=this.getInteraction(h.area,l,n)),h.createChildGeoms(),h.childGeoms.push(r)),w+=i,S++}}C=s.x,w=s.y;for(let e=S=0;e<u.length;e++){let l=u[e];for(let n=0;n<l.values.length;n++){let s=l.values[n];if(0==s||null==s){S++;continue}let r=_*Math.abs(s);if(null!=m&&m.visible&&(0==m.step||n%m.step==0)){let i=m.core[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPictorialStackedLabelsCoreXF);if(null!=i){let e=new Rectangle(g.x,w,g.width,r),t=i.renderLabel(l,o,S,s,this.getArgumentText(l,n),l.core.getTag(n),S,d,p,e);null!=t&&f.add(t)}}w+=r,S++}}for(let e of f)h.createChildGeoms(),h.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(m,h,e.clientRectangle)}isNotNullValues(e){for(let t of e)for(let e of t.values)if(null!=e)return!0;return!1}correctionMainPoint(e,t){let i=__.a.StiFontIconsHelper.getIconPadding(t),s=i[0],r=i[1],n=i[2],l=i[3];return new o((n-s)/100*e.width/2,(l-r)/100*e.height/2)}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString();return""}getRectangle(u,S,d){{let e=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),t=.76*this.measureFontSize(u,S,e,d);if(t<=0)return Rectangle.empty;let i=new StiFontGeom("Stimulsoft",t,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),s=__.a.StiFontIconsHelper.getContent(d),r=u.measureRotatedString2(s,i,S,this.getStringFormatGeom(u),StiRotationMode.CenterCenter,0,S.width),n=__.a.StiFontIconsHelper.getIconPadding(d),l=n[0],o=n[1],a=n[2],h=n[3];return new Rectangle(S.x+r.x+l/100*r.width,S.y+r.y+o/100*r.height,r.width*(1-(l+a)/100),r.height*(1-(o+h)/100))}}getStringFormatGeom(e){let t=e.getDefaultStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}measureFontSize(e,s,t,i){let r=__.a.StiFontIconsHelper.getContent(i),n=e.measureString(r,t),l=null;if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==l||l>i)&&(l=i)}else{let e=s.width/n.width*n.width/n.height;(null==l||l>e)&&(l=e)}return 1e3*l}getSumValues(t){let i=0;for(let e of t)i+=Math.abs(e);return i}getAllTrueValues(e){let i=[];for(let t of e)for(let e of t.values)i.push(e);return i}get localizedName(){return StiLocalization.get("Chart","PictorialStacked")}constructor(e){super(e),this.correctionAlfa=.22}}}{class StiPie3dSlice{get endAngle(){return(this.startAngle+this.sweepAngle)%360}drawLabels(i,s){let e=this.series.core.getPieSeriesLabels();if(null!=e&&!e.is(__.d.StiNoneLabels)&&e.visible){let t=e.core;if(null!=t){let e=t.renderLabel2(this.series,s,this);i.createChildGeoms(),i.childGeoms.push(e)}}}drawTopPieSliceGeom(e){let t=new __.d.StiPie3dMainSideSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle);e.createChildGeoms(),e.childGeoms.push(t)}drawBottomPieSliceGeom(e){let t=new Rectangle(this.rectPieSlilce.x,this.rectPieSlilce.y+this.pieHeight,this.rectPieSlilce.width,this.rectPieSlilce.height),i=new __.d.StiPie3dMainSideSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,t,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle);e.createChildGeoms(),e.childGeoms.push(i)}drawSides(e){let t=new __.d.StiPie3dSidesSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle,this.pieHeight,this.startSideExists,this.endSideExists);this.textPosition=t.getTextPosition(),e.createChildGeoms(),e.childGeoms.push(t)}split(e){if(this.startAngle==e||this.endAngle==e)return[this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()];let t=this.startAngle,i=(e-t+360)%360,s=this.getNewModified(t,i),r=(s.startSideExists=!0,s.endSideExists=!1,i=this.endAngle-e,this.getNewModified(e,i));return r.startSideExists=!1,r.endSideExists=!0,[s,r]}initTextPosition(e){let t=new __.d.StiPie3dSidesSeriesElementGeom(this,e,this.value,this.colorIndex,this.colorCount,this.series,this.rectPieSlilce,this.borderColor,this.seriesBrush,this.startAngle,this.sweepAngle,this.pieHeight,this.startSideExists,this.endSideExists);this.textPosition=t.getTextPosition()}getNewModified(e,t){let i=new StiPie3dSlice(this.area,this.value,this.argumentText,this.tag,this.index,this.series,this.rectPieSlilce,this.pieHeight,e,t,this.seriesBrush,this.borderColor,this.colorIndex,this.colorCount);return i.textPosition=this.textPosition,i}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){this.textPosition=new PointF(0,0),this.startSideExists=!0,this.endSideExists=!0,this.value=t,this.argumentText=i,this.tag=s,this.index=r,this.colorIndex=d,this.colorCount=m,this.area=e,this.series=n,this.rectPieSlilce=l,this.pieHeight=o,this.startAngle=a,this.sweepAngle=h,this.seriesBrush=u,this.borderColor=S,null!=n.core.interaction&&(this.interaction=new StiSeriesInteractionData(e,n,d))}}__.d.StiPie3dSlice=StiPie3dSlice}let StiPie3dSlice=__.d.StiPie3dSlice,Size=Stimulsoft.System.Drawing.Size;__.d.StiPie3dSeriesCoreXF=class extends __.d.StiPieSeriesCoreXF{renderSeries(e,t,i,s){this.initializePieSlices(i.area,t,s,e.options.zoom),null!=this.mPieSlices&&0!=this.mPieSlices.length||this.initializeEmptyPieSlices(i.area,t,s,e.options.zoom),this.drawBottoms(i),0<this.pieHeight&&this.drawSliceSides(i),this.drawTops(i),this.drawLabels(i,e)}drawLabels(i,s){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawLabels(i,s)}}drawTops(i){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawTopPieSliceGeom(i)}}drawSliceSides(r){if(null==this.mPieSlices)return;let n=this.mPieSlices[Stimulsoft.System.StiObject.stimulsoft]().toList();if(0==n.length)return;let t=null;if(90<this.mPieSlices[0].startAngle&&this.mPieSlices[0].startAngle<=270&&450<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle){let e=(t=n[0]).split(0);n[0]=e[0],t.initTextPosition(r),0<Math.abs(e[1].sweepAngle)&&n.insert(1,e[1])}else if(270<this.mPieSlices[0].startAngle&&450<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle||this.mPieSlices[0].startAngle<90&&270<this.mPieSlices[0].startAngle+this.mPieSlices[0].sweepAngle){let e=(t=n[0]).split(180);n[0]=e[1],t.initTextPosition(r),0<Math.abs(e[1].sweepAngle)&&n.add(e[0])}(t=n[0]).drawSides(r);let l=1,o=n.length-1;while(l<o){let e=n[o],t=e.startAngle-90,i=((180<t||t<0)&&(t=0),n[l]),s=(450-i.endAngle)%360;(s=180<s||s<0?0:s)>=t?(i.drawSides(r),++l):s<t&&(e.drawSides(r),--o)}(t=n[o]).drawSides(r)}drawBottoms(i){if(null==this.mPieSlices)return;for(let t=0;t<this.mPieSlices.length;t++){let e=this.mPieSlices[t];e.drawBottomPieSliceGeom(i)}}measureBoundingRect(t){let i=1.61,s=Rectangle.empty;if(t.width/t.height>i){let e=t.height*i;s=new Rectangle((t.width-e)/2,0,e,t.height)}else{let e=t.width/i;s=new Rectangle(0,(t.height-e)/2,t.width,e)}return s=new Rectangle(s.x+.025*s.width,s.y+.025*s.height,.95*s.width,.95*s.height)}initializePieSlices(u,e,t,S){let d=this.measureBoundingRect(e),m=new List,c=this.getGradPerValue(t),i=t[0],g=i.startAngle%360,p=this.getColorCount(t),_=(this.pieHeight=i.options3D.height*S,this.getLargestDisplacement(S)),f=this.getTopEllipseSize(d,S),C=0,w=-1;for(let h of t[Stimulsoft.System.StiObject.stimulsoft]().toList())for(let a=0;a<h.values.length;a++){let o=h.values[a];if(0!=o&&null!=o){let t=c*Math.abs(o),i=h.brush;if(h.allowApplyBrush&&(i=h.core.getSeriesBrush(C,p),i=h.processSeriesBrushes(a,i)),0<=h.options3D.opacity&&h.options3D.opacity<1){let e=StiBrush.toColor(i);e=Color.fromArgb(255*h.options3D.opacity,e.r,e.g,e.b),i=new StiSolidBrush(e)}let e=h.borderColor,s=(h.allowApplyBorderColor&&(e=h.core.getSeriesBorderColor(C,p)),this.getLargestDisplacement(S)),r=this.getLargestDisplacement(S);if(0<s){let e=this.getSliceDisplacement(g+t/2,s,r);s=e.width,r=e.height}let n=new Rectangle(d.x+2*_+s,d.y+2*_+r,f.width,f.height),l=new StiPie3dSlice(u,o,this.getArgumentText(h,a),h.core.getTag(a),a,h,n,this.pieHeight,g%360,t,i,e,C,p);-1<w||g<=270&&270<g+t||270<=g&&630<g+t?(++w,m.insert(w,l)):m.add(l),g+=t}C++,360<g&&(g-=360)}this.mPieSlices=m}initializeEmptyPieSlices(h,e,t,u){let S=this.measureBoundingRect(e),d=new List,i=new StiChart,m=(i.isAnimation=!1,new __.d.StiPie3dSeries),s=(m.chart=i,[1,3]),c=360/4,g=0,p=(this.pieHeight=20*u,this.getLargestDisplacement(u)),_=this.getTopEllipseSize(S,u),f=-1;for(let a=0;a<s.length;a++){let o=s[a];if(0!=o&&null!=o){let t=c*Math.abs(o),e=new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),i=Color.lightGray,s=this.getLargestDisplacement(u),r=this.getLargestDisplacement(u);if(0<s){let e=this.getSliceDisplacement(g+t/2,s,r);s=e.width,r=e.height}let n=new Rectangle(S.x+2*p+s,S.y+2*p+r,_.width,_.height),l=new StiPie3dSlice(h,o,"",null,a,m,n,this.pieHeight,g%360,t,e,i,0,0);-1<f||g<=270&&270<g+t||270<=g&&630<g+t?(++f,d.insert(f,l)):d.add(l),g+=t}360<g&&(g-=360)}this.mPieSlices=d}getTopEllipseSize(e,t){let i=this.getLargestDisplacement(t),s=e.width-4*i,r=e.height-4*i-this.pieHeight;return s<1&&(s=1),r<1&&(r=1),new Size(s,r)}getSliceDisplacement(e,t,i){if(0==t)return Size.empty;let s=t*Math.cos(e*Math.PI/180),r=i*Math.sin(e*Math.PI/180);return new Size(s,r)}getLargestDisplacement(e){return this.series.options3D.distance*e}get localizedName(){return"3D "+StiLocalization.get("Chart","Pie")}constructor(e){super(e)}},__.d.StiRadarSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&null!=i.marker&&(i.marker.brush=new StiSolidBrush(StiColorUtils.light(t,100)),i.marker.borderColor=StiColorUtils.dark(t,100))}getPointsList(e,n,t){let i=[],l=n.area,o=l.core;for(let r of t){let s=[],e=(i.push(s),0);for(let i of o.points){let t=e<r.values.length?r.values[e]:null;if(null==(t=null==t&&r.showNulls?0:t))s.push(null);else{null!=t&&(t=(t-l.yAxis.info.minimum)*l.yAxis.info.dpi);let e=new PointD(o.centerPoint.x+t*i.x,o.centerPoint.y+t*i.y);e.x-=n.clientRectangle.x,e.y-=n.clientRectangle.y,s.push(e)}e++}}return i}renderSeries(l,e,o,t){if(null==t||0==t.length||null==this.series.chart)return;let a=this.getPointsList(this.series.values,o,t),h=this.getPointsList(this.series.valuesStart,o,t),u=0;for(let n of t){let e=a[u],t=(e.push(e[0]),n.arguments.map(e=>e)),i=((t=t.length<e.length-1?e.map((e,t)=>t.toString()):t).push(t[0]+"_e"),h[u]),s=(i.push(i[0]),new PointD(o.clientRectangle.width/2,o.clientRectangle.height/2)),r=new __.d.StiSeriesPointsInfo;r.pointsFrom=i.map(e=>null!=e?e:s),r.points=e.map(e=>null!=e?e:s),r.pointsIds=t.map(e=>e),this.renderAreas(l,n,r,o),this.renderLines(l,n,r,o),e.splice(e.length-1,1),this.renderPoints(l,n,e,o),e.splice(e.length-1,1),u++}}renderAreas(e,t,i,s){}renderLines(e,t,i,s){}renderPoints(n,l,e,o){let a=0;for(let r of e){if(null!=r){let i=a<l.values.length?l.values[a]:null,e=new __.d.StiRadarPointSeriesElementGeom(o,i,a,l.marker.brush,l,r,n.options.zoom),s=(null!=o&&(o.createChildGeoms(),o.childGeoms.push(e)),l.core.getSeriesLabels());if(null!=s&&s.visible&&null!=i){let t=r;if(0==s.step||a%s.step==0){let e=s.core.renderLabel(l,n,t,t,a,i,i,this.getArgument(l,a),l.core.getTag(a),0,1,o.clientRectangle);null!=e&&(o.createChildGeoms(),o.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(s,o,e.clientRectangle.clone()))}}}a++}}getArgument(t,i){let s,r,n=t.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();if(t.arguments.length>i){let e=null!=(r=null==(s=t.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(i,n))?void 0:s.toString())?r:"";return e.replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}return""}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return new StiSolidBrush(StiColorUtils.dark(Color.white,20));return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return Color.black;return i}constructor(e){super(e)}},__.d.StiRadarAreaSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t),i.lineColor=t)}get localizedName(){return StiLocalization.get("Chart","RadarArea")}renderLines(e,t,i,s){let r=new __.d.StiLineSeriesGeom(s,i,t);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}renderAreas(e,t,i,s){let r=new __.d.StiRadarAreaSeriesGeom(t,i);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}constructor(e){super(e)}},__.d.StiRadarLineSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.lineColor=t)}get localizedName(){return StiLocalization.get("Chart","RadarLine")}renderLines(e,t,i,s){let r=new __.d.StiLineSeriesGeom(s,i,t);null!=s&&(s.createChildGeoms(),s.childGeoms.push(r))}constructor(e){super(e)}},__.d.StiRadarPointSeriesCoreXF=class extends __.d.StiRadarSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRadarPointSeries);i.allowApplyStyle&&!e.core.markerVisible&&(i.marker.visible=!0)}get localizedName(){return StiLocalization.get("Chart","RadarPoint")}constructor(e){super(e)}},__.d.StiRangeBarSeriesCoreXF=class extends __.d.StiClusteredColumnSeriesCoreXF{renderSeries(C,w,b,y){let x,A,L=[];if(null==y||0==y.length||null==this.series.chart)return;let T=b.area,D=T.axisCore.getDividerX(),v=T.axisCore.getDividerY();for(let f of y){let e=f.values.length,t=(f.valuesEnd.length<e&&(e=f.valuesEnd.length),f.arguments.length),c=Math.min(e,t),g=T.reverseHor?c-1:0,p=0,_=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getKeys();while(p<c){let r=f.values[p],n=f.valuesEnd[p],e=(null==r&&(r=0),null==n&&(n=0),Math.abs(r-n)*T.yAxis.info.dpi),t=v,i=Math.max(r,n),s=(T.reverseVert?t+=Math.min(r,n)*T.yAxis.info.dpi:t-=i*T.yAxis.info.dpi,T.xAxis.info.stripLines.count-1);for(let e of T.xAxis.info.stripLines.list){if((null==(x=f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_))?void 0:x.toString())==(null==(A=e.valueObject)?void 0:A.toString()))break;s--}s=T.xAxis.info.stripLines.count-1-s;let l=(T.xAxis.info.step-T.xAxis.info.step*(1-f.width))/y.length,o=D-l/2,a=(o+=T.xAxis.info.step*s,new RectangleD(o,t,l,e)),h=RectangleD.fromLTRB(a.left,a.bottom,a.right,a.bottom),u=f.core.getSeriesBrush(g,c),S=f.processSeriesBrushes(g,u),d=new __.d.StiRangeBarElementGeom(b,i,p,f,S,a,h);if(null!=f.core.interaction){let e=this.getInteraction(T,f,p);d.interaction=e}b.createChildGeoms(),b.childGeoms.push(d);let m=f.core.getSeriesLabels();if(null!=m&&m.visible){let i=new PointD(o+l/2,t),s=new PointD(o+l/2,t+e);if(0==m.step||p%m.step==0){if(n<r){let e=r;r=n,n=e}let e=m.core.renderLabel(f,C,s,s,p,r,r,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w),t=m.core.renderLabel(f,C,i,i,p,n,n,f.arguments[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(p,_).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator),f.core.getTag(p),0,1,w);null!=t&&(L.push(t),t.clientRectangle=this.checkLabelsRect(m,b,t.clientRectangle.clone())),null!=e&&(L.push(e),e.clientRectangle=this.checkLabelsRect(m,b,e.clientRectangle.clone()))}}g=T.reverseHor?g-1:g+1,p++}}for(let e of L)b.createChildGeoms(),b.childGeoms.push(e)}get localizedName(){return StiLocalization.get("Chart","RangeBar")}constructor(e){super(e)}},__.d.StiRangeSeriesCoreXF=class extends __.d.StiLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,l=f.xAxis.core.getStartFromZero();for(let m of e){let r=Math.min(m.values.length,m.valuesEnd.length),h=StiArray.create(PointD,r,!0),u=StiArray.create(PointD,r,!0),n=StiArray.create(String,r,!0);m.valuesEnd.length<r&&(r=m.valuesEnd.length);for(let s=0;s<r;s++){let e=_.reverseHor?m.values[r-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[r-s-1]:m.valuesEnd[s],i=(m.showZeros||0!=e||(e=null),m.showZeros||0!=t||(t=null),e==t?h[s]=u[s]=this.getYPoint(e,m,_,s):(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s)),(l?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);n[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let e=new __.d.StiSeriesPointsInfo,t=(e.points=h,e.pointsEnd=u,e.pointsIds=n,new __.d.StiSeriesPointsInfo),S=(t.points=u,t.pointsIds=n,t.additionalSeriesId="_e",this.renderAreas2(p,e,m),e.pointsZeroConnect=this.getPointsZeroConnect(m,m.values,f),e.pointsNullConnect=this.getPointsNullConnect(m,m.values,f),this.renderLines2(c,p,e,m.values,m),t.pointsZeroConnect=this.getPointsZeroConnect(m,m.valuesEnd,f),t.pointsNullConnect=this.getPointsNullConnect(m,m.valuesEnd,f),this.renderLines2(c,p,t,m.valuesEnd,m),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<r;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}renderLines2(t,i,s,e,r){if(null!=s.points&&1<s.points.length){let e=new __.d.StiLineSeriesGeom(i,s,r);i.createChildGeoms(),i.childGeoms.push(e),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers2(t,i,s.points,e,r)}renderMarkers2(l,o,e,a,h){let u=o.area,S=h;if(0==e.length)return;let d=!S.marker.visible&&0<S.toolTips.length;if(null!=S.marker&&(S.marker.visible||d)){let r=0,n=Math.min(S.values.length,S.valuesEnd.length);for(let s of e){if(null!=s){let e=u.reverseHor?a[n-r-1]:a[r],t=(null==e&&S.showNulls&&(e=0),o.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),s);if(i.x+=o.clientRectangle.x,i.y+=o.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(h,r,e,s,S.marker,S.showShadow,l.options.zoom,d);if(null!=t){if(null!=S.core.interaction){let e=this.getInteraction(u,S,r);t.interaction=e}o.createChildGeoms(),o.childGeoms.push(t)}}}r++}}}getYPoint(t,i,s,e){let r,n=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[e+1]:s.xAxis.info.stripPositions[e];if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(n,e)}else r=null;return r}renderAreas2(l,o,a){if(null==o.points||o.points.length<=1)return;if(a.showNulls){let e=new __.d.StiRangeSeriesGeom(l,o,a);null!=e&&(l.createChildGeoms(),l.childGeoms.push(e))}else{let s=[],r=[],n=[];for(let i=0;i<o.pointsIds.length;i++){let e=o.points[i],t=o.pointsEnd[i];if(null==e&&null!=t?s.push(t):s.push(e),null!=e&&null==t?r.push(e):r.push(t),null==e&&null==t||n.push(o.pointsIds[i]),null==e&&null==t||i==o.pointsIds.length-1){let e=new __.d.StiSeriesPointsInfo,t=(e.points=s,e.pointsEnd=r,e.pointsIds=n,new __.d.StiRangeSeriesGeom(l,e,a));null!=t&&(l.createChildGeoms(),l.childGeoms.push(t)),s=[],r=[],n=[]}}}}get localizedName(){return StiLocalization.get("Chart","Range")}constructor(e){super(e)}},__.d.StiSplineRangeSeriesCoreXF=class extends __.d.StiSplineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,n=f.xAxis.core.getStartFromZero();for(let m of e){let e=m.values.length,h=(m.valuesEnd.length<e&&(e=m.valuesEnd.length),StiArray.create(PointD,e,!0)),u=StiArray.create(PointD,e,!0),r=StiArray.create(String,e,!0);for(let s=0;s<e;s++){let e=_.reverseHor?m.values[m.values.length-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[m.values.length-s-1]:m.valuesEnd[s],i=(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s),(n?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);r[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let t=new __.d.StiSeriesPointsInfo,i=(t.points=h,t.pointsEnd=u,t.pointsIds=r,new __.d.StiSeriesPointsInfo),S=(i.points=u,i.pointsIds=r,i.additionalSeriesId="_e",this.renderAreas2(p,t,m),t.pointsZeroConnect=this.getPointsZeroConnect(m,m.values,f),t.pointsNullConnect=this.getPointsNullConnect(m,m.values,f),this.renderLines(c,p,t),i.pointsZeroConnect=this.getPointsZeroConnect(m,m.valuesEnd,f),i.pointsNullConnect=this.getPointsNullConnect(m,m.valuesEnd,f),this.renderLines(c,p,i),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<e;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),m.core.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}getYPoint(t,i,s,e){let r,n=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[e+1]:s.xAxis.info.stripPositions[e];if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(n,e)}else r=null;return r}renderAreas2(l,o,a){if(null==o.points||o.points.length<=1)return;if(a.showNulls){let e=new __.d.StiSplineRangeSeriesGeom(l,o,a);null!=e&&(l.createChildGeoms(),l.childGeoms.push(e))}else{let s=[],r=[],n=[];for(let i=0;i<o.pointsIds.length;i++){let e=o.points[i],t=o.pointsEnd[i];if(null==e&&null!=t?s.push(t):s.push(e),null!=e&&null==t?r.push(e):r.push(t),null==e&&null==t||n.push(o.pointsIds[i]),null==e&&null==t||i==o.pointsIds.length-1){let e=new __.d.StiSeriesPointsInfo,t=(e.points=s,e.pointsEnd=r,e.pointsIds=n,new __.d.StiSplineRangeSeriesGeom(l,e,a));null!=t&&(l.createChildGeoms(),l.childGeoms.push(t)),s=[],r=[],n=[]}}}}get localizedName(){return StiLocalization.get("Chart","SplineRange")}constructor(e){super(e)}},__.d.StiSteppedRangeSeriesCoreXF=class extends __.d.StiSteppedLineSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getAreaBrush(t))}renderSeries(c,g,p,e){if(null==e||0==e.length||null==this.series.chart)return;let _=p.area,f=p.area,l=f.xAxis.core.getStartFromZero();for(let m of e){let r=Math.min(m.values.length,m.valuesEnd.length),h=StiArray.create(PointD,r,!0),u=StiArray.create(PointD,r,!0),n=StiArray.create(String,r,!0);m.valuesEnd.length<r&&(r=m.valuesEnd.length);for(let s=0;s<r;s++){let e=_.reverseHor?m.values[r-s-1]:m.values[s],t=_.reverseHor?m.valuesEnd[r-s-1]:m.valuesEnd[s],i=(h[s]=this.getYPoint(e,m,_,s),u[s]=this.getYPoint(t,m,_,s),(l?f.xAxis.info.stripLines.getByIndex(s+1):f.xAxis.info.stripLines.getByIndex(s)).valueObject);n[s]=null==i?"":i[Stimulsoft.System.StiObject.stimulsoft]().toString()}let e=new __.d.StiSeriesPointsInfo,t=(e.points=h,e.pointsIds=n,e.pointsEnd=u,new __.d.StiSeriesPointsInfo),S=(t.points=u,t.pointsIds=n,t.additionalSeriesId="_e",this.renderAreas2(c,p,e,m),this.renderLines2(c,p,e,m.values,m),this.renderLines2(c,p,t,m.valuesEnd,m),0),d=m.core.getSeriesLabels();if(null!=d&&d.visible)for(let a=0;a<r;a++){let i=f.reverseHor?m.values[m.values.length-a-1]:m.values[a],s=f.reverseHor?m.valuesEnd[m.valuesEnd.length-a-1]:m.valuesEnd[a],r=(null==i&&m.showNulls&&(i=0),i=null==s&&m.showNulls?0:i),n=(_.reverseVert&&null!=i&&(r=-r),s),l=(_.reverseVert&&null!=s&&(n=-n),S=m.yAxis==__.d.StiSeriesYAxis.LeftYAxis?_.axisCore.getDividerY():_.axisCore.getDividerRightY(),h[a]),o=u[a];if(null!=l){let t=new PointD(l.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(l,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,r,i,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),this.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}if(null!=o){let t=new PointD(o.x,S);if(0==d.step||a%d.step==0){let e=d.core.renderLabel(m,c,this.correctPoint(o,g,m.labelsOffset*c.options.zoom),this.correctPoint(t,g,m.labelsOffset*c.options.zoom),a,n,s,_.axisCore.getArgumentLabel(_.xAxis.info.stripLines.getByIndex(a),m),this.getTag(a),0,1,g);null!=e&&(p.createChildGeoms(),p.childGeoms.push(e),e.clientRectangle=this.checkLabelsRect(d,p,e.clientRectangle.clone()))}}}}}renderAreas2(e,t,i,s){if(null==i.points||i.points.length<=1)return;if(null==i.pointsEnd||i.pointsEnd.length<=1)return;let r=new __.d.StiSteppedRangeSeriesGeom(t,i,s);null!=r&&(t.createChildGeoms(),t.childGeoms.push(r))}renderLines2(t,i,s,e,r){let n=r;if(1<s.points.length||n.pointAtCenter&&0<s.points.length){let e=new __.d.StiSteppedLineSeriesGeom(i,s,r);null!=e&&(i.createChildGeoms(),i.childGeoms.push(e)),null!=this.interaction&&(e.interactions=this.getInteractions(t,i,s.points))}this.renderMarkers2(t,i,s.points,e,r)}renderMarkers2(n,l,e,o,a){let h=l.area,u=a;if(0==e.length)return;let S=!u.marker.visible&&0<u.toolTips.length;if(null!=u.marker&&(u.marker.visible||S)){let r=0;for(let s of e){if(null!=s){let e=h.reverseHor?o[u.values.length-r-1]:o[r],t=(null==e&&u.showNulls&&(e=0),l.view.clientRectangle.clone()),i=(t.x=0,t.y=0,t.inflate(10,10),new PointD(s.x,s.y));if(i.x+=l.clientRectangle.x,i.y+=l.clientRectangle.y,t.contains(i.x,i.y)){let t=new __.d.StiMarkerGeom(a,r,e,s,u.marker,u.showShadow,n.options.zoom,S);if(null!=t){if(null!=u.core.interaction){let e=this.getInteraction(h,u,r);t.interaction=e}l.createChildGeoms(),l.childGeoms.push(t)}}}r++}}}getYPoint(t,i,s,e){let r,n=s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getKeys(),l=s.xAxis.core.getStartFromZero()?s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(e+1,n):s.xAxis.info.stripPositions[Stimulsoft.System.StiObject.stimulsoft]().getByIndex(e,n);if(null!=t||i.showNulls){null==t&&i.showNulls&&(t=0),s.reverseVert&&null!=t&&(t=-t);let e=0;e=i.yAxis==__.d.StiSeriesYAxis.LeftYAxis?-t*s.yAxis.info.dpi+s.axisCore.getDividerY():-t*s.yRightAxis.info.dpi+s.axisCore.getDividerRightY(),r=new PointD(l,e)}else r=null;return r}get localizedName(){return StiLocalization.get("Chart","SteppedRange")}constructor(e){super(e)}},__.d.StiScatterLineSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiLineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","ScatterLine")}constructor(e){super(e)}},__.d.StiScatterSplineSeriesCoreXF=class extends __.d.StiScatterSeriesCoreXF{renderLines(e,t,i){if(null==i.points||i.points.length<=1)return;let s=new __.d.StiScatterSplineSeriesGeom(t,i,this.series);null!=s&&(t.createChildGeoms(),t.childGeoms.push(s)),this.renderMarkers(e,t,i.points)}get localizedName(){return StiLocalization.get("Chart","ScatterSpline")}constructor(e){super(e)}};{class wIa extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(p,_,f,C){if(null==C||0==C.length||null==this.series.chart)return;let w=[],b=[],y=[],x=f.area,i=this.series,r=x.xAxis.core.getStartFromZero(),A=x.axisCore.getDividerY(),L=x.yAxis.info.dpi,T=(this.series.yAxis==__.d.StiSeriesYAxis.RightYAxis&&(L=x.yRightAxis.info.dpi),new List),s=0;for(let i=0;i<C.length;i++)for(let t=0;t<C[i].values.length;t++){let e;T.length>t?e=T[t]:(e=new Array(C.length),T.add(e)),e[i]=s,s++}let D=s;for(let g=0;g<x.axisCore.valuesCount;g++){let e=r?x.xAxis.info.stripPositions[g+1]:x.xAxis.info.stripPositions[g],l=(e-=x.xAxis.info.step/2,x.xAxis.info.step-x.xAxis.info.step*(1-i.width)),d=e+(x.xAxis.info.step-l)/2,m=0,c=0;if(0==C.length)return;let t=C[0].showShadow;if(t=C[0].chart.isAnimation&&!C[0].chart.report.isDesigning?!1:t){for(let i=0;i<C.length;i++)if(g<C[i].values.length){let e=C[i],t=x.reverseHor?e.values[e.values.length-g-1]:e.values[g];null!=t&&(0<(t=x.reverseVert?-t:t)?m+=t:c+=t)}if(0<m){let e=new RectangleD(d,-m*L+A,l,m*L),t=new __.d.StiStackedColumnSeriesShadowElementGeom(C[0],e,!0,!1);f.createChildGeoms(),f.childGeoms.push(t)}if(c<0){let e=new RectangleD(d,A,l,-c*L),t=(e.y-=7,e.height+=7,new __.d.StiStackedColumnSeriesShadowElementGeom(C[0],e,!1,!0));f.createChildGeoms(),f.childGeoms.push(t)}}m=0,c=0;let s=new List;for(let i=0;i<C.length;i++){let t=C[i];if(g<t.values.length){let e=x.reverseHor?t.values[t.values.length-g-1]:t.values[g];s.add({key:i,value:e})}else s.add({key:i,value:0})}for(let e of s=s.orderBy(e=>e.value)){let u=e.value;if(null==u)continue;let n=e.key,S=C[n];if(g<S.values.length){let o=T[g][n],a=x.reverseHor?C[Stimulsoft.System.StiObject.stimulsoft]().toList().cast().sum(e=>wIa.getValueFromArray(e.values,S.values.length-g-1)):C[Stimulsoft.System.StiObject.stimulsoft]().toList().cast().sum(e=>wIa.getValueFromArray(e.values,g)),e=(u=x.reverseVert&&null!=u?-u:u)*L,t=-e+A,h=(0<u?t-=m:(t=c+A,e=-e),new RectangleD(d,t,l,e)),r=(h=this.correctRect(h,_),u<0?new RectangleD(h.left,h.top,h.right,h.top):new RectangleD(h.left,h.bottom,h.right,h.bottom)),i=f.view.clientRectangle.clone(),s=(i.x=0,i.y=0,h.clone());if(s.x+=f.clientRectangle.x,s.y+=f.clientRectangle.y,s.right>i.x&&s.x<i.right||this.series.chart.area.xAxis.range.auto){let s=S.core.getSeriesBrush(o,D);if(s=S.processSeriesBrushes(g,s),0!=h.width&&0<StiMath.round2(h.height,2)&&null!=s){let t=S.core.getSeriesBorderColor(o,D),e=new __.d.StiStackedColumnSeriesElementGeom(f,u,g,s,t,S,h,r),i=(null!=S.core.interaction&&(e.interaction=this.getInteraction(x,S,g)),b.push(e),y[n]);if(null!=i)i.rectangles.add(h);else{let e=StiBrush.toColor(s).changeAlpha(150);(i=new __.d.StiRibbonSeriesMetadata(new StiSolidBrush(e),t)).rectangles.add(h),y[n]=i}}let l=S.core.getSeriesLabels();if(null!=l&&l.visible&&(0<StiMath.round2(h.height,2)||l.showNulls)){let s=new PointD(h.x+h.width/2,h.y),r=new PointD(h.x+h.width/2,h.bottom),n=x.reverseHor?S.values[S.values.length-g-1]:S.values[g];if(x.reverseVert&&null!=n&&(n=-u),u<0&&(r.y=h.y,s.y=h.bottom),0==l.step||g%l.step==0){let e=u,t=(S.isTotalLabel&&(e=n=a),x.xAxis.startFromZero?g+1:g),i=l.core.renderLabel(S,p,s,r,g,e,n,x.axisCore.getArgumentLabel(x.xAxis.info.stripLines.getByIndex(t),S),S.core.getTag(g),o,D,_);null!=i&&w.push(i)}}}0<u?m+=e:c+=e}}}for(let s=0;s<y.length;s++){let i=y[s];if(i){let e=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks+__.d.StiChartHelper.globalBeginTimeElement.ticks/(s+1)*s),t=new __.d.StiRibbonSeriesGeom(f,i,C[s],e);f.createChildGeoms(),f.childGeoms.push(t)}}for(let t=b.length-1;0<=t;t--){let e=b[t];f.createChildGeoms(),f.childGeoms.push(e)}for(let e of w)f.createChildGeoms(),f.childGeoms.push(e),e.ClientRectangle=this.checkLabelsRect(e.SeriesLabels,f,e.ClientRectangle)}static getValueFromArray(e,t){if(null==e||t<0||t>=e.length)return 0;return e[t]}correctRect(t,i){if(t.y>i.height||t.bottom<0)return t.height=0,t;if(t.top<0){let e=-t.top;t.y+=e,t.height-=e}if(i.height<t.bottom){let e=t.bottom-i.height;t.height-=e}return t}getSeriesBrush(e,t){let i=this.series,s=super.getSeriesBrush(e,t);if(null==s)return i.brush;return s}getSeriesBorderColor(e,t){let i=this.series,s=super.getSeriesBorderColor(e,t);if(null==s)return i.borderColor;return s}get localizedName(){return StiLocalization.get("Chart","Ribbon")}constructor(e){super(e)}}__.d.StiRibbonSeriesCoreXF=wIa}let DataTable=Stimulsoft.System.Data.DataTable,DataColumn=Stimulsoft.System.Data.DataColumn,StiSimpleBorder=(__.d.StiSunburstSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.borderThickness=e.core.seriesBorderThickness)}renderSeries(r,s,n,i){let e,l,o=this.getDataTable(i);if(o.rows.count<1){let e=this.getRadius(r,s),t=this.getPointCenter(s),i=new Rectangle(t.x-e,t.y-e,2*e,2*e);return n.createChildGeoms(),void n.childGeoms.push(new __.d.StiSunburstEmptySeriesElementGeom(i))}let a=o.columns.count-1;for(let t=0;t<o.rows.count;t++){for(let e=0;e<i.length;e++)0<i.length&&i[e].arguments.length>t?o.rows.getByIndex(t).setValue(e+1,i[e].arguments[t]):o.rows.getByIndex(t).setValue(e+1,null);0<i.length&&i[0].values.length>t?o.rows.getByIndex(t).setValue(a,i[0].values[t]):o.rows.getByIndex(t).setValue(a,null)}let h=new Dictionary;for(let i of o.rows.list){let t=null!=(l=null==(e=i.gett(1))?void 0:e.toString())?l:"";if(h.contains(t)){let e=h.get(t);e.loadDataRow(i.itemArray)}else{let e=o.clone();e.loadDataRow(i.itemArray),h.add(t,e)}}let u=this.getRadius(r,s),S=this.getPointCenter(s),d=this.getGradPerValue(o);if(isNaN(d)||Number.POSITIVE_INFINITY==d||Number.NEGATIVE_INFINITY==d)return;let m=0,c=0,g=new List;for(let s of h.values){let e=this.getSumColumn(s,"Value"),t=d*e,i={ref:g};this.renderComputeSeries(r,n,s,S,u,m,d,c,h.count,i),g=i.ref,m+=t,c++}for(let e of g)null!=e&&(n.createChildGeoms(),n.childGeoms.push(e))}renderComputeSeries(n,l,o,a,e,h,u,S,d,m){let c=1,g=e/(o.columns.count-1);for(let r=1;r<o.columns.count-1;r++){let s=new Dictionary;for(let e of o.rows.list){let t=e.gett(r),i=(null==t&&(t=""),StiValueHelper.tryToNullableNumber(e.gett(o.columns.count-1)));if(s.contains(t)&&null!=i){let e=StiValueHelper.tryToNullableNumber(s.get(t));s.set(t,Math.abs(e)+Math.abs(i))}else if(StiString.isNullOrEmpty(t.toString())){let e="*StiGuid:"+StiGuidUtils.newGuid();s.set(e,i)}else s.set(t,i)}let e=s.keys.toArray(),t=s.values.toArray(),i=(this.renderLevelSeries(n,l,e,t,a,g*c,g*(c+1),h,u,S,d,c),this.renderLevelSeriesLebels(n,e,t,a,g*c,g*(c+1),h,u,c));m.ref.addRange(i),c++}}renderLevelSeries(e,r,n,t,l,o,a,h,u,S,d,m){let c=this.series.core.getSeriesBorderColor(S,d),g=this.series.core.getSeriesBrush(S,d),p=t,_=(0==c.a&&(c=Color.white),__.d.StiChartHelper.globalBeginTimeElement);for(let s=0;s<p.length;s++){let t=p[s],e=n[s],i=u*Math.abs(t);if(!StiString.isNullOrEmpty(e.toString())&&!e.toString().startsWith("*StiGuid:")){let e=this.renderSunburstElement(l,o,a,c,g,h,i,t,m,S,s,r,new TimeSpan(_.ticks/(d+p.length)*(s+S)));null!=e&&(r.createChildGeoms(),r.childGeoms.push(e))}h+=i}}renderLevelSeriesLebels(a,e,t,h,u,S,d,m,i){let c=new List;for(let o=0;o<t.length;o++){let r=t[o],n=e[o],l=m*Math.abs(r);if(!StiString.isNullOrEmpty(n.toString())&&!n.toString().startsWith("*StiGuid:")){let e=null,t=i-1<this.series.chart.series.count?this.series.chart.series.getByIndex(i-1):this.series;if(t.showSeriesLabels==__.d.StiShowSeriesLabels.FromChart&&(e=this.series.chart.seriesLabels),t.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries&&(e=t.seriesLabels),null!=this.series.chart&&null!=e&&e.visible){let s=e.as(__.d.IStiPieSeriesLabels);if(null!=s&&s.visible&&(0==s.step||o%s.step==0)){let e,t={ref:e},i=s.core.renderLabel(this.series,a,h,u,S,d+l/2,o,Math.abs(r),r,n,this.getTag(o),!1,0,1,m,t,!1,0);e=t.ref,c.push(i)}}}d+=l}return c}renderSunburstElement(e,t,i,s,r,n,l,o,a,h,u,S,d){if(0==l||null==l)return null;let m=new Rectangle(e.x-t,e.y-t,2*t,2*t),c=new Rectangle(e.x-i,e.y-i,2*i,2*i);if(m.width<=0&&m.height<=0)return null;let g=new List,p=(g.push(new StiArcSegmentGeom(m,n,l)),g.push(new StiLineSegmentGeom(this.getPoint(e,t,n+l),this.getPoint(e,i,n+l))),g.push(new StiArcSegmentGeom(c,n+l,-l)),g.push(new StiLineSegmentGeom(this.getPoint(e,i,n),this.getPoint(e,t,n))),new __.d.StiSunburstSeriesElementGeom(S,o,a,h,u,this.series,m,c,g,s,r,n,n+l,t,i,d));return p}getPoint(e,t,i){let s=Math.PI*i/180;return new PointF(e.x+Math.cos(s)*t,e.y+Math.sin(s)*t)}getDataTable(e){let i=new DataTable,t=new DataColumn("Id",Number);i.columns.add(t);for(let t=0;t<e.length;t++){let e=new DataColumn("Argument-"+t.toString(),String);i.columns.add(e)}let s=new DataColumn("Value",Number),r=(i.columns.add(s),this.getCountRow(e));for(let e=0;e<r;e++){let e=i.newRow();i.rows.add(e)}return i}getCountRow(t){let i=0;for(let e of t)i=Math.max(i,e.arguments.length);return i}getGradPerValue(e){let t=this.getSumColumn(e,"Value");return 360/t}getRadius(e,t){return.95*Math.min(t.width/2,t.height/2)}getPointCenter(e){return new PointF(e.width/2,e.height/2)}getSumColumn(e,i){let s=0;for(let t of e.rows.toList()){let e=t.gett(i);null!=e&&!isNaN(e)||(e=0),s+=Math.abs(e)}return s}get localizedName(){return StiLocalization.get("Chart","Sunburst")}constructor(e){super(e)}},__.d.StiTreemapSeriesCoreXF=class extends __.d.StiSeriesCoreXF{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.brush=e.core.getColumnBrush(t),i.borderColor=e.core.getColumnBorder(t),i.borderThickness=e.core.seriesBorderThickness,i.cornerRadius=e.core.seriesCornerRadius)}renderSeries(o,e,a,t){let h=__.d.StiChartHelper.globalDurationElement,u=__.d.StiChartHelper.globalBeginTimeElement,S=[];for(let e of this.series.values)S.push(StiValueHelper.tryToNumber(e));e.inflate(-1,-1);let i=this.series.chart.area.core.normalizeDataForArea(S,e.width*e.height),d=this.series.chart.area.core.squarify(i,[],e,[]),m=0;for(let e of t){if(e==this.series)break;m+=e.values.length}let c=0;for(let e of t)c+=e.values.length;for(let l=0;l<d.length;l++){if(0==S[l]||null==S[l])continue;let e=this.series.core.getSeriesBrush(m,c),t=(e=this.series.processSeriesBrushes(m,e),this.series.core.getSeriesBorderColor(m,c)),i=(0!=t.a||this.series.chart.area.colorEach||(t=Color.white),new TimeSpan(u.ticks/d.length*(l+2))),s=new StiOpacityAnimation(h,i),r=new __.d.StiTreemapSeriesElementGeom(a,StiValueHelper.tryToNumber(this.series.values[l]),l,e,t,this.series,d[l],s);if(null!=this.series.core.interaction){let e=this.getInteraction(a.area,this.series,l);r.interaction=e}a.createChildGeoms(),a.childGeoms.push(r);let n=this.series.chart.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiCenterTreemapLabels);if(null!=n&&n.visible){let e=n.core.renderLabel(this.series,o,l,StiValueHelper.tryToNumber(this.series.values[l]),this.getArgumentText(this.series,l),this.series.core.getTag(l),m,c,d[l],null);null!=e&&(a.createChildGeoms(),a.childGeoms.push(e))}m++}}getArgumentText(e,t){if(e.arguments.length>t&&null!=e.arguments[t])return e.arguments[t].toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return""}getSeriesBrush(e,t){let i=super.getSeriesBrush(e,t);if(null==i)return this.series.brush;return i}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}get localizedName(){return StiLocalization.get("Chart","Treemap")}constructor(e){super(e)}},__.d.StiSeriesLabelsCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiSeriesLabelsCoreXF];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.seriesLabels.allowApplyStyle&&(this.seriesLabels.labelColor=e.core.seriesLabelsColor,this.seriesLabels.borderColor=e.core.seriesLabelsBorderColor,this.seriesLabels.brush=e.core.seriesLabelsBrush,this.seriesLabels.font=e.core.seriesLabelsFont)}get position(){return null}get seriesLabelsType(){return null}get localizedName(){return null}processSeriesColors(h,e,u){let S=e;if(null==this.seriesLabels)return S;for(let a of this.seriesLabels.chart.seriesLabelsConditions.list){if(null==u.values||u.values.length<=h)continue;let e=u.values[h],t=null,i=(u.is(__.d.IStiRangeSeries)&&h<u.valuesEnd.length&&(t=u.valuesEnd[h]),null),s=(null!=u.arguments&&h<u.arguments.length&&(i=u.arguments[h]),null),r=null,n=null,l=null,o=(u.is(__.d.IStiFinancialSeries)&&(h<u.valuesOpen.length&&(s=u.valuesOpen[h]),h<u.valuesClose.length&&(r=u.valuesClose[h]),h<u.valuesLow.length&&(n=u.valuesLow[h]),h<u.valuesHigh.length)&&(l=u.valuesHigh[h]),__.d.StiChartHelper.getFilterData(null,a,null));if(__.d.StiChartHelper.getFilterResult(a,i,e,t,s,r,n,l,o))return S=this.seriesLabels.chart.style.core.getColumnBrush(a.color),this.seriesLabels.chart.area.is(__.d.IStiClusteredBarArea)&&(S.is(StiGradientBrush)&&(S.angle+=90),S.is(StiGlareBrush))&&(S.angle+=90),S}return S}getSeriesLabelColor(e,t,i){let s=e.core.getSeriesBorderColor(t,i);return s=s.equals(Color.transparent)?StiBrush.toColor(e.core.getSeriesBrush(t,i)):s}getBorderColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.borderColor}getLabelColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.labelColor}recalcValue(e,t){return e}getLabelText(e,t,i,s,r,n=!1){return this.getLabelText2(e,t,i,s,r,0,n)}getLabelText2(t,i,s,e,r,n,l){let o="",a=this.seriesLabels.valueType;switch(a=l?this.seriesLabels.legendValueType:a){case __.d.StiSeriesLabelsValueType.Argument:o=this.getArgument(t,s);break;case __.d.StiSeriesLabelsValueType.Total:case __.d.StiSeriesLabelsValueType.Value:o=this.getFormattedValue(t,i);break;case __.d.StiSeriesLabelsValueType.SeriesTitle:o=r;break;case __.d.StiSeriesLabelsValueType.Tag:o=e;break;case __.d.StiSeriesLabelsValueType.Weight:o=n.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);break;case __.d.StiSeriesLabelsValueType.ValueArgument:{let e=this.getArgument(t,s);o=StiString.isNullOrEmpty(e)?this.getFormattedValue(t,i):StiString.format("{0} {1} {2}",this.getFormattedValue(t,i),this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.ArgumentValue:{let e=this.getFormattedValue(t,i);o=StiString.isNullOrEmpty(e)?this.getArgument(t,s):StiString.format("{0} {1} {2}",this.getArgument(t,s),this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.SeriesTitleArgument:{let e=this.getArgument(t,s);o=StiString.isNullOrEmpty(e)?r:StiString.format("{0} {1} {2}",r,this.seriesLabels.valueTypeSeparator,e);break}case __.d.StiSeriesLabelsValueType.SeriesTitleValue:{let e=this.getFormattedValue(t,i);o=StiString.isNullOrEmpty(e)?r:StiString.format("{0} {1} {2}",r,this.seriesLabels.valueTypeSeparator,e);break}}if(l)return o;return StiString.format("{0}{1}{2}",this.seriesLabels.textBefore,o,this.seriesLabels.textAfter)}getArgument(t,i){let s=i;if(t.core.isDateTimeArguments){let e=DateTime.fromString(i,!1);null!=e&&(s=this.getFormatted(t,e.toOADate(),!0))}return s}getFormatted(n,l,o){var a,h;try{this.storedCulture=CultureInfo.currentCulture;let e=null==(h=null==(a=this.seriesLabels.chart)?void 0:a.report)?void 0:h.getParsedCulture(),t=(StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=new CultureInfo(e)),l),i=(o&&(t=DateTime.fromOADate(l)),this.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiPieSeriesLabels)),s=this.seriesLabels[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAxisSeriesLabels);if(!(null==this.seriesLabels.formatService||null!=i&&i.showInPercent||null!=s&&s.showInPercent))return this.seriesLabels.formatService.format(t);let r=null;if(null!=(r=null!=(r=null!=n?n.format:r)&&0!=r.trim().length?r:this.seriesLabels.format)&&0!=r.trim().length){if(r.startsWith("P")&&null!=this.seriesLabels.chart&&!__.d.StiChartOptions.oldChartPercentMode){let e=0,t;try{1<r.length&&(e=r[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),t=this.recalcValue(l,e)}catch(e){t=this.recalcValue(l,2)}return StiString.format("{0:N"+e.toString()+"}{1}",t,"%")}{let e=StiString.format("{0:"+r+"}",t);if(!o&&e==r)return t.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);return e}}StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}catch(e){}return this.recalcValue(l,2).toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getFormattedValue(e,t){if(null==t)return"";return this.getFormatted(e,t,e.core.isDateTimeValues)}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,this.seriesLabels.wordWrap||(t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),t}constructor(e){this.seriesLabels=e}},__.d.StiNoneLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.All}get position(){return __.d.StiSeriesLabelsPosition.None}get localizedName(){return StiLocalization.get("Chart","LabelsNone")}constructor(e){super(e)}},__.d.StiAxisSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d=null){return null}renderLabel2(e,t,i,s,r,n,l,o,a,h,u,S,d,m=null){return null}recalcValue(e,s){if(this.seriesLabels.showInPercent&&this.seriesLabels.chart.area.is(__.d.StiFullStackedColumnArea)&&null!=this.currentIndex){let t=this.seriesLabels.chart.area.core.getSeries(),i=0;for(let e of t)this.currentIndex<e.values.length&&(i+=e.values[this.currentIndex]);if(0!=i)return StiMath.round2(100*e/i,s)}return e}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Axis}constructor(e){super(e),this.currentIndex=null}},__.d.StiCenterAxisLabelsCoreXF=class extends __.d.StiAxisSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d=null){return this.currentIndex=r,this.renderLabel2(e,t,i,s,r,n,l,o,a,0,h,u,S,d)}renderLabel2(e,t,i,s,r,n,l,o,a,h,u,S,d,m=null){if(null==n&&!this.seriesLabels.showNulls)return null;if(0==n&&!this.seriesLabels.showZeros)return null;null==n&&(n=0);let c=this.getLabelText2(e,l=null==l?0:l,o,a,e.coreTitle,h,!1),g=this.getLabelColor(e,u,S),p=this.getBorderColor(e,u,S),_=this.getStringFormatGeom(t),f=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),C=e.core.getSeriesBorderColor(u,S),w=e.core.getSeriesBrush(u,S),b=this.processSeriesColors(r,this.seriesLabels.brush,e),y=this.getLabelRect(t,i,s,n,c,!0,f,_),x=null!=m?m[Stimulsoft.System.StiObject.stimulsoft]().as(StiLabelAnimation):null;return null!=x&&(x.labelRect=this.getLabelRect(t,x.pointFrom,s,x.valueFrom,x.valueFrom.toString(),!0,f,_)),new __.d.StiCenterAxisLabelsGeom(this.seriesLabels,e,r,n,y,c,g,p,w,b,C,f,m)}getLabelRect(e,t,i,s,r,n,l,o){return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?e.measureRotatedString3(r,l,new PointD(t.x,(t.y+i.y)/2),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD((t.x+i.x)/2,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}get position(){return __.d.StiSeriesLabelsPosition.CenterAxis}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiInsideBaseAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsInsideBase")}get position(){return __.d.StiSeriesLabelsPosition.InsideBaseAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,i.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,i.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(i.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(i.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiInsideEndAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get position(){return __.d.StiSeriesLabelsPosition.InsideEndAxis}get localizedName(){return StiLocalization.get("Chart","LabelsInsideEnd")}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,t.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,t.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(t.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiLeftAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Left")}get position(){return __.d.StiSeriesLabelsPosition.Left}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l);return 0<this.seriesLabels.width?a.width=this.seriesLabels.width*e.options.zoom:a.width+=2*e.options.zoom,this.seriesLabels.chart.area.reverseHor?e.measureRotatedString3(r,l,new PointD(t.x+a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x-a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiOutsideAxisLabelsCoreXF=class extends __.d.StiAxisSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S){let d=this.seriesLabels;if(null==n&&!d.showNulls)return null;if(0==n&&!d.showZeros)return null;null==n&&(n=0);let m=this.getLabelText(e,l=null==l?0:l,o,a,e.coreTitle),c=90,g=(this.seriesLabels.chart.area.is(__.d.IStiStackedBarArea)?(n<=0&&(c=-c),c+=90):n<0&&(c=-c),c*=Math.PI/180,new PointD(i.x+d.lineLength*Math.cos(c)*t.options.zoom,i.y-d.lineLength*Math.sin(c)*t.options.zoom)),p=StiFontGeom.changeFontSize(d.font,d.font.size*t.options.zoom),_=this.getStringFormatGeom(t),f=t.measureString2(m,p,this.seriesLabels.width*t.options.zoom,_),C=new RectangleD(g.x-f.width/2,g.y-f.height/2,f.width+1,f.height+1),w=this.getLabelColor(e,h,u),b=this.getBorderColor(e,h,u),y=e.core.getSeriesBorderColor(h,u),x=e.core.getSeriesBrush(h,u);return x=this.processSeriesColors(r,x,e),new __.d.StiOutsideAxisLabelsGeom(this.seriesLabels,e,r,n,C,m,w,b,x,y,p,g,i,null)}get position(){return __.d.StiSeriesLabelsPosition.OutsideAxis}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}constructor(e){super(e)}},__.d.StiOutsideBaseAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsOutsideBase")}get position(){return __.d.StiSeriesLabelsPosition.OutsideBaseAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<s?e.measureRotatedString3(r,l,new PointD(t.x,i.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,i.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(i.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(i.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiOutsideEndAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsOutsideEnd")}get position(){return __.d.StiSeriesLabelsPosition.OutsideEndAxis}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l),h=2;return this.seriesLabels.chart.area.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical?0<=s?e.measureRotatedString3(r,l,new PointD(t.x,t.y-(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x,t.y+(Math.abs(a.height*Math.cos(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.sin(this.seriesLabels.angle*Math.PI/180)))),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):0<s?e.measureRotatedString3(r,l,new PointD(t.x-(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x+(Math.abs(a.height*Math.sin(this.seriesLabels.angle*Math.PI/180))+Math.abs((a.width/2+h)*Math.cos(this.seriesLabels.angle*Math.PI/180))),t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiRightAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Right")}get position(){return __.d.StiSeriesLabelsPosition.Right}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureString(r,l);return 0<this.seriesLabels.width?a.width=this.seriesLabels.width*e.options.zoom:a.width+=2*e.options.zoom,this.seriesLabels.chart.area.reverseHor?e.measureRotatedString3(r,l,new PointD(t.x-a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom)):e.measureRotatedString3(r,l,new PointD(t.x+a.width,t.y),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}constructor(e){super(e)}},__.d.StiValueAxisLabelsCoreXF=class extends __.d.StiCenterAxisLabelsCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Value")}get position(){return __.d.StiSeriesLabelsPosition.Value}getLabelRect(e,t,i,s,r,n,l,o){let a=e.measureRotatedString3(r,l,new PointD(0,0),o,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom));return new RectangleD(t.x-a.width/2,t.y-a.height/2,a.width,a.height)}constructor(e){super(e)}},__.d.StiFunnelSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){return null}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}constructor(e){super(e)}},__.d.StiCenterFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y,x=(y=e.is(__.d.StiFunnelWeightedSlicesSeries)?new PointD(h.width/2,.05*h.height+u*this.getSumLastValues(e,i)+u*s/2):new PointD(h.width/2,u*i+u/2+.05*h.height),t.measureRotatedString3(g,C,y,f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)));return m.ref=c,new __.d.StiCenterFunnelLabelsGeom(this.seriesLabels,e,i,s,x,g,b,p,_,w,x,null)}getSumLastValues(t,i){let s=new List;for(let e of t.chart.series.list){let t=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiFunnelSeries);for(let e of t.values){if(!t.showZeros&&0==e)continue;s.push(e)}}let r=0;for(let e=0;e<i;e++){if(e>=s.length)break;r+=Math.abs(s[e])}return r}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.CenterFunnel}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiOutsideLeftFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y=t.measureRotatedString3(g,C,new PointD(0,0),f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),x=(c.width-=y.width,c.x+=y.width,new PointD(d-(s+r)*S/4,u*i+u/2+.05*h.height)),A=new PointD(.05*h.width+y.width,u*i+u/2+.05*h.height),L=t.measureRotatedString3(g,C,A,f,StiRotationMode.RightCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return m.ref=c,new __.d.StiOutsideFunnelLabelsGeom(this.seriesLabels,e,i,s,L,g,b,p,_,w,L,x,A)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.OutsideLeftFunnel}get localizedName(){return StiLocalization.get("PropertyMain","Left")}constructor(e){super(e)}},__.d.StiOutsideRightFunnelLabelsCoreXF=class extends __.d.StiFunnelSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m){let c=h.clone(),g=this.getLabelText(e,s,n,l,e.coreTitle),p=new StiSolidBrush(this.getLabelColor(e,o,a)),_=this.getBorderColor(e,o,a),f=this.getStringFormatGeom(t),C=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),w=e.core.getSeriesBorderColor(o,a),b=e.core.getSeriesBrush(o,a),y=t.measureRotatedString3(g,C,new PointD(0,0),f,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),x=(c.width-=y.width+5,new PointD(d+(s+r)*S/4,u*i+u/2+.05*h.height)),A=new PointD(.95*h.width-y.width,u*i+u/2+.05*h.height),L=t.measureRotatedString3(g,C,A,f,StiRotationMode.LeftCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return m.ref=c,new __.d.StiOutsideFunnelLabelsGeom(this.seriesLabels,e,i,s,L,g,b,p,_,w,L,x,A)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Funnel}get position(){return __.d.StiSeriesLabelsPosition.OutsideRightFunnel}get localizedName(){return StiLocalization.get("PropertyMain","Right")}constructor(e){super(e)}},__.d.StiCenterHeatmapLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h=null){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=this.getLabelColor(e,l,o),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=this.processSeriesColors(i,this.seriesLabels.brush,e),f=this.getLabelRect(t,a,s,u,!0,c,m);return new __.d.StiCenterTreemapLabelsGeom(this.seriesLabels,e,i,s,f,u,S,d,p,_,g,c,h)}getLabelRect(e,t,i,s,r,n,l){return e.measureRotatedString3(s,n,new PointD(t.x+t.width/2,t.y+t.height/2),l,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}get position(){return __.d.StiSeriesLabelsPosition.CenterHeatmap}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Heatmap}constructor(e){super(e)}},__.d.StiPictorialStackedLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h){return null}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}constructor(e){super(e)}},__.d.StiCenterPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.x+h.width/2,h.y+h.height/2)),f=t.measureRotatedString3(u,c,_,m,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom));return new __.d.StiCenterFunnelLabelsGeom(this.seriesLabels,e,i,s,f,u,p,S,d,g,f,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.OutsideLeftPictorialStacked}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiOutsideLeftPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.right,h.y+h.height/2)),f=this.seriesLabels.lineColor,C=t.measureRotatedString3(u,c,_,m,StiRotationMode.RightCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),w=new RectangleD(h.right,h.y,a,h.height);return new __.d.StiOutsidePictorialStackedLabelGeom(this.seriesLabels,e,i,s,h,u,p,S,f,d,g,C,w,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.CenterPictorialStacked}get localizedName(){return StiLocalization.get("PropertyMain","Left")}constructor(e){super(e)}},__.d.StiOutsideRightPictorialStackedLabelsCoreXF=class extends __.d.StiPictorialStackedLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}renderLabel(e,t,i,s,r,n,l,o,a,h){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=new StiSolidBrush(this.getLabelColor(e,l,o)),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=(null!=p&&(p=new StiSolidBrush(StiBrush.toColor(p))),new PointD(h.x+a,h.y+h.height/2)),f=this.seriesLabels.lineColor,C=t.measureRotatedString3(u,c,_,m,StiRotationMode.LeftCenter,0,StiMath.trunc(this.seriesLabels.width*t.options.zoom)),w=new RectangleD(h.x+.3*a,h.y,.7*a,h.height);return new __.d.StiOutsidePictorialStackedLabelGeom(this.seriesLabels,e,i,s,h,u,p,S,f,d,g,C,w,null)}get seriesLabelsType(){return __.d.StiSeriesLabelsType.PictorialStacked}get position(){return __.d.StiSeriesLabelsPosition.OutsideRightPictorialStacked}get localizedName(){return StiLocalization.get("PropertyMain","Right")}constructor(e){super(e)}},__.d.StiCenterPie3dLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.CenterPie3d}get localizedName(){return"3D "+StiLocalization.get("Chart","LabelsCenter")}renderLabel2(e,t,i){let s=this.getLabelText(e,i.value,i.argumentText,i.tag,e.coreTitle),r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),n=this.getStringFormatGeom(t),l=this.getLabelRect(t,i.textPosition,s,r,n),o=l.clone(),a=(o.x=-o.width/2,o.y=-o.height/2,this.getBorderColor(e,i.colorIndex,i.colorCount)),h=e.core.getSeriesBorderColor(i.colorIndex,i.colorCount),u=e.core.getSeriesBrush(i.colorIndex,i.colorCount),S=new StiSolidBrush(this.getLabelColor(e,i.colorIndex,i.colorCount)),d=(u=this.processSeriesColors(i.index,u,e),this.processSeriesColors(i.index,this.seriesLabels.brush,e));return new __.d.StiCenterPieLabelsGeom(this.seriesLabels,e,i.index,i.value,o,s,u,S,d,a,h,StiRotationMode.CenterCenter,l,this.seriesLabels.angle,null)}getLabelRect(e,t,i,s,r){return e.measureRotatedString3(i,s,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}recalcValue(e,i){if(this.seriesLabels.showInPercent){let t=this.seriesLabels.chart.area.core.getSeries();if(0<t.length){let e=[];t[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0<e.length&&e[0].is(__.d.StiPieSeries)&&(this.percentPerValue=e[0].core.getPercentPerValue(e))}return StiMath.round2(e*this.percentPerValue,i)}return e}constructor(e){super(e),this.percentPerValue=0}},__.d.StiPieSeriesLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){return null}recalcValue(e,i){if(this.seriesLabels.showInPercent){let t=this.seriesLabels.chart.area.core.getSeries();if(0<t.length){let e=[];t[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0<e.length&&e[0].is(__.d.StiPieSeries)&&(this.percentPerValue=e[0].core.getPercentPerValue(e))}return StiMath.round2(e*this.percentPerValue,i)}return e}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}constructor(e){super(e),this.percentPerValue=0}},__.d.StiCenterPieLabelsCoreXF=class extends __.d.StiPieSeriesLabelsCoreXF{renderLabel(s,r,n,l,e,t,o,a,i,h,u,S,d,m,c,g,p,_){let f=RectangleD.empty;if(g.ref=f,this.percentPerValue=c,null==i&&!this.seriesLabels.showNulls)return null;if(0==i&&!this.seriesLabels.showZeros)return null;if(null==a&&(a=0),null==i&&(i=0),isNaN(l)||isNaN(e))return null;let C="",w=(C=p?this.getFormattedValue(s,i):this.getLabelText(s,i,h,u,s.coreTitle),Math.PI*t/180),b=this.getLabelPoint(n,(l-e)/1.75+e,w),y=(p||(this.is(__.d.StiOutsidePieLabelsCoreXF)&&(b=this.getLabelPoint(n,l+this.seriesLabels.lineLength*r.options.zoom,w)),this.is(__.d.StiInsideEndPieLabelsCoreXF)&&(b=this.getLabelPoint(n,(l-e)/1.2+e,w))),StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*r.options.zoom)),x=this.getStringFormatGeom(r),A=this.getLabelRect(r,b,C,y,x),L=this.seriesLabels.angle,T=StiRotationMode.CenterCenter,D=A.clone();if(D.x=-D.width/2,D.y=-D.height/2,this.seriesLabels.autoRotate&&(0<(L=t)&&L<90||270<L?(this.seriesLabels.is(__.d.IStiOutsidePieLabels)&&(T=StiRotationMode.LeftCenter),D.x=0):(this.seriesLabels.is(__.d.IStiOutsidePieLabels)&&(T=StiRotationMode.RightCenter),L+=180,D.x=-D.width)),this.is(__.d.StiOutsidePieLabelsCoreXF)?this.seriesLabels.autoRotate||(337.5<t||t<22.5?(D.x=0,D.y=-D.height/2,T=StiRotationMode.LeftCenter):22.5<=t&&t<67.5?(D.x=0,D.y=0,T=StiRotationMode.LeftTop):67.5<=t&&t<112.5?(D.x=-D.width/2,D.y=0,T=StiRotationMode.CenterTop):112.5<=t&&t<157.5?(D.x=-D.width,D.y=0,T=StiRotationMode.RightTop):157.5<=t&&t<202.5?(D.x=-D.width,D.y=-D.height/2,T=StiRotationMode.RightCenter):202.5<=t&&t<247.5?(D.x=-D.width,D.y=-D.height,T=StiRotationMode.RightBottom):247.5<=t&&t<292.5?(D.x=-D.width/2,D.y=-D.height,T=StiRotationMode.CenterBottom):292.5<=t&&(D.x=0,D.y=-D.height,T=StiRotationMode.LeftBottom)):(D.x=-D.width/2,D.y=-D.height/2),S)return f=r.measureRotatedString2(C,y,A,x,T,L),g.ref=f,null;let v=this.getBorderColor(s,d,m),F=s.core.getSeriesBorderColor(d,m),B=s.core.getSeriesBrush(d,m),P=new StiSolidBrush(this.getLabelColor(s,d,m)),I=(B=this.processSeriesColors(o,B,s),this.processSeriesColors(o,this.seriesLabels.brush,s));if(f=RectangleD.empty,this.seriesLabels.is(__.d.IStiOutsidePieLabels)){let e=this.as(__.d.StiOutsidePieLabelsCoreXF),t=e.getLineColor(s,d,m),i=(b=this.getLabelPoint(n,l+e.seriesLabels.lineLength*r.options.zoom,w),this.getLabelPoint(n,l,w));return g.ref=f,new __.d.StiOutsidePieLabelsGeom(this.seriesLabels,s,o,a,D,C,B,P,I,v,F,T,A,L,t,b,i)}return g.ref=f,new __.d.StiCenterPieLabelsGeom(this.seriesLabels,s,o,a,D,C,B,P,I,v,F,T,A,L,null)}getLabelPoint(e,t,i){return new PointD(e.x+Math.cos(i)*t,e.y+Math.sin(i)*t)}getLabelRect(e,t,i,s,r){return e.measureRotatedString3(i,s,t,r,StiRotationMode.CenterCenter,0,StiMath.trunc(this.seriesLabels.width*e.options.zoom))}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.CenterPie}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}constructor(e){super(e)}},__.d.StiInsideEndPie3dLabelsCoreXF=class extends __.d.StiCenterPie3dLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie}get position(){return __.d.StiSeriesLabelsPosition.InsideEndPie3d}get localizedName(){return"3D "+StiLocalization.get("Chart","LabelsInsideEnd")}constructor(e){super(e),this.percentPerValue=0}},__.d.StiInsideEndPieLabelsCoreXF=class extends __.d.StiCenterPieLabelsCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsInsideEnd")}get position(){return __.d.StiSeriesLabelsPosition.InsideEndPie}constructor(e){super(e)}},__.d.StiOutsidePieLabelsCoreXF=class extends __.d.StiCenterPieLabelsCoreXF{applyStyle(e){super.applyStyle(e),this.seriesLabels.allowApplyStyle&&(this.seriesLabels.lineColor=e.core.seriesLabelsLineColor)}get position(){return __.d.StiSeriesLabelsPosition.OutsidePie}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}getLineColor(e,t,i){if(this.seriesLabels.useSeriesColor)return this.getSeriesLabelColor(e,t,i);return this.seriesLabels.lineColor}constructor(e){super(e)}},__.d.StiTwoColumnsPieLabelsCoreXF=class extends __.d.StiOutsidePieLabelsCoreXF{renderLabel(l,e,o,t,i,s,a,h,r,n,u,S,d,m,c,g,p,_){this.percentPerValue=c;let f=RectangleD.empty;if(null==r&&!this.seriesLabels.showNulls)return null;if(0==r&&!this.seriesLabels.showZeros)return null;if(null==h&&(h=0),null==r&&(r=0),isNaN(t)||isNaN(i))return null;if(p)return g.ref=f,super.renderLabel(l,e,o,t,i,s,a,h,r,this.getFormattedValue(l,r),u,S,d,m,c,g,p,_);let C=this.getLabelText(l,r,n,u,l.coreTitle),w=Math.PI*s/180,b=this.getLabelPoint(o,t,w),y=this.getLabelPoint(o,t+this.seriesLabels.lineLength*e.options.zoom,w),x=0,A=(x=b.x>y.x?-1:1,new PointD(o.x+t*x+this.seriesLabels.lineLength*x+10*x,y.y)),L=(this.seriesLabels.preventIntersection&&(A.y=b.y),A.y+=_*Math.min(e.options.zoom,1),StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom)),T=this.seriesLabels.core.getStringFormatGeom(e),D=(T.alignment=StringAlignment.Center,T.lineAlignment=StringAlignment.Center,this.getLabelRect(e,A,C,L,T)),v=RectangleD.empty;if(v=x<0?new RectangleD(A.x-D.width,A.y-D.height/2,D.width,D.height):new RectangleD(A.x,A.y-D.height/2,D.width,D.height),S)return f=v,g.ref=f,null;{f=RectangleD.empty;let e=this.getBorderColor(l,d,m),t=l.core.getSeriesBorderColor(d,m),i=l.core.getSeriesBrush(d,m),s=(i=this.processSeriesColors(a,i,l),new StiSolidBrush(this.getLabelColor(l,d,m))),r=this.getLineColor(l,d,m),n=this.processSeriesColors(a,this.seriesLabels.brush,l);return g.ref=f,new __.d.StiTwoColumnsPieLabelsGeom(this.seriesLabels,l,a,h,v,C,i,s,n,e,t,v,r,y,A,b,o,null)}}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Pie|__.d.StiSeriesLabelsType.Doughnut}get position(){return __.d.StiSeriesLabelsPosition.TwoColumnsPie}get localizedName(){return StiLocalization.get("Chart","LabelsTwoColumns")}constructor(e){super(e)}},__.d.StiCenterTreemapLabelsCoreXF=class extends __.d.StiSeriesLabelsCoreXF{renderLabel(e,t,i,s,r,n,l,o,a,h=null){let u=this.getLabelText(e,s,r,n,e.coreTitle),S=this.getLabelColor(e,l,o),d=this.getBorderColor(e,l,o),m=this.getStringFormatGeom(t),c=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*t.options.zoom),g=e.core.getSeriesBorderColor(l,o),p=e.core.getSeriesBrush(l,o),_=this.processSeriesColors(i,this.seriesLabels.brush,e),f=this.getLabelRect(t,a,s,u,!0,c,m);return new __.d.StiCenterTreemapLabelsGeom(this.seriesLabels,e,i,s,f,u,S,d,p,_,g,c,h)}getLabelRect(e,t,i,s,r,n,l){return e.measureRotatedString3(s,n,new PointD(t.x+t.width/2,t.y+t.height/2),l,StiRotationMode.CenterCenter,0,this.seriesLabels.width*e.options.zoom)}get position(){return __.d.StiSeriesLabelsPosition.CenterTreemap}get localizedName(){return StiLocalization.get("Chart","LabelsCenter")}get seriesLabelsType(){return __.d.StiSeriesLabelsType.Treemap}constructor(e){super(e)}},__.d.StiStripsCoreXF=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiStripsCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.strips.allowApplyStyle&&(this.strips.titleColor=e.core.styleColors[e.core.styleColors.length-1],this.strips.stripBrush=new StiSolidBrush(Color.fromArgb3(150,e.core.styleColors[e.core.styleColors.length-1])))}renderXStrips(e,t,i){let s=this.strips.chart.area;if(null==s)return;let r=this.calculateXValue(this.strips.minValue,s,i),n=this.calculateXValue(this.strips.maxValue,s,i);if(r>n){let e=r;r=n,n=e}let l=new RectangleD(r,0,n-r,i.height),o=new __.d.StiStripsXGeom(this.strips,l);t.createChildGeoms(),t.childGeoms.push(o)}calculateXValue(e,l,o){let a;try{a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}let h=0;if(l.xAxis.logarithmicScale&&0<l.xAxis.info.stripLines.count){let e=l.xAxis.info.stripLines.count,t=l.reverseHor?e-1:0,i=l.reverseHor?0:e-1,s=l.xAxis.info.stripLines.getByIndex(t).value,r=l.xAxis.info.stripLines.getByIndex(i).value,n=Math.abs(o.width/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(a)*n-StiMath.log10(l.xAxis.info.stripLines.getByIndex(t).value)*n)}else h=l.axisCore.getDividerX()+a*l.xAxis.info.dpi;return h}renderYStrips(e,t,i){let s=this.strips.chart.area;if(null==s)return;let r=this.calculateYValue(this.strips.minValue,s,i),n=this.calculateYValue(this.strips.maxValue,s,i);if(r>n){let e=r;r=n,n=e}let l=new RectangleD(0,r,i.width,n-r),o=new __.d.StiStripsYGeom(this.strips,l);t.createChildGeoms(),t.childGeoms.push(o)}calculateYValue(e,l,o){let a;try{a=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){a=0}let h=0;if(l.yAxis.logarithmicScale){let e=l.yAxis.info.stripLines.count,t=0,i=e-1,s=l.yAxis.info.stripLines.getByIndex(t).value,r=l.yAxis.info.stripLines.getByIndex(i).value,n=Math.abs(o.height/(StiMath.log10(r)-StiMath.log10(s)));h=Math.abs(StiMath.log10(l.yAxis.info.stripLines.getByIndex(t).value)*n-StiMath.log10(a)*n)}else h=this.strips.orientation==__.d.StiStrips_StiOrientation.Horizontal?l.axisCore.getDividerY()-a*l.yAxis.info.dpi:l.axisCore.getDividerRightY()-a*l.yRightAxis.info.dpi;return h}render(e,t,i){if(!this.strips.visible)return;this.strips.orientation==__.d.StiStrips_StiOrientation.Vertical&&this.renderXStrips(e,t,i),this.strips.orientation!=__.d.StiStrips_StiOrientation.Horizontal&&this.strips.orientation!=__.d.StiStrips_StiOrientation.HorizontalRight||this.renderYStrips(e,t,i)}constructor(e){this.strips=e}},Stimulsoft.Base.Drawing.StiSimpleBorder),StiHatchBrush=(__.d.StiStyleCoreXF=class{constructor(){this._markerVisible=!0}implements(){let e=[__.d.IStiStyleCoreXF];return(this.implements=()=>e)()}get localizedName(){return null}get styleId(){return __.d.StiChartStyleId.StiStyle01}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiGradientBrush(StiColorUtils.light(this.basicStyleColor,80),StiColorUtils.light(this.basicStyleColor,40),90)}get chartAreaBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get chartAreaBorderThickness(){return 1}get chartAreaShowShadow(){return!1}get seriesLabelsBrush(){return new StiSolidBrush(this.basicStyleColor)}get seriesLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get seriesLabelsFont(){return new Font("Arial",7)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(180,50,50,50))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipCornerRadius(){return new StiCornerRadius(8)}get toolTipBorder(){return new StiSimpleBorder}get trendLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get trendLineShowShadow(){return!1}get legendBrush(){return new StiGradientBrush(StiColorUtils.light(this.basicStyleColor,80),StiColorUtils.light(this.basicStyleColor,20),90)}get legendLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendBorderColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendTitleColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",8)}get axisTitleColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get axisLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,150)}get interlacingHorBrush(){return new StiSolidBrush(Color.fromArgb3(10,StiColorUtils.dark(this.basicStyleColor,100)))}get interlacingVertBrush(){return new StiSolidBrush(Color.fromArgb3(10,StiColorUtils.dark(this.basicStyleColor,100)))}get gridLinesHorColor(){return Color.fromArgb3(100,StiColorUtils.dark(this.basicStyleColor,150))}get gridLinesVertColor(){return Color.fromArgb3(100,StiColorUtils.dark(this.basicStyleColor,150))}get seriesLighting(){return!0}get seriesShowShadow(){return!1}get seriesShowBorder(){return!0}get seriesBorderColor(){return Color.transparent}get seriesBorderThickness(){return 1}get seriesCornerRadius(){return new StiCornerRadius}get markerVisible(){return this._markerVisible}set markerVisible(e){this._markerVisible=e}get firstStyleColor(){return this.styleColors[0]}get lastStyleColor(){return this.styleColors[this.styleColors.length-1]}get styleColors(){return null}get basicStyleColor(){return null}fillColumn(e,t,i,s){e.fillRectangle2(i,t.x,t.y,t.width,t.height,s)}fillCicledColumn(e,t,i,s,r,n){e.fillCicledRectangle(s,t,i,r,n)}getAreaBrush(e){return new StiSolidBrush(Color.fromArgb3(200,e))}getColumnBrush(e){return new StiGradientBrush(e,StiColorUtils.dark(e,50),0)}getColumnBorder(e){if(!this.seriesShowBorder)return Color.transparent;if(!this.seriesBorderColor.equals(Color.transparent))return this.seriesBorderColor;return StiColorUtils.dark(e,100)}getColors(e,t){let l=StiArray.create(Color,e),o=null!=t?t:this.styleColors,a=0,h=0;for(let n=0;n<e;n++){if(0==o.length||o.length<a)l[n]=Color.fromArgb(255,112,173,71);else if(0!=h){let e=o[a],t=Math.min(e.a+h,255),i=Math.min(e.r+h,255),s=Math.min(e.g+h,255),r=Math.min(e.b+h,255);l[n]=Color.fromArgb(t,i,s,r)}else l[n]=o[a];++a==o.length&&(a=0,h=50)}return l}getColorByIndex(e,t,i){return this.getColors(t,i)[e]}getColorBySeries(e,t){return this.getColors(e.chart.series.count,t)[e.chart.series.indexOf(e)]}},__.d.StiStyleCoreXF01=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,194,117,53),Color.fromArgb(255,231,140,65),Color.fromArgb(255,248,170,121),Color.fromArgb(255,250,203,180),Color.fromArgb(255,253,230,220)]}get localizedName(){return StiLocalization.get("Chart","Style")+"01"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.wheat}get styleId(){return __.d.StiChartStyleId.StiStyle01}getColumnBrush(e){return new StiGlareBrush(StiColorUtils.dark(e,50),e,0)}},__.d.StiCustomStyleCoreXF=class extends __.d.StiStyleCoreXF01{get localizedName(){return"CustomStyle"}get chartBrush(){if(null!=this.reportStyle)return this.reportStyle.brush;return this._base.chartBrush}get chartAreaBrush(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBrush;return this._base.chartAreaBrush}get chartAreaBorderColor(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBorderColor;return this._base.chartAreaBorderColor}get chartAreaBorderThickness(){if(null!=this.reportStyle)return this.reportStyle.chartAreaBorderThickness;return this._base.chartAreaBorderThickness}get chartAreaShowShadow(){if(null!=this.reportStyle)return this.reportStyle.chartAreaShowShadow;return this._base.chartAreaShowShadow}get toolTipBrush(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipBrush}get toolTipTextBrush(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipTextBrush}get toolTipCornerRadius(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipCornerRadius}get toolTipBorder(){return(null!=this.reportStyle?this.reportStyle:this._base).toolTipBorder}get seriesLighting(){if(null!=this.reportStyle)return this.reportStyle.seriesLighting;return this._base.seriesLighting}get seriesShowShadow(){if(null!=this.reportStyle)return this.reportStyle.seriesShowShadow;return this._base.seriesShowShadow}get seriesShowBorder(){if(null!=this.reportStyle)return this.reportStyle.seriesShowBorder;return this._base.seriesShowBorder}get seriesBorderColor(){if(null!=this.reportStyle)return this.reportStyle.seriesBorderColor;return this._base.seriesBorderColor}get seriesLabelsBrush(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsBrush;return this._base.seriesLabelsBrush}get seriesLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsColor;return this._base.seriesLabelsColor}get seriesLabelsBorderColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsBorderColor;return this._base.seriesLabelsBorderColor}get seriesLabelsLineColor(){if(null!=this.reportStyle)return this.reportStyle.seriesLabelsLineColor;return this._base.seriesLabelsLineColor}get seriesBorderThickness(){if(null!=this.reportStyle)return this.reportStyle.seriesBorderThickness;return this._base.seriesBorderThickness}get seriesCornerRadius(){if(null!=this.reportStyle)return this.reportStyle.seriesCornerRadius;return this._base.seriesCornerRadius}get trendLineColor(){if(null!=this.reportStyle)return this.reportStyle.trendLineColor;return this._base.trendLineColor}get trendLineShowShadow(){if(null!=this.reportStyle)return this.reportStyle.trendLineShowShadow;return this._base.trendLineShowShadow}get legendBrush(){if(null!=this.reportStyle)return this.reportStyle.legendBrush;return this._base.legendBrush}get legendLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.legendLabelsColor;return this._base.legendLabelsColor}get legendBorderColor(){if(null!=this.reportStyle)return this.reportStyle.legendBorderColor;return this._base.legendBorderColor}get legendTitleColor(){if(null!=this.reportStyle)return this.reportStyle.legendTitleColor;return this._base.legendTitleColor}get markerVisible(){if(null!=this.reportStyle)return this.reportStyle.markerVisible;return this._base.markerVisible}set markerVisible(e){}get axisTitleColor(){if(null!=this.reportStyle)return this.reportStyle.axisTitleColor;return this._base.axisTitleColor}get axisLineColor(){if(null!=this.reportStyle)return this.reportStyle.axisLineColor;return this._base.axisLineColor}get axisLabelsColor(){if(null!=this.reportStyle)return this.reportStyle.axisLabelsColor;return this._base.axisLabelsColor}get interlacingHorBrush(){if(null!=this.reportStyle)return this.reportStyle.interlacingHorBrush;return this._base.interlacingHorBrush}get interlacingVertBrush(){if(null!=this.reportStyle)return this.reportStyle.interlacingVertBrush;return this._base.interlacingVertBrush}get gridLinesHorColor(){if(null!=this.reportStyle)return this.reportStyle.gridLinesHorColor;return this._base.gridLinesHorColor}get gridLinesVertColor(){if(null!=this.reportStyle)return this.reportStyle.gridLinesVertColor;return this._base.gridLinesVertColor}get styleColors(){if(null!=this.reportStyle)return this.reportStyle.styleColors;return this._base.styleColors}get basicStyleColor(){if(null!=this.reportStyle)return this.reportStyle.basicStyleColor;return this._base.basicStyleColor}get reportStyle(){let e=null==this.reportStyleName?this.chart.customStyleName:this.reportStyleName;if(null==this.chart||null==this.chart.report||null==e||0==e.length)return null;let t=this.chart.report.styles.getByName(e);if(null!=t&&t.is(__.a.Styles.StiChartStyle))return t;return null}get customStyle(){return this._customStyle}getColumnBrush(e){if(null!=this.reportStyle)switch(this.reportStyle.brushType){case __.a.StiBrushType.Glare:return new StiGlareBrush(StiColorUtils.dark(e,50),e,0);case __.a.StiBrushType.Gradient0:return new StiGradientBrush(StiColorUtils.dark(e,50),e,0);case __.a.StiBrushType.Gradient90:return new StiGradientBrush(StiColorUtils.dark(e,50),e,90);case __.a.StiBrushType.Gradient180:return new StiGradientBrush(StiColorUtils.dark(e,50),e,180);case __.a.StiBrushType.Gradient270:return new StiGradientBrush(StiColorUtils.dark(e,50),e,270);case __.a.StiBrushType.Gradient45:return new StiGradientBrush(StiColorUtils.dark(e,50),e,45);case __.a.StiBrushType.Solid:return new StiSolidBrush(e)}return new StiSolidBrush(e)}constructor(e){super(),this._base=new __.d.StiStyleCoreXF01,this.reportChartStyle=null,this.reportStyleName=null,this._customStyle=e}},__.d.StiStyleCoreXF02=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,128,145,165),Color.fromArgb(255,171,123,122),Color.fromArgb(255,155,167,129),Color.fromArgb(255,144,133,157),Color.fromArgb(255,121,161,173),Color.fromArgb(255,189,152,122),Color.fromArgb(255,139,164,194),Color.fromArgb(255,202,132,130),Color.fromArgb(255,179,198,141),Color.fromArgb(255,162,146,182)]}get localizedName(){return StiLocalization.get("Chart","Style")+"02"}get basicStyleColor(){return Color.whiteSmoke}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle02}getColumnBrush(e){return new StiGlareBrush(e,StiColorUtils.light(e,50),0)}},__.d.StiStyleCoreXF03=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,150,61,59),Color.fromArgb(255,179,74,71),Color.fromArgb(255,201,126,125),Color.fromArgb(255,221,182,181),Color.fromArgb(255,238,221,221)]}get localizedName(){return StiLocalization.get("Chart","Style")+"03"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.whiteSmoke}get styleId(){return __.d.StiChartStyleId.StiStyle03}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF04=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,72,57,90),Color.fromArgb(255,109,87,137),Color.fromArgb(255,146,123,173),Color.fromArgb(255,181,166,200)]}get localizedName(){return StiLocalization.get("Chart","Style")+"04"}get basicStyleColor(){return Color.fromArgb(255,181,166,200)}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle04}},__.d.StiStyleCoreXF05=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,224,169,61),Color.fromArgb(255,180,181,0),Color.fromArgb(255,14,152,13),Color.fromArgb(255,170,72,36),Color.fromArgb(255,133,221,77),Color.fromArgb(255,230,199,69),Color.fromArgb(255,219,100,52),Color.fromArgb(255,131,190,47)]}get localizedName(){return StiLocalization.get("Chart","Style")+"05"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.lemonChiffon}get styleId(){return __.d.StiChartStyleId.StiStyle05}},__.d.StiStyleCoreXF06=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,206,185,102),Color.fromArgb(255,156,176,132),Color.fromArgb(255,107,177,201),Color.fromArgb(255,101,133,207),Color.fromArgb(255,126,107,201),Color.fromArgb(255,163,121,187)]}get localizedName(){return StiLocalization.get("Chart","Style")+"06"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,202,198,206)}get styleId(){return __.d.StiChartStyleId.StiStyle06}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF07=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,217,251,168),Color.fromArgb(255,200,181,231),Color.fromArgb(255,158,232,255),Color.fromArgb(255,255,189,134),Color.fromArgb(255,163,195,254)]}get localizedName(){return StiLocalization.get("Chart","Style")+"07"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle07}getColumnBrush(e){return new StiGradientBrush(StiColorUtils.dark(e,50),StiColorUtils.light(e,50),-90)}},__.d.StiStyleCoreXF08=class extends __.d.StiStyleCoreXF03{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,60,100,148),Color.fromArgb(255,73,120,177),Color.fromArgb(255,126,155,200),Color.fromArgb(255,182,195,220),Color.fromArgb(255,221,227,238)]}get localizedName(){return StiLocalization.get("Chart","Style")+"08"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(238,182,195,220)}get styleId(){return __.d.StiChartStyleId.StiStyle08}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF09=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,79,129,189),Color.fromArgb(255,192,80,77),Color.fromArgb(255,155,187,89),Color.fromArgb(255,128,100,162),Color.fromArgb(255,75,172,198),Color.fromArgb(255,247,150,70)]}get localizedName(){return StiLocalization.get("Chart","Style")+"09"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(238,238,236,225)}get styleId(){return __.d.StiChartStyleId.StiStyle09}},__.d.StiStyleCoreXF10=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,121,181,176),Color.fromArgb(255,180,188,76),Color.fromArgb(255,183,120,81),Color.fromArgb(255,119,106,91),Color.fromArgb(255,182,173,118),Color.fromArgb(255,149,174,177)]}get localizedName(){return StiLocalization.get("Chart","Style")+"10"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,209,225,227)}get styleId(){return __.d.StiChartStyleId.StiStyle10}},__.d.StiStyleCoreXF11=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,204,77,92),Color.fromArgb(255,255,111,97),Color.fromArgb(255,255,149,62),Color.fromArgb(255,248,189,82)]}get localizedName(){return StiLocalization.get("Chart","Style")+"11"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColorUtils.dark(Color.navajoWhite,30)}get styleId(){return __.d.StiChartStyleId.StiStyle11}},__.d.StiStyleCoreXF12=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.goldenrod,Color.khaki]}get localizedName(){return StiLocalization.get("Chart","Style")+"12"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.moccasin}get styleId(){return __.d.StiChartStyleId.StiStyle12}},__.d.StiStyleCoreXF13=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,151,158,168),Color.fromArgb(255,189,174,137),Color.fromArgb(255,205,176,5),Color.fromArgb(255,170,166,194),Color.fromArgb(255,132,191,210),Color.fromArgb(255,139,159,115)]}get localizedName(){return StiLocalization.get("Chart","Style")+"13"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,212,210,208)}get styleId(){return __.d.StiChartStyleId.StiStyle13}},__.d.StiStyleCoreXF14=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,240,162,46),Color.fromArgb(255,165,100,78),Color.fromArgb(255,181,139,128),Color.fromArgb(255,195,152,109),Color.fromArgb(255,161,149,116),Color.fromArgb(255,193,117,41)]}get localizedName(){return StiLocalization.get("Chart","Style")+"14"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,251,238,201)}get styleId(){return __.d.StiChartStyleId.StiStyle14}},__.d.StiStyleCoreXF15=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,15,111,198),Color.fromArgb(255,0,157,217),Color.fromArgb(255,11,208,217),Color.fromArgb(255,16,207,155),Color.fromArgb(255,124,202,98),Color.fromArgb(255,165,194,73)]}get localizedName(){return StiLocalization.get("Chart","Style")+"15"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,219,245,249)}get styleId(){return __.d.StiChartStyleId.StiStyle15}},__.d.StiStyleCoreXF16=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,255,128,0),Color.black,Color.silver,Color.red]}get localizedName(){return StiLocalization.get("Chart","Style")+"16"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle16}},__.d.StiStyleCoreXF17=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.white,Color.black]}get localizedName(){return StiLocalization.get("Chart","Style")+"17"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle17}},Stimulsoft.Base.Drawing.StiHatchBrush),HatchStyle=Stimulsoft.System.Drawing.Drawing2D.HatchStyle,StiBorderSides=(__.d.StiStyleCoreXF18=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.white,Color.black,Color.silver,Color.red,Color.green,Color.blue]}get localizedName(){return StiLocalization.get("Chart","Style")+"18"}fillColumn(e,t,i,s){let r=HatchStyle.Cross,n=i,l=(Color.white.equals(n.color)?r=HatchStyle.BackwardDiagonal:Color.black.equals(n.color)?r=HatchStyle.DottedGrid:Color.silver.equals(n.color)?r=HatchStyle.Horizontal:Color.red.equals(n.color)?r=HatchStyle.Percent25:Color.green.equals(n.color)?r=HatchStyle.OutlinedDiamond:Color.blue.equals(n.color)&&(r=HatchStyle.ForwardDiagonal),new StiHatchBrush(r,Color.black,Color.white));e.fillRectangle2(l,t.x,t.y,t.width,t.height,s)}getColumnBrush(e){let t=HatchStyle.Cross;return e.equals(Color.white)?t=HatchStyle.BackwardDiagonal:e.equals(Color.black)?t=HatchStyle.DottedGrid:e.equals(Color.silver)?t=HatchStyle.Horizontal:e.equals(Color.red)?t=HatchStyle.Percent25:e.equals(Color.green)?t=HatchStyle.OutlinedDiamond:e.equals(Color.blue)&&(t=HatchStyle.ForwardDiagonal),new StiHatchBrush(t,Color.black,Color.white)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.white}get styleId(){return __.d.StiChartStyleId.StiStyle18}},__.d.StiStyleCoreXF19=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,242,234,221),Color.fromArgb(255,240,237,232),Color.fromArgb(255,232,221,203),Color.fromArgb(255,225,201,173),Color.fromArgb(255,216,180,140)]}get localizedName(){return StiLocalization.get("Chart","Style")+"19"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb(255,242,234,221)}get interlacingHorBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get interlacingVertBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get chartAreaBrush(){return new StiSolidBrush(Color.fromArgb(128,240,237,232))}get chartBrush(){return new StiSolidBrush(Color.white)}get styleId(){return __.d.StiChartStyleId.StiStyle19}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF20=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb(255,217,187,148),Color.fromArgb(255,245,190,119),Color.fromArgb(255,230,189,127),Color.fromArgb(255,220,217,212),Color.fromArgb(255,237,229,216),Color.fromArgb(255,246,233,212)]}get localizedName(){return StiLocalization.get("Chart","Style")+"20"}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.bisque}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get chartAreaBorderColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get styleId(){return __.d.StiChartStyleId.StiStyle20}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF21=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(35,159,217),Color.fromArgb2(178,178,178)]}get localizedName(){return StiLocalization.get("Chart","Style")+"21"}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiSolidBrush(this.basicStyleColor)}get chartAreaBorderColor(){return Color.fromArgb2(106,106,106)}get seriesLabelsBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get seriesLabelsColor(){return Color.fromArgb2(106,106,106)}get seriesLabelsBorderColor(){return Color.fromArgb2(255,255,255)}get legendBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get legendLabelsColor(){return Color.fromArgb2(106,106,106)}get axisTitleColor(){return Color.fromArgb2(106,106,106)}get axisLineColor(){return Color.fromArgb2(106,106,106)}get axisLabelsColor(){return Color.fromArgb2(106,106,106)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb2(102,102,102)}get styleId(){return __.d.StiChartStyleId.StiStyle21}getColumnBrush(e){return new StiSolidBrush(e)}getColumnBorder(e){return StiColorUtils.light(e,255)}},Stimulsoft.Base.Drawing.StiBorderSides),StiColor=Stimulsoft.Base.Drawing.StiColor,ColorTranslator=(__.d.StiStyleCoreXF22=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(91,155,213),Color.fromArgb2(237,125,49),Color.fromArgb2(159,159,159),Color.fromArgb2(255,192,0),Color.fromArgb2(68,114,196),Color.fromArgb2(112,173,71)]}get localizedName(){return StiLocalization.get("Chart","Style")+"22"}get chartBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get chartAreaBrush(){return new StiSolidBrush(this.basicStyleColor)}get chartAreaBorderColor(){return Color.fromArgb2(171,172,173)}get seriesLabelsBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get seriesLabelsColor(){return Color.fromArgb2(90,90,90)}get seriesLabelsBorderColor(){return Color.fromArgb2(140,140,140)}get legendBrush(){return new StiSolidBrush(StiColorUtils.light(this.basicStyleColor,100))}get legendLabelsColor(){return Color.fromArgb2(140,140,140)}get axisTitleColor(){return Color.fromArgb2(140,140,140)}get axisLineColor(){return Color.fromArgb2(140,140,140)}get axisLabelsColor(){return Color.fromArgb2(140,140,140)}get styleColors(){return this._styleColor}get basicStyleColor(){return Color.fromArgb2(255,255,255)}get toolTipBrush(){return new StiSolidBrush(Color.white)}get toolTipTextBrush(){return new StiSolidBrush(Color.dimGray)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,StiColor.get("#8c8c8c"),1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle22}getColumnBrush(e){return new StiSolidBrush(e)}getColumnBorder(e){return StiColorUtils.light(e,255)}},__.d.StiStyleCoreXF23=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(91,155,213),Color.fromArgb2(159,159,159),Color.fromArgb2(68,114,196),Color.fromArgb2(37,94,145),Color.fromArgb2(99,99,99),Color.fromArgb2(38,68,120)]}get localizedName(){return StiLocalization.get("Chart","Style")+"23"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle23}},__.d.StiStyleCoreXF24=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[Color.fromArgb2(237,125,49),Color.fromArgb2(255,192,0),Color.fromArgb2(112,173,71),Color.fromArgb2(158,72,14),Color.fromArgb2(153,115,0),Color.fromArgb2(67,104,43)]}get localizedName(){return StiLocalization.get("Chart","Style")+"24"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle24}get chartAreaBorderColor(){return Color.transparent}get legendBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}},Stimulsoft.System.Drawing.ColorTranslator),StiGrayStyleColors=(__.d.StiStyleCoreXF25=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#70ad47"),ColorTranslator.fromHtml("#4472c4"),ColorTranslator.fromHtml("#ffc000"),ColorTranslator.fromHtml("#43682b"),ColorTranslator.fromHtml("#fd6a37"),ColorTranslator.fromHtml("#997300")]}get localizedName(){return StiLocalization.get("Chart","Style")+"25"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle25}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return ColorTranslator.fromHtml("#33475b")}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}},__.d.StiStyleCoreXF26=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#2ec6c8"),ColorTranslator.fromHtml("#b5a1dd"),ColorTranslator.fromHtml("#5ab0ee"),ColorTranslator.fromHtml("#f4984e"),ColorTranslator.fromHtml("#d77a80"),ColorTranslator.fromHtml("#d04456")]}get localizedName(){return StiLocalization.get("Chart","Style")+"26"}get styleColors(){return this._styleColor}get chartAreaBorderColor(){return Color.transparent}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#ffffff"))}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsColor(){return ColorTranslator.fromHtml("#33475B")}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}get markerVisible(){return!1}set markerVisible(e){}get styleId(){return __.d.StiChartStyleId.StiStyle26}getColumnBorder(e){return Color.transparent}},__.d.StiStyleCoreXF27=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#0bac45"),ColorTranslator.fromHtml("#585257"),ColorTranslator.fromHtml("#ec334d"),ColorTranslator.fromHtml("#a1ae94"),ColorTranslator.fromHtml("#ed7d31"),ColorTranslator.fromHtml("#5ab0ee")]}get localizedName(){return StiLocalization.get("Chart","Style")+"27"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#33475b"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#33475b"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(180,50,50,50))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle27}},__.d.StiStyleCoreXF28=class extends __.d.StiStyleCoreXF26{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#165d9e"),ColorTranslator.fromHtml("#577eb6"),ColorTranslator.fromHtml("#569436"),ColorTranslator.fromHtml("#225056"),ColorTranslator.fromHtml("#d4dae0")]}get localizedName(){return StiLocalization.get("Chart","Style")+"28"}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#0a325a"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#0a325a"))}get chartAreaBorderColor(){return Color.transparent}get axisTitleColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get axisLineColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get axisLabelsColor(){return StiColorUtils.dark(this.basicStyleColor,50)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,6,32,59))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get styleId(){return __.d.StiChartStyleId.StiStyle28}},__.d.StiStyleCoreXF29=class extends __.d.StiStyleCoreXF26{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#3498db"),ColorTranslator.fromHtml("#ef717a"),ColorTranslator.fromHtml("#6dcbb3"),ColorTranslator.fromHtml("#f28161"),ColorTranslator.fromHtml("#fccd1b")]}get localizedName(){return StiLocalization.get("Chart","Style")+"29"}get styleColors(){return this._styleColor}get styleId(){return __.d.StiChartStyleId.StiStyle29}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get seriesLabelsColor(){return ColorTranslator.fromHtml("#323a45")}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}},__.d.StiStyleCoreXF30=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#db7b46"),ColorTranslator.fromHtml("#d3d3d5"),ColorTranslator.fromHtml("#6b6e75"),ColorTranslator.fromHtml("#4a4c55")]}get localizedName(){return StiLocalization.get("Chart","Style")+"30"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#595b65"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#595b65"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get legendFont(){return new Font("Arial",8)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get styleId(){return __.d.StiChartStyleId.StiStyle30}},__.d.StiStyleCoreXF31=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[ColorTranslator.fromHtml("#fefef9"),ColorTranslator.fromHtml("#a8d7e2"),ColorTranslator.fromHtml("#5ea8bf"),ColorTranslator.fromHtml("#2b7f9e"),ColorTranslator.fromHtml("#1c4458")]}get localizedName(){return StiLocalization.get("Chart","Style")+"31"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#235e6d"))}get chartAreaBrush(){return new StiSolidBrush(ColorTranslator.fromHtml("#235e6d"))}get chartAreaBorderColor(){return Color.transparent}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,30,74,97))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.All,Color.white,1,StiPenStyle.Solid)}get seriesLighting(){return!1}getColumnBorder(e){return Color.transparent}get styleId(){return __.d.StiChartStyleId.StiStyle31}},__.d.StiStyleCoreXF32=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("3a5263"),StiColor.get("90a1ab"),StiColor.get("c9d5dc")]}get localizedName(){return StiLocalization.get("Chart","Style")+"32"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColor.get("e9f4fc")}get chartBrush(){return new StiSolidBrush(StiColor.get("6d7e8b"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("6d7e8b"))}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("e9f4fc")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return StiColor.get("e9f4fc")}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return StiColor.get("e9f4fc")}get seriesLabelsLineColor(){return StiColor.get("e9f4fc")}get seriesLabelsFont(){return new Font("Arial",10)}get axisTitleColor(){return StiColor.get("e9f4fc")}get axisLineColor(){return StiColor.get("e9f4fc")}get axisLabelsColor(){return StiColor.get("e9f4fc")}get gridLinesHorColor(){return StiColor.get("e9f4fc")}get gridLinesVertColor(){return StiColor.get("e9f4fc")}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,67,84,94))}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle32}getColumnBorder(e){return Color.transparent}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF33=class extends __.d.StiStyleCoreXF{constructor(){super(...arguments),this._styleColor=[StiColor.get("40568d"),StiColor.get("4569bb"),StiColor.get("e47334"),StiColor.get("9d9c9c"),StiColor.get("f8b92d"),StiColor.get("5e93cc"),StiColor.get("6ea548")]}get localizedName(){return StiLocalization.get("Chart","Style")+"33"}get styleColors(){return this._styleColor}get basicStyleColor(){return StiColor.get("e9f4fc")}get chartBrush(){return new StiSolidBrush(StiColor.get("f2f5fc"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("f2f5fc"))}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("8c8c8c")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return StiColor.get("e9f4fc")}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return StiColor.get("e9f4fc")}get seriesLabelsLineColor(){return StiColor.get("e9f4fc")}get seriesLabelsFont(){return new Font("Arial",10)}get axisTitleColor(){return StiColor.get("8c8c8c")}get axisLineColor(){return StiColor.get("e9f4fc")}get axisLabelsColor(){return StiColor.get("8c8c8c")}get gridLinesHorColor(){return StiColor.get("e9f4fc")}get gridLinesVertColor(){return StiColor.get("e9f4fc")}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle33}getColumnBorder(e){return Color.transparent}getColumnBrush(e){return new StiSolidBrush(e)}},__.d.StiStyleCoreXF34=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("144b45"),StiColor.get("ecb92f"),StiColor.get("d66153"),StiColor.get("25775b"),StiColor.get("319491"),StiColor.get("f7f7f7"),StiColor.get("dd7c21")]}get localizedName(){return StiLocalization.get("Chart","Style")+"34"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(StiColor.get("3f745e"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("3f745e"))}get chartAreaBorderColor(){return Color.transparent}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return Color.white}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,20,75,69))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.None,Color.white,1,StiPenStyle.Solid)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb(119,255,255,255))}get seriesLabelsColor(){return Color.white}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle34}getColumnBorder(e){return Color.transparent}},__.d.StiStyleCoreXF35=class extends __.d.StiStyleCoreXF22{constructor(){super(...arguments),this._styleColor=[StiColor.get("#794d26"),StiColor.get("#c7986a"),StiColor.get("#c4b49a"),StiColor.get("#894d29"),StiColor.get("#422515"),StiColor.get("#564438"),StiColor.get("#876c57"),StiColor.get("#d8814b"),StiColor.get("#532525"),StiColor.get("#59413f")]}get localizedName(){return StiLocalization.get("Chart","Style")+"35"}get styleColors(){return this._styleColor}get chartBrush(){return new StiSolidBrush(StiColor.get("#fefefe"))}get chartAreaBrush(){return new StiSolidBrush(StiColor.get("#fefefe"))}get chartAreaBorderColor(){return Color.transparent}get legendBrush(){return new StiSolidBrush(Color.transparent)}get legendLabelsColor(){return StiColor.get("#222222")}get legendBorderColor(){return Color.transparent}get legendTitleColor(){return Color.white}get legendShowShadow(){return!1}get legendFont(){return new Font("Arial",9)}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(StiColor.get("#5a4941"))}get seriesLabelsColor(){return StiColor.get("#fefefe")}get seriesLabelsFont(){return new Font("Arial",10)}get toolTipBrush(){return new StiSolidBrush(Color.fromArgb(150,66,37,21))}get toolTipTextBrush(){return new StiSolidBrush(Color.white)}get toolTipBorder(){return new StiSimpleBorder(StiBorderSides.None,Color.white,1,StiPenStyle.Solid)}get seriesLighting(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle35}getColumnBorder(e){return Color.transparent}},__.a.Dashboard.Styles.StiGrayStyleColors),StiWhiteBlackStyleColors=(__.d.StiStyleCoreXF36=class extends __.d.StiStyleCoreXF26{get localizedName(){return StiLocalization.get("Chart","Style")+"36"}get styleColors(){return StiGrayStyleColors.seriesColors}get chartAreaBorderColor(){return Color.transparent}get legendBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(Color.fromArgb3(119,StiGrayStyleColors.backColor))}get seriesLabelsColor(){return StiGrayStyleColors.cellForeColor}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}get styleId(){return __.d.StiChartStyleId.StiStyle36}getColumnBorder(e){return Color.transparent}},__.a.Dashboard.Styles.StiWhiteBlackStyleColors),StiLinearGradientBrush=Stimulsoft.Base.Drawing.StiLinearGradientBrush,StiGeom=(__.d.StiStyleCoreXF37=class extends __.d.StiStyleCoreXF26{get localizedName(){return StiLocalization.get("Chart","Style")+"37"}getAreaBrush(e){return new StiLinearGradientBrush([StiColorUtils.changeAlpha(.25,e),Color.white,Color.white],[0,.5,1],90)}get styleId(){return __.d.StiChartStyleId.StiStyle37}get styleColors(){return StiWhiteBlackStyleColors.seriesColors}get chartAreaBorderColor(){return Color.transparent}get legendShowShadow(){return!1}get legendBorderColor(){return Color.transparent}get axisTitleColor(){return StiWhiteBlackStyleColors.foreColor}get axisLineColor(){return StiWhiteBlackStyleColors.foreColor}get axisLabelsColor(){return StiWhiteBlackStyleColors.foreColor}get seriesLabelsBorderColor(){return Color.transparent}get seriesLabelsBrush(){return new StiSolidBrush(StiWhiteBlackStyleColors.foreColor)}get seriesLabelsColor(){return ColorTranslator.fromHtml("#f7fbff")}get seriesLabelsFont(){return new Font("Arial",10)}get seriesLighting(){return!1}get seriesShowShadow(){return!1}},__.d.StiChartTableCoreXF=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiChartTableCoreXF];return(this.implements=()=>e)()}applyStyle(e){this.chartTable.allowApplyStyle&&(this.chartTable.gridLineColor=e.core.legendBorderColor,this.chartTable.textColor=e.core.legendLabelsColor)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}showTable(){if((this.chartTable.chart.area.is2(__.d.IStiClusteredColumnArea)||this.chartTable.chart.area.is2(__.d.IStiStackedColumnArea))&&!this.chartTable.chart.area.is2(__.d.IStiCandlestickArea)&&!this.chartTable.chart.area.is2(__.d.IStiRangeArea)&&!this.chartTable.chart.area.is2(__.d.IStiScatterArea)&&!this.chartTable.chart.area.is2(__.d.IStiStockArea)&&this.chartTable.visible)return!0;return!1}getHeightTable(e,t){let i=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*e.options.zoom),s=e.measureString("HeightText",i);return s.height*this.chartTable.chart.series.count+this.getHeightHeaderTable(e,t)}getHeightHeaderTable(r,e){let n=0,t=this.chartTable.chart.area,l=t.xAxis.startFromZero,o=this.getArguments(),a=StiFontGeom.changeFontSize(this.chartTable.header.font,this.chartTable.header.font.size*r.options.zoom),h=r.getGenericStringFormat(),i=(h.trimming=StringTrimming.None,this.chartTable.header.wordWrap||(h.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),h.alignment=StringAlignment.Center,h.lineAlignment=StringAlignment.Center,t.xAxis.startFromZero?o.length+1:o.length-1),u=(e-this.getWidthCellLegend(r))/i;for(let s=0;s<o.length;s++){let e=0,t=(0!=s&&s!=o.length-1||(e=l?u/2:-u/2),this.chartTable.header.wordWrap?StiMath.trunc(u+e):0),i=r.measureRotatedString3(o[s],a,new PointD(0,0),h,StiRotationMode.CenterCenter,0,t).height;n=Math.max(n,i)}return n}getWidthCellLegend(t){let i=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*t.options.zoom),s=t.getGenericStringFormat(),r=(s.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,s.alignment=StringAlignment.Center,s.lineAlignment=StringAlignment.Center,0),n=new RectangleD;for(let e of this.chartTable.chart.series.list)n=t.measureRotatedString4(e.coreTitle,i,new PointD(0,0),s,StiRotationMode.CenterCenter,0),r=Math.max(n.width,r);return this.chartTable.markerVisible&&(r+=n.height),Math.ceil(r)}render(e,t){return new __.d.StiChartTableGeom(t,this.getTableValues(),this.getWidthCellLegend(e),this.getHeightHeaderTable(e,t.width),this.chartTable)}getMaxCountValues(t){let i=0;for(let e of t.list)i=Math.max(i,e.values.length);return i}getArguments(){let s=this.chartTable.chart.series,r=[],e=this.getMaxCountValues(s);for(let i=0;i<e;i++){let e=s.getByIndex(0).arguments.length>i?s.getByIndex(0).arguments[i]:(i+1).toString(),t=this.getLabelText(e,s.getByIndex(0));r.push(t)}return r}getLabelText(i,e){var t;null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let s=null==(t=this.chartTable.chart.report)?void 0:t.getParsedCulture();try{StiString.isNullOrEmpty(s)||(CultureInfo.currentCulture=CultureInfo.cultures[s]);let t="";if(null!=(t=null!=(t=null!=e?e.format:t)&&0!=t.trim().length?t:this.chartTable.header.format)&&0!=t.trim().length){if("string"==typeof i){let e=i.toString(),t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(0<e.length&&!isNaN(t))i=t;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0:N"+e.toString()+"}{1}{2}",i,"%",this.chartTable.header.textAfter)}return StiString.format("{0:"+t+"}{1}",i,this.chartTable.header.textAfter)}return StiString.format("{0}{1}",i,this.chartTable.header.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(s)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}getTableValues(){let e=this.chartTable.chart.series,t=this.getArguments(),l=StiArray.create2(String,e.count+1,t.length+1);for(let e=0;e<t.length;e++)l[0][e+1]=t[e];let o=this.chartTable.chart.area,a=1;for(let n of e.list){l[a][0]=n.coreTitle;let r=1;for(let e=0;e<n.values.length;e++){let i=o.reverseHor?n.values[n.values.length-e-1]:n.values[e],s=this.chartTable.chart.table.format;if(null==s&&0==s.trim().length||null==i)l[a][r]=i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator);else if(s.startsWith("P")&&!__.d.StiChartOptions.oldChartPercentMode){let e=0,t;try{1<s.length&&(e=s[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),t=n.seriesLabels.core.recalcValue(i,e)}catch(e){t=n.seriesLabels.core.recalcValue(i,2)}l[a][r]=StiString.format("{0:N"+e.toString()+"}{1}",t,"%")}else{let e=i;n.core.isDateTimeValues&&(e=DateTime.fromOADate(i)),l[a][r]=StiString.format("{0:"+s+"}",e)}r++}a++}return l}constructor(e){this.chartTable=e}},__.d.StiTrendLineCoreXF=class{implements(){let e=[ICloneable,__.d.IStiTrendLineCoreXF];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get localizedName(){return null}renderTrendLine(e,t,i){}sum(t){let i=0;for(let e of t)i+=e;return i}sumSqr(t){let i=0;for(let e of t)i+=e*e;return i}sumProductions(t,i){let s=0;for(let e=0;e<t.length;e++)s+=t[e]*i[e];return s}sumProductionsXLogY(t,i){let s=0;for(let e=0;e<t.length;e++)s+=t[e]*Math.log(i[e]);return s}sumLn(t){let i=0;for(let e of t)i+=Math.log(e);return i}constructor(e){this.trendLine=e}},__.d.StiTrendLineExponentialCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Exponential")}renderTrendLine(c,g,p){if(0<g.length){let t=StiArray.create(Number,g.length),i=StiArray.create(Number,g.length),s=g[0].x,r=g[0].x;for(let e=0;e<g.length;e++)t[e]=g[e].x,i[e]=p-g[e].y,s<g[e].x&&(s=g[e].x),r>g[e].x&&(r=g[e].x);let e=g.length,n=this.sum(t),l=this.sumSqr(t),o=this.sumProductionsXLogY(t,i),a=this.sumLn(i),h=(e*o-n*a)/(e*l-n*n),u=(l*a-n*o)/(e*l-n*n),S=Math.exp(u),d=StiArray.create(PointD,31,!0);for(let i=0;i<31;i++){let e=r+(s-r)/30*i,t=S*Math.exp(h*e);d[i]=new PointD(e,p-t)}let m=new __.d.StiTrendCurveGeom(d,this.trendLine);c.createChildGeoms(),c.childGeoms.push(m)}}constructor(e){super(e)}},__.d.StiTrendLineLinearCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Linear")}renderTrendLine(m,c,e){if(0<c.length){let t=StiArray.create(Number,c.length),i=StiArray.create(Number,c.length),s=c[0].x,r=c[0].x;for(let e=0;e<c.length;e++)t[e]=c[e].x,i[e]=c[e].y,s<t[e]&&(s=t[e]),r>t[e]&&(r=t[e]);let e=c.length,n=this.sum(t),l=this.sum(i),o=this.sumSqr(t),a=this.sumProductions(t,i),h=n*n-o*e,u=(l*n-a*e)/h,S=(n*a-o*l)/h,d=new __.d.StiTrendLineGeom(new PointD(r,u*r+S),new PointD(s,u*s+S),this.trendLine);m.createChildGeoms(),m.childGeoms.push(d)}}constructor(e){super(e)}},__.d.StiTrendLineLogarithmicCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("PropertyMain","Logarithmic")}renderTrendLine(c,g,e){if(0<g.length){let t=StiArray.create(Number,g.length),i=StiArray.create(Number,g.length),s=g[0].x,r=g[0].x;for(let e=0;e<g.length;e++)t[e]=Math.log(g[e].x),i[e]=g[e].y,s<g[e].x&&(s=g[e].x),r>g[e].x&&(r=g[e].x);let e=g.length,n=this.sum(t),l=this.sum(i),o=this.sumSqr(t),a=this.sumProductions(t,i),h=n*n-o*e,u=(l*n-a*e)/h,S=(n*a-o*l)/h,d=StiArray.create(PointD,31,!0);for(let i=0;i<31;i++){let e=r+(s-r)/30*i,t=u*Math.log(e)+S;d[i]=new PointD(e,t)}let m=new __.d.StiTrendCurveGeom(d,this.trendLine);c.createChildGeoms(),c.childGeoms.push(m)}}constructor(e){super(e)}},__.d.StiTrendLineNoneCoreXF=class extends __.d.StiTrendLineCoreXF{get localizedName(){return StiLocalization.get("Chart","LabelsNone")}constructor(e){super(e)}},Stimulsoft.Base.Context.StiGeom),StiGeomType=Stimulsoft.Base.Context.StiGeomType;__.d.StiCellGeom=class extends StiGeom{implements(){let e=super.implements().concat([__.d.IStiCellGeom]);return(this.implements=()=>e)()}get invisible(){return!1}dispose(){null!=this.childGeoms&&(this.childGeoms[Stimulsoft.System.StiObject.stimulsoft]().clear(),this.childGeoms=null)}contains(e,t){if(this.invisible)return!1;return this.clientRectangle.contains(e,t)}getGeomAt(s,r,n){let l=r-s.clientRectangle.x,o=n-s.clientRectangle.y;if(null!=s.childGeoms){let e=s,i=null;for(let t of s.childGeoms)if(null!=e&&e.isChildVisibleInView(t)||null==e)if(t.is(__.d.StiAxisAreaGeom)){if(!t.view.contains(r,n))continue;let e=this.getGeomAt(t,l,o);null!=e&&(i=e)}else{let e=this.getGeomAt(t,l,o);if(null!=e&&(i=e).is(__.d.StiMarkerGeom))return i}if(null!=i)return i}if(s.contains(r,n))return s;return null}getSeriesGeoms(){let i=[];if(null==this.childGeoms)return i;for(let e of this.childGeoms){(e.is(__.d.StiSeriesGeom)||e.is(__.d.StiSeriesElementGeom))&&i.push(e);let t=e.getSeriesGeoms();for(let e of t)i.push(e)}return i}getSeriesElementGeoms(){let i=[];if(null==this.childGeoms)return i;for(let e of this.childGeoms)if(null!=e){e.is(IStiSeriesElement)&&i.push(e);let t=e.getSeriesElementGeoms();for(let e of t)i.push(e)}return i}getRect(i){let s=RectangleD.empty;if(null==this.childGeoms)return s;for(let t of this.childGeoms){if(t==i)return s.x+=t.clientRectangle.x,s.y+=t.clientRectangle.y,s.size=t.clientRectangle.size,s;let e=t.getRect(i);if(!e.isEmpty)return s.x+=t.clientRectangle.x,s.y+=t.clientRectangle.y,s.x+=e.x,s.y+=e.y,s.size=e.size,s}return s}createChildGeoms(){null==this.childGeoms&&(this.childGeoms=[])}draw(e){}drawGeom(e){this.draw(e),this.drawChildGeoms(e)}drawChildGeoms(t){if(null!=this.childGeoms){t.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let e of this.childGeoms)this.allowChildDrawing(e)&&e.drawGeom(t);t.popTransform()}}allowChildDrawing(e){return null!=e}constructor(e){super(),this.type=StiGeomType.None,this.childGeoms=null,this.clientRectangle=RectangleD.empty,this.clientRectangle=e.clone()}},__.d.StiChartGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e){super(e)}},__.d.StiNullableDrawing=class{static drawLines(e,t,i,s=null){this.drawLines2(e,t,null,i,s)}static drawLines2(t,i,e,s,r=null){let n=[];for(let e of s)null!=e?n.push(e):(1<n.length&&(null!=r?t.drawAnimationLines(i,n,r):t.drawLines(i,n)),n=[]);1<n.length&&(null!=r?t.drawAnimationLines(i,n,r):t.drawLines(i,n))}static drawCurve(t,i,s,r,n=null){let l=[];for(let e of s)null!=e?l.push(e):(1<l.length&&(null!=n?t.drawAnimationCurve(i,l,r,n):t.drawCurve(i,l,r)),l=[]);1<l.length&&(null!=n?t.drawAnimationCurve(i,l,r,n):t.drawCurve(i,l,r))}static getPointsList(t){let i=[],s=[];for(let e of t)null!=e?s.push(e):(1<s.length&&i.push(s),s=[]);return 1<s.length&&i.push(s),i}static getNullablePointsList(t){let i=[],s=[];for(let e of t)null!=e?s.push(e):(1<s.length&&i.push(s),s=[]);return 1<=s.length&&i.push(s),i}static getPointsList2(e,i,t,s){let r=[],n=[],l=[],o=[],a=0;for(let t of e){let e=i[a];null!=t&&null!=e?(l.push(t),o.push(e)):(1<l.length&&(r.push(l),n.push(o)),l=[],o=[]),a++}1<l.length&&(r.push(l),n.push(o)),t.ref=r,s.ref=n}},__.d.StiAreaGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&e.fillRectangle(this.area.brush,t,null)}constructor(e,t){super(t),this.area=e}};{class c10{constructor(e,t,i,s){this.x1=e,this.y1=t,this.x2=i,this.y2=s}}__.d.StiLineF=c10,__.d.StiAxisAreaGeom=class extends __.d.StiAreaGeom{drawInterlacingHor(s,r){r.x=0,r.width=this.view.clientRectangle.width;let n=this.area;if(!n.interlacingHor.visible)return;let i=[],t=n.yAxis.info.stripPositions.length,l=StiArray.create(Number,t);for(let e=0;e<t;e++)l[t-1-e]=n.yAxis.info.stripPositions[e];let o=0,a=!0,h=0;for(let t of l){if(h++,a){o=t,i.push(t),a=!1;continue}let e=o-t;if(e<this.minWidth&&h!=l.length)continue;o=t,i.push(t)}let e=StiArray.create(Number,i.length),u=(i[Stimulsoft.System.StiObject.stimulsoft]().copyTo(e),0),S=!0;for(let i of e){let t=e[u+1];if(S){let e=new RectangleD(r.x,r.y+t,r.width,i-t);0<=e.bottom&&e.y<this.view.clientRectangle.height&&s.fillRectangle(n.interlacingHor.interlacedBrush,e,null)}if(S=!S,++u==e.length-1)break}}drawInterlacingVer(s,r){r.y=0,r.height=this.view.clientRectangle.height;let n=this.area;if(!n.interlacingVert.visible)return;let e=0,l=0,i=(n.reverseHor&&(l=1),[]),o=n.xAxis.info.stripPositions,a=0,h=!0,u=0;for(let t of o){if(u++,h){a=t,i.push(t),h=!1;continue}let e=t-a;if(e<this.minWidth&&u!=o.length)continue;a=t,i.push(t)}let S=StiArray.create(Number,i.length);i[Stimulsoft.System.StiObject.stimulsoft]().copyTo(S);for(let i of S){let t=S[e+1];if(0<(1&l)){let e=new RectangleD(i+r.x,r.y,t-i,r.height);0<=e.right&&e.x<this.view.clientRectangle.width&&s.fillRectangle(n.interlacingVert.interlacedBrush,e,null)}if(l++,++e==S.length-1)break}}getGridLinesHorMajor(i,s,e){let r=new List,t=(i.x=0,i.width=this.view.clientRectangle.width,this.area),n=(e?t.yAxis:t.yRightAxis).info.stripPositions,l=n.length,o=StiArray.create(Number,l);for(let e=0;e<l;e++)o[l-e-1]=n[e];let a=(n=o)[0];for(let t of n){let e=a-t;if(e<this.minWidth&&0<e)continue;if(a=t,s.visible&&s.style!=StiPenStyle.None){let e=t+i.y;0<=e&&e<=this.clientRectangle.height&&r.add(new c10(i.x,e,i.right,e))}}return r}getGridLinesHorMinor(l,t,e){let o=new List,a=(l.x=0,l.width=this.view.clientRectangle.width,this.area),h=(e?a.yAxis:a.yRightAxis).info.stripPositions,i=h.length,s=StiArray.create(Number,i);for(let e=0;e<i;e++)s[i-e-1]=h[e];let r=(h=s)[0],u=0;for(let n of h){let e=r-n;if(e<this.minWidth&&0<e)continue;if(r=n,t.minorVisible&&t.minorStyle!=StiPenStyle.None&&u!=h.length-1){let e=h[u+1];if(n-e<this.minWidth)continue;let i=(0==t.minorCount?a.yAxis.ticks:t).minorCount,s=n,r=(e-n)/(i+1);for(let t=1;t<=i;t++){let e=(s=n+r*t)+l.y;0<=e&&e<=this.clientRectangle.height&&o.add(new c10(l.x,e,l.right,e))}}u++}return o}getGridLinesVerMajor(i,s,e){let r=new List,t=(i.y=0,i.height=this.view.clientRectangle.height,this.area),n=(e?t.xAxis:t.xTopAxis).info.stripPositions,l=0;for(let t of n){let e=t-l;if(e<this.minWidth&&0<e)continue;if(l=t,s.visible&&s.style!=StiPenStyle.None){let e=t+i.x;0<=e&&e<=this.clientRectangle.width&&r.add(new c10(e,i.y,e,i.bottom))}}return r}getGridLinesVerMinor(l,t,e){let o=new List,a=(l.y=0,l.height=this.view.clientRectangle.height,this.area),h=(e?a.xAxis:a.xTopAxis).info.stripPositions,i=0,u=0;for(let n of h){let e=n-i;if(e<this.minWidth&&0<e)continue;if(i=n,t.minorVisible&&t.minorStyle!=StiPenStyle.None&&u!=h.length-1){let e=h[u+1];if(e-n<this.minWidth)continue;let i=(0==t.minorCount?a.yAxis.ticks:t).minorCount,s=n,r=(e-n)/(i+1);for(let t=1;t<=i;t++){let e=(s=n+r*t)+l.x;0<=e&&e<=this.clientRectangle.width&&o.add(new c10(e,l.y,e,l.bottom))}}u++}return o}allowChildDrawing(e){return null!=e&&this.isChildVisibleInView(e)}isChildVisibleInView(e){let t=this.view.clientRectangle.clone(),i=(t.x=0,t.y=0,e.clientRectangle.clone());return i.x-=this.area.core.scrollDistanceX,i.y-=this.area.core.scrollDistanceY,null!=e&&t.intersectsWith(i)}draw(o){super.draw(o);let a=this.area,h=this.clientRectangle.clone();if(h.isEmpty)return;let e=a.axisCore.getSeries();if(0<e.length&&(this.drawInterlacingHor(o,h),this.drawInterlacingVer(o,h)),0<e.length){let e=this.getGridLinesHorMajor(h,a.gridLinesHor,!0),t=this.getGridLinesHorMinor(h,a.gridLinesHor,!0),i=this.getGridLinesHorMajor(h,a.gridLinesHorRight,!0),s=this.getGridLinesHorMinor(h,a.gridLinesHorRight,!0),r=this.getGridLinesVerMajor(h,a.gridLinesVert,!0),n=this.getGridLinesVerMinor(h,a.gridLinesVert,!0),l=new StiPenGeom(a.gridLinesHor.minorColor,1);l.penStyle=a.gridLinesHor.minorStyle,this.drawLines(o,t,l),(l=new StiPenGeom(a.gridLinesHorRight.minorColor,1)).penStyle=a.gridLinesHorRight.minorStyle,this.drawLines(o,s,l),(l=new StiPenGeom(a.gridLinesVert.minorColor,1)).penStyle=a.gridLinesVert.minorStyle,this.drawLines(o,n,l),(l=new StiPenGeom(a.gridLinesHor.color,1)).penStyle=a.gridLinesHor.style,this.drawLines(o,e,l),(l=new StiPenGeom(a.gridLinesHorRight.color,1)).penStyle=a.gridLinesHorRight.style,this.drawLines(o,i,l),(l=new StiPenGeom(a.gridLinesVert.color,1)).penStyle=a.gridLinesVert.style,this.drawLines(o,r,l)}}drawLines(t,i,s){for(let e of i)t.drawLine(s,e.x1,e.y1,e.x2,e.y2)}constructor(e,t,i){super(t,i),this.minWidth=6,this.view=e}}}let StiShadowSides=Stimulsoft.Base.Drawing.StiShadowSides;__.d.StiAxisAreaViewGeom=class extends __.d.StiAreaGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&this.area.showShadow&&e.drawCachedShadow(t,StiShadowSides.All,e.options.isPrinting),super.draw(e)}drawGeom(e){super.drawGeom(e),this.drawBorder(e)}drawChildGeoms(s){if(null!=this.childGeoms){let i=this.clientRectangle.clone();i.x=0,i.y=0,s.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let t of this.childGeoms){let e=Stimulsoft.StiOptions.Engine.allowClipChartArea&&(t.is(__.d.StiAxisAreaGeom)||t.is(__.d.StiXAxisGeom)&&t.isCenterAxis||t.is(__.d.StiYAxisGeom)&&t.isCenterAxis);e&&s.pushClip(i),this.allowChildDrawing(t)&&t.drawGeom(s),e&&s.popClip()}s.popTransform()}}drawBorder(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;let i=new StiPenGeom(this.area.borderColor,this.area.borderThickness);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(e,t)}},__.d.StiPieAreaGeom=class extends __.d.StiAreaGeom{draw(t){let i=this.clientRectangle.clone();if(0<i.width&&0<i.height){this.area.showShadow&&t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting),t.fillRectangle2(this.area.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.area.borderColor,this.area.borderThickness);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t){super(e,t)}},__.d.StiDoughnutAreaGeom=class extends __.d.StiPieAreaGeom{constructor(e,t){super(e,t)}};{class G20 extends __.d.StiCellGeom{draw(l){let o=this.clientRectangle.clone();if(o.isEmpty)return;if(0<o.width&&0<o.height){let e=Rectangle.empty,t=Rectangle.empty,i=!StiString.isNullOrEmpty(this.valueText),s=!StiString.isNullOrEmpty(this.titleText),r=i&&s,n=(r?(e=new Rectangle(o.x,o.y,o.width,o.height/2),t=new Rectangle(o.x,e.bottom,o.width,o.height/2)):i?e=o:s&&(t=o),new Font("Arial",1));e!=Rectangle.empty&&this.drawText(l,this.valueText,this.indicator.value.getColor(),e,n),t!=Rectangle.empty&&this.drawText(l,this.titleText,this.indicator.title.getColor(),t,n)}}drawText(e,t,i,s,r){if(StiString.isNullOrEmpty(t))return;let n=G20.getFontSize(e,s,t,r),l=StiFontGeom.create(r),o=(l.fontSize=n,e.getGenericStringFormat());e.drawRotatedString5(t,l,i,s,o,StiRotationMode.CenterCenter,0,!0)}static getFontSize(e,t,i,s){let r=StiFontGeom.create(s),n=e.measureString(i,r);if(0==n.width||0==n.height)return 0;let l=t.width/n.width,o=t.height/n.height,a=o<l?o:l;return a}constructor(e,t,i,s){super(e),this.valueText=t,this.titleText=i,this.indicator=s}}__.d.StiDoughnutAreaIndicatorGeom=G20}__.d.StiPictorialAreaGeom=class extends __.d.StiAreaGeom{draw(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;0<t.width&&0<t.height&&this.area.showShadow&&e.drawCachedShadow(t,StiShadowSides.All,e.options.isPrinting),super.draw(e)}drawGeom(e){super.drawGeom(e),this.drawBorder(e)}drawBorder(e){let t=this.clientRectangle.clone();if(t.isEmpty)return;let i=new StiPenGeom(this.area.borderColor,this.area.borderThickness);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(e,t)}},__.d.StiRadarAreaGeom=class extends __.d.StiAreaGeom{drawHor(a,e,t){let h=this.clientRectangle.clone(),u=this.area;if(null==u.yAxis.info.stripPositions)return;let S=u.core,d=0;for(let o of u.yAxis.info.stripPositions){if(0!=o){let s=new RectangleD(S.centerPoint.x-o,S.centerPoint.y-o,2*o,2*o);if(u.radarStyle==__.d.StiRadarStyle.Circle){if(e&&u.interlacingHor.visible&&d!=u.yAxis.info.stripPositions.length-1&&0==(1&d)){let e=[],t=u.yAxis.info.stripPositions[d+1],i=new RectangleD(S.centerPoint.x-t,S.centerPoint.y-t,2*t,2*t);e.push(new StiArcSegmentGeom(s,0,360)),e.push(new StiArcSegmentGeom(i,0,360)),a.fillPath(u.interlacingHor.interlacedBrush,e,h,null)}if(t&&u.gridLinesHor.visible){let e;d==u.yAxis.info.stripPositions.length-1?e=new StiPenGeom(u.borderColor,u.borderThickness):(e=new StiPenGeom(u.gridLinesHor.color)).penStyle=u.gridLinesHor.style,a.drawEllipse2(e,s)}}else{if(e&&u.interlacingHor.visible&&d!=u.yAxis.info.stripPositions.length-1&&1==(1&d)){let r=[],n=0;for(let s of S.points){let e,t=(e=n==S.points.length-1?S.points[0]:S.points[n+1],new PointD(S.centerPoint.x+o*s.x,S.centerPoint.y+o*s.y)),i=new PointD(S.centerPoint.x+o*e.x,S.centerPoint.y+o*e.y);r.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),n++}let l=u.yAxis.info.stripPositions[d+1];n=0;for(let s of S.points){let e,t=(e=n==S.points.length-1?S.points[0]:S.points[n+1],new PointD(S.centerPoint.x+l*s.x,S.centerPoint.y+l*s.y)),i=new PointD(S.centerPoint.x+l*e.x,S.centerPoint.y+l*e.y);r.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),n++}a.fillPath(u.interlacingHor.interlacedBrush,r,h,null)}if(t&&u.gridLinesHor.visible){let s=0;for(let i of S.points){let e;e=s==S.points.length-1?S.points[0]:S.points[s+1];let t;d==u.yAxis.info.stripPositions.length-1?t=new StiPenGeom(u.borderColor,u.borderThickness):(t=new StiPenGeom(u.gridLinesHor.color)).penStyle=u.gridLinesHor.style,a.drawLine(t,S.centerPoint.x+o*i.x,S.centerPoint.y+o*i.y,S.centerPoint.x+o*e.x,S.centerPoint.y+o*e.y),s++}}}}d++}}drawVert(r,t,n){let l=this.clientRectangle.clone(),o=this.area,a=o.core,h=0,u=360/a.points.length,S=0;for(let e of a.points){let i=a.centerPoint,s=new PointD(i.x+l.width/2*e.x,i.y+l.width/2*e.y);if(t&&o.interlacingVert.visible){let t=h<a.points.length-1?new PointD(i.x+l.width/2*a.points[h+1].x,i.y+l.height/2*a.points[h+1].y):new PointD(i.x+l.width/2*a.points[0].x,i.y+l.height/2*a.points[0].y);if(1==(1&h)){let e=[];o.radarStyle==__.d.StiRadarStyle.Circle?(e.push(new StiLineSegmentGeom(i.x,i.y,s.x,s.y)),e.push(new StiArcSegmentGeom(l,S-90,u))):(e.push(new StiLineSegmentGeom(i.x,i.y,s.x,s.y)),e.push(new StiLineSegmentGeom(s.x,s.y,t.x,t.y))),e.push(new StiLineSegmentGeom(t.x,t.y,i.x,i.y)),r.fillPath(o.interlacingVert.interlacedBrush,e,l,null)}}if(n&&o.gridLinesVert.visible){let e=new StiPenGeom(o.gridLinesVert.color);e.penStyle=o.gridLinesVert.style,r.drawLine(e,i.x,i.y,s.x,s.y)}S+=u,h++}}drawBackground(e){let t=this.clientRectangle.clone(),n=this.area;if(null==n.yAxis.info.stripPositions)return;let l=n.core,o=3,a=new StiSolidBrush(Color.fromArgb(50,0,0,0));if(n.radarStyle==__.d.StiRadarStyle.Circle)!this.area.showShadow||n.brush.is(StiEmptyBrush)||StiBrush.isTransparent(n.brush)||(e.pushTranslateTransform(o,o),e.fillEllipse2(a,t,null),e.popTransform()),e.fillEllipse2(n.brush,t,null);else{let i=n.yAxis.info.stripPositions[n.yAxis.info.stripPositions.length-1],s=[],r=0;for(let t of l.points){let e=r==l.points.length-1?l.points[0]:l.points[r+1];s.push(new StiLineSegmentGeom(l.centerPoint.x+i*t.x,l.centerPoint.y+i*t.y,l.centerPoint.x+i*e.x,l.centerPoint.y+i*e.y)),r++}!this.area.showShadow||n.brush.is(StiEmptyBrush)||StiBrush.isTransparent(n.brush)||(e.pushTranslateTransform(o,o),e.fillPath(a,s,t,null),e.popTransform()),e.fillPath(n.brush,s,t,null)}}draw(e){let t=this.clientRectangle.clone();0<t.width&&0<t.height&&(e.pushSmoothingModeToAntiAlias(),this.drawBackground(e),this.drawVert(e,!0,!1),this.drawHor(e,!0,!1),this.drawVert(e,!1,!0),this.drawHor(e,!1,!0),e.popSmoothingMode())}constructor(e,t,i){super(e,t),this.valuesCount=i}},__.d.StiSunburstAreaGeom=class extends __.d.StiPieAreaGeom{constructor(e,t){super(e,t)}},__.d.StiTreemapAreaGeom=class extends __.d.StiAreaGeom{draw(t){let i=this.clientRectangle.clone();if(0<i.width&&0<i.height){this.area.showShadow&&t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting),t.fillRectangle2(this.area.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.area.borderColor,this.area.borderThickness);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t){super(e,t)}},__.d.StiAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.axis.core.getStringFormatGeom(e,this.wordWrap),i=this.axis.core.getFontGeom(e),s=new StiSolidBrush(this.axis.labels.color);e.drawRotatedString9(this.text,i,s,this.textPoint,t,this.rotationMode,this.angle,this.axis.labels.antialiasing,StiMath.trunc(this.width*e.options.zoom))}constructor(e,t,i,s,r,n,l,o,a){super(t),this.axis=e,this.text=s,this.stripLine=r,this.textPoint=i,this.angle=n,this.rotationMode=o,this.width=l,this.wordWrap=a}},__.d.StiAxisTitleGeom=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.axis.title.color),i=e.getDefaultStringFormat();e.drawRotatedString5(this.axis.title.text,this.font,t,this.clientRectangle,i,StiRotationMode.CenterCenter,this.angle,this.axis.title.antialiasing)}constructor(e,t,i,s,r){super(t),this.angle=0,this.axis=e,this.angle=i,this.font=r}},__.d.StiXAxisGeom=class extends __.d.StiCellGeom{drawArrow(r,t){let n=r.options.zoom,l=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth),e=new StiPenGeom(this.axis.lineColor),o=new StiSolidBrush(this.axis.lineColor),i=0,a=(this.axis.core.isBottomSide&&(i=t.y),this.axis.core.isTopSide&&(i=t.bottom),PointD.empty);switch(a=this.axis.area.reverseHor?new PointD(t.x,i):new PointD(t.right,i),this.axis.arrowStyle){case __.d.StiArrowStyle.Triangle:{r.drawLine(l,a.x,a.y,a.x+this.axis.core.arrowHeight*n,a.y),r.pushSmoothingModeToAntiAlias();let e=[];e.push(new StiLineSegmentGeom(a.x+this.axis.core.arrowHeight*n,a.y-this.axis.core.arrowWidth*n,a.x+4*this.axis.core.arrowHeight*n,a.y)),e.push(new StiLineSegmentGeom(a.x+4*this.axis.core.arrowHeight*n,a.y,a.x+this.axis.core.arrowHeight*n,a.y+this.axis.core.arrowWidth*n)),r.fillPath(o,e,t,null),r.popSmoothingMode();break}case __.d.StiArrowStyle.Lines:r.drawLine(l,a.x,a.y,a.x+4*this.axis.core.arrowHeight*n,a.y),r.pushSmoothingModeToAntiAlias(),r.drawLine(e,a.x+this.axis.core.arrowHeight*n,a.y-this.axis.core.arrowWidth*n,a.x+4*this.axis.core.arrowHeight*n,a.y),r.drawLine(e,a.x+4*this.axis.core.arrowHeight*n,a.y,a.x+this.axis.core.arrowHeight*n,a.y+this.axis.core.arrowWidth*n),r.popSmoothingMode();break;case __.d.StiArrowStyle.Circle:{let e=this.axis.core.arrowHeight*n,t=(r.drawLine(l,a.x,a.y,a.x+2*e,a.y),new PointD(a.x+2*e,a.y-e/2)),i=(r.pushSmoothingModeToAntiAlias(),new RectangleD(t.x,t.y,e,e));r.drawEllipse2(l,i),r.popSmoothingMode();break}case __.d.StiArrowStyle.Arc:case __.d.StiArrowStyle.ArcAndCircle:{let i=this.axis.core.arrowHeight*n,s=(r.drawLine(l,a.x,a.y,a.x+2*i,a.y),r.pushSmoothingModeToAntiAlias(),[]);if(this.axis.area.reverseHor){let e=new PointD(a.x+3*i,a.y+i/2),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.x-=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,270,180))}else{let e=new PointD(a.x+2*i,a.y-i/2),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.x+=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,90,180))}if(r.drawPath(l,s,StiPathGeom.getBoundsState),this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle){let e=this.axis.core.arrowHeight*n,t=new PointD(a.x+2*e+n,a.y-e/2),i=new RectangleD(t.x,t.y,e,e);this.axis.area.reverseHor?(i.inflate(.5*n,.5*n),i.x-=3*n):(i.inflate(-.5*n,-.5*n),i.x+=n),r.fillEllipse2(o,i,null)}r.popSmoothingMode();break}}}drawAxisLine(e,t){let i=0,s=(this.axis.core.isTopSide&&(i=t.bottom),this.axis.core.isBottomSide&&(i=t.top),new StiPenGeom(this.axis.lineColor,this.axis.lineWidth));s.penStyle=this.axis.lineStyle,!this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Center?this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Bottom||e.drawLine(s,t.x,i,t.right,i):this.axis.area.reverseVert?e.drawLine(s,t.x,i,t.right,i):e.drawLine(s,t.x,i+t.height,t.right,i+t.height)}drawMinorTicks(s,r,n,e,l,t){let i=e-n,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=n+o*i,t=this.axis.core.isTopSide||this.isCenterAxis?l-a:l+a;this.axis.area.reverseVert&&this.isCenterAxis&&(t=l+a),s.drawLine(r,e,l,e,t)}}drawTicks(l,e,s,o){if(!s.visible)return;let t=s.length*l.options.zoom,a=this.axis.core.isTopSide||this.isCenterAxis?e.bottom:e.top,h=this.axis.core.isTopSide||this.isCenterAxis?a-t:a+t,u=(this.isCenterAxis&&this.axis.area.reverseVert&&(h=a+t),this.axis.info.ticksCollection);if(this.isArgumentDateTime(u)&&this.axis.area.xAxis.dateTimeStep.step!=__.d.StiTimeDateStep.None){let e,i,s=!0,r="",n=0;for(let t=0;t<u.length;t++){if(s&&(n=u[t].position,s=!1),!(null!=u[t].stripLine.valueObject&&u[t].stripLine.valueObject instanceof DateTime))continue;if(e=u[t].stripLine.valueObject,i=t<u.length-2?u[t+1].stripLine.valueObject:e,!e.ticks||!i.ticks)continue;switch(this.axis.area.xAxis.dateTimeStep.step){case __.d.StiTimeDateStep.Day:e.toString("yyyyMMMMdd")==i.toString("yyyyMMMMdd")&&t!=u.length-2||(r=e.toString("dd"));break;case __.d.StiTimeDateStep.Hour:e.toString("yyyyMMMMddHH")==i.toString("yyyyMMMMddHH")&&t!=u.length-2||(r=e.toString("HH"));break;case __.d.StiTimeDateStep.Minute:e.toString("yyyyMMMMddhhmm")==i.toString("yyyyMMMMddhhmm")&&t!=u.length-2||(r=e.toString("mm"));break;case __.d.StiTimeDateStep.Month:e.toString("yyyyMMMM")==i.toString("yyyyMMMM")&&t!=u.length-2||(r=e.toString("MMMM"));break;case __.d.StiTimeDateStep.Second:e.toString("yyyyMMMMddHHmmss")==i.toString("yyyyMMMMddHHmmss")&&t!=u.length-2||(r=e.toString("ss"));break;case __.d.StiTimeDateStep.Year:e.toString("yyyy")==i.toString("yyyy")&&t!=u.length-2||(r=e.toString("yyyy"));break}if(""!=r){let e=0;e=t==u.length-2?u[t+1].position:u[t].position+(u[t+1].position-u[t].position)/2,l.drawRectangle2(o,n,a,e-n,h),r="",n=e}}}else{let i=0;for(let e of this.axis.info.ticksCollection){let t=e.position;if(l.drawLine(o,t,a,t,h),s.minorVisible&&i!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[i+1].position;this.drawMinorTicks(l,o,t,e,a,s)}i++}}}isArgumentDateTime(t){for(let e of t)if(null!=e.stripLine.valueObject&&e.stripLine.valueObject instanceof DateTime)return!0;return!1}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,(!this.isCenterAxis||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Center)&&(this.isCenterAxis||(this.axis.core.isTopSide&&this.drawTicks(e,t,this.axis.ticks,i),!this.axis.core.isBottomSide)||this.axis.showXAxis!=__.d.StiShowXAxis.Both&&this.axis.showXAxis!=__.d.StiShowXAxis.Bottom)||this.drawTicks(e,t,this.axis.ticks,i),this.drawAxisLine(e,t)}getViewclipRect(){let e=this.view.clientRectangle.clone();return e.x=this.axis.area.core.scrollDistanceX,e.y=0,e.inflate(1,1),this.isCenterAxis&&e.inflate(0,2),e}allowChildDrawing(e){let t=e;if(null==t)return!0;if(null==this.view)return!0;let i=this.getViewclipRect(),s=t.clientRectangle;return!(s.right<i.x||s.x>i.right)}draw(t){let e=this.clientRectangle.clone();if(e.width<=0||e.height<=0)return;if(null!=this.view){let e=this.getViewclipRect();t.pushClip(e)}this.drawAxis(t,e),null!=this.view&&t.popClip()}constructor(e,t,i){super(t),this.isCenterAxis=!1,this.axis=e,this.isCenterAxis=i}},__.d.StiXAxisViewGeom=class extends __.d.StiXAxisGeom{drawChildGeoms(t){let i=this.clientRectangle.clone();if(this.isCenterAxis&&(i.y+=this.axis.area.core.getDividerY()-this.axis.area.core.scrollDistanceY),null!=this.childGeoms)for(let e of this.childGeoms)this.allowChildDrawing(e)&&(e.is(__.d.StiHorzScrollBarGeom)||t.pushTranslateTransform(-this.axis.area.core.scrollDistanceX,0),t.pushTranslateTransform(i.x,i.y),e.drawGeom(t),t.popTransform(),e.is(__.d.StiHorzScrollBarGeom)||t.popTransform());this.draw(t)}draw(e){let t=this.clientRectangle.clone();if(this.isCenterAxis&&(t.y+=this.axis.area.core.getDividerY()-this.axis.area.core.scrollDistanceY),t.width<=0||t.height<=0)return;this.axis.arrowStyle==__.d.StiArrowStyle.None||this.isCenterAxis||this.drawArrow(e,t)}constructor(e,t,i){super(e,t,i)}},__.d.StiYAxisGeom=class extends __.d.StiCellGeom{drawArrow(r,e){let n=r.options.zoom,l=new StiPenGeom(this.axis.lineColor),o=new StiSolidBrush(this.axis.lineColor),t=new StiPenGeom(this.axis.lineColor),a=(this.axis.visible||this.drawAxisLine(r,e),PointD.empty);switch(a=this.axis.area.reverseVert?new PointD(e.right,e.bottom):new PointD(e.right,e.y),this.axis.core.isRightSide&&(a.x=e.x),this.axis.arrowStyle){case __.d.StiArrowStyle.Triangle:{r.drawLine(l,a.x,a.y,a.x,a.y-this.axis.core.arrowHeight*n),r.pushSmoothingModeToAntiAlias();let e=[];e.push(new StiLineSegmentGeom(a.x-this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n)),e.push(new StiLineSegmentGeom(a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n)),r.fillPath(o,e,StiPathGeom.getBoundsState,null),r.popSmoothingMode();break}case __.d.StiArrowStyle.Lines:r.drawLine(l,a.x,a.y,a.x,a.y-4*this.axis.core.arrowHeight*n),r.pushSmoothingModeToAntiAlias(),r.drawLine(t,a.x-this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n),r.drawLine(t,a.x+this.axis.core.arrowWidth*n,a.y-this.axis.core.arrowHeight*n,a.x,a.y-4*this.axis.core.arrowHeight*n),r.popSmoothingMode();break;case __.d.StiArrowStyle.Circle:{r.drawLine(l,a.x,a.y,a.x,a.y-this.axis.core.arrowHeight*n*2);let e=this.axis.core.arrowHeight*n,t=new PointD(a.x-e/2,a.y-3*e),i=(r.pushSmoothingModeToAntiAlias(),new RectangleD(t.x,t.y,this.axis.core.arrowHeight*n,this.axis.core.arrowHeight*n));r.drawEllipse2(l,i),r.popSmoothingMode();break}case __.d.StiArrowStyle.Arc:case __.d.StiArrowStyle.ArcAndCircle:{let i=this.axis.core.arrowHeight*n,s=(r.drawLine(l,a.x,a.y,a.x,a.y-2*i),r.pushSmoothingModeToAntiAlias(),[]);if(this.axis.area.reverseVert){let e=new PointD(a.x+i/2,a.y-2*i),t=new RectangleD(e.x,e.y,Math.abs(i),Math.abs(i));this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.y+=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,180,180))}else{let e=new PointD(a.x-i/2,a.y-3*i),t=new RectangleD(e.x,e.y,i,i);this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle&&(t.y-=n,t.inflate(1,1)),s.push(new StiArcSegmentGeom(t,0,180))}if(r.drawPath(l,s,StiPathGeom.getBoundsState),this.axis.arrowStyle==__.d.StiArrowStyle.ArcAndCircle){let e=this.axis.core.arrowHeight*n,t=new PointD(a.x-e/2,a.y-3*e-n),i=new RectangleD(t.x,t.y,e,e);this.axis.area.reverseVert?(i.inflate(.5*n,.5*n),i.y+=3*n):(i.inflate(-.5*n,-.5*n),i.y-=n),r.fillEllipse2(o,i,null)}r.popSmoothingMode();break}}}drawAxisLine(e,t){let i=t.right,s=(this.axis.core.isRightSide&&(i=t.left),this.isCenterAxis&&this.axis.area.reverseHor&&(i=t.right),new StiPenGeom(this.axis.lineColor,this.axis.lineWidth));s.penStyle=this.axis.lineStyle,(!this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Center)&&(this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Left)||e.drawLine(s,i,t.y,i,t.bottom)}drawMinorTicks(s,r,n,l,e,t){let i=e-l,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=l+o*i,t=this.axis.core.isLeftSide||this.isCenterAxis?n-a:n+a;this.axis.area.reverseHor&&this.isCenterAxis&&(t=n+a),s.drawLine(r,n,e,t,e)}}drawTicks(i,e,s,r){if(!s.visible)return;let t=s.length*i.options.zoom,n=this.axis.core.isLeftSide?e.right:e.left,l=this.axis.core.isLeftSide?n-t:n+t,o=(this.isCenterAxis&&this.axis.area.reverseHor&&(n=e.right,l=e.right+t),0);for(let e of this.axis.info.ticksCollection){let t=e.position;if(i.drawLine(r,n,t,l,t),s.minorVisible&&o!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[o+1].position;this.drawMinorTicks(i,r,n,t,e,s)}o++}}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,!this.isCenterAxis||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Center?this.isCenterAxis||(this.axis.core.dock!=__.d.StiYAxisDock.Left||this.axis.showYAxis!=__.d.StiShowYAxis.Both&&this.axis.showYAxis!=__.d.StiShowYAxis.Left||this.drawTicks(e,t,this.axis.area.yAxis.ticks,i),this.axis.core.dock==__.d.StiYAxisDock.Right&&this.drawTicks(e,t,this.axis.area.yRightAxis.ticks,i)):this.drawTicks(e,t,this.axis.ticks,i),this.drawAxisLine(e,t)}getViewclipRect(){let e=this.view.clientRectangle.clone();return e.x=0,e.y=this.axis.area.core.scrollDistanceY,e.inflate(1,1),this.isCenterAxis&&e.inflate(2,0),e}allowChildDrawing(e){let t=e;if(null==t)return!0;if(null==this.view)return!0;let i=this.getViewclipRect(),s=t.clientRectangle;return!(s.bottom<i.y||s.y>i.bottom)}draw(t){let e=this.clientRectangle.clone();if(e.width<=0||e.height<=0)return;if(null!=this.view){let e=this.getViewclipRect();t.pushClip(e)}this.drawAxis(t,e),null!=this.view&&t.popClip()}constructor(e,t,i){super(t),this.isCenterAxis=!1,this.axis=e,this.isCenterAxis=i}},__.d.StiYAxisViewGeom=class extends __.d.StiYAxisGeom{drawChildGeoms(t){let i=this.clientRectangle.clone();if(this.isCenterAxis&&(i.x+=this.axis.area.core.getDividerX()-this.axis.area.core.scrollDistanceX),null!=this.childGeoms)for(let e of this.childGeoms)this.allowChildDrawing(e)&&(e.is(__.d.StiVertScrollBarGeom)||t.pushTranslateTransform(0,-this.axis.area.core.scrollDistanceY),t.pushTranslateTransform(i.x,i.y),e.drawGeom(t),t.popTransform(),e.is(__.d.StiVertScrollBarGeom)||t.popTransform())}draw(e){let t=this.clientRectangle.clone();if(this.isCenterAxis&&(t.x+=this.axis.area.core.getDividerX()-this.axis.area.core.scrollDistanceX),t.width<=0||t.height<=0)return;this.axis.arrowStyle==__.d.StiArrowStyle.None||this.isCenterAxis||this.drawArrow(e,t)}constructor(e,t,i){super(e,t,i)}},__.d.StiDownButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/3),r=t.height/4,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y-r,n.x,n.y+r)),l.push(new StiLineSegmentGeom(n.x,n.y+r,n.x+s,n.y-r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiHorzScrollBarGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.axis.lineColor);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(t),this.axis=e}},__.d.StiHorzTrackBarGeom=class extends __.d.StiCellGeom{draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.axis.lineColor),s=new StiPenGeom(Color.white);if(t.fillRectangle2(this.axis.lineColor,i.x,i.y,i.width,i.height,null),t.drawRectangle2(e,i.x,i.y,i.width,i.height),10<i.width&&4<i.height){let e=i.x+i.width/2;t.drawLine(s,e-2,i.y+2,e-2,i.bottom-2),t.drawLine(s,e,i.y+2,e,i.bottom-2),t.drawLine(s,e+2,i.y+2,e+2,i.bottom-2)}}constructor(e,t,i){super(t),this.axis=e,this.scrollBar=i}},__.d.StiLeftButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/4),r=t.height/3,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x+s,n.y-r,n.x-s,n.y)),l.push(new StiLineSegmentGeom(n.x-s,n.y,n.x+s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiRightButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/4),r=t.height/3,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y-r,n.x+s,n.y)),l.push(new StiLineSegmentGeom(n.x+s,n.y,n.x-s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiUpButtonGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=Color.white,s=(i=this.axis.lineColor,t.width/3),r=t.height/4,n=new PointD(t.x+t.width/2,t.y+t.height/2),l=(e.pushSmoothingModeToAntiAlias(),[]);l.push(new StiLineSegmentGeom(n.x-s,n.y+r,n.x,n.y-r)),l.push(new StiLineSegmentGeom(n.x,n.y-r,n.x+s,n.y+r)),e.fillPath(i,l,t,null),e.popSmoothingMode()}constructor(e,t){super(t),this.axis=e}},__.d.StiVertScrollBarGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.axis.lineColor);e.drawRectangle2(i,t.x,t.y,t.width,t.height)}constructor(e,t){super(t),this.axis=e}},__.d.StiVertTrackBarGeom=class extends __.d.StiCellGeom{draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.axis.lineColor),s=new StiPenGeom(Color.white);if(t.fillRectangle2(this.axis.lineColor,i.x,i.y,i.width,i.height,null),t.drawRectangle2(e,i.x,i.y,i.width,i.height),10<i.height&&4<i.width){let e=i.y+i.height/2;t.drawLine(s,i.x+2,e-2,i.right-2,e-2),t.drawLine(s,i.x+2,e,i.right-2,e),t.drawLine(s,i.x+2,e+2,i.right-2,e+2)}}constructor(e,t,i){super(t),this.axis=e,this.scrollBar=i}},__.d.StiChartTitleGeom=class extends __.d.StiCellGeom{draw(s){if(this.title.visible){let e=this.title.dock,t=(this.title.dock==__.d.StiChartTitleDock.Bottom&&(e=0),StiFontGeom.changeFontSize(this.title.font,this.title.font.size*s.options.zoom)),i=s.getDefaultStringFormat();i.alignment=this.title.alignment,i.trimming=StringTrimming.None,i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap|StringFormatFlags.NoClip,s.drawRotatedString8(this.title.text,t,this.title.brush,this.clientRectangle,i,StiRotationMode.CenterCenter,e,this.title.antialiasing)}}constructor(e,t){super(t),this.title=e}},__.d.StiConstantLinesVerticalGeom=class extends __.d.StiCellGeom{draw(s){let e=this.clientRectangle.clone(),t=new StiPenGeom(this.line.lineColor,this.line.lineWidth);if(t.penStyle=this.line.lineStyle,s.drawLine(t,e.left,e.top,e.left,e.bottom),this.line.titleVisible){let e=new StiSolidBrush(this.line.lineColor),t=StiFontGeom.changeFontSize(this.line.font,this.line.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString9(this.line.text,t,e,this.point,i,this.mode,90,this.line.antialiasing,0)}}constructor(e,t,i,s){super(t),this.line=e,this.point=i,this.mode=s}},__.d.StiConstantLinesYGeom=class extends __.d.StiCellGeom{draw(s){let e=this.clientRectangle.clone(),t=new StiPenGeom(this.line.lineColor,this.line.lineWidth);if(t.penStyle=this.line.lineStyle,s.drawLine(t,e.left,e.top,e.left+e.width,e.top),this.line.titleVisible){let e=new StiSolidBrush(this.line.lineColor),t=StiFontGeom.changeFontSize(this.line.font,this.line.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString9(this.line.text,t,e,this.point,i,this.mode,0,this.line.antialiasing,0)}}constructor(e,t,i,s){super(t),this.line=e,this.point=i,this.mode=s}},__.d.StiLegendGeom=class extends __.d.StiCellGeom{dispose(){super.dispose(),this.seriesItems[Stimulsoft.System.StiObject.stimulsoft]().clear(),this.seriesItems=null}draw(t){if(!this.legend.visible||0==this.seriesItems.length)return;let i=this.clientRectangle.clone();if(null!=this.legendTitleGeom&&(i.y+=this.legendTitleGeom.clientRectangle.height,i.height-=this.legendTitleGeom.clientRectangle.height),0<i.width&&0<i.height){if(this.legend.showShadow)if(this.legend.chart.isAnimation){let e=new StiOpacityAnimation(new TimeSpan(0),new TimeSpan(0));t.drawShadowRect(i,6,null,e)}else t.drawCachedShadow(i,StiShadowSides.All,t.options.isPrinting);t.fillRectangle2(this.legend.brush,i.x,i.y,i.width,i.height,null);let e=new StiPenGeom(this.legend.borderColor);t.drawRectangle2(e,i.x,i.y,i.width,i.height)}}constructor(e,t,i){super(t),this.legend=e,this.seriesItems=i}},__.d.StiLegendItemGeom=class extends __.d.StiCellGeom{draw(i){let s=this.clientRectangle.clone();if(this.legend.markerVisible){let e=new RectangleD(this.clientRectangle.x,this.clientRectangle.y+(this.clientRectangle.height-this.legend.markerSize.height*i.options.zoom)/2,this.legend.markerSize.width*i.options.zoom,this.legend.markerSize.height*i.options.zoom),t=(this.legend.markerAlignment==__.d.StiMarkerAlignment.Right&&(e.x=this.clientRectangle.right-e.width),__.d.StiMarkerLegendFactory.createMarker(this.item.series));t.draw(i,this.item.series,e,this.colorIndex,this.legendItemsCount,this.legendItemIndex),this.legend.markerAlignment==__.d.StiMarkerAlignment.Left&&(s.x+=this.legend.markerSize.width*i.options.zoom),s.width-=this.legend.markerSize.width*i.options.zoom}this.legend.markerAlignment!=__.d.StiMarkerAlignment.Right&&(s.x+=2),s.width+=4;let e=new StiSolidBrush(this.legend.labelsColor),t=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*i.options.zoom),r=i.getDefaultStringFormat();r.alignment=StringAlignment.Near,r.lineAlignment=StringAlignment.Center,r.formatFlags=0,this.legend.markerAlignment==__.d.StiMarkerAlignment.Right&&(r.formatFlags=StringFormatFlags.NoWrap),i.drawRotatedString6(this.item.getText(i,t),t,e,s,r,StiRotationMode.LeftTop,0,!0,0,!1)}constructor(e,t,i,s,r,n){super(i),this.legend=e,this.item=t,this.colorIndex=s,this.legendItemsCount=r,this.legendItemIndex=n}},__.d.StiLegendTitleGeom=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.legend.titleColor),i=StiFontGeom.changeFontSize(this.legend.titleFont,this.legend.titleFont.size*e.options.zoom),s=e.getDefaultStringFormat();s.alignment=StringAlignment.Center,s.lineAlignment=StringAlignment.Center,s.formatFlags=0,e.drawRotatedString5(this.legend.title,i,t,this.clientRectangle,s,StiRotationMode.CenterCenter,0,!0)}constructor(e,t){super(t),this.legend=e}},__.d.StiHeatmapLegendGeom=class extends __.d.StiCellGeom{draw(e){if(!this.legend.visible)return}constructor(e,t){super(t),this.legend=e}},__.d.StiHeatmapLegendItemGeom=class extends __.d.StiCellGeom{draw(e){let t=this.legend.markerSize.width*e.options.zoom,i=new RectangleD(this.clientRectangle.x,this.clientRectangle.y,t,this.clientRectangle.height),s=new RectangleD(i.right,this.clientRectangle.y,this.clientRectangle.width-i.width,this.clientRectangle.height),r=(s.x+=2,s.width+=4,new StiSolidBrush(this.legend.labelsColor)),n=StiFontGeom.changeFontSize(this.legend.font,this.legend.font.size*e.options.zoom),l=e.getDefaultStringFormat(),o=new Point(i.right,i.top),a=new Point(i.right,i.bottom);null!=this.startItemCore&&e.drawRotatedString9(this.startItemCore.getText(e,n),n,r,o,l,StiRotationMode.LeftCenter,0,!0,0),null!=this.endItemCore&&e.drawRotatedString9(this.endItemCore.getText(e,n),n,r,a,l,StiRotationMode.LeftCenter,0,!0,0)}constructor(e,t,i,s){super(t),this.legend=e,this.startItemCore=i,this.endItemCore=s}},__.d.StiHeatmapLegendMarkerGeom=class extends __.d.StiCellGeom{draw(e){this.drawMarker(e)}drawMarker(e){let t=this.legend.markerSize.width*e.options.zoom,i=__.d.StiHeatmapHelper.getLinearGradientPoints(this.colors.length),s=new StiLinearGradientBrush(this.colors,i,90);e.fillRectangle2(s,this.clientRectangle.x,this.clientRectangle.y,t,this.clientRectangle.height,null)}constructor(e,t,i){super(i),this.legend=e,this.colors=t}},__.d.StiLegendAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getAreaMarkerPath(i),u=new StiPenGeom(o),S=(e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),__.d.StiLegendMarkerHelper.getAreaMarkerLinePoints(i));e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendCandelstickMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=l.borderColor,h=new StiPenGeom(a),u=(e.pushSmoothingModeToAntiAlias(),new PointD(i.left+i.width/4,i.top+i.height/4)),S=i.width/2,d=i.height/2;e.fillRectangle2(o,u.x,u.y,S,d,null),e.drawRectangle2(h,u.x,u.y,S,d),e.drawLine(h,i.x+i.width/2,i.y,i.x+i.width/2,i.top+i.height/4),e.drawLine(h,i.x+i.width/2,i.bottom,i.x+i.width/2,i.bottom-i.height/4),e.popSmoothingMode()}},__.d.StiLegendColumnMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t.legendColor,o=null!=l?new StiSolidBrush(l):t.core.getSeriesBrush(s,r),a=new StiPenGeom(t.core.getSeriesBorderColor(s,r));null!=t.chart&&null!=t.chart.style&&t.chart.style.core.fillColumn(e,i,o,null),e.drawRectangle2(a,i.x,i.y,i.width,i.height)}},__.d.StiLegendDoughnutMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(n,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=l.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a);e.pushSmoothingModeToAntiAlias(),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width,i.y,2*i.width,2*i.height),270,90)),h.push(new StiLineSegmentGeom(i.right,i.bottom,i.x+i.width/2,i.bottom)),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width/2,i.bottom-i.height/2,i.width,i.height),360,-90)),h.push(new StiLineSegmentGeom(i.x,i.y+i.height/2,i.x,i.y)),e.fillPath(o,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}};let IStiFontIconsSeries=__.d.IStiFontIconsSeries,StiCurveSegmentGeom=(__.d.StiLegendFontIconMarker=class{draw(r,n,l,o,a,e){try{let e=n.as(IStiFontIconsSeries),t=e.icon,i=n.legendColor,s=null!=i?new StiSolidBrush(i):n.core.getSeriesBrush(o,a);__.a.StiFontIconsHelper.drawDirectionIcons(r,s,l,new SizeF(l.height,l.height),t,null,null,!0)}catch(e){}}},__.d.StiLegendFunnelMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(s,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=l.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a),S=(e.pushSmoothingModeToAntiAlias(),[new PointD(i.x,i.y),new PointD(i.right,i.y),new PointD(i.x+3*i.width/4,i.top+i.height/2),new PointD(i.x+3*i.width/4,i.bottom),new PointD(i.x+1*i.width/4,i.bottom),new PointD(i.x+1*i.width/4,i.top+i.height/2)]);h.push(new StiLinesSegmentGeom(S)),h.push(new StiCloseFigureSegmentGeom),e.fillPath(o,h,i,null),e.drawPath(u,h,null),e.popSmoothingMode()}},__.d.StiLegendLineMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(t,e,i,s,r,n){let l=Color.transparent,o=!1,a=!1,h=null,u=e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarSeries),S=(null!=u&&(l=StiBrush.toColor(u.marker.brush),h=u.marker.icon,a=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),d=(null!=S&&(l=S.lineColor,a=S.marker.visible,h=S.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries)),m=(null!=d&&(l=d.lineColor,a=d.marker.visible,h=d.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiStackedBaseLineSeries)),c=(null!=m&&(l=m.lineColor,a=m.marker.visible,h=m.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiScatterSeries)),g=(null!=c&&(l=StiBrush.toColor(c.marker.brush),h=c.marker.icon,a=!0,o=!1),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiScatterLineSeries)),p=(null!=g&&(l=g.lineColor,a=g.marker.visible,h=g.marker.icon,o=!0),e[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBubbleSeries));if(null!=p){let e=p.brush;p.allowApplyStyle&&(e=p.core.getSeriesBrush(s,r),e=p.processSeriesBrushes(s,e)),l=StiBrush.toColor(e),a=!0,o=!1}if(null!=h)__.a.StiFontIconsHelper.drawDirectionIcons(t,new StiSolidBrush(l),i,new SizeF(i.height,i.height),h,null,null,!1);else{if(o){let e=new StiPenGeom(l);t.drawRectangle(e,i),t.drawLine(e,i.x,i.y+i.height/2,i.right,i.y+i.height/2)}a&&(o&&(i=new Rectangle(i.x+i.width/4,i.y+i.height/4,i.width/2,i.height/2)),t.pushSmoothingModeToAntiAlias(),t.fillEllipse2(new StiSolidBrush(l),i,null),t.popSmoothingMode())}}},Stimulsoft.Base.Context.StiCurveSegmentGeom);{class Zh0{static getSteppedMarkerPath(e){let t=[];return t.push(new StiLineSegmentGeom(e.x,e.y,e.x+e.width,e.y)),t.push(new StiLineSegmentGeom(e.x+e.width,e.y,e.x+e.width,e.y+e.height)),t.push(new StiLineSegmentGeom(e.x+e.width,e.y+e.height,e.x,e.y+e.height)),t.push(new StiLineSegmentGeom(e.x,e.y+e.height,e.x,e.y)),t}static getAreaMarkerPath(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new StiLineSegmentGeom(e.x,e.y+3.5*i,e.x,e.y+3.5*i)),s.push(new StiLineSegmentGeom(e.x,e.y+3.5*i,e.x+2*t,e.y+.5*i)),s.push(new StiLineSegmentGeom(e.x+2*t,e.y+.5*i,e.x+4*t,e.y+2.5*i)),s.push(new StiLineSegmentGeom(e.x+4*t,e.y+2.5*i,e.x+5*t,e.y+1.5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+1.5*i,e.x+5*t,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+5*i,e.x,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x,e.y+5*i,e.x,e.y+3*i)),s}static getAreaMarkerLinePoints(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new PointD(e.x,e.y+3.5*i)),s.push(new PointD(e.x+2*t,e.y+.5*i)),s.push(new PointD(e.x+4*t,e.y+2.5*i)),s.push(new PointD(e.x+5*t,e.y+1.5*i)),s}static getSplineAreaMarkerPath(e){let t=e.width/5,i=e.height/5,s=[],r=(s.push(new StiLineSegmentGeom(e.x,e.y+5*i,e.x,e.y+3.5*i)),Zh0.getSplineAreaMarkerLinePoints(e));return s.push(new StiCurveSegmentGeom(r,.55)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+1.5*i,e.x+5*t,e.y+5*i)),s.push(new StiLineSegmentGeom(e.x+5*t,e.y+5*i,e.x,e.y+5*i)),s}static getSplineAreaMarkerLinePoints(e){let t=e.width/5,i=e.height/5,s=[];return s.push(new PointD(e.x,e.y+3.5*i)),s.push(new PointD(e.x+2*t,e.y+.5*i)),s.push(new PointD(e.x+4*t,e.y+2.5*i)),s.push(new PointD(e.x+5*t,e.y+1.5*i)),s}}__.d.StiLegendMarkerHelper=Zh0}__.d.StiLegendPictorialMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t.core.getSeriesBrush(s,r);e.pushSmoothingModeToAntiAlias(),e.fillEllipse2(l,i,null),e.popSmoothingMode()}},__.d.StiLegendPieMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.brush,a=(l.allowApplyBrush&&(o=l.core.getSeriesBrush(s,r),o=l.processSeriesBrushes(s,o)),l.borderColor),h=(l.allowApplyBorderColor&&(a=t.core.getSeriesBorderColor(s,r)),[]),u=new StiPenGeom(a);e.pushSmoothingModeToAntiAlias(),h.push(new StiArcSegmentGeom(new RectangleD(i.x-i.width,i.y,2*i.width,2*i.height),270,90)),h.push(new StiLineSegmentGeom(i.right,i.bottom,i.x,i.bottom)),h.push(new StiLineSegmentGeom(i.x,i.bottom,i.x,i.y)),e.fillPath(o,h,i,null),e.drawPath(u,h,null),e.popSmoothingMode()}},__.d.StiLegendRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiRangeSeries),o=l.lineColor,a=l.brush,h=[],u=i.width/5,S=i.height/5,d=(h.push(new StiLineSegmentGeom(i.x,i.y+3*S,i.x,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x,i.y+3*S,i.x+2*u,i.y)),h.push(new StiLineSegmentGeom(i.x+2*u,i.y,i.x+4*u,i.y+2*S)),h.push(new StiLineSegmentGeom(i.x+4*u,i.y+2*S,i.x+5*u,i.y+1*S)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+1*S,i.x+5*u,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+3*S,i.x+4*u,i.y+4*S)),h.push(new StiLineSegmentGeom(i.x+4*u,i.y+4*S,i.x+2*u,i.y+3*S)),h.push(new StiLineSegmentGeom(i.x+2*u,i.y+3*S,i.x,i.y+5*S)),h.push(new StiLineSegmentGeom(i.x,i.y+5*S,i.x,i.y+3*S)),new StiPenGeom(o));e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(d,h,i),e.popSmoothingMode()}},__.d.StiLegendSplineAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSplineAreaMarkerPath(i),u=new StiPenGeom(o),S=__.d.StiLegendMarkerHelper.getSplineAreaMarkerLinePoints(i);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendSplineRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSplineRangeSeries),o=l.lineColor,a=l.brush,h=[],u=i.width/5,S=i.height/5,d=(h.push(new StiLineSegmentGeom(i.x,i.y+5*S,i.x,i.y+3*S)),[]),m=(d.push(new PointD(i.x,i.y+3*S)),d.push(new PointD(i.x+2*u,i.y)),d.push(new PointD(i.x+4*u,i.y+2*S)),d.push(new PointD(i.x+5*u,i.y+1*S)),h.push(new StiCurveSegmentGeom(d,l.tension)),h.push(new StiLineSegmentGeom(i.x+5*u,i.y+1*S,i.x+5*u,i.y+3*S)),[]),c=(m.push(new PointD(i.x+5*u,i.y+3*S)),m.push(new PointD(i.x+4*u,i.y+4*S)),m.push(new PointD(i.x+2*u,i.y+4*S)),m.push(new PointD(i.x,i.y+5*S)),h.push(new StiCurveSegmentGeom(m,l.tension)),new StiPenGeom(o));e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawCurve(c,d,l.tension),e.drawCurve(c,m,l.tension),e.popSmoothingMode()}},__.d.StiLegendStackedAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStackedAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getAreaMarkerPath(i),u=new StiPenGeom(o),S=(e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),__.d.StiLegendMarkerHelper.getAreaMarkerLinePoints(i));e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendStackedSplineAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStackedSplineAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSplineAreaMarkerPath(i),u=new StiPenGeom(o),S=__.d.StiLegendMarkerHelper.getSplineAreaMarkerLinePoints(i);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawLines(u,S),e.popSmoothingMode()}},__.d.StiLegendSteppedAreaMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedAreaSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSteppedMarkerPath(i),u=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}},__.d.StiLegendSteppedRangeMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSteppedRangeSeries),o=l.lineColor,a=l.brush,h=__.d.StiLegendMarkerHelper.getSteppedMarkerPath(i),u=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.fillPath(a,h,i,null),e.drawPath(u,h,i),e.popSmoothingMode()}},__.d.StiLegendStockMarker=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(e,t,i,s,r,n){let l=t,o=l.lineColor,a=new StiPenGeom(o);e.pushSmoothingModeToAntiAlias(),e.drawLine(a,i.left+i.width/4,i.top+i.height/4,i.left+i.width/2,i.top+i.height/4),e.drawLine(a,i.left+i.width/2,i.top,i.left+i.width/2,i.bottom),e.drawLine(a,i.left+i.width/2,i.bottom-i.height/4,i.right-i.width/4,i.bottom-i.height/4),e.popSmoothingMode()}},__.d.StiMarkerLegendFactory=class{static createMarker(e){if(e.is(__.d.IStiFontIconsSeries)&&null!=e.icon)return new __.d.StiLegendFontIconMarker;if(e.is(__.d.IStiDoughnutSeries))return new __.d.StiLegendDoughnutMarker;if(e.is(__.d.IStiPieSeries))return new __.d.StiLegendPieMarker;if(e.is(__.d.StiAreaSeries))return new __.d.StiLegendAreaMarker;if(e.is(__.d.StiStackedAreaSeries))return new __.d.StiLegendStackedAreaMarker;if(e.is(__.d.StiSplineAreaSeries))return new __.d.StiLegendSplineAreaMarker;if(e.is(__.d.StiStackedSplineAreaSeries))return new __.d.StiLegendStackedSplineAreaMarker;if(e.is(__.d.StiSteppedAreaSeries))return new __.d.StiLegendSteppedAreaMarker;if(e.is(__.d.StiRangeSeries))return new __.d.StiLegendRangeMarker;if(e.is(__.d.StiSplineRangeSeries))return new __.d.StiLegendSplineRangeMarker;if(e.is(__.d.StiSteppedRangeSeries))return new __.d.StiLegendSteppedRangeMarker;if(e.is(__.d.IStiBaseLineSeries)||e.is(__.d.IStiStackedBaseLineSeries)||e.is(__.d.IStiRadarSeries))return new __.d.StiLegendLineMarker;if(e.is(__.d.IStiFunnelSeries))return new __.d.StiLegendFunnelMarker;if(e.is(__.d.IStiStockSeries))return new __.d.StiLegendStockMarker;if(e.is(__.d.IStiCandlestickSeries))return new __.d.StiLegendCandelstickMarker;if(e.is(__.d.IStiPictorialSeries))return new __.d.StiLegendPictorialMarker;if(e.is(__.d.IStiClusteredColumnSeries3D))return new __.d.StiLegendColumnMarker3D;if(e.is(__.d.IStiLineSeries3D))return new __.d.StiLegendLineMarker3D;return new __.d.StiLegendColumnMarker}};let StiInteractionDataGeom=Stimulsoft.Base.Context.StiInteractionDataGeom;__.d.StiMarkerGeom=class extends __.d.StiCellGeom{implements(){let e=super.implements().concat([IStiSeriesElement]);return(this.implements=()=>e)()}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(){return this.getHyperlink2(this.getValueIndex())}getHyperlink2(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(){return this.getToolTip2(this.getValueIndex())}getToolTip2(e){let t=null;if(null!=this.series.toolTips&&e<this.series.toolTips.length&&(t=this.series.toolTips[e]),!StiString.isNullOrEmpty(t)&&t.includes('"StiColor":"#ffffff"')){let e=StiBrush.toColor(this.series.processSeriesBrushes(this.index,this.marker.brush));t=t.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(e,!1)))}return t}contains(e,t){if(this.invisible)return!1;return this.getMouseOverRect().contains(e,t)}getMouseOverRect(){let e=this.clientRectangle.clone();return e.inflate(e.width/2,e.height/2),e}draw(e){e.pushSmoothingModeToAntiAlias();let t=e.options.zoom,i=this.series.chart,s=this.marker.clone(),r=this.series.processSeriesMarkerVisible(this.index)||this.marker.visible,n=(this.isTooltipMode&&!r||(s.brush=this.series.processSeriesBrushes(this.index,this.marker.brush),s.angle=this.series.processSeriesMarkerAngle(this.index,this.marker.angle),s.type=this.series.processSeriesMarkerType(this.index,this.marker.type),s.visible=r),this.isTooltipMode&&!r&&(s.brush=null,s.borderColor=Color.transparent),null);i.isAnimation&&((n=new StiInteractionDataGeom).componentName=i.name,n.componentIndex=i.page.components.indexOf(i).toString(),n.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",n.pageIndex=i.page.report.renderedPages.indexOf(i.page).toString(),n.elementIndex=this.elementIndex.toString(),n.interactionData=this.interaction),this.marker.core.draw(e,s,this.point,t,this.showShadow,!1,this.isTooltipMode,i.isAnimation,this.getToolTip(),this,n),e.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o){super(__.d.StiMarkerCoreXF.getMarkerRect(s,r.size,l)),this.showShadow=!1,this.isTooltipMode=!1,this.series=e,this.index=t,this.value=i,this.point=s,this.marker=r,this.showShadow=n,this.isTooltipMode=o}},__.d.StiRadarAxisGeom=class extends __.d.StiCellGeom{drawAxisLine(e,t){let i=t.right,s=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);s.penStyle=this.axis.lineStyle,e.drawLine(s,i,t.y,i,t.bottom)}drawMinorTicks(s,r,n,l,e,t){let i=e-l,o=i/(t.minorCount+1),a=t.minorLength*s.options.zoom;for(let i=1;i<=t.minorCount;i++){let e=l+o*i,t=n-a;s.drawLine(r,n,e,t,e)}}drawTicks(i,e,s,r){if(!s.visible)return;let t=s.length*i.options.zoom,n=e.right,l=n-t,o=0;for(let e of this.axis.info.ticksCollection){let t=e.position;if(i.drawLine(r,n,t,l,t),s.minorVisible&&o!=this.axis.info.ticksCollection.length-1){let e=this.axis.info.ticksCollection[o+1].position;this.drawMinorTicks(i,r,n,t,e,s)}o++}}drawAxis(e,t){let i=new StiPenGeom(this.axis.lineColor,this.axis.lineWidth);i.penStyle=this.axis.lineStyle,this.drawTicks(e,t,this.axis.area.yAxis.ticks,i),this.drawAxisLine(e,t)}draw(e){let t=this.clientRectangle.clone();if(t.width<=0||t.height<=0)return;this.drawAxis(e,t)}constructor(e,t){super(t),this.axis=e}},__.d.StiXRadarAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.borderColor),s=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom),r=e.getGenericStringFormat(),n=(r.trimming=StringTrimming.None,this.axis.labels.wordWrap||(r.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),this.axis.labels.antialiasing&&e.pushSmoothingModeToAntiAlias(),StiMath.round2(this.labelRect.x+this.labelRect.width/2,0)),l=StiMath.round2(this.labelRect.y+this.labelRect.height/2,0),o=(e.pushTranslateTransform(n,l),e.pushRotateTransform(this.angle),t.isEmpty||(e.fillRectangle(this.axis.labels.brush,t,null),this.axis.labels.drawBorder&&e.drawRectangle2(i,t.x,t.y,t.width,t.height)),e.popTransform(),e.popTransform(),this.axis.labels.antialiasing&&e.popSmoothingMode(),StiRotationMode.CenterBottom),a=this.angle;90<=this.angle&&this.angle<=270&&(a=this.angle+180,o=StiRotationMode.CenterTop),this.axis.labels.rotationLabels||(0<this.angle&&this.angle<180?o=StiRotationMode.LeftCenter:this.angle<360&&180<this.angle?o=StiRotationMode.RightCenter:0==this.angle?o=StiRotationMode.CenterBottom:180==this.angle&&(o=StiRotationMode.CenterTop),a=0),e.drawRotatedString9(this.text,s,this.labelBrush,this.point,r,o,a,this.axis.labels.antialiasing,StiMath.trunc(this.axis.labels.width*e.options.zoom))}constructor(e,t,i,s,r,n,l,o){super(n),this.axis=e,this.labelRect=l,this.text=t,this.angle=r,this.point=o,this.labelBrush=i,this.borderColor=s}},__.d.StiYRadarAxisLabelGeom=class extends __.d.StiCellGeom{draw(e){let t=this.axis.yCore.getStringFormatGeom(e),i=this.axis.yCore.getFontGeom(e),s=new StiSolidBrush(this.axis.labels.color);e.drawRotatedString9(this.text,i,s,this.textPoint,t,this.rotationMode,this.angle,this.axis.labels.antialiasing,StiMath.trunc(this.axis.labels.width*e.options.zoom))}constructor(e,t,i,s,r,n,l){super(t),this.axis=e,this.text=s,this.stripLine=r,this.textPoint=i,this.angle=n,this.rotationMode=l}};{class k90{static getMouseOverColor(){return Color.fromArgb3(100,Color.white)}static getLineMouseOverColor(){return Color.fromArgb3(100,Color.red)}}k90.mouseOverLineDistance=8,k90.mouseOverSplineDistance=15,__.d.StiMouseOverHelper=k90}let StiCornerRadiusHelper=Stimulsoft.Base.Drawing.StiCornerRadiusHelper,IStiSeriesBorderThickness=__.d.IStiSeriesBorderThickness,StiContextRoundedRectangleCreator=(__.d.StiSeriesElementGeom=class extends __.d.StiCellGeom{implements(){let e=super.implements().concat([IStiSeriesElement]);return(this.implements=()=>e)()}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(){return this.getHyperlink2(this.getValueIndex())}getHyperlink2(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(){if(this.series.chart.isDesigning)return null;let e=this.getValueIndex();return this.getToolTip2(e)}getToolTip2(e){let i=null;if(null!=this.series.toolTips&&e<this.series.toolTips.length&&(i=this.series.toolTips[e]),!StiString.isNullOrEmpty(i)&&i.includes('"StiColor":"#ffffff"')){let t=this.seriesBrush||(null!=this.series?this.series["brush"]:null);if(null!=t){let e=Stimulsoft.Base.Drawing.StiBrush.toColor(t);i=i.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(e,!1)))}}return i}get interaction(){return this._interaction}set interaction(e){this._interaction=e}draw(e){}getInteractionData(){let e=this.series.chart;if(e.isDesigning)return null;let t=new StiInteractionDataGeom;return t.componentName=e.name,t.componentIndex=null!=e.page?e.page.components.indexOf(e).toString():"",t.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",t.pageIndex=null!=e.page?e.page.report.renderedPages.indexOf(e.page).toString():"",t.elementIndex=this.elementIndex.toString(),t.interactionData=this.interaction,t}getSeriesBorderThickness(e){let t=this.series.as(IStiSeriesBorderThickness);if(null!=t)return t.borderThickness;return 1}getCornerRadius(){let t=this.series.as(IStiCornerRadius);if(null!=t&&null!=t.cornerRadius&&!t.cornerRadius.isEmpty){let e=t.cornerRadius.clone();return 0<=this.value?e:StiCornerRadiusHelper.flipVertical(e)}return new StiCornerRadius}constructor(e,t,i,s,r,n){super(r),this.seriesBrush=n,this.areaGeom=e,this.series=s,this.value=t,this.index=i}},__.d.StiSeriesGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e,t,i){super(i),this.areaGeom=e,this.series=t}},__.d.StiBoxAndWhiskerSeriesElementGeom=class extends __.d.StiCellGeom{draw(s){let e=this.series.chart,t=this.areaGeom.area,r=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(s.options.zoom)),i=t.xAxis.info.dpi/2,n=i/3,l=n/6;if(s.pushSmoothingModeToAntiAlias(),e.isAnimation){let t=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,this.beginTime);if(s.drawAnimationLines(r,[new PointF(this.positionX-n/2,this.maximum),new PointF(this.positionX+n/2,this.maximum)],t),s.drawAnimationLines(r,[new PointF(this.positionX-n/2,this.minimum),new PointF(this.positionX+n/2,this.minimum)],t),s.drawAnimationLines(r,[new PointF(this.positionX,this.maximum),new PointF(this.positionX,this.thirdQuartile)],t),s.drawAnimationLines(r,[new PointF(this.positionX,this.firstQuartile),new PointF(this.positionX,this.minimum)],t),s.drawAnimationRectangle(this.brush,r,new Rectangle(this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile),null,t,null,null),s.drawAnimationLines(r,[new PointF(this.positionX-i/2,this.median),new PointF(this.positionX+i/2,this.median)],t),null!=this.values){let i=1;for(let t of this.values){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,new TimeSpan(this.beginTime.ticks+__.d.StiChartHelper.globalBeginTimeElement.ticks/this.values.length*i));s.fillDrawAnimationEllipse(null,r,this.positionX-l/2,t-l/2,l,l,null,null,e,null),i++}}if(null!=this.mean){let e=this.mean;s.drawAnimationLines(r,[new PointF(this.positionX-l,e-l),new PointF(this.positionX+l,e+l)],t),s.drawAnimationLines(r,[new PointF(this.positionX+l,e-l),new PointF(this.positionX-l,e+l)],t)}}else{if(s.drawLine(r,this.positionX-n/2,this.maximum,this.positionX+n/2,this.maximum),s.drawLine(r,this.positionX-n/2,this.minimum,this.positionX+n/2,this.minimum),s.drawLine(r,this.positionX,this.maximum,this.positionX,this.thirdQuartile),s.drawLine(r,this.positionX,this.firstQuartile,this.positionX,this.minimum),s.fillRectangle2(this.brush,this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile,null),s.drawRectangle2(r,this.positionX-i/2,this.thirdQuartile,i,this.firstQuartile-this.thirdQuartile),s.drawLine(r,this.positionX-i/2,this.median,this.positionX+i/2,this.median),null!=this.values)for(let e of this.values)s.drawEllipse2(r,new Rectangle(this.positionX-l/2,e-l/2,l,l));if(null!=this.mean){let e=this.mean;s.drawLine(r,this.positionX-l,e-l,this.positionX+l,e+l),s.drawLine(r,this.positionX+l,e-l,this.positionX-l,e+l)}}s.popSmoothingMode()}getSeriesBorderThickness(e){let t=this.series.as(IStiSeriesBorderThickness);if(null!=t)return t.borderThickness*e;return 1}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(u),this.series=t,this.areaGeom=e,this.positionX=i,this.minimum=s,this.maximum=r,this.firstQuartile=n,this.thirdQuartile=l,this.median=o,this.mean=h,this.values=a,this.brush=S,this.borderColor=d,this.beginTime=m}},__.d.StiBubbleSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=Math.abs(i.x-e),r=Math.abs(i.y-t),n=Math.sqrt(s*s+r*r);return n<=this.clientRectangle.width/2}draw(s){let r=this.clientRectangle.clone(),t=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),e=this.series.chart,i=this.series.processSeriesBrushes(this.index,this.seriesBrush),n=this.series.as(__.d.IStiFontIconsSeries);if(null!=n&&null!=n.icon)return void __.a.StiFontIconsHelper.drawDirectionIcons(s,i,r,new Size(r.height,r.height),n.icon,this.getToolTip(),this.getInteractionData(),!1);if(e.isAnimation){let e=new StiScaleAnimation(0,0,0,0,0,0,__.d.StiChartHelper.globalDurationElement,this.beginTime);s.fillDrawAnimationEllipse(i,t,r.x,r.y,r.width,r.height,this.getToolTip(),this,e,this.getInteractionData())}else{if(this.series.showShadow){let e=new StiSolidBrush(Color.fromArgb3(100,Color.black)),t=s.createShadowGraphics(),i=r.clone();i.x=0,i.y=0,i.x+=4*s.options.zoom,i.y+=4*s.options.zoom,t.fillEllipse2(e,i,this.getInteractionData()),s.drawShadow(t,r,0)}s.fillEllipse2(i,r,this.getInteractionData()),s.pushSmoothingModeToAntiAlias(),s.drawEllipse2(t,r),s.popSmoothingMode()}}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.beginTime=o}},__.a.Painters.StiContextRoundedRectangleCreator),StiColumnAnimation=Stimulsoft.Base.Context.Animation.StiColumnAnimation,StiTranslationAnimation=(__.d.StiClusteredBarSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(r){let i=this.series.chart,n=this.clientRectangle.clone(),l=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),s=(l=StiCornerRadiusHelper.flipHorizontal(l),this.series.as(__.d.IStiFontIconsSeries));if(null!=s&&null!=s.icon){let e=i.area.as(__.d.IStiRoundValuesArea)
10
+ ,t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(r,this.seriesBrush,n,new Size(n.height,n.height),s.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==l||l.isEmpty||r.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){let s=this.clientRectangle.clone(),e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(r.options.zoom));if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));r.drawShadowRect(s,5,l,i)}r.drawAnimationCicledBar(this.seriesBrush,e,n,l,this.value,this.getToolTip(),this,t,this.getInteractionData())}else{let t=this.clientRectangle.clone();if(this.series.showShadow&&4<t.width&&4<t.height){let e=t.clone();this.value<0?(e.y--,r.drawCachedShadow(e,StiShadowSides.Left|StiShadowSides.Bottom,r.options.isPrinting,e,l)):0<this.value&&r.drawCachedShadow(new RectangleD(e.x-8,e.y,e.width+8,e.height),StiShadowSides.Top|StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom,r.options.isPrinting,e,l)}let e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(r.options.zoom)),i=(this.series.chart.style.core.fillCicledColumn(r,t,l,this.seriesBrush,this.getInteractionData(),this.getToolTip()),this.getBorderPath(n,l));r.drawPath(e,i,n)}null==l||l.isEmpty||r.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return 0<this.value?StiContextRoundedRectangleCreator.createWithoutRightSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutLeftSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.right,e.y,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.x,e.bottom))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=(s?e.yAxis.info.stripLines.getByIndex(this.index+1):e.yAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o,a){super(e,i,s,l,a,r),this.seriesBorderColor=n,this.valueStart=t,this.columnRectStart=o}},Stimulsoft.Base.Context.Animation.StiTranslationAnimation),StiPointsAnimation=Stimulsoft.Base.Context.Animation.StiPointsAnimation;{class rl0 extends __.d.StiSeriesGeom{get allowMouseOver(){return this.series.interaction.drillDownEnabled&&this.series.interaction.allowSeries}static getClientRectangle(t,e){if(null==t||0==t.length)return RectangleD.empty;let i=PointD.empty,s=PointD.empty;for(let e of t){if(null==e)continue;i==PointD.empty?(i=e,s=e):(i.x=Math.min(i.x,e.x),i.y=Math.min(i.y,e.y),s.x=Math.max(s.x,e.x),s.y=Math.max(s.y,e.y))}return new RectangleD(i.x-e/2,i.y-e/2,s.x-i.x+e,s.y-i.y+e)}draw(e){}getAnimation(e=this.points){if(!this.series.chart.isAnimation)return null;if(null==this.pointsFrom||null==this.pointsIds)return null;let t=[],i=[],s=[];for(let e=0;e<this.pointsFrom.length;e++)null!=this.pointsFrom[e]&&null!=this.points[e]&&null!=this.pointsIds[e]&&(t.push(this.pointsFrom[e]),i.push(this.points[e]),s.push(this.pointsIds[e]));return this.getAnimation2(t,i,s)}getAnimationConnect(e=this.points){if(!this.series.chart.isAnimation)return null;if(null==this.pointsFrom||null==this.pointsIds)return null;let s=[],r=[],n=[],l=0;for(let i of e)if(null!=i&&!r[Stimulsoft.System.StiObject.stimulsoft]().toList().exists(e=>e.equals(i))){let e=this.pointsFrom[l],t=(null==e&&(e=i),this.pointsIds[l]);StiString.isNullOrEmpty(t)&&(t=l.toString()+"_"),s.push(e),r.push(i),n.push(t),l++}return this.getAnimation2(s,r,n)}getAnimation2(e,t,i){if(!this.series.chart.isAnimation)return null;if(0==e.length)return null;let s=null,r=null;if(this.series.chart.isAnimationChangingValues&&null!=e&&null!=e[0]&&null!=i&&((r=new StiPointsAnimation(e,t,i,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero)).id=`series_`+this.series.chart.series.indexOf(this.series)+this.additionalSeriesId,StiPointsAnimation.isAnimationChangingValues(this.series,i,r.id))&&(r.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),s=r),null==s){let e=new StiTranslationAnimation(PointD.empty,PointD.empty,__.d.StiChartHelper.globalDurationElement,TimeSpan.zero);e.anotherAnimation=r,e.id=`series_`+this.series.chart.series.indexOf(this.series)+this.additionalSeriesId,s=e}return s}constructor(e,t,i){super(e,i,rl0.getClientRectangle(t.points,i.is(__.d.StiBaseLineSeries)?i.lineWidth:0)),this.points=t.points.map(e=>e),null!=t.pointsFrom&&null!=t.pointsFrom[0]||(t.pointsFrom=t.points.map(e=>e)),this.pointsFrom=t.pointsFrom.map(e=>e),this.pointsIds=t.pointsIds.map(e=>e),this.additionalSeriesId=t.additionalSeriesId}}__.d.StiBaseLineSeriesGeom=rl0}__.d.StiLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(h){let e=StiPenStyle.Solid,t=1,u=Color.black,i=!0,s=null,S=!0,d=this.getAnimation(),r=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiBaseLineSeries),n=(null!=r&&(e=r.lineStyle,t=r.lineWidth,u=r.lineColor,i=r.showShadow,s=r.lineMarker,S=r.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),l=(null!=n&&(e=n.lineStyle,t=n.lineWidth,u=n.lineColor,i=n.showShadow,S=n.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarAreaSeries)),m=(null!=l&&(e=l.lineStyle,t=l.lineWidth,u=l.lineColor,i=l.showShadow,S=l.lighting),h.pushSmoothingModeToAntiAlias(),e),c=t*h.options.zoom,g=new StiPenGeom(u,c);if(g.penStyle=m,i){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),c+.5*h.options.zoom);if(e.penStyle=m,h.pushTranslateTransform(c,c),__.d.StiNullableDrawing.drawLines(h,e,this.points,d),null!=s&&s.visible){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0));s.core.drawLines(h,this.points,h.options.zoom,e,null,s.type,s.step,s.size,s.angle)}h.popTransform()}if(null!=this.pointsZeroConnect){let e=new StiPenGeom(u,c),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsZeroConnect));__.d.StiNullableDrawing.drawLines(h,e,this.pointsZeroConnect,t)}if(null!=this.pointsNullConnect){let e=new StiPenGeom(u,c),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsNullConnect));__.d.StiNullableDrawing.drawLines(h,e,this.pointsNullConnect,t)}if((this.series.is(__.d.StiLineSeries)||this.series.is(__.d.StiScatterLineSeries))&&this.series.allowApplyColorNegative){let n=this.series.lineColorNegative,e=new StiPenGeom(n,c),t=(e.penStyle=m,this.series.chart.area),l=t.axisCore.getDividerY(),o=[],a=[];for(let r=0;r<this.points.length;r++){let t=this.points[r],s=r!=this.points.length-1?this.points[r+1]:null;if(null==t)continue;if(t.y>l){if(o.push(t),null==s||s.y<l||s.y==l&&r+2<this.points.length&&this.points[r+2].y<=l){if(null!=s){let e=this.getPointCross(t,this.points[r+1],l);o.push(e),s.y==l&&r+2<this.points.length&&this.points[r+2].y<=l&&o.push(this.points[r+2]),a.push(e)}let i=null;if(null!=d&&(i=new StiOpacityAnimation(d.duration,new TimeSpan(d.duration.ticks+d.beginTime.ticks))),__.d.StiNullableDrawing.drawLines(h,e,o,i),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(n,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,o,i),h.popTransform()}o[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(a.push(t),null==s||s.y>l){if(null!=s){let e=this.getPointCross(t,this.points[r+1],l);o.push(e),a.push(s)}let i=this.getAnimationConnect(a);if(__.d.StiNullableDrawing.drawLines(h,g,a,i),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,a,i),h.popTransform()}a[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else if(__.d.StiNullableDrawing.drawLines(h,g,this.points,d),c>=2*h.options.zoom&&S){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u,70),c));t.penStyle=m,__.d.StiNullableDrawing.drawLines(h,t,this.points,d),h.popTransform()}if(null!=s&&s.visible){let e=new StiPenGeom(s.borderColor);s.core.drawLines(h,this.points,h.options.zoom,s.brush,e,s.type,s.step,s.size,s.angle)}h.popSmoothingMode()}getPointCross(e,t,i){let s=e.y,r=e.x,n=t.y,l=t.x,o=Math.tan(Math.atan((l-r)/(s-n)))*(s-i)+r;return new PointD(o,i)}constructor(e,t,i){super(e,t,i),this.pointsNullConnect=t.pointsNullConnect,this.pointsZeroConnect=t.pointsZeroConnect}},__.d.StiAreaSeriesGeom=class extends __.d.StiLineSeriesGeom{contains(l,o){let e=this.series.chart.area,a=e.axisCore.getDividerY();if(this.invisible)return!1;for(let n=0;n<this.points.length-1;n++){let e=this.points[n],t=this.points[n+1];if(null==e||null==t)continue;let i=new PointD(t.x,a),s=new PointD(e.x,a),r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,s,i,t]);if(r)return!0}return!1}draw(a){let h=this.series,u=this.series.chart.area,S=u.axisCore.getDividerY(),t=__.d.StiNullableDrawing.getPointsList(this.points),d=null!=this.pointsFrom?__.d.StiNullableDrawing.getPointsList(this.pointsFrom):null,m=this.series.chart;if(m.isAnimation)for(let o=0;o<t.length;o++){let i=t[o],s=[],r=new StiLineSegmentGeom(i[0].x,S,i[0].x,i[0].y),n=new StiLinesSegmentGeom(i),l=new StiLineSegmentGeom(i[i.length-1].x,i[i.length-1].y,i[i.length-1].x,S);if(s.push(r),s.push(n),s.push(l),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)){let e=d[o],t=new StiPointsAnimation(e,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(t.id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,m.sortAnimation),r.animation=new StiPointsAnimation([new PointD(t.pointsFrom[0].x,S),t.pointsFrom[0]],null,null,t.duration,t.beginTime),n.animation=t,l.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],new PointD(t.pointsFrom[t.pointsFrom.length-1].x,S)],null,null,t.duration,t.beginTime),r.animation.beginTimeCorrect=t.beginTimeCorrect,l.animation.beginTimeCorrect=t.beginTimeCorrect,a.animations.push(t),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else if(null!=h.brush){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}}else for(let e of t){let s=[];if(s.push(new StiLineSegmentGeom(e[0].x,S,e[0].x,e[0].y)),s.push(new StiLinesSegmentGeom(e)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,S)),null!=h.brush&&a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null),a.popClip()}}}constructor(e,t,i){super(e,t,i)}};let IStiRoundValuesArea=__.d.IStiRoundValuesArea,StiPenAlignment=(__.d.StiClusteredColumnSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let i=this.series.chart,r=this.clientRectangle.clone(),n=this.getCornerRadius(),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=i.area.as(IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.width,r.width),l.icon,this.getToolTip(),this.getInteractionData(),!0,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){let e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom));if(this.series.showShadow&&1<r.width){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,t,this.getInteractionData())}else{let e=this.clientRectangle.clone(),t=(this.series.showShadow&&4<e.width&&4<e.height&&(0<this.value?s.drawCachedShadow(e,StiShadowSides.Top|StiShadowSides.Right,s.options.isPrinting,e,n):this.value<0&&s.drawCachedShadow(new RectangleD(e.x,e.y-8,e.width,e.height+8),StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom|StiShadowSides.Left,s.options.isPrinting,e,n)),new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)));if(this.series.chart.style.core.fillCicledColumn(s,r,n,this.seriesBrush,this.getInteractionData(),this.getToolTip()),this.series.is(__.d.StiWaterfallSeries))s.drawCicledRectangle(t,r,n);else{let e=this.getBorderPath(r,n);s.drawPath(t,e,r)}}null==n||n.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return this.value<0?StiContextRoundedRectangleCreator.createWithoutTopSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutBottomSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.x,e.bottom,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.right,e.y))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.xAxis.core.getStartFromZero(),r=(s?e.xAxis.info.stripLines.getByIndex(this.index+1):e.xAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverSplineDistance,new PointD(r,n));if(i)return!0}return!1}draw(l){let e=StiPenStyle.Solid,t=1,i=Color.black,s=!0,o=!0,a=1,h=this.getAnimation(),u=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiSplineSeries),r=(null!=u&&(e=u.lineStyle,t=u.lineWidth,i=u.lineColor,s=u.showShadow,o=u.lighting,a=u.tension),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarLineSeries)),n=(null!=r&&(e=r.lineStyle,t=r.lineWidth,i=r.lineColor,s=r.showShadow,o=r.lighting),this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.IStiRadarAreaSeries)),S=(null!=n&&(e=n.lineStyle,t=n.lineWidth,i=n.lineColor,s=n.showShadow,o=n.lighting),l.pushSmoothingModeToAntiAlias(),e),d=t*l.options.zoom,m=new StiPenGeom(i,d);if(m.penStyle=S,s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),d+.5*l.options.zoom);e.penStyle=S,l.pushTranslateTransform(d,d),__.d.StiNullableDrawing.drawCurve(l,e,this.points,a,h),l.popTransform()}if(null!=this.pointsZeroConnect){let e=new StiPenGeom(i,d),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsZeroConnect));__.d.StiNullableDrawing.drawCurve(l,e,this.pointsZeroConnect,a,t)}if(null!=this.pointsNullConnect){let e=new StiPenGeom(i,d),t=(e.penStyle=StiPenStyle.Dash,this.getAnimationConnect(this.pointsNullConnect));__.d.StiNullableDrawing.drawCurve(l,e,this.pointsNullConnect,a,t)}if(__.d.StiNullableDrawing.drawCurve(l,m,this.points,a,h),2<=d&&o){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(i,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawCurve(l,t,this.points,a,h),l.popTransform()}if(null!=u&&u.allowApplyColorNegative){let e=new StiPenGeom(u.lineColorNegative,d),t=(e.penStyle=S,this.series.chart.area),i=t.axisCore.getDividerY(),s=t.axisCore.scrollRangeX*t.axisCore.scrollDpiX,r=t.axisCore.scrollRangeY*t.axisCore.scrollDpiY-i,n=new RectangleD(0,i,s,r);if(l.pushClip(n),__.d.StiNullableDrawing.drawCurve(l,e,this.points,a,h),2<=d&&o){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColorNegative,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawCurve(l,t,this.points,a,h),l.popTransform()}l.popClip()}l.popSmoothingMode()}constructor(e,t,i){super(e,t,i),this.pointsNullConnect=t.pointsNullConnect,this.pointsZeroConnect=t.pointsZeroConnect}},__.d.StiSplineAreaSeriesGeom=class extends __.d.StiSplineSeriesGeom{contains(l,o){let e=this.series.chart.area,a=e.axisCore.getDividerY();if(this.invisible)return!1;for(let n=0;n<this.points.length-1;n++){let e=this.points[n],t=this.points[n+1];if(null==e||null==t)continue;let i=new PointD(t.x,a),s=new PointD(e.x,a),r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,s,i,t]);if(r)return!0}return!1}draw(a){let h=this.series,u=this.series.chart,S=this.series.chart.area,d=S.axisCore.getDividerY(),t=__.d.StiNullableDrawing.getPointsList(this.points),m=null!=this.pointsFrom?__.d.StiNullableDrawing.getPointsList(this.pointsFrom):null;if(u.isAnimation)for(let o=0;o<t.length;o++){let i=t[o],s=[],r=new StiLineSegmentGeom(new PointD(i[0].x,d),i[0]),n=new StiCurveSegmentGeom(i,h.tension),l=new StiLineSegmentGeom(i[i.length-1],new PointD(i[i.length-1].x,d));if(s.push(r),s.push(n),s.push(l),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)){let e=m[o],t=new StiPointsAnimation(e,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(t.id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,u.sortAnimation),r.animation=new StiPointsAnimation([new PointD(t.pointsFrom[0].x,d),t.pointsFrom[0]],null,null,t.duration,t.beginTime),n.animation=t,l.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],new PointD(t.pointsFrom[t.pointsFrom.length-1].x,d)],null,null,t.duration,t.beginTime),r.animation.beginTimeCorrect=t.beginTimeCorrect,l.animation.beginTimeCorrect=t.beginTimeCorrect,a.animations.push(t),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=S.axisCore.scrollRangeX*S.axisCore.scrollDpiX,t=S.axisCore.scrollRangeY*S.axisCore.scrollDpiY-d,i=new RectangleD(0,d,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else{let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}o++}else for(let e of t){let s=[];if(s.push(new StiLineSegmentGeom(e[0].x,d,e[0].x,e[0].y)),s.push(new StiCurveSegmentGeom(e,h.tension)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,d)),null!=h.brush)if(u.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}else a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null);if(h.allowApplyBrushNegative&&null!=h.brushNegative){let e=S.axisCore.scrollRangeX*S.axisCore.scrollDpiX,t=S.axisCore.scrollRangeY*S.axisCore.scrollDpiY-d,i=new RectangleD(0,d,e,t);if(a.pushClip(i),u.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}else a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null);a.popClip()}}}constructor(e,t,i){super(e,t,i)}},__.d.StiSteppedLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{getSteppedPoints(s){let r=this.series,n=[],l=r.chart.area.xAxis.info.dpi/2;for(let i=0;i<s.length-1;i++){let e=s[i],t=s[i+1];null!=e&&null!=t?(r.pointAtCenter&&(e=new PointD(e.x-l,e.y),t=new PointD(t.x-l,t.y)),n.push(e),n.push(new PointD(t.x,e.y))):(n.push(null),n.push(null))}let e=s[s.length-1];return null!=e?(r.pointAtCenter&&(e=new PointD(e.x-l,e.y),n.push(e),e=new PointD(e.x+2*l,e.y)),n.push(e)):n.push(null),n}getSteppedPointsIds(s){let r=[];for(let i=0;i<s.length-1;i++){let e=s[i]+"_l",t=s[i+1]+"_h";r.push(e),r.push(t)}let e=s[s.length-1]+"_l";return r.push(e),r}contains(s,r){if(this.invisible)return!1;let n=this.getSteppedPoints(this.points),l=0;for(let i of n){if(this.points.length<=l+1)continue;let e=n[l+1];if(null==i||null==e)continue;let t=RectangleD.empty;if(e.x>i.x?(t=new RectangleD(i.x,i.y,e.x-i.x,1)).inflate(0,5):(t=e.y>i.y?new RectangleD(i.x,i.y,1,e.y-i.y):new RectangleD(e.x,e.y,1,i.y-e.y)).inflate(5,0),t.contains(s,r))return!0;if(++l==n.length-1)break}return!1}draw(h){let u=this.series,S=(h.pushSmoothingModeToAntiAlias(),u.lineStyle),d=u.lineWidth*h.options.zoom,m=new StiPenGeom(u.lineColor,d),r=(m.penStyle=S,__.d.StiNullableDrawing.getNullablePointsList(this.points));for(let s of r){let l=this.getSteppedPoints(s),e=this.getSteppedPoints(this.pointsFrom),t=this.getSteppedPointsIds(this.pointsIds),o=this.getAnimation2(e,l,t);if(u.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),d+.5*h.options.zoom);if(e.penStyle=S,h.pushTranslateTransform(d,d),__.d.StiNullableDrawing.drawLines(h,e,l,o),u.lineMarker.visible){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0));u.lineMarker.core.drawLines(h,l,h.options.zoom,e,null,u.lineMarker.type,u.lineMarker.step,u.lineMarker.size,u.lineMarker.angle)}h.popTransform()}let i=this.series.chart.area,a=i.axisCore.getDividerY();if(u.allowApplyColorNegative){let s=new StiPenGeom(u.lineColorNegative,d),r=(s.penStyle=S,[]),n=[];for(let i=0;i<l.length;i++){let e=l[i],t=i!=l.length-1?l[i+1]:null;if(e.y>a){if(r.push(e),null==t||t.y<=a){this.intersectionAxis(e,t,r,n,a);let i=StiArray.create(PointD,r.length,!0);if(r[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i),__.d.StiNullableDrawing.drawLines(h,s,i,o),2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColorNegative,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,i,o),h.popTransform()}r[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(n.push(e),null==t||t.y>a){this.intersectionAxis(e,t,n,r,a);let i=StiArray.create(PointD,n.length,!0);if(n[Stimulsoft.System.StiObject.stimulsoft]().copyTo(i),__.d.StiNullableDrawing.drawLines(h,m,i,o),2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColor,70),d));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,i,o),h.popTransform()}n[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else{if(1==r.length){let e=null!=this.pointsFrom?this.getSteppedPoints(this.pointsFrom):null;__.d.StiNullableDrawing.drawLines2(h,m,e,l,o)}else __.d.StiNullableDrawing.drawLines(h,m,l,o);if(2<=d&&u.lighting){let e=.5*h.options.zoom,t=(h.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(u.lineColor,70),1));t.penStyle=S,__.d.StiNullableDrawing.drawLines(h,t,l,o),h.popTransform()}}if(u.lineMarker.visible){let e=new StiPenGeom(u.lineMarker.borderColor);u.lineMarker.core.drawLines(h,l,h.options.zoom,u.lineMarker.brush,e,u.lineMarker.type,u.lineMarker.step,u.lineMarker.size,u.lineMarker.angle)}}h.popSmoothingMode()}intersectionAxis(t,e,i,s,r){if(null!=e){let e=new PointD(t.x,r);i.push(e),s.push(e)}}constructor(e,t,i){super(e,t,i)}},__.d.StiSteppedAreaSeriesGeom=class extends __.d.StiSteppedLineSeriesGeom{draw(a){let h=this.series,u=this.series.chart.area,S=u.axisCore.getDividerY(),d=__.d.StiNullableDrawing.getNullablePointsList(this.points),m=null!=this.pointsFrom?__.d.StiNullableDrawing.getNullablePointsList(this.pointsFrom):null;if(this.series.chart.isAnimation)for(let e=0;e<d.length;e++){let t=this.getSteppedPoints(d[e]),s=[],i=new StiLineSegmentGeom(new PointD(t[0].x,S),t[0]),r=new StiLinesSegmentGeom(t),n=new StiLineSegmentGeom(t[t.length-1],new PointD(t[t.length-1].x,S)),l=(s.push(i),s.push(r),s.push(n),this.getSteppedPoints(m[e])),o=this.getSteppedPointsIds(this.pointsIds);if(StiPointsAnimation.isAnimationChangingValues(this.series,o)){let e=new StiPointsAnimation(l,t,o,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);if(e.id=`series_`+this.series.chart.series.indexOf(this.series),e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),i.animation=new StiPointsAnimation([new PointD(e.pointsFrom[0].x,S),e.pointsFrom[0]],null,null,e.duration,e.beginTime),r.animation=e,n.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],new PointD(e.pointsFrom[e.pointsFrom.length-1].x,S)],null,null,e.duration,e.beginTime),i.animation.beginTimeCorrect=e.beginTimeCorrect,n.animation.beginTimeCorrect=e.beginTimeCorrect,a.animations.add(e),a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,null,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillDrawAnimationPath(h.brushNegative,null,s,StiPathGeom.getBoundsState,null,null,null),a.popClip()}}else if(null!=h.brush){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement);a.fillDrawAnimationPath(h.brush,null,s,StiPathGeom.getBoundsState,null,e,null)}e++}else for(let t of d){let e=this.getSteppedPoints(t),s=[];if(s.push(new StiLineSegmentGeom(e[0].x,S,e[0].x,e[0].y)),s.push(new StiLinesSegmentGeom(e)),s.push(new StiLineSegmentGeom(e[e.length-1].x,e[e.length-1].y,e[e.length-1].x,S)),null!=h.brush&&a.fillPath(h.brush,s,StiPathGeom.getBoundsState,null),h.allowApplyBrushNegative&&null!=h.brushNegative){let e=u.axisCore.scrollRangeX*u.axisCore.scrollDpiX,t=u.axisCore.scrollRangeY*u.axisCore.scrollDpiY-S,i=new RectangleD(0,S,e,t);a.pushClip(i),a.fillPath(h.brushNegative,s,StiPathGeom.getBoundsState,null),a.popClip()}}}constructor(e,t,i){super(e,t,i)}},__.d.StiWaterfallLineGeom=class extends __.d.StiCellGeom{draw(t){if(this.animation){let e=new StiTranslationAnimation(PointF.empty,PointF.empty,StiChartHelper.globalDurationElement,TimeSpan.zero);t.drawAnimationLines(this.pen,[this.pointStart,this.pointEnd],e)}else t.drawLine(this.pen,this.pointStart.x,this.pointStart.y,this.pointEnd.x,this.pointEnd.y)}constructor(e,t,i,s,r){super(s),this.pen=i,this.pointStart=e,this.pointEnd=t,this.animation=r}},__.d.StiDoughnutEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=new StiPenGeom(Color.lightGray),s=new List;s.add(new StiArcSegmentGeom(t,0,360)),s.add(new StiLineSegmentGeom(t.right,t.y+t.height/2,t.x+3*t.width/4,t.y+t.height/2)),s.add(new StiArcSegmentGeom(new Rectangle(t.x+t.width/4,t.y+t.height/4,t.width/2,t.height/2),0,360)),s.add(new StiLineSegmentGeom(t.x+3*t.width/4,t.y+t.height/2,t.right,t.y+t.height/2)),e.pushSmoothingModeToAntiAlias(),e.fillPath(Color.fromArgb(50,Color.lightGray.r,Color.lightGray.g,Color.lightGray.b),s,t,null),e.drawPath(i,s,t),e.drawLine(i,t.x+t.width/2,t.y+3*t.height/4,t.x+t.width/2,t.bottom),e.popSmoothingMode()}constructor(e){super(e)}},Stimulsoft.Base.Context.StiPenAlignment),StiPieSegmentAnimation=Stimulsoft.Base.Context.Animation.StiPieSegmentAnimation,StiFontIconsHelper=(__.d.StiDoughnutSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n<this.radiusTo||n>this.radiusFrom)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(t){let i=this.clientRectangle.clone(),e=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(t.options.zoom)),s=(e.alignment=StiPenAlignment.Inset,this.series.as(__.d.IStiFontIconsSeries));if(null!=s&&null!=s.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),s.icon,this.getToolTip()),void t.popClip()}let r=this.getAnimation();null!=r?(t.drawAnimationPathElement(this.brush,e,this.path,i,this.getToolTip(),this,r,this.getInteractionData()),null!=this.pathLight&&t.drawAnimationPathElement(this.brushLight,null,this.pathLight,i,this.getToolTip(),null,r,this.getInteractionData()),null!=this.pathDark&&t.drawAnimationPathElement(this.brushDark,null,this.pathDark,i,this.getToolTip(),null,r,this.getInteractionData())):(t.pushSmoothingModeToAntiAlias(),null!=this.path&&t.fillPath(this.brush,this.path,i,this.getInteractionData()),null!=this.pathLight&&t.fillPath(this.brushLight,this.pathLight,i,null),null!=this.pathDark&&t.fillPath(this.brushDark,this.pathDark,i,null),t.drawPath(e,this.path,StiPathGeom.getBoundsState),t.popSmoothingMode())}getAnimation(){if(!this.series.chart.isAnimation)return null;let l=__.d.StiChartHelper.globalDurationElement,i=__.d.StiChartHelper.globalBeginTimeElement,o=null,a=null;if(this.series.chart.isAnimationChangingValues){let i=this.startAngle,s=this.endAngle,r=this.clientRectangle,n=this.clientRectangle;if(4==this.path.length&&this.path[0].is(StiArcSegmentGeom)&&this.path[2].is(StiArcSegmentGeom)){let e=this.path[0],t=this.path[2];i=e.startAngle,s=e.startAngle+e.sweepAngle,r=e.rect,n=t.rect}(a=new StiPieSegmentAnimation(this.clientRectangle,r,this.clientRectangleDt,n,this.startAngle,this.endAngle,i,s,l,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,StiPieSegmentAnimation.isAnimationChangingValues(this.series,a.id)&&(a.applyPreviousAnimation(this.series.chart.previousAnimations),o=a)}if(null==o){let e=new TimeSpan(i.ticks/this.series.values.length*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(l,e));t.anotherAnimation=a,t.id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,o=t}return o}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){super(e,t,i,s,r,u),this.clientRectangleDt=n,this.path=l,this.pathLight=o,this.pathDark=a,this.borderColor=h,this.brush=u,this.brushLight=S,this.brushDark=d,this.startAngle=m,this.endAngle=c,this.radiusFrom=g,this.radiusTo=p,this.beginTime=_}},__.d.StiFinancialSeriesElementGeom=class extends __.d.StiCellGeom{draw(e){}constructor(e,t,i,s,r,n,l,o,a){super(i),this.areaGeom=e,this.series=t,this.open=s,this.close=r,this.high=n,this.low=l,this.positionX=o,this.index=a}},__.d.StiCandlestickSeriesElementGeom=class extends __.d.StiFinancialSeriesElementGeom{draw(u){let e=this.areaGeom.area,r=this.series,S=r.borderWidth*u.options.zoom,d=e.xAxis.info.dpi/2,m=this.open,c=this.close,g=this.high,p=this.low,_=this.positionX,f=new StiPenGeom(this.borderColor,S),t=(c==m&&--m,this.series.chart);if(t.isAnimation){let e=__.d.StiChartHelper.globalDurationElement,t=[new PointD(_,g),new PointD(_,m)],i=[new PointD(_,c),new PointD(_,p)],s=[],n=_-d/2,l=m,o=n+d,a=l+c-m,h=(s.push(new StiLineSegmentGeom(n,l,o,l)),s.push(new StiLineSegmentGeom(o,l,o,a)),s.push(new StiLineSegmentGeom(o,a,n,a)),s.push(new StiLineSegmentGeom(n,a,n,l)),s.push(new StiCloseFigureSegmentGeom),new StiOpacityAnimation(e,this.beginTime));if(r.showShadow){let e=S+.5*u.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e),i=[new PointD(_+e/2,g+e/2),new PointD(_+e/2,m+e/2)],s=[new PointD(_+e/2,c+e/2),new PointD(_+e/2,p+e/2)],r=(u.drawAnimationLines(t,i,h),u.drawAnimationLines(t,s,h),[]);r.push(new StiLineSegmentGeom(n+e/2,l+e/2,o+e/2,l+e/2)),r.push(new StiLineSegmentGeom(o+e/2,l+e/2,o+e/2,a+e/2)),r.push(new StiLineSegmentGeom(o+e/2,a+e/2,n+e/2,a+e/2)),r.push(new StiLineSegmentGeom(n+e/2,a+e/2,n+e/2,l+e/2)),r.push(new StiCloseFigureSegmentGeom),u.fillDrawAnimationPath(null,t,r,new RectangleD(n+e/2,l+e/2,d,c-m),null,h,null)}u.drawAnimationLines(f,t,h),u.drawAnimationLines(f,i,h),u.fillDrawAnimationPath(this.brush,f,s,new RectangleD(n,l,d,c-m),this,h,null)}else{if(r.showShadow){let e=S+.5*u.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e);u.pushTranslateTransform(S,S),u.drawLine(t,_,c+e/2,_,p+e/2),u.drawLine(t,_,g,_,m-e/2),u.drawRectangle2(t,_-d/2,m,d,c-m),u.popTransform()}u.drawLine(f,_,g,_,m),u.drawLine(f,_,c,_,p),u.fillRectangle2(this.brush,_-d/2,m,d,c-m,null),u.drawRectangle2(f,_-d/2,m,d,c-m)}}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r,n,l,o,a),this.brush=h,this.borderColor=u,this.beginTime=S}},__.d.StiStockSeriesElementGeom=class extends __.d.StiFinancialSeriesElementGeom{draw(l){let e=this.areaGeom.area,o=this.series,a=o.lineWidth*l.options.zoom,h=e.xAxis.info.dpi/3,s=new StiPenGeom(this.color,a),t=(s.penStyle=o.lineStyle,this.series.chart);if(t.isAnimation){let n=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,this.beginTime);if(o.showShadow){let e=a+.5*l.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e),i=(t.penStyle=o.lineStyle,[new PointD(this.positionX,this.high),new PointD(this.positionX,this.low)]),s=[new PointD(this.positionX-h,this.open),new PointD(this.positionX-e/2,this.open)],r=[new PointD(this.positionX+h,this.close),new PointD(this.positionX+e/2,this.close)];l.drawAnimationLines(t,i,n),l.drawAnimationLines(t,s,n),l.drawAnimationLines(t,r,n)}let e=[new PointD(this.positionX,this.high),new PointD(this.positionX,this.low)],t=[new PointD(this.positionX-h,this.open),new PointD(this.positionX,this.open)],i=[new PointD(this.positionX+h,this.close),new PointD(this.positionX,this.close)];l.drawAnimationLines(s,e,n),l.drawAnimationLines(s,t,n),l.drawAnimationLines(s,i,n)}else{if(o.showShadow){let e=a+.5*l.options.zoom,t=new StiPenGeom(Color.fromArgb(50,0,0,0),e);t.penStyle=o.lineStyle,l.pushTranslateTransform(a,a),l.drawLine(t,this.positionX,this.high,this.positionX,this.low),l.drawLine(t,this.positionX-h,this.open,this.positionX-e/2,this.open),l.drawLine(t,this.positionX+h,this.close,this.positionX+e/2,this.close),l.popTransform()}l.drawLine(s,this.positionX,this.high,this.positionX,this.low),l.drawLine(s,this.positionX-h,this.open,this.positionX,this.open),l.drawLine(s,this.positionX+h,this.close,this.positionX,this.close)}}constructor(e,t,i,s,r,n,l,o,a,h,u){super(e,t,i,s,r,n,l,o,a),this.color=h,this.beginTime=u}},__.d.StiFunnelEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){e.pushSmoothingModeToAntiAlias(),e.fillPath(Color.fromArgb3(50,Color.lightGray),this.path,this.clientRectangle,null),e.drawPath(new StiPenGeom(Color.gray),this.path,this.clientRectangle),e.popSmoothingMode()}constructor(e,t){super(e),this.path=t}},__.d.StiFunnelSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let i=this.clientRectangle.clone(),s=new StiPenGeom(StiColorUtils.dark(this.borderColor,10),this.getSeriesBorderThickness(t.options.zoom)),e=(s.alignment=StiPenAlignment.Inset,this.series.chart),r=this.series.as(__.d.IStiFontIconsSeries);if(null!=r&&null!=r.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}if(e.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),this.beginTime);this.series.showShadow&&(t.pushTranslateTransform(4,4),t.drawAnimationPathElement(new StiSolidBrush(Color.fromArgb(50,100,100,100)),null,this.path,i,null,this,e,null),t.popTransform()),t.drawAnimationPathElement(this.brush,null,this.path,i,this.getToolTip(),this,e,this.getInteractionData()),Color.transparent.equals(this.borderColor)||t.drawAnimationPathElement(null,s,this.path,i,null,this,e,null)}else t.pushSmoothingModeToAntiAlias(),this.series.showShadow&&(t.pushTranslateTransform(4,4),t.fillPath(Color.fromArgb(50,100,100,100),this.path,i,null),t.popTransform()),t.fillPath(this.brush,this.path,i,this.getInteractionData()),Color.transparent.equals(this.borderColor)||t.drawPath(s,this.path,null),t.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,s,r,n),this.path=o,this.borderColor=l,this.brush=n,this.beginTime=a}},__.d.StiGanttSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let t=this.series,r=this.clientRectangle.clone(),i=this.series.chart,n=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),l=(n=StiCornerRadiusHelper.flipHorizontal(n),this.series.as(__.d.IStiFontIconsSeries));if(null!=l&&null!=l.icon){let e=i.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.height,r.height),l.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let o=this.getAnimation();if(null!=o){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}let e=new StiPenGeom(t.borderColor,this.getSeriesBorderThickness(s.options.zoom));s.drawAnimationCicledBar(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,o,this.getInteractionData())}else{t.showShadow&&4<r.width&&4<r.height&&s.drawCachedShadow(r,StiShadowSides.All,s.options.isPrinting,r,n),s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip());let e=new StiPenGeom(t.borderColor,this.getSeriesBorderThickness(s.options.zoom));s.drawCicledRectangle(e,r,n)}null==n||n.isEmpty||s.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.rectFrom,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=null;return s&&e.yAxis.info.stripLines.count>this.index+1?r=e.yAxis.info.stripLines.getByIndex(this.index+1).valueObject:e.yAxis.info.stripLines.count>this.index&&(r=e.yAxis.info.stripLines.getByIndex(this.index).valueObject),r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l){super(e,t,i,s,r,l),this.rectFrom=n}},__.d.StiHeatmapSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let i=this.clientRectangle.clone(),e=this.getCornerRadius(),s=this.series.as(__.d.IStiFontIconsSeries);if(null!=s&&null!=s.icon){let e=30;return t.pushClip(i),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),s.icon,this.getToolTip()),void t.popClip()}let r=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(t.options.zoom));null==e||e.isEmpty||t.pushSmoothingModeToAntiAlias();try{this.series.chart.isAnimation&&null!=this.animation?t.drawAnimationCicledRectangle(this.seriesBrush,r,i,e,this,this.animation,this.getInteractionData(),this.getToolTip()):(super.draw(t),this.series.chart.style.core.fillCicledColumn(t,i,e,this.seriesBrush,this.getInteractionData(),this.getToolTip()),t.drawCicledRectangle(r,i,e))}finally{null==e||e.isEmpty||t.popSmoothingMode()}}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.animation=o}},__.d.StiPictorialEmptySeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new Point(e,t);for(let t=0;t<this.drawRectangles.length;t++){let e=this.drawRectangles[t];if(e.contains(i.x,i.y))return!0}return!1}draw(n){let l=this.series.core.getSingleSize(n),o=(super.draw(n),new StiFontGeom("Stimulsoft",14*n.options.zoom,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Pixel));for(let r=0;r<this.drawRectangles.length;r++){let t=this.drawRectangles[r],e=this.clipRectangles[r],i=!0,s=new Point(t.x,t.y);n.pushClip(e);while(i){let e=new Rectangle(s.x+n.options.zoom,s.y+n.options.zoom,l.width,l.height);n.drawString3(__.a.StiFontIconsHelper.getContent(this.icon),o,this.seriesBrush,e,this.getStringFormatGeom(n),this.getToolTip()),(s=new Point(s.x+l.width,s.y)).x+l.width>t.right&&s.y+l.height>t.bottom?i=!1:s.x+l.width>t.right&&(s=new Point(t.x,s.y+l.height))}n.popClip()}}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a,h){super(e,t,i,r,a,s),this.icon=n,this.drawRectangles=l,this.clipRectangles=o,this.animation=h}},__.a.StiFontIconsHelper),StiBezierSegmentGeom=(__.d.StiPictorialSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(i,s){if(this.invisible)return!1;for(let t=0;t<this.drawRectangles.length;t++){let e=this.drawRectangles[t];if(e.contains(i,s))return!0}return!1}draw(h){let u=this.series.core.getSingleSize(h),S=(super.draw(h),new StiFontGeom("Stimulsoft",15*h.options.zoom,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Pixel)),d=h.options.zoom;for(let i=0;i<this.drawRectangles.length;i++){let e=this.drawRectangles[i],t=this.clipRectangles[i],o=!0,a=new PointD(e.x,e.y);this.series.showShadow&&(t.width+=d,t.height+=d),h.pushClip(t);while(o){let i=new RectangleD(a.x+h.options.zoom,a.y+h.options.zoom,u.width,u.height),s=StiFontIconsHelper.getContent(this.icon),r=this.getStringFormatGeom(h),n=this.getToolTip(),l=this.getInteractionData();if(this.series.showShadow){let e=new StiSolidBrush(Color.fromArgb(50,0,0,0)),t=i.clone().offset(d,d);h.drawString3(s,S,e,t,r,n,l)}h.drawString3(s,S,this.seriesBrush,i,r,n,l),(a=new PointD(a.x+u.width,a.y)).x>=e.right&&(o=!1)}h.popClip()}}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a,h){super(e,t,i,r,a,s),this.icon=n,this.drawRectangles=l,this.clipRectangles=o,this.seriesBrush=s,this.animation=h}},__.d.StiPictorialStackedEmptySeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;return this.clipRectangle.contains(e,t)}draw(e){if(super.draw(e),this.clipRectangle.width<=0||this.clipRectangle.height<=0)return;e.pushClip(this.clipRectangle);let t=this.getFontGeom(e);if(t.fontSize<=0)return;e.drawAnimationRectangle(Color.transparent,null,this.clipRectangle,null,null,this.getInteractionData(),this.getToolTip()),e.drawRotatedString5(__.a.StiFontIconsHelper.getContent(this.icon),t,this.seriesBrush,this.clientRectangle,this.getStringFormatGeom(e),StiRotationMode.CenterCenter,0,!0),e.popClip()}getFontGeom(e){let t=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),i=this.measureFontSize(e,this.clientRectangle,t);return new StiFontGeom("Stimulsoft",i,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point)}measureFontSize(e,s,t){let r=null,i=__.a.StiFontIconsHelper.getContent(this.icon),n=e.measureString(i,t);if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==r||r>i)&&(r=i)}else{let e=s.width/n.width*n.width/n.height;(null==r||r>e)&&(r=e)}return 1e3*r}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags|=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,r,l,s),this.icon=n,this.clipRectangle=o,this.animation=a}},__.d.StiPictorialStackedSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;return this.clipRectangle.contains(e,t)}draw(e){if(super.draw(e),this.clipRectangle.width<=0||this.clipRectangle.height<=0)return;e.pushClip(this.clipRectangle);let t=this.getFontGeom(e);if(t.fontSize<=0)return;e.drawAnimationRectangle(Color.transparent,null,this.clipRectangle,null,null,this.getInteractionData(),this.getToolTip()),e.drawRotatedString5(StiFontIconsHelper.getContent(this.icon),t,this.seriesBrush,this.clientRectangle,this.getStringFormatGeom(e),StiRotationMode.CenterCenter,0,!0),e.popClip()}getFontGeom(e){let t=new StiFontGeom("Stimulsoft",1e3,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),i=.83*this.measureFontSize(e,this.clientRectangle,t,this.icon);return new StiFontGeom("Stimulsoft",i,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point)}measureFontSize(e,s,t,i){let r=StiFontIconsHelper.getContent(i),n=e.measureString(r,t),l=null;if(0==n.width||0==n.height)return 0;if(s.width>s.height){let e=s.width/n.width,t=s.height/n.height,i=t<e?t:e;(null==l||l>i)&&(l=i)}else{let e=s.width/n.width*n.width/n.height;(null==l||l>e)&&(l=e)}return 1e3*l}getStringFormatGeom(e){let t=e.getGenericStringFormat();return t.trimming=StringTrimming.None,t.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,t}constructor(e,t,i,s,r,n,l,o,a){super(e,t,i,r,l,s),this.icon=n,this.clipRectangle=o,this.animation=a}},__.d.StiPie3dMainSideSeriesElementGeom=class extends __.d.StiSeriesElementGeom{get interaction(){return this.pie3DSlice.interaction}draw(e){let t=new List,i=(t.add(new StiPieSegmentGeom(new Rectangle(this.clientRectangle.x,this.clientRectangle.y,this.clientRectangle.width,this.clientRectangle.height),this.startAngle,this.sweepAngle,this.realStartAngle,this.realSweepAngle,null)),e.pushSmoothingModeToAntiAlias(),this.getAnimation());null!=i?e.drawAnimationPathElement(this.seriesBrush,new StiPenGeom(this.borderColor,1),t,this.clientRectangle,this.getToolTip(),this,i,this.getInteractionData()):(e.fillPath(this.seriesBrush,t,this.clientRectangle,null),e.drawPath(new StiPenGeom(this.borderColor,1),t,this.clientRectangle)),e.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let i=__.d.StiChartHelper.globalDurationElement,s=__.d.StiChartHelper.globalBeginTimeElement,r=null,n=null;if(null==r){let e=new TimeSpan(s.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(i,e));t.anotherAnimation=n,t.id="series_"+this.series.chart.series.indexOf(this.series)+"_"+this.index,r=t}return r}constructor(e,t,i,s,r,n,l,o,a,h,u){super(t,i,s,n,l,a),this.pie3DSlice=e,this.count=r,this.borderColor=o,this.realStartAngle=h,this.realSweepAngle=u,this.startAngle=__.d.StiPie3dHelper.transformAngle(this.clientRectangle,h),this.sweepAngle=u,this.sweepAngle=u,this.sweepAngle%180!=0&&(this.sweepAngle=__.d.StiPie3dHelper.transformAngle(this.clientRectangle,h+u)-this.startAngle),this.sweepAngle<0&&(this.sweepAngle+=360)}},__.d.StiPie3dSidesSeriesElementGeom=class extends __.d.StiSeriesElementGeom{get StartAngle(){return this.m_startAngle}get EndAngle(){return(this.m_startAngle+this.m_sweepAngle)%360}get Interaction(){return this.pie3DSlice.interaction}draw(e){e.pushSmoothingModeToAntiAlias(),this.drawHiddenPeriphery(e),90<this.StartAngle&&this.StartAngle<270?(this.drawEndSide(e),this.drawStartSide(e)):(this.drawStartSide(e),this.drawEndSide(e)),this.drawVisiblePeriphery(e),e.popSmoothingMode()}drawStartSide(e){null!=this.m_startSide&&(90<this.StartAngle&&this.StartAngle<270?this.m_startSide.draw(e,this.pen,this.m_brushStartSide):this.m_startSide.draw(e,this.pen,this.m_brushSurface))}drawEndSide(e){null!=this.m_endSide&&(90<this.EndAngle&&this.EndAngle<270?this.m_endSide.draw(e,this.pen,this.m_brushSurface):this.m_endSide.draw(e,this.pen,this.m_brushEndSide))}drawVisiblePeriphery(t){let i=this.getVisiblePeripherySurfaceBounds();for(let e of i)this.drawCylinderSurfaceSection(t,this.pen,this.m_brushPeripherySurface,e)}drawHiddenPeriphery(t){let i=this.getHiddenPeripherySurfaceBounds();for(let e of i)this.drawCylinderSurfaceSection(t,this.pen,this.m_brushSurface,e)}getHiddenPeripherySurfaceBounds(){let l=new List;if(!(0==this.m_sweepAngle||0<=this.m_startAngle&&this.m_startAngle+this.m_sweepAngle<=180)&&180<this.m_startAngle+this.m_sweepAngle){let e=this.m_startAngle,t=new Point(this.m_pointStart.x,this.m_pointStart.y),i=this.m_startAngle+this.m_sweepAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;e<180&&(e=r=180,t.x=this.m_boundingRectangle.left,t.y=this.m_center.y),360<i&&(i=n=360,s.x=this.m_boundingRectangle.right,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n)),this.m_startAngle<360&&540<this.m_startAngle+this.m_sweepAngle&&(e=180,t=new Point(this.m_boundingRectangle.left,this.m_center.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n)))}return l}getVisiblePeripherySurfaceBounds(){let l=new List;if(!(0==this.m_sweepAngle||180<=this.m_startAngle&&this.m_startAngle+this.m_sweepAngle<=360)){if(this.StartAngle<180){let e=this.m_startAngle,t=new Point(this.m_pointStart.x,this.m_pointStart.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;180<this.m_startAngle+this.m_sweepAngle&&(i=n=180,s.x=this.m_boundingRectangle.x,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n))}if(360<this.m_startAngle+this.m_sweepAngle){let e=0,t=new Point(this.m_boundingRectangle.right,this.m_center.y),i=this.EndAngle,s=new Point(this.m_pointEnd.x,this.m_pointEnd.y),r=this.startnAngle,n=this.startnAngle+this.sweepAngle;180<i&&(i=n=180,s.x=this.m_boundingRectangle.left,s.y=this.m_center.y),l.add(new __.d.StiPie3dPeripherySurfaceBounds(e,i,t,s,r,n))}}return l}drawCylinderSurfaceSection(e,t,i,s){let r=this.createPathForCylinderSurfaceSection(s),n=e.getPathBounds(r),l=this.getAnimation();null!=l?e.drawAnimationPathElement(i,t,r,n,this.getToolTip(),this,l,this.getInteractionData()):(e.fillPath(i,r,n,null),e.drawPath(t,r,n))}getTextPosition(){let e=(this.series.showSeriesLabels==__.d.StiShowSeriesLabels.FromSeries?this.series:this.series.chart).seriesLabels,t=e.is(__.d.StiInsideEndPie3dLabels),i=t?2:3;if(180<=this.sweepAngle)return this.peripheralPoint(this.m_center.x,this.m_center.y,this.m_boundingRectangle.width/i,this.m_boundingRectangle.height/i,this.getActualAngle(this.StartAngle)+this.sweepAngle/2);let s=(this.m_pointStart.x+this.m_pointEnd.x)/2,r=(this.m_pointStart.y+this.m_pointEnd.y)/2,n=180*Math.atan2(r-this.m_center.y,s-this.m_center.x)/Math.PI;return this.peripheralPoint(this.m_center.x,this.m_center.y,this.m_boundingRectangle.width/i,this.m_boundingRectangle.height/i,this.getActualAngle(n))}getActualAngle(e){let t=this.m_boundingRectangle.height*Math.cos(e*Math.PI/180),i=this.m_boundingRectangle.width*Math.sin(e*Math.PI/180),s=180*Math.atan2(i,t)/Math.PI;if(s<0)return s+360;return s}createPathForCylinderSurfaceSection(e){let t=e.startAngle,i=e.endAngle,s=e.startPoint,r=e.endPoint,n=e.realStartAngle,l=e.realEndAngle,o=e.realEndAngle-e.realStartAngle,a=new List,h=(a.add(new StiArcSegmentGeom(this.m_boundingRectangle,t,i-t,n,o)),a.add(new StiLineSegmentGeom(r.x,r.y,r.x,r.y+this.m_sliceHeight)),new Rectangle(this.m_boundingRectangle.x,this.m_boundingRectangle.y+this.m_sliceHeight,this.m_boundingRectangle.width,this.m_boundingRectangle.height));return a.add(new StiArcSegmentGeom(h,i,t-i,l,n-l)),a.add(new StiLineSegmentGeom(s.x,s.y+this.m_sliceHeight,s.x,s.y)),a}initializePieSlice(e,t,i,s,r,n){this.m_boundingRectangle=new Rectangle(e,t,i,s),this.m_sliceHeight=r;let l=this.startnAngle,o=(this.m_startAngle=this.transformAngle(this.startnAngle),this.m_sweepAngle=this.sweepAngle,this.m_sweepAngle%180!=0&&(this.m_sweepAngle=this.transformAngle(l+this.sweepAngle)-this.m_startAngle),this.m_sweepAngle<0&&(this.m_sweepAngle+=360),this.createSurfaceBrushes(n),e+i/2),a=t+s/2;this.m_center=new Point(o,a),this.m_centerBelow=new Point(o,a+r),this.m_pointStart=this.peripheralPoint(o,a,i/2,s/2,l),this.m_pointStartBelow=new Point(this.m_pointStart.x,this.m_pointStart.y+r),this.m_pointEnd=this.peripheralPoint(o,a,i/2,s/2,l+this.sweepAngle),this.m_pointEndBelow=new Point(this.m_pointEnd.x,this.m_pointEnd.y+r),this.initializeSides(this.startSideExists,this.endSideExists)}initializeSides(e,t){let i=this.getAnimation();this.m_startSide=e?new __.d.StiPie3dQuadrilateral(this.m_boundingRectangle,this.m_center,this.m_pointStart,this.m_pointStartBelow,this.m_centerBelow,180!=this.m_sweepAngle,i):__.d.StiPie3dQuadrilateral.empty(),this.m_endSide=t?new __.d.StiPie3dQuadrilateral(this.m_boundingRectangle,this.m_center,this.m_pointEnd,this.m_pointEndBelow,this.m_centerBelow,180!=this.m_sweepAngle,i):__.d.StiPie3dQuadrilateral.empty()}createSurfaceBrushes(e){let t=StiBrush.toColor(this.seriesBrush);switch(this.m_brushSurface=new StiSolidBrush(t),e){case __.d.StiPie3dLightingStyle.No:this.m_brushStartSide=this.m_brushEndSide=this.m_brushPeripherySurface=new StiSolidBrush(t);break;case __.d.StiPie3dLightingStyle.Solid:this.m_brushStartSide=this.m_brushEndSide=this.m_brushPeripherySurface=StiBrush.light(this.seriesBrush,30);break;case __.d.StiPie3dLightingStyle.Gradient:{let e=this.m_startAngle-180-this.s_shadowAngle;e<0&&(e+=360),this.m_brushStartSide=this.createBrushForSide(t,e),(e=this.m_startAngle+this.m_sweepAngle-this.s_shadowAngle)<0&&(e+=360),this.m_brushEndSide=this.createBrushForSide(t,e),this.m_brushPeripherySurface=this.createBrushForPeriphery(t);break}}}createBrushForSide(e,t){return new StiSolidBrush(__.d.StiPie3dHelper.createColorWithCorrectedLightness(e,-__.d.StiPie3dHelper.brightnessEnhancementFactor1*(1-.8*Math.cos(t*Math.PI/180))))}createBrushForPeriphery(e){return new StiGlareBrush(e,__.d.StiPie3dHelper.createColorWithCorrectedLightness(e,-__.d.StiPie3dHelper.brightnessEnhancementFactor1),90,.1,1)}static createColorWithCorrectedLightness(e,t){if(0==t)return e;let i=e.r,s=e.g,r=e.b;return t<0?(t=1+t,i*=t,s*=t,r*=t):(i=(255-i)*t+i,s=(255-s)*t+s,r=(255-r)*t+r),Color.fromArgb(e.a,i,s,r)}peripheralPoint(e,t,i,s,r){let n=r*Math.PI/180;return new Point(e+i*Math.cos(n),t+s*Math.sin(n))}transformAngle(e){let t=this.m_boundingRectangle.width*Math.cos(e*Math.PI/180),i=this.m_boundingRectangle.height*Math.sin(e*Math.PI/180),s=180*Math.atan2(i,t)/Math.PI;if(s<0)return s+360;return s}getAnimation(){if(!this.series.chart.isAnimation)return null;let i=__.d.StiChartHelper.globalDurationElement,s=__.d.StiChartHelper.globalBeginTimeElement,r=null,n=null;if(null==r){let e=new TimeSpan(s.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(i,e));t.anotherAnimation=n,t.id="series_"+this.series.chart.series.indexOf(this.series)+"_"+this.index,r=t}return r}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(t,i,s,n,l,a),this.s_shadowAngle=20,this.pie3DSlice=e,this.count=r,this.startnAngle=h,this.pen=new StiPenGeom(o),this.sweepAngle=u,this.startSideExists=d,this.endSideExists=m,this.initializePieSlice(l.x,l.y,l.width,l.height,S,n.options3D.lighting)}},__.d.StiPieEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=new StiPenGeom(Color.lightGray);e.pushSmoothingModeToAntiAlias(),e.fillEllipse2(Color.fromArgb3(50,Color.lightGray),t,null),e.drawEllipse2(i,t),e.drawLine(i,t.x+t.width/2,t.y+t.height/2,t.right,t.y+t.height/2),e.drawLine(i,t.x+t.width/2,t.y+t.height/2,t.x+t.width/2,t.bottom),e.popSmoothingMode()}constructor(e){super(e)}},__.d.StiPieSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n>=this.radius)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(t){let i=this.clientRectangle.clone(),e=Color.transparent.equals(this.borderColor)?this.borderColor:StiColorUtils.dark(this.borderColor,10),s=new StiPenGeom(e,this.getSeriesBorderThickness(t.options.zoom)),r=(s.alignment=StiPenAlignment.Inset,this.series.as(__.d.IStiFontIconsSeries));if(null!=r&&null!=r.icon){let e=30;return t.pushClipPath(this.path),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}t.pushSmoothingModeToAntiAlias();let n=this.getAnimation();if(null!=n){if(t.drawAnimationPathElement(this.brush,s,this.path,i,this.getToolTip(),this,n,this.getInteractionData()),null!=this.pathLight){let e=new StiSolidBrush(Color.fromArgb3(30,Color.black));t.drawAnimationPathElement(e,null,this.pathLight,i,this.getToolTip(),null,n,this.getInteractionData())}}else{if(t.fillPath(this.brush,this.path,i,this.getInteractionData()),null!=this.pathLight){let e=new StiSolidBrush(Color.fromArgb3(30,Color.black));t.fillPath(e,this.pathLight,i,this.getInteractionData())}Color.transparent.equals(this.borderColor)||t.drawPath(s,this.path,null)}t.popSmoothingMode()}getAnimation(){if(!this.series.chart.isAnimation)return null;let r=__.d.StiChartHelper.globalDurationElement,i=__.d.StiChartHelper.globalBeginTimeElement,n=null,l=null;if(this.series.chart.isAnimationChangingValues){let t=this.startAngle,i=this.endAngle,s=this.clientRectangle;if(this.path[0].is(StiPieSegmentGeom)){let e=this.path[0];t=e.startAngle,i=e.startAngle+e.sweepAngle,s=e.rect}(l=new StiPieSegmentAnimation(this.clientRectangle,s,RectangleD.empty,RectangleD.empty,this.startAngle,this.endAngle,t,i,r,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,StiPieSegmentAnimation.isAnimationChangingValues(this.series,l.id)&&(l.applyPreviousAnimation(this.series.chart.previousAnimations),n=l)}if(null==n){let e=new TimeSpan(i.ticks/this.count*this.index),t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(r,e));t.anotherAnimation=l,t.id=`series_${this.series.chart.series.indexOf(this.series)}_`+this.index,n=t}return n}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r,a),this.path=n,this.pathLight=l,this.borderColor=o,this.brush=a,this.startAngle=h,this.endAngle=u,this.radius=S}},__.d.StiPieSeriesFullElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let e=this.series.chart,r=this.clientRectangle.clone(),n=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(s.options.zoom));if(e.isAnimation){let e=__.d.StiChartHelper.globalDurationElement,t=__.d.StiChartHelper.globalBeginTimeElement,i=new StiOpacityAnimation(e,t);s.fillDrawAnimationEllipse(this.brush,n,r.x,r.y,r.width,r.height,this.getToolTip(),this,i,this.getInteractionData())}else s.fillEllipse2(this.brush,r,null),s.drawEllipse2(n,r)}constructor(e,t,i,s,r,n,l){super(e,t,i,s,r,n),this.brush=n,this.borderColor=l}},__.d.StiPieSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(t){let i=this.clientRectangle.clone();if(this.isAnimation){let e=new StiOpacityAnimation(this.duration,this.beginTime);t.drawShadowRect2(i,i.height/2,i.width/2,StiMath.trunc(this.radius),null,e)}else t.drawShadow(this.shadowContext,i,this.radius)}constructor(e,t,i,s,r,n){super(t),this.series=e,this.shadowContext=s,this.radius=i,this.duration=r,this.beginTime=n,this.isAnimation=e.chart.isAnimation}},__.d.StiRadarAreaSeriesGeom=class extends __.d.StiCellGeom{contains(n,l){if(this.invisible)return!1;let e=this.series.chart.area,o=e.core;for(let r=0;r<this.points.length;r++){let e=this.points[r],t=r==this.points.length-1?this.points[0]:this.points[r+1],i=o.centerPoint;if(null==e||null==t)continue;let s=__.d.StiPointHelper.isPointInTriangle(new PointD(n,l),e,i,t);if(s)return!0}return!1}draw(i){let r=this.series;if(null==r.brush)return;let n=[];if(this.series.chart.isAnimation){let e=null,t=null;StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds)?((t=new StiPointsAnimation(this.pointsFrom,this.points,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)).id=`series_`+this.series.chart.series.indexOf(this.series),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),i.animations.push(t)):e=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),n.push(new StiLinesSegmentGeom(this.points,t)),i.fillDrawAnimationPath(r.brush,null,n,StiPathGeom.getBoundsState,null,e,null)}else{let s=0;for(let i of this.points){let e=i,t=s<this.points.length-1?this.points[s+1]:this.points[0];n.push(new StiLineSegmentGeom(e.x,e.y,t.x,t.y)),s++}i.pushSmoothingModeToAntiAlias(),i.fillPath(r.brush,n,RectangleD.empty,null),i.popSmoothingMode()}}constructor(e,t){super(RectangleD.empty),this.series=e,this.pointsFrom=t.pointsFrom,this.points=t.points,this.pointsIds=t.pointsIds}},__.d.StiRadarPointSeriesElementGeom=class extends __.d.StiSeriesElementGeom{getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}contains(e,t){if(this.invisible)return!1;return this.getMouseOverRect().contains(e,t)}getMouseOverRect(){let e=this.clientRectangle.clone();return e.inflate(e.width/2,e.height/2),e}draw(s){let r=this.series,n=!r.marker.visible&&0<r.toolTips.length;if(null!=r.marker&&r.marker.visible){s.pushSmoothingModeToAntiAlias();let e=s.options.zoom,t=this.series.chart,i=null;t.isAnimation&&((i=new StiInteractionDataGeom).componentName=t.name,i.componentIndex=t.page.components.indexOf(t).toString(),i.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",i.pageIndex=t.page.report.renderedPages.indexOf(t.page).toString(),i.elementIndex=this.elementIndex.toString(),i.interactionData=this.interaction),r.marker.core.draw(s,r.marker,this.point,e,r.showShadow,!1,n,t.isAnimation,this.getToolTip(),this,i),s.popSmoothingMode()}}constructor(e,t,i,s,r,n,l){super(e,t,i,r,__.d.StiMarkerCoreXF.getMarkerRect(n,r.marker.size,l),s),this.point=n}},__.d.StiRangeBarElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let e=this.series,r=this.clientRectangle.clone(),n=this.getCornerRadius(),t=new StiPenGeom(e.borderColor,this.getSeriesBorderThickness(s.options.zoom)),i=(null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias(),this.getAnimation());if(null!=i){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,t,r,n,this.value,this.getToolTip(),this,i,this.getInteractionData())}else e.showShadow&&4<r.width&&4<r.height&&s.drawCachedShadow(r,StiShadowSides.All,s.options.isPrinting,r,n),s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip()),s.drawCicledRectangle(t,r,n);null==n||n.isEmpty||s.popSmoothingMode()}getAnimation(){var t;if(!this.series.chart.isAnimation)return null;let e=this.series,i=this.areaGeom.area,s=this.series.values.length,r=(e.valuesEnd.length<s&&(s=e.valuesEnd.length),e.arguments.length),n=Math.min(s,r),l=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/n*this.index),o=i.xAxis.info.stripLines.length-1;for(let e of i.xAxis.info.stripLines.list){if(this.series.arguments[this.index][Stimulsoft.System.StiObject.stimulsoft]().toString()==(null==(t=e.valueObject)?void 0:t.toString()))break;o--}o=i.xAxis.info.stripLines.length-1-o;let a=new StiColumnAnimation(this.rectFrom,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,l),h=i.xAxis.info.stripLines.getByIndex(i.reverseVert?i.xAxis.info.stripLines.length-1-o:o).valueObject;return h=null==h?"":h[Stimulsoft.System.StiObject.stimulsoft]().toString(),a.id=`series_${this.series.chart.series.indexOf(this.series)}_`+h,StiColumnAnimation.isAnimationChangingValues(this.series,a.id)&&a.applyPreviousAnimation(this.series.chart.previousAnimations),a}constructor(e,t,i,s,r,n,l){super(e,t,i,s,n,r),this.rectFrom=l}},__.d.StiRangeSeriesGeom=class extends __.d.StiLineSeriesGeom{draw(a){let h=this.series,e=__.d.StiNullableDrawing.getPointsList(this.points),t=__.d.StiNullableDrawing.getPointsList(this.pointsEnd);if(e.length<1||t.length<1)return;let u=e[0],S=t[0],d=Math.min(u.length,S.length),m=[],c=[],g=[],p=[];for(let o=0;o<d;o++){let e=u[o],t=S[o],i=this.pointsIds[o],s=this.pointsIds[o]+"_e",r=null,n=null,l=(o!=d-1&&(r=u[o+1],n=S[o+1]),null);null==r&&!this.intersection(e,t,r,n)||(l=this.getPointCross2(e,t,r,n)),m.push(e),c.push(t),g.push(i),p.push(s),null!=l?(m.push(l),c.push(l),g.push(i+"_c"),p.push(i+"_c_e"),this.fillPath(a,this.getBrush(h,e,t),m.map(e=>e),c.map(e=>e),g.map(e=>e),p.map(e=>e)),m[Stimulsoft.System.StiObject.stimulsoft]().clear(),c[Stimulsoft.System.StiObject.stimulsoft]().clear(),g[Stimulsoft.System.StiObject.stimulsoft]().clear(),p[Stimulsoft.System.StiObject.stimulsoft]().clear(),m.push(l),c.push(l),g.push(i+"_c"),p.push(i+"_c_e")):null==r&&this.fillPath(a,this.getBrush(h,e,t),m.map(e=>e),c.map(e=>e),g.map(e=>e),p.map(e=>e))}}isPointsEqual(t,i){if(t.length==i.length){for(let e=0;e<t.length;e++)if(!t[e].equals(i[e]))return!1;return!0}return!1}getBrush(e,t,i){let s=e.brush;return s=e.allowApplyBrushNegative?t.y<i.y?e.brushNegative:e.brush:s}fillPath(s,e,r,n,l,o){if(this.isPointsEqual(r,n))return;let t=[],i=n.map(e=>e).reverse(),a=new StiLineSegmentGeom(i[i.length-1],r[0]),h=new StiLinesSegmentGeom(r),u=new StiLineSegmentGeom(r[r.length-1],i[0]),S=new StiLinesSegmentGeom(i);if(t.push(a),t.push(h),t.push(u),t.push(S),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),a.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),u.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),a.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation.beginTimeCorrect=e.beginTimeCorrect,h.animation=e,S.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(e,null,t,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(e,t,StiPathGeom.getBoundsState,null)}intersection(e,t,i,s){if(null==i)return!1;return e.y>t.y&&i.y<s.y||e.y<t.y&&i.y>s.y||i.y==s.y}getPointCross2(e,t,i,s){if(i==s)return i;let r=e.x,n=e.y,l=i.x,o=i.y,a=t.x,h=t.y,u=s.x,S=s.y,d=-((r*o-l*n)*(u-a)-(a*S-u*h)*(l-r))/((n-o)*(u-a)-(h-S)*(l-r)),m=((h-S)*-d-(a*S-u*h))/(u-a);return r<d&&d<l?new PointD(d,m):null}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiSplineRangeSeriesGeom=class extends __.d.StiSplineSeriesGeom{draw(e){let t=__.d.StiNullableDrawing.getPointsList(this.points),i=__.d.StiNullableDrawing.getPointsList(this.pointsEnd);if(t.length<1||i.length<1)return;let s=t[0],r=i[0],n=this.pointsIds.map(e=>e+"_e");this.fillPath(e,s,r,this.pointsIds,n)}fillPath(s,r,n,l,o){let e=this.series,t=e.brush,a=[],i=n.map(e=>e).reverse(),h=new StiLineSegmentGeom(i[i.length-1],r[0]),u=new StiCurveSegmentGeom(r,e.tension),S=new StiLineSegmentGeom(r[r.length-1],i[0]),d=new StiCurveSegmentGeom(i,e.tension);if(a.push(h),a.push(u),a.push(S),a.push(d),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),h.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),S.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),h.animation.beginTimeCorrect=e.beginTimeCorrect,S.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation=e,d.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(t,null,a,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(t,a,StiPathGeom.getBoundsState,null)}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiSteppedRangeSeriesGeom=class extends __.d.StiSteppedLineSeriesGeom{draw(o){let a=this.series,e=__.d.StiNullableDrawing.getPointsList(this.getSteppedPoints(this.points)),t=__.d.StiNullableDrawing.getPointsList(this.getSteppedPoints(this.pointsEnd)),h=this.getSteppedPointsIds(this.pointsIds);if(e.length<1||t.length<1)return;let u=e[0],S=t[0],d=Math.min(u.length,S.length),m=[],c=[],g=[],p=[];for(let l=0;l<d;l++){let e=u[l],t=S[l],i=h[l],s=h[l]+"_e",r=null,n=null;l!=d-1&&(r=u[l+1],n=S[l+1]),g.push(e),p.push(t),m.push(i),c.push(s),this.intersection(e,t,r,n)?(g.push(r),p.push(n),m.push(i+"_c"),c.push(i+"_c_e"),this.fillPath(o,this.getBrush(a,e,t),g.map(e=>e),p.map(e=>e),m.map(e=>e),c.map(e=>e)),g[Stimulsoft.System.StiObject.stimulsoft]().clear(),p[Stimulsoft.System.StiObject.stimulsoft]().clear(),m[Stimulsoft.System.StiObject.stimulsoft]().clear(),c[Stimulsoft.System.StiObject.stimulsoft]().clear(),g.push(r),p.push(n),m.push(i+"_c"),c.push(i+"_c_e")):null==r&&this.fillPath(o,this.getBrush(a,e,t),g.map(e=>e),p.map(e=>e),m.map(e=>e),c.map(e=>e))}}getBrush(e,t,i){let s=e.brush;return s=e.allowApplyBrushNegative?t.y<i.y?e.brushNegative:e.brush:s}fillPath(s,e,r,n,l,o){let t=[],i=n.map(e=>e).reverse(),a=new StiLineSegmentGeom(i[i.length-1],r[0]),h=new StiLinesSegmentGeom(r),u=new StiLineSegmentGeom(r[r.length-1],i[0]),S=new StiLinesSegmentGeom(i);if(t.push(a),t.push(h),t.push(u),t.push(S),this.series.chart.isAnimation){let i=null;if(this.series.chart.isAnimationChangingValues){let e=new StiPointsAnimation(r,r,l,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(n,n,o,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_e`,s.animations.push(e),s.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,l,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),a.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),u.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),a.animation.beginTimeCorrect=e.beginTimeCorrect,u.animation.beginTimeCorrect=e.beginTimeCorrect,h.animation=e,S.animation=t):i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}s.fillDrawAnimationPath(e,null,t,StiPathGeom.getBoundsState,null,i,null)}else s.fillPath(e,t,StiPathGeom.getBoundsState,null)}intersection(e,t,i,s){if(null==i)return!1;return e.y>t.y&&i.y<s.y||e.y<t.y&&i.y>s.y||i.y==s.y}constructor(e,t,i){super(e,t,i),this.pointsEnd=t.pointsEnd}},__.d.StiScatterSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(i){let s=this.series,r=(i.pushSmoothingModeToAntiAlias(),s.lineStyle),t=s.lineWidth*i.options.zoom,n=this.getAnimation(),e=new StiPenGeom(s.lineColor,s.lineWidth);if(e.penStyle=r,s.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),t+.5*i.options.zoom);e.penStyle=r,i.pushTranslateTransform(t,t),__.d.StiNullableDrawing.drawCurve(i,e,this.points,s.tension,n),i.popTransform()}if(__.d.StiNullableDrawing.drawCurve(i,e,this.points,s.tension,n),2<=t&&s.lighting){let e=.5*i.options.zoom,t=(i.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(s.lineColor,70),1));t.penStyle=r,__.d.StiNullableDrawing.drawCurve(i,t,this.points,s.tension,n),i.popTransform()}i.popSmoothingMode()}constructor(e,t,i){super(e,t,i)}},__.d.StiStackedBarSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let i=this.clientRectangle.clone(),t=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),r=StiCornerRadiusHelper.rotation90(this.getCornerRadius()),n=(r=StiCornerRadiusHelper.flipHorizontal(r),this.series.chart),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=n.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,i,new Size(i.height,i.height),l.icon,this.getToolTip(),this.getInteractionData(),!1,t)}null==r||r.isEmpty||s.pushSmoothingModeToAntiAlias();let e=this.getAnimation();if(null!=e){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(this.clientRectangle,5,r,i)}s.drawAnimationCicledBar(this.seriesBrush,t,i,r,this.value,this.getToolTip(),this,e,this.getInteractionData())}else{this.series.chart.style.core.fillCicledColumn(s,i,r,this.seriesBrush,this.getInteractionData(),this.getToolTip());let e=this.getBorderPath(i,r);s.drawPath(t,e,i)}null==r||r.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return 0<this.value?StiContextRoundedRectangleCreator.createWithoutRightSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutLeftSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.right,e.y,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.x,e.bottom))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.yAxis.core.getStartFromZero(),r=(s?e.yAxis.info.stripLines.getByIndex(this.index+1):e.yAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiStackedBarSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(e){let t=this.clientRectangle.clone();this.series.is(__.d.IStiFullStackedBarSeries)?e.drawCachedShadow(t,StiShadowSides.Bottom,e.options.isPrinting):(this.isLeftShadow&&e.drawCachedShadow(t,StiShadowSides.Bottom|StiShadowSides.Left,e.options.isPrinting),this.isRightShadow&&e.drawCachedShadow(t,StiShadowSides.Top|StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom,e.options.isPrinting))}constructor(e,t,i,s){super(t),this.isLeftShadow=!1,this.isRightShadow=!1,this.series=e,this.isLeftShadow=i,this.isRightShadow=s}},Stimulsoft.Base.Context.StiBezierSegmentGeom);{class HF0 extends __.d.StiSeriesGeom{static getClientRectangle(t){let i=Rectangle.empty;for(let e of t)i=Rectangle.union(i,e);return i}draw(t){let l=new List,o=3;for(let e=0;e<this.metadata.rectangles.length;e++){let r=this.metadata.rectangles[e],n=e==this.metadata.rectangles.length-1?Rectangle.empty:this.metadata.rectangles[e+1];if(l.add(new StiLineSegmentGeom(r.x,r.y,r.right,r.y)),e==this.metadata.rectangles.length-1)l.add(new StiLineSegmentGeom(r.right,r.y,r.right,r.bottom));else{let e=new Point(r.right,r.y),t=new Point(n.x-(n.x-r.right)/o,r.y),i=new Point(r.right+(n.x-r.right)/o,n.y),s=new Point(n.x,n.y);l.add(new StiBezierSegmentGeom(e,t,i,s))}}for(let e=this.metadata.rectangles.length-1;0<=e;e--){let r=this.metadata.rectangles[e],n=0==e?Rectangle.empty:this.metadata.rectangles[e-1];if(l.add(new StiLineSegmentGeom(r.right,r.bottom,r.x,r.bottom)),0==e)l.add(new StiLineSegmentGeom(r.x,r.bottom,r.x,r.y));else{let e=new Point(r.x,r.bottom),t=new Point(n.right+(r.x-n.right)/o,r.bottom),i=new Point(r.x-(r.x-n.right)/o,n.bottom),s=new Point(n.right,n.bottom);l.add(new StiBezierSegmentGeom(e,t,i,s))}}l.add(new StiCloseFigureSegmentGeom);let e=this.series.chart;if(t.pushSmoothingModeToAntiAlias(),e.isAnimation){let e=new StiOpacityAnimation(TimeSpan.fromSeconds(1),this.beginTime);t.fillDrawAnimationPath(this.metadata.brush,null,l,this.clientRectangle,null,e,null)}else t.fillPath(this.metadata.brush,l,this.clientRectangle,null);t.popSmoothingMode()}constructor(e,t,i,s){super(e,i,HF0.getClientRectangle(t.rectangles)),this.metadata=t,this.beginTime=s}}__.d.StiRibbonSeriesGeom=HF0}{class gG0 extends __.d.StiSeriesGeom{contains(l,o){if(this.invisible)return!1;for(let n=0;n<this.startPoints.length-1;n++){let e=this.startPoints[n],t=this.startPoints[n+1],i=this.endPoints[n],s=this.endPoints[n+1];if(null==e||null==i||null==s||null==t)continue;let r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,t,s,i]);if(r)return!0}return!1}static getClientRectangle(t,i){if(null==t||0==t.length||null==i||0==i.length)return RectangleD.empty;let s=PointD.empty,r=PointD.empty;for(let e of t){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}for(let e of i){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}return new RectangleD(s.x,s.y,r.x-s.x,r.y-s.y)}draw(u){let S=this.series,d=S.chart.isAnimation,e,t,i={ref:e},s={ref:t},m=(__.d.StiNullableDrawing.getPointsList2(this.startPoints,this.endPoints,i,s),t=s.ref,0);for(let h of e=i.ref){let i=t[m],e=h.map(e=>e).reverse(),n=[],s=new StiLineSegmentGeom(h[0],i[0]),r=new StiLinesSegmentGeom(i),l=new StiLineSegmentGeom(i[i.length-1],h[h.length-1]),o=new StiLinesSegmentGeom(e),a=(n.push(s),n.push(r),n.push(l),n.push(o),null);if(d&&S.chart.isAnimationChangingValues){let e=new StiPointsAnimation(i,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(h,h,this.pointsIds,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_r`,u.animations.push(e),u.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),s.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),r.animation=e,l.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),s.animation.beginTimeCorrect=e.beginTimeCorrect,l.animation.beginTimeCorrect=e.beginTimeCorrect,o.animation=t):a=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}if(null!=S.brush&&(d?u.fillDrawAnimationPath(S.brush,null,n,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brush,n,StiPathGeom.getBoundsState,null)),S.allowApplyBrushNegative&&null!=S.brushNegative){let e=this.series.chart.area,t=e.axisCore.getDividerY(),i=e.axisCore.scrollRangeX*e.axisCore.scrollDpiX,s=e.axisCore.scrollRangeY*e.axisCore.scrollDpiY-t,r=new RectangleD(0,t,i,s);u.pushClip(r),d?u.fillDrawAnimationPath(S.brushNegative,null,n,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brushNegative,n,StiPathGeom.getBoundsState,null),u.popClip()}m++}}constructor(e,t,i){super(e,i,gG0.getClientRectangle(t.pointsStart,t.pointsEnd)),this.startPoints=t.pointsStart,this.endPoints=t.pointsEnd,this.pointsIds=t.pointsIds}}__.d.StiStackedAreaSeriesGeom=gG0}{class XG0 extends __.d.StiSeriesGeom{static getClientRectangle(t){if(null==t||0==t.length)return RectangleD.empty;let i=PointD.empty,s=PointD.empty;for(let e of t){if(null==e)continue;i==PointD.empty?(i=e,s=e):(i.x=Math.min(i.x,e.x),i.y=Math.min(i.y,e.y),s.x=Math.max(s.x,e.x),s.y=Math.max(s.y,e.y))}return new RectangleD(i.x,i.y,s.x-i.x,s.y-i.y)}draw(e){}constructor(e,t,i){super(e,i,XG0.getClientRectangle(t)),this.points=t}}__.d.StiStackedBaseLineSeriesGeom=XG0}__.d.StiStackedColumnSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(s){let r=this.clientRectangle.clone(),e=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(s.options.zoom)),i=this.series.chart,n=this.getCornerRadius(),l=this.series.as(__.d.IStiFontIconsSeries);if(null!=l&&null!=l.icon){let e=i.area.as(__.d.IStiRoundValuesArea),t=null==e?void 0:e.roundValues;return void __.a.StiFontIconsHelper.drawDirectionIcons(s,this.seriesBrush,r,new Size(r.width,r.width),l.icon,this.getToolTip(),this.getInteractionData(),!0,t)}null==n||n.isEmpty||s.pushSmoothingModeToAntiAlias();let t=this.getAnimation();if(null!=t){if(this.series.showShadow){let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,new TimeSpan(t.ticks+__.d.StiChartHelper.globalDurationElement.ticks));s.drawShadowRect(r,5,n,i)}s.drawAnimationCicledColumn(this.seriesBrush,e,r,n,this.value,this.getToolTip(),this,t,this.getInteractionData())}else s.fillCicledRectangle(this.seriesBrush,r,n,this.getInteractionData(),this.getToolTip()),s.drawCicledRectangle(e,r,n);null==n||n.isEmpty||s.popSmoothingMode()}getBorderPath(e,t){if(null!=t&&!t.isEmpty)return this.value<0?StiContextRoundedRectangleCreator.createWithoutTopSide(e,t,1):StiContextRoundedRectangleCreator.createWithoutBottomSide(e,t,1);let i=new List;return 0<this.value?(i.add(new StiLineSegmentGeom(e.x,e.bottom,e.x,e.y)),i.add(new StiLineSegmentGeom(e.x,e.y,e.right,e.y)),i.add(new StiLineSegmentGeom(e.right,e.y,e.right,e.bottom))):(i.add(new StiLineSegmentGeom(e.x,e.y,e.x,e.bottom)),i.add(new StiLineSegmentGeom(e.x,e.bottom,e.right,e.bottom)),i.add(new StiLineSegmentGeom(e.right,e.bottom,e.right,e.y))),i}getAnimation(){if(!this.series.chart.isAnimation)return null;let e=this.areaGeom.area,t=new TimeSpan(__.d.StiChartHelper.globalBeginTimeElement.ticks/e.core.valuesCount*this.index),i=new StiColumnAnimation(this.columnRectStart,this.clientRectangle,__.d.StiChartHelper.globalDurationElement,t),s=e.xAxis.core.getStartFromZero(),r=(s?e.xAxis.info.stripLines.getByIndex(this.index+1):e.xAxis.info.stripLines.getByIndex(this.index)).valueObject;return r=null==r?"":r[Stimulsoft.System.StiObject.stimulsoft]().toString(),i.id=`series_${this.series.chart.series.indexOf(this.series)}_`+r,StiColumnAnimation.isAnimationChangingValues(this.series,i.id)&&i.applyPreviousAnimation(this.series.chart.previousAnimations),i}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBorderColor=r,this.columnRectStart=o}},__.d.StiStackedColumnSeriesShadowElementGeom=class extends __.d.StiCellGeom{get invisible(){return!0}draw(e){let t=this.clientRectangle.clone();this.series.is(__.d.IStiFullStackedColumnSeries)?e.drawCachedShadow(t,StiShadowSides.Right,e.options.isPrinting):(this.isTopShadow&&e.drawCachedShadow(t,StiShadowSides.Top|StiShadowSides.Right,e.options.isPrinting),this.isBottomShadow&&e.drawCachedShadow(t,StiShadowSides.Right|StiShadowSides.Edge|StiShadowSides.Bottom|StiShadowSides.Left,e.options.isPrinting))}constructor(e,t,i,s){super(t),this.series=e,this.isTopShadow=i,this.isBottomShadow=s}},__.d.StiStackedLineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverLineDistance,new PointD(r,n));if(i)return!0}return!1}draw(c){let e=this.series;if(0==this.points.length)return;if(1<this.points.length){let a=this.getAnimation(),h=(c.pushSmoothingModeToAntiAlias(),e.lineStyle),u=e.lineWidth*c.options.zoom,S=new StiPenGeom(e.lineColor,u),d=(S.penStyle=h,e.lighting);if(e.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),u+.5*c.options.zoom);e.penStyle=h,c.pushTranslateTransform(u,u),__.d.StiNullableDrawing.drawLines(c,e,this.points,a),c.popTransform()}let m=this.series.lineColor;if(this.series.allowApplyColorNegative){let r=this.series.lineColorNegative,e=new StiPenGeom(r,u),t=(e.penStyle=h,this.series.chart.area),n=t.axisCore.getDividerY(),l=[],o=[];for(let s=0;s<this.points.length;s++){let t=this.points[s],i=s!=this.points.length-1?this.points[s+1]:null;if(t.y>n){if(l.push(t),null==i||i.y<n||i.y==n&&s+2<this.points.length&&this.points[s+2].y<=n){if(null!=i){let e=this.getPointCross(t,this.points[s+1],n);l.push(e),i.y==n&&s+2<this.points.length&&this.points[s+2].y<=n&&l.push(this.points[s+2]),o.push(e)}if(__.d.StiNullableDrawing.drawLines(c,e,l,a),u>=2*c.options.zoom&&d){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(r,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,l,a),c.popTransform()}l[Stimulsoft.System.StiObject.stimulsoft]().clear()}}else if(o.push(t),null==i||i.y>n){if(null!=i){let e=this.getPointCross(t,this.points[s+1],n);l.push(e),o.push(e),o.push(i)}if(__.d.StiNullableDrawing.drawLines(c,S,o,a),u>=2*c.options.zoom&&d){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(m,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,o,a),c.popTransform()}o[Stimulsoft.System.StiObject.stimulsoft]().clear()}}}else if(__.d.StiNullableDrawing.drawLines(c,S,this.points,a),u>=2*c.options.zoom&&e.lighting){let e=.5*c.options.zoom,t=(c.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(m,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawLines(c,t,this.points,a),c.popTransform()}c.popSmoothingMode()}}getPointCross(e,t,i){let s=e.y,r=e.x,n=t.y,l=t.x,o=Math.tan(Math.atan((l-r)/(s-n)))*(s-i)+r;return new PointD(o,i)}constructor(e,t,i){super(e,t,i)}};{class BI0 extends __.d.StiSeriesGeom{contains(l,o){if(this.invisible)return!1;for(let n=0;n<this.startPoints.length-1;n++){let e=this.startPoints[n],t=this.startPoints[n+1],i=this.endPoints[n],s=this.endPoints[n+1];if(null==e||null==i||null==s||null==t)continue;let r=__.d.StiPointHelper.isPointInPolygon(new PointD(l,o),[e,t,s,i]);if(r)return!0}return!1}static getClientRectangle(t,i){if(null==t||0==t.length||null==i||0==i.length)return RectangleD.empty;let s=PointD.empty,r=PointD.empty;for(let e of t){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}for(let e of i){if(null==e)continue;s==PointD.empty?(s=e,r=e):(s.x=Math.min(s.x,e.x),s.y=Math.min(s.y,e.y),r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y))}return new RectangleD(s.x,s.y,r.x-s.x,r.y-s.y)}draw(u){let S=this.series,d=this.series.chart.area,e,t,i={ref:e},s={ref:t},m=(__.d.StiNullableDrawing.getPointsList2(this.startPoints,this.endPoints,i,s),t=s.ref,this.series.chart),c=0;for(let h of e=i.ref){let i=t[c],e=h.map(e=>e).reverse(),r=[],s=new StiLineSegmentGeom(h[0],i[0]),n=new StiCurveSegmentGeom(i,S.tension),l=new StiLineSegmentGeom(i[i.length-1],h[h.length-1]),o=new StiCurveSegmentGeom(e,S.tension),a=(r.push(s),r.push(n),r.push(l),r.push(o),null);if(this.series.chart.isAnimation&&S.chart.isAnimationChangingValues){let e=new StiPointsAnimation(i,i,this.pointsIds,__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement),t=(e.id=`series_${this.series.chart.series.indexOf(this.series)}_a`,new StiPointsAnimation(h,h,this.pointsIds,e.duration,e.beginTime));t.id=`series_${this.series.chart.series.indexOf(this.series)}_a_r`,u.animations.push(e),u.animations.push(t),StiPointsAnimation.isAnimationChangingValues(this.series,this.pointsIds,e.id)?(e.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.applyPreviousAnimation(this.series.chart.previousAnimations,this.series.chart.sortAnimation),t.reverse(),s.animation=new StiPointsAnimation([t.pointsFrom[t.pointsFrom.length-1],e.pointsFrom[0]],null,null,e.duration,e.beginTime),n.animation=e,l.animation=new StiPointsAnimation([e.pointsFrom[e.pointsFrom.length-1],t.pointsFrom[0]],null,null,e.duration,e.beginTime),s.animation.beginTimeCorrect=e.beginTimeCorrect,l.animation.beginTimeCorrect=e.beginTimeCorrect,o.animation=t):a=new StiOpacityAnimation(__.d.StiChartHelper.globalDurationElement,__.d.StiChartHelper.globalBeginTimeElement)}if(null!=S.brush&&(m.isAnimation?u.fillDrawAnimationPath(S.brush,null,r,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brush,r,StiPathGeom.getBoundsState,null)),S.allowApplyBrushNegative&&null!=S.brushNegative){let e=d.axisCore.getDividerY(),t=d.axisCore.scrollRangeX*d.axisCore.scrollDpiX,i=d.axisCore.scrollRangeY*d.axisCore.scrollDpiY-e,s=new RectangleD(0,e,t,i);u.pushClip(s),m.isAnimation?u.fillDrawAnimationPath(S.brushNegative,null,r,StiPathGeom.getBoundsState,null,a,null):u.fillPath(S.brushNegative,r,StiPathGeom.getBoundsState,null),u.popClip()}c++}}constructor(e,t,i){super(e,i,BI0.getClientRectangle(t.pointsStart,t.pointsEnd)),this.startPoints=t.pointsStart,this.endPoints=t.pointsEnd,this.pointsIds=t.pointsIds}}__.d.StiStackedSplineAreaSeriesGeom=BI0}__.d.StiStackedSplineSeriesGeom=class extends __.d.StiBaseLineSeriesGeom{contains(r,n){if(this.invisible)return!1;for(let s=0;s<this.points.length-1;s++){let e=this.points[s],t=this.points[s+1];if(null==e||null==t)continue;let i=__.d.StiPointHelper.isLineContainsPoint(e,t,__.d.StiMouseOverHelper.mouseOverSplineDistance,new PointD(r,n));if(i)return!0}return!1}draw(l){if(0==this.points.length)return;let o=this.series,a=this.getAnimation(),h=(l.pushSmoothingModeToAntiAlias(),o.lineStyle),u=o.lineWidth*l.options.zoom,e=new StiPenGeom(o.lineColor,u);if(e.penStyle=h,null!=this.points&&1<this.points.length){if(o.showShadow){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),u+.5*l.options.zoom);e.penStyle=h,l.pushTranslateTransform(u,u),__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),l.popTransform()}if(__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),2<=u&&o.lighting){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(o.lineColor,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawCurve(l,t,this.points,o.tension,a),l.popTransform()}if(o.allowApplyColorNegative){let e=new StiPenGeom(o.lineColorNegative,u),t=(e.penStyle=h,this.series.chart.area),i=t.axisCore.getDividerY(),s=t.axisCore.scrollRangeX*t.axisCore.scrollDpiX,r=t.axisCore.scrollRangeY*t.axisCore.scrollDpiY-i,n=new RectangleD(0,i,s,r);if(l.pushClip(n),__.d.StiNullableDrawing.drawCurve(l,e,this.points,o.tension,a),2<=u&&o.lighting){let e=.5*l.options.zoom,t=(l.pushTranslateTransform(-e,-e),new StiPenGeom(StiColorUtils.light(o.lineColorNegative,70),u));t.penStyle=h,__.d.StiNullableDrawing.drawCurve(l,t,this.points,o.tension,a),l.popTransform()}l.popClip()}}l.popSmoothingMode()}constructor(e,t,i){super(e,t,i)}},__.d.StiSunburstEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=this.clientRectangle,i=t.width/6;this.drawSunburst(e,this.clientRectangle,.85*i),this.drawSunburst(e,new Rectangle(this.clientRectangle.x+i,this.clientRectangle.y+i,this.clientRectangle.width-2*i,this.clientRectangle.height-2*i),.85*i)}drawSunburst(e,t,i){let s=new StiPenGeom(Color.lightGray),r=new List;r.push(new StiArcSegmentGeom(t,0,360)),r.push(new StiLineSegmentGeom(t.right,t.y+t.height/2,t.x+(t.width-i),t.y+t.height/2)),r.push(new StiArcSegmentGeom(new Rectangle(t.x+i,t.y+i,t.width-2*i,t.height-2*i),0,360)),e.pushSmoothingModeToAntiAlias(),e.fillPath(new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),r,t,null),e.drawPath(s,r,t),e.drawLine(s,t.x+t.width/2,t.y+(t.height-i),t.x+t.width/2,t.bottom),e.popSmoothingMode()}},__.d.StiSunburstSeriesElementGeom=class extends __.d.StiSeriesElementGeom{contains(e,t){if(this.invisible)return!1;let i=new PointD(this.clientRectangle.x+this.clientRectangle.width/2,this.clientRectangle.y+this.clientRectangle.height/2),s=e-i.x,r=t-i.y,n=Math.sqrt(s*s+r*r);if(n<this.radiusTo||n>this.radiusFrom)return!1;let l=180*Math.atan2(r,s)/Math.PI;return l<0&&(l+=360),l>=this.startAngle&&l<=this.endAngle}draw(e){let t=this.clientRectangle.clone(),i=new StiPenGeom(this.borderColor,this.getSeriesBorderThickness(e.options.zoom)),s=(i.alignment=StiPenAlignment.Inset,this.getAnimation());null!=s?e.drawAnimationPathElement(this.brush,i,this.path,t,this.getToolTip(),this,s,this.getInteractionData()):(e.pushSmoothingModeToAntiAlias(),null!=this.path&&e.fillPath(this.brush,this.path,t,this.getInteractionData()),e.drawPath(i,this.path,StiPathGeom.getBoundsState),e.popSmoothingMode())}getAnimation(){if(!this.series.chart.isAnimation)return null;let l=__.d.StiChartHelper.globalDurationElement,o=null,a=null;if(this.series.chart.isAnimationChangingValues){let i=this.startAngle,s=this.endAngle,r=this.clientRectangle.clone(),n=this.clientRectangle.clone();if(4==this.path.length&&this.path[0].is(StiArcSegmentGeom)&&this.path[2].is(StiArcSegmentGeom)){let e=this.path[0],t=this.path[2];i=e.startAngle,s=e.startAngle+e.sweepAngle,r=e.rect,n=t.rect}(a=new StiPieSegmentAnimation(this.clientRectangle,r,this.clientRectangleDt,n,this.startAngle,this.endAngle,i,s,l,TimeSpan.zero)).id=`series_${this.series.chart.series.indexOf(this.series)}_${this.index}_${this.index2}_`+this.index3,StiPieSegmentAnimation.isAnimationChangingValues(this.series,a.id)&&(a.applyPreviousAnimation(this.series.chart.previousAnimations),o=a)}if(null==o){let e=this.beginTime,t=(0<this.series.chart.previousAnimations.length&&(e=TimeSpan.fromMilliseconds(300)),new StiOpacityAnimation(l,e));t.anotherAnimation=a,t.id=`series_${this.series.chart.series.indexOf(this.series)}_${this.index}_${this.index2}_`+this.index3,o=t}return o}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g){super(e,t,i,n,l,u),this.index2=0,this.index3=0,this.index2=s,this.index3=r,this.clientRectangleDt=o,this.path=a,this.borderColor=h,this.brush=u,this.startAngle=S,this.endAngle=d,this.radiusFrom=m,this.radiusTo=c,this.beginTime=g}},__.d.StiTreemapEmptySeriesElementGeom=class extends __.d.StiCellGeom{draw(e){let t=Rectangle.round(this.clientRectangle),i=new StiPenGeom(Color.lightGray);e.pushSmoothingModeToAntiAlias(),e.fillRectangle(new StiSolidBrush(Color.fromArgb3(50,Color.lightGray)),t,null),e.drawRectangle2(i,t.x,t.y,t.width/3,t.height),e.drawRectangle2(i,t.x+t.width/3,t.y,2*t.width/3,t.height),e.popSmoothingMode()}},__.d.StiTreemapSeriesElementGeom=class extends __.d.StiSeriesElementGeom{draw(t){let e=this.series.chart,i=this.clientRectangle.clone(),s=this.getCornerRadius(),r=this.series.as(__.d.IStiFontIconsSeries);if(null!=r&&null!=r.icon){let e=30;return t.pushClip(i),__.a.StiFontIconsHelper.drawFillIcons(t,this.seriesBrush,i,new Size(e,e),r.icon,this.getToolTip()),void t.popClip()}let n=new StiPenGeom(this.seriesBorderColor,this.getSeriesBorderThickness(t.options.zoom));null==s||s.isEmpty||t.pushSmoothingModeToAntiAlias(),e.isAnimation?t.drawAnimationCicledRectangle(this.seriesBrush,n,i,s,this,this.animation,this.getInteractionData(),this.getToolTip()):(super.draw(t),this.series.chart.style.core.fillCicledColumn(t,i,s,this.seriesBrush,this.getInteractionData(),this.getToolTip()),t.drawCicledRectangle(n,i,s)),null==s||s.isEmpty||t.popSmoothingMode()}constructor(e,t,i,s,r,n,l,o){super(e,t,i,n,l,s),this.seriesBrush=s,this.seriesBorderColor=r,this.animation=o}},__.d.StiSeriesLabelsGeom=class extends __.d.StiCellGeom{getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getHyperlink(e){return null!=this.series.hyperlinks&&e<this.series.hyperlinks.length?this.series.hyperlinks[e]:null}getToolTip(e){return null!=this.series.toolTips&&e<this.series.toolTips.length?this.series.hyperlinks[e]:null}drawMarker(r,n,l,o){if(this.seriesLabels.markerVisible){let e=this.series.chart,t=Rectangle.empty;switch(this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?t.x=StiMath.trunc(n.right+2*r.options.zoom):t.x=StiMath.trunc(n.left-(2+this.seriesLabels.markerSize.width)*r.options.zoom),this.seriesLabels.markerAlignment){case __.d.StiMarkerAlignment.Right:t.x=StiMath.trunc(n.right+2*r.options.zoom);break;case __.d.StiMarkerAlignment.Left:t.x=StiMath.trunc(n.left-(2+this.seriesLabels.markerSize.width)*r.options.zoom);break;case __.d.StiMarkerAlignment.Center:t.x=StiMath.trunc(n.left+ +n.width/2-(2+this.seriesLabels.markerSize.width)/2*r.options.zoom);break}t.y=StiMath.trunc(n.y+(n.height-this.seriesLabels.markerSize.height*r.options.zoom)/2),t.width=StiMath.trunc(this.seriesLabels.markerSize.width*r.options.zoom),t.height=StiMath.trunc(this.seriesLabels.markerSize.height*r.options.zoom);let i=l instanceof Color?l:Color.black,s=new StiPenGeom(i,1);if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement);r.drawAnimationRectangle(o,s,t,null,e,null,this.getToolTip(this.getValueIndex()))}else r.fillRectangle2(o,t.x,t.y,t.width,t.height,null),r.drawRectangle2(s,t.x,t.y,t.width,t.height)}}draw(e){}constructor(e,t,i,s,r){super(r),this.beginTime=new TimeSpan(0),this.duration=new TimeSpan(0),this.seriesLabels=e,this.series=t,this.index=i,this.value=s}},__.d.StiCenterAxisLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.seriesLabels.core.getStringFormatGeom(e),s=(i.alignment=StringAlignment.Center,i.lineAlignment=StringAlignment.Center,this.series.chart),r=(s.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(this.duration,this.beginTime)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),n=t.y+t.height/2,l=(e.pushTranslateTransform(r,n),e.pushRotateTransform(this.seriesLabels.angle),t.clone());l.x=-l.width/2-1,l.y=-l.height/2-1,l.width+=2,l.height+=2,this.drawLabelArea(e,l),this.drawLabelText(e,l),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesLabelsBrush=h,this.seriesBorderColor=u,this.font=S,this.animation=d}},__.d.StiOutsideAxisLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLines(e,t),e.pushTranslateTransform(t.x+t.width/2,t.y+t.height/2),e.pushRotateTransform(this.seriesLabels.angle),t.clone());s.x=-s.width/2,s.y=-s.height/2,this.drawLabelArea(e,s),this.drawLabelText(e,s),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLines(e,t){let i=this.series.chart,s=new StiPenGeom(this.labelBorderColor);i.isAnimation?e.drawAnimationLines(s,[this.endPoint,this.startPoint],this.animation):e.drawLine(s,this.endPoint.x,this.endPoint.y,this.startPoint.x,this.startPoint.y)}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesBorderColor=h,this.font=u,this.startPoint=S,this.endPoint=d,this.animation=m}},__.d.StiCenterFunnelLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,this.labelRect,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),r=t.y+t.height/2,n=(e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t);n.x=-n.width/2,n.y=-n.height/2,this.drawLabelArea(e,n),this.drawLabelText(e,n),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.borderColor=a,this.seriesBorderColor=h,this.seriesBrush=l,this.labelRect=u,this.animation=S}},__.d.StiOutsideFunnelLabelsGeom=class extends __.d.StiCenterFunnelLabelsGeom{draw(t){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let e=this.series.chart,i=new StiPenGeom(this.borderColor);if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement);t.drawAnimationLines(i,[this.startPointLine,this.endPointLine],e)}else t.drawLine(i,this.startPointLine.x,this.startPointLine.y,this.endPointLine.x,this.endPointLine.y);super.draw(t)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r,n,l,o,a,h,u,null),this.startPointLine=S,this.endPointLine=d}};{let i=Stimulsoft.Base.Drawing.PointD;__.d.StiOutsidePictorialStackedLabelGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.labelRect.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLineLabel(e),t.x+t.width/2),r=t.y+t.height/2,n=(e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t.clone());n.x=-n.width/2-1,n.y=-n.height/2-1,n.width+=2,n.height+=2,this.drawLabelArea(e,n),this.drawLabelText(e,n),e.popTransform(),e.popTransform()}drawLineLabel(e){let t=this.series.chart;t.isAnimation?e.drawAnimationLines(new StiPenGeom(this.labelLineColor,1),[new i(this.lineRect.x,this.lineRect.y+this.lineRect.height/2),new i(this.lineRect.right,this.lineRect.y+this.lineRect.height/2)],this.animation):e.drawLine(new StiPenGeom(this.labelLineColor,1),this.lineRect.x,this.lineRect.y+this.lineRect.height/2,this.lineRect.right,this.lineRect.y+this.lineRect.height/2)}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabels.brush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabels.brush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.labelLineColor=a,this.borderColor=h,this.seriesBorderColor=u,this.seriesBrush=l,this.animation=m,this.lineRect=d,this.labelRect=S}}}__.d.StiCenterPieLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,this.labelRect,this.seriesBorderColor,this.seriesBrush),StiMath.round2(this.labelRect.x+this.labelRect.width/2,0)),r=StiMath.round2(this.labelRect.y+this.labelRect.height/2,0);e.pushTranslateTransform(s,r),e.pushRotateTransform(this.angleToUse),this.drawLabelArea(e,t),this.drawLabelText(e,t),e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c){super(e,t,i,s,r),this.text=n,this.labelBrush=o,this.borderColor=h,this.seriesBorderColor=u,this.seriesLabelsBrush=a,this.seriesBrush=l,this.rotationMode=S,this.labelRect=d,this.angleToUse=m,this.animation=c}},__.d.StiOutsidePieLabelsGeom=class extends __.d.StiCenterPieLabelsGeom{draw(i){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let e=this.seriesLabels;if(super.draw(i),e.drawBorder){let t=new StiPenGeom(this.lineColor),e=this.series.chart;if(e.isAnimation){let e=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalBeginTimeElement);i.drawAnimationLines(t,[this.labelPoint,this.startPoint],e)}else i.drawLine(t,this.labelPoint.x,this.labelPoint.y,this.startPoint.x,this.startPoint.y)}}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p){super(e,t,i,s,r,n,l,o,a,h,u,S,d,m,null),this.lineColor=c,this.labelPoint=g,this.startPoint=p}},__.d.StiTwoColumnsPieLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart;i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawLines(e),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawLabelArea(e,t),this.drawLabelText(e,t)}drawLines(r){if(this.seriesLabels.drawBorder){let e=null,t=new StiPenGeom(this.lineColor,1),i=null!=(e=this.centerPie.y>this.startPoint.y&&this.endPoint.y>this.startPoint.y||this.centerPie.y<this.startPoint.y&&this.endPoint.y<this.startPoint.y?this.centerPie.x>this.endPoint.x?new PointD(this.endPoint.x+13,this.startPoint.y):new PointD(this.endPoint.x-13,this.startPoint.y):e)?[this.endPoint,e,this.startPoint,this.arcPoint]:[this.endPoint,this.startPoint,this.arcPoint],s=this.series.chart;s.isAnimation?r.drawAnimationLines(t,i,this.animation):r.drawLines(t,i)}}drawMarker(n,l,o,a){if(this.seriesLabels.markerVisible){let e=Rectangle.empty,t=StiMath.trunc(l.right+2*n.options.zoom),i=StiMath.trunc(l.left-(2+this.seriesLabels.markerSize.width)*n.options.zoom),s=(Stimulsoft.StiOptions.Engine.allowFixPieChartMarkerAlignment?this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?e.x=this.clientRectangle.x<this.centerPie.x?t:i:e.x=this.clientRectangle.x>this.centerPie.x?t:i:e.x=this.seriesLabels.markerAlignment==__.d.StiMarkerAlignment.Right?t:i,e.y=StiMath.trunc(l.y+(l.height-this.seriesLabels.markerSize.height*n.options.zoom)/2),e.width=StiMath.trunc(this.seriesLabels.markerSize.width*n.options.zoom),e.height=StiMath.trunc(this.seriesLabels.markerSize.height*n.options.zoom),o instanceof Color?o:Color.black),r=new StiPenGeom(s,1);n.fillRectangle2(a,e.x,e.y,e.width,e.height,null),n.drawRectangle2(r,e.x,e.y,e.width,e.height)}}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.borderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=this.series.chart,s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),r=this.seriesLabels.core.getStringFormatGeom(e);r.alignment=StringAlignment.Center,r.lineAlignment=StringAlignment.Center,i.isAnimation?e.drawAnimationText(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,s,this.labelBrush,t,r,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g,p,_){super(e,t,i,s,r),this.text=n,this.seriesLabelsBrush=a,this.labelBrush=o,this.lineColor=d,this.borderColor=h,this.seriesBorderColor=u,this.seriesBrush=l,this.labelRect=S,this.startPoint=m,this.endPoint=c,this.arcPoint=g,this.centerPie=p,this.animation=_}},__.d.StiCenterTreemapLabelsGeom=class extends __.d.StiSeriesLabelsGeom{draw(e){if(super.draw(e),this.clientRectangle.width<2&&this.clientRectangle.height<2)return;let t=this.clientRectangle.clone(),i=this.series.chart,s=(i.isAnimation&&null==this.animation&&(this.animation=new StiOpacityAnimation(__.d.StiChartHelper.globalBeginTimeElement,__.d.StiChartHelper.globalDurationElement)),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),this.drawMarker(e,t,this.seriesBorderColor,this.seriesBrush),t.x+t.width/2),r=t.y+t.height/2,n=(this.drawLabelArea(e,t),this.drawLabelText(e,t),e.pushTranslateTransform(s,r),e.pushRotateTransform(this.seriesLabels.angle),t.clone());n.x=-n.width/2,n.y=-n.height/2,e.popTransform(),e.popTransform()}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.series.chart,s=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;i.isAnimation?e.drawAnimationRectangle(this.seriesLabelsBrush,s,t,null,this.animation,null,null):(e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle(s,t))}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=this.series.chart,r=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size),n=this.seriesLabels.core.getStringFormatGeom(e);n.alignment=StringAlignment.Center,n.lineAlignment=StringAlignment.Center,s.isAnimation?e.drawAnimationText(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width,this.animation):e.drawRotatedString6(this.text,r,i,t,n,StiRotationMode.CenterCenter,0,this.seriesLabels.antialiasing,t.width)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r),this.text=n,this.labelColor=l,this.labelBorderColor=o,this.seriesBrush=a,this.seriesLabelsBrush=h,this.seriesBorderColor=u,this.font=S,this.animation=d}},__.d.StiStripsXGeom=class extends __.d.StiCellGeom{draw(s){let r=this.clientRectangle.clone();if(s.fillRectangle2(this.strip.stripBrush,r.x,r.y,r.width,r.height,null),this.strip.titleVisible){let e=new StiSolidBrush(this.strip.titleColor),t=StiFontGeom.changeFontSize(this.strip.font,this.strip.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString6(this.strip.text,t,e,r,i,StiRotationMode.CenterCenter,90,this.strip.antialiasing,0)}}constructor(e,t){super(t),this.strip=e}},__.d.StiStripsYGeom=class extends __.d.StiCellGeom{draw(s){let r=this.clientRectangle.clone();if(s.fillRectangle2(this.strip.stripBrush,r.x,r.y,r.width,r.height,null),this.strip.titleVisible){let e=new StiSolidBrush(this.strip.titleColor),t=StiFontGeom.changeFontSize(this.strip.font,this.strip.font.size*s.options.zoom),i=s.getGenericStringFormat();s.drawRotatedString5(this.strip.text,t,e,r,i,StiRotationMode.CenterCenter,0,this.strip.antialiasing)}}constructor(e,t){super(t),this.strip=e}},__.d.StiChartTableGeom=class extends __.d.StiCellGeom{constructor(e,t,i,s,r){super(e),this.widthCellLegendTableChart=i,this.heightCellHeader=s,this.table=t,this.chartTable=r,this.pen=new StiPenGeom(r.gridLineColor),this.labelBrush=new StiSolidBrush(r.textColor),this.labelHeaderBrush=new StiSolidBrush(r.header.textColor)}draw(e){this.font=StiFontGeom.changeFontSize(this.chartTable.dataCells.font,this.chartTable.dataCells.font.size*e.options.zoom),this.sf=e.getGenericStringFormat(),this.sf.trimming=StringTrimming.None,this.sf.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,this.sf.alignment=StringAlignment.Center,this.sf.lineAlignment=StringAlignment.Center,this.fontHeader=StiFontGeom.changeFontSize(this.chartTable.header.font,this.chartTable.header.font.size*e.options.zoom),this.sfHeader=e.getGenericStringFormat(),this.sf.trimming=StringTrimming.None,this.chartTable.header.wordWrap||(this.sf.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),this.sfHeader.alignment=StringAlignment.Center,this.sfHeader.lineAlignment=StringAlignment.Center;let t=this.clientRectangle.clone(),i=this.chartTable.chart.area,s=i.reverseHor?t.x:t.x+this.widthCellLegendTableChart,r=t.y,n=t.width-this.widthCellLegendTableChart,l=this.heightCellHeader,o=new RectangleD(s,r,n,l),a=[];for(let e=1;e<this.table[0].length;e++)a.push(this.table[0][e]);this.drawHeaderArgument(e,o,a,i.xAxis.startFromZero);let h=i.reverseHor?t.right-this.widthCellLegendTableChart:t.x,u=t.y+this.heightCellHeader,S=this.widthCellLegendTableChart,d=t.height-this.heightCellHeader,m=new RectangleD(h,u,S,d),c=[];for(let e=1;e<this.table.length;e++)c.push(this.table[e][0]);this.drawTitleLegend(e,m,c);let g=i.reverseHor?t.x:t.x+this.widthCellLegendTableChart,p=t.y+this.heightCellHeader,_=t.width-this.widthCellLegendTableChart,f=t.height-this.heightCellHeader,C=new RectangleD(g,p,_,f);this.drawRootTable(e,C,i.xAxis.startFromZero)}drawHeaderArgument(r,n,l,o){r.fillRectangle(this.chartTable.header.brush,new RectangleD(n.x,n.y,n.width,n.height),null),this.chartTable.gridOutline&&r.drawRectangle(this.pen,n);let e=o?l.length+1:l.length-1,a=n.width/e;for(let s=0;s<l.length;s++){let e=0,t=(0!=s&&s!=l.length-1||(e=o?a/2:-a/2),o?a/2:-a/2),i=(0==s&&(t=0),new RectangleD(n.x+s*a+t,n.y,a+e,n.height));if(this.chartTable.header.wordWrap?r.drawRotatedString6(l[s],this.fontHeader,this.labelHeaderBrush,i,this.sfHeader,StiRotationMode.CenterCenter,0,!0,StiMath.trunc(a+e)):r.drawRotatedString5(l[s],this.fontHeader,this.labelHeaderBrush,i,this.sfHeader,StiRotationMode.CenterCenter,0,!0),this.chartTable.gridLinesVert&&s!=l.length-1){let e=o?n.x+(s+1)*a+a/2:n.x+(s+1)*a-a/2;r.drawLine(this.pen,e,n.y,e,n.bottom)}}}drawTitleLegend(l,t,o){this.chartTable.gridOutline&&l.drawRectangle2(this.pen,t.x,t.y,t.width,t.height);let a=t.height/o.length;for(let n=0;n<o.length;n++){let i=t.x,s=t.y,r=t.width;if(this.chartTable.gridLinesHor&&0!=n&&l.drawLine(this.pen,i,s+a*n,i+r,s+a*n),this.chartTable.markerVisible){let e=new RectangleD(i+2,s+2+a*n,a-4,a-4),t=__.d.StiMarkerLegendFactory.createMarker(this.chartTable.chart.series.getByIndex(n));t.draw(l,this.chartTable.chart.series.getByIndex(n),e,n,o.length,-1),i+=a,r-=a}let e=new RectangleD(i,s+a*n,r,a);l.drawString(o[n],this.font,this.labelBrush,e,this.sf)}}drawRootTable(l,o,a){this.chartTable.gridOutline&&l.drawRectangle2(this.pen,o.x,o.y,o.width,o.height);let e=this.table.length,h=this.table[0].length,t=a?this.table[0].length:this.table[0].length-2,u=o.width/t,S=o.height/(e-1),d=this.font;if(this.chartTable.dataCells.shrinkFontToFit)for(let n=1;n<e;n++){this.chartTable.gridLinesHor&&n!=e-1&&l.drawLine(this.pen,o.x,o.y+n*S,o.right,o.y+n*S);for(let r=1;r<h;r++){let e=0,t=(1!=r&&r!=h-1||(e=a?u/2:-u/2),a?u/2:-u/2),i=(1==r&&(t=0),new RectangleD(o.x+(r-1)*u+t,o.y+(n-1)*S,u+e,S)),s=this.checkFontSize(l,this.table[n][r],d,i);while(!s){if(d.fontSize-=.5,d.fontSize<=this.chartTable.dataCells.shrinkFontToFitMinimumSize){d.fontSize=this.chartTable.dataCells.shrinkFontToFitMinimumSize;break}s=this.checkFontSize(l,this.table[n][r],d,i)}}}for(let r=1;r<e;r++){this.chartTable.gridLinesHor&&r!=e-1&&l.drawLine(this.pen,o.x,o.y+r*S,o.right,o.y+r*S);for(let s=1;s<h;s++){let e=0,t=(1!=s&&s!=h-1||(e=a?u/2:-u/2),a?u/2:-u/2),i=(1==s&&(t=0),new RectangleD(o.x+(s-1)*u+t,o.y+(r-1)*S,u+e,S));if(l.drawRotatedString5(this.table[r][s],d,this.labelBrush,i,this.sf,StiRotationMode.CenterCenter,0,!0),this.chartTable.gridLinesVert&&s<h-1){let e=a?o.x+s*u+u/2:o.x+s*u-u/2;l.drawLine(this.pen,e,o.y,e,o.bottom)}}}}checkFontSize(e,t,i,s){let r=e.measureRotatedString(t,i,s,this.sf,0);return r.width<s.width}},__.d.StiTrendCurveGeom=class extends __.d.StiCellGeom{draw(o){let a=StiArray.create(PointD,this.points.length,!0);for(let e=0;e<this.points.length;e++)a[e]=this.points[e];let e=this.trendLine.lineColor,t=this.trendLine.lineWidth,i=this.trendLine.lineStyle,s=this.trendLine.showShadow,r=t*o.options.zoom;if(o.pushSmoothingModeToAntiAlias(),s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),r+.5*o.options.zoom);e.penStyle=i,o.pushTranslateTransform(r,r),__.d.StiNullableDrawing.drawCurve(o,e,this.points,0),o.popTransform()}let n=new StiPenGeom(e,t*o.options.zoom);if(n.penStyle=i,o.drawCurve(n,a,0),this.trendLine.titleVisible&&0<a.length){let e=new StiSolidBrush(this.trendLine.lineColor),t=StiFontGeom.changeFontSize(this.trendLine.font,this.trendLine.font.size*o.options.zoom),i=o.getGenericStringFormat(),s=Point.empty,r=a[0],n=a[a.length-1],l=StiRotationMode.CenterCenter;switch(this.trendLine.position){case __.d.StiTrendLine_StiTextPosition.LeftBottom:s=r,l=StiRotationMode.LeftTop;break;case __.d.StiTrendLine_StiTextPosition.LeftTop:s=r,l=StiRotationMode.LeftBottom;break;case __.d.StiTrendLine_StiTextPosition.RightBottom:s=n,l=StiRotationMode.RightTop;break;case __.d.StiTrendLine_StiTextPosition.RightTop:s=n,l=StiRotationMode.RightBottom;break}o.drawRotatedString9(this.trendLine.text,t,e,s,i,l,0,!0,0)}o.popSmoothingMode()}constructor(e,t){super(__.d.StiBaseLineSeriesGeom.getClientRectangle(e,t.lineWidth)),this.points=e,this.trendLine=t}};{class iS0 extends __.d.StiCellGeom{draw(n){let e=this.trendLine.lineColor,t=this.trendLine.lineWidth,i=this.trendLine.lineStyle,s=this.trendLine.showShadow,r=t*n.options.zoom;if(n.pushSmoothingModeToAntiAlias(),s){let e=new StiPenGeom(Color.fromArgb(50,0,0,0),r+.5*n.options.zoom);e.penStyle=i,n.pushTranslateTransform(r,r),__.d.StiNullableDrawing.drawLines(n,e,iS0.getArray(this.pointStart,this.pointEnd)),n.popTransform()}let l=new StiPenGeom(e,t*n.options.zoom);if(l.penStyle=i,n.drawLine(l,this.pointStart.x,this.pointStart.y,this.pointEnd.x,this.pointEnd.y),this.trendLine.titleVisible){let e=new StiSolidBrush(this.trendLine.lineColor),t=StiFontGeom.changeFontSize(this.trendLine.font,this.trendLine.font.size*n.options.zoom),i=n.getGenericStringFormat(),s=PointD.empty,r=StiRotationMode.CenterCenter;switch(this.trendLine.position){case __.d.StiTrendLine_StiTextPosition.LeftBottom:s=this.pointStart,r=StiRotationMode.LeftTop;break;case __.d.StiTrendLine_StiTextPosition.LeftTop:s=this.pointStart,r=StiRotationMode.LeftBottom;break;case __.d.StiTrendLine_StiTextPosition.RightBottom:s=this.pointEnd,r=StiRotationMode.RightTop;break;case __.d.StiTrendLine_StiTextPosition.RightTop:s=this.pointEnd,r=StiRotationMode.RightBottom;break}n.drawRotatedString9(this.trendLine.text,t,e,s,i,r,0,!0,0)}n.popSmoothingMode()}static getArray(e,t){let i=[e,t];return i}constructor(e,t,i){super(__.d.StiBaseLineSeriesGeom.getClientRectangle(iS0.getArray(e,t),i.lineWidth)),this.pointStart=e,this.pointEnd=t,this.trendLine=i}}__.d.StiTrendLineGeom=iS0}__.d.Sti3dOptions=class{constructor(){this.opacity_=1}meta(){return[new StiNumberMeta("Opacity")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}get opacity(){return this.opacity_}set opacity(e){0<=e&&e<=1&&(this.opacity_=e)}},__.d.StiPie3dOptions=class extends __.d.Sti3dOptions{constructor(){super(...arguments),this.lighting=__.d.StiPie3dLightingStyle.Gradient,this.height_=25,this.distance_=4}meta(){return[...super.meta(),new StiNumberMeta("Height","",25),new StiNumberMeta("Distance","",4),new StiEnumMeta("Lighting","",__.d.StiPie3dLightingStyle)]}get height(){return this.height_}set height(e){0<e&&(this.height_=e)}get distance(){return this.distance_}set distance(e){0<e&&(this.distance_=e)}},__.d.StiBoxAndWhiskerArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiBoxAndWhiskerArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiBoxAndWhiskerSeries}getSeriesTypes(){return[__.d.StiBoxAndWhiskerSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels,__.d.StiLeftAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.core=new __.d.StiBoxAndWhiskerAreaCoreXF(this)}},__.d.StiScatterArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiScatterArea,__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiScatterLineSeries}getSeriesTypes(){return[__.d.StiScatterSeries,__.d.StiScatterLineSeries,__.d.StiScatterSplineSeries]}constructor(){super(),this.core=new __.d.StiScatterAreaCoreXF(this)}},__.d.StiBubbleArea=class extends __.d.StiScatterArea{implements(){let e=super.implements().concat([__.d.IStiScatterArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable,__.d.IStiBubbleArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiBubbleSeries}getSeriesTypes(){return[__.d.StiBubbleSeries]}constructor(){super(),this.core=new __.d.StiBubbleAreaCoreXF(this),this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert}},__.d.StiCandlestickArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiCandlestickArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiCandlestickSeries}getSeriesTypes(){return[__.d.StiCandlestickSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}constructor(){super(),this.core=new __.d.StiCandlestickAreaCoreXF(this)}},__.d.StiClusteredBarArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiClusteredBarSeries}getSeriesTypes(){return[__.d.StiClusteredBarSeries]}constructor(){super(),this.core=new __.d.StiClusteredBarAreaCoreXF(this)}},__.d.StiAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiAreaSeries}constructor(){super(),this.core=new __.d.StiAreaAreaCoreXF(this)}},__.d.StiHistogramArea=class extends __.d.StiAxisArea{getDefaultSeriesType(){return __.d.StiHistogramSeries}getSeriesTypes(){return[__.d.StiHistogramSeries]}constructor(){super(),this.core=new __.d.StiHistogramAreaCoreXF(this)}},__.d.StiLineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiLineArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiLineSeries}constructor(){super(),this.core=new __.d.StiLineAreaCoreXF(this)}},__.d.StiParetoArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiParetoArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiParetoSeries}getSeriesTypes(){return[__.d.StiParetoSeries]}constructor(){super(),this.yRightAxis.visible=!0,this.yRightAxis.range.auto=!1,this.yRightAxis.range.maximum=100,this.yRightAxis.labels.textAfter="%",this.core=new __.d.StiParetoAreaCoreXF(this)}},__.d.StiSplineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSplineArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineSeries}constructor(){super(),this.core=new __.d.StiSplineAreaCoreXF(this)}},__.d.StiSplineAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSplineAreaArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineAreaSeries}constructor(){super(),this.core=new __.d.StiSplineAreaAreaCoreXF(this)}},__.d.StiSteppedAreaArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiSteppedAreaArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedAreaSeries}constructor(){super(),this.core=new __.d.StiSteppedAreaAreaCoreXF(this)}},__.d.StiSteppedLineArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,__.d.IStiSteppedLineArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedLineSeries}constructor(){super(),this.core=new __.d.StiSteppedLineAreaCoreXF(this)}},__.d.StiWaterfallArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiWaterfallArea,__.d.IStiRoundValuesArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues")]}getDefaultSeriesType(){return __.d.StiWaterfallSeries}getSeriesTypes(){return[__.d.StiWaterfallSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiInsideEndAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideEndAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiValueAxisLabels]}constructor(){super(),this.roundValues=!1,this.core=new __.d.StiWaterfallAreaCoreXF(this)}},__.d.StiPieArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideEndPieLabels,__.d.StiCenterPieLabels,__.d.StiOutsidePieLabels,__.d.StiTwoColumnsPieLabels]}getDefaultSeriesType(){return __.d.StiPieSeries}getSeriesTypes(){return[__.d.StiPieSeries]}constructor(){super(),this.core=new __.d.StiPieAreaCoreXF(this),this.colorEach=!0}},__.d.StiDoughnutArea=class extends __.d.StiPieArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieArea,__.d.IStiArea,ICloneable,__.d.IStiDoughnutArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach"),new StiObjectMeta("Title"),new StiObjectMeta("Indicator")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPieLabels,__.d.StiOutsidePieLabels]}getDefaultSeriesType(){return __.d.StiDoughnutSeries}getSeriesTypes(){return[__.d.StiDoughnutSeries]}clone(){let e=super.clone();return e.indicator=this.indicator.clone(),e}constructor(){super(),this.core=new __.d.StiDoughnutAreaCoreXF(this),this.indicator=new __.d.StiDoughnutAreaIndicator,this.colorEach=!0}},__.d.StiDoughnutAreaIndicator=class{implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiObjectMeta("Value"),new StiObjectMeta("Title"),new StiBoolMeta("Visible")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.value=this.value.clone(),e.title=this.title.clone(),e}constructor(){this.visible=!1,this.value=new __.d.StiDoughnutAreaIndicatorValue,this.title=new __.d.StiDoughnutAreaIndicatorTitle}},__.d.StiDoughnutAreaIndicatorTitle=class{constructor(){this.text="",this.color=Color.transparent}implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Text"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}getColor(){if(this.color!=Color.transparent)return this.color;return this.styleColor}},__.d.StiDoughnutAreaIndicatorValue=class{constructor(){this.value="",this.color=Color.transparent}implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringMeta("Value"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}getColor(){if(this.color!=Color.transparent)return this.color;return this.styleColor}},__.d.StiStackedBarArea=class extends __.d.StiClusteredBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiStackedBarArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedBarSeries}getSeriesTypes(){return[__.d.StiStackedBarSeries]}constructor(){super(),this.core=new __.d.StiStackedBarAreaCoreXF(this)}},__.d.StiFullStackedBarArea=class extends __.d.StiStackedBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedBarArea,__.d.IStiStackedBarArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedBarSeries}getSeriesTypes(){return[__.d.StiFullStackedBarSeries]}constructor(){super(),this.core=new __.d.StiFullStackedBarAreaCoreXF(this)}},__.d.StiStackedColumnArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnArea,__.d.IStiAxisArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedColumnSeries}getSeriesTypes(){return[__.d.StiStackedColumnSeries,__.d.StiStackedLineSeries,__.d.StiStackedSplineSeries,__.d.StiStackedAreaSeries,__.d.StiStackedSplineAreaSeries]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF(this)}},__.d.StiFullStackedColumnArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedColumnSeries}getSeriesTypes(){return[__.d.StiFullStackedColumnSeries,__.d.StiFullStackedLineSeries,__.d.StiFullStackedAreaSeries,__.d.StiFullStackedSplineSeries,__.d.StiFullStackedSplineAreaSeries]}constructor(){super(),this.core=new __.d.StiFullStackedColumnAreaCoreXF(this)}},__.d.StiFullStackedAreaArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable,__.d.IStiFullStackedAreaArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedAreaSeries}constructor(){super(),this.core=new __.d.StiFullStackedAreaAreaCoreXF(this)}},__.d.StiFullStackedLineArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable,__.d.IStiFullStackedLineArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedLineSeries}constructor(){super(),this.core=new __.d.StiFullStackedLineAreaCoreXF(this)}},__.d.StiFullStackedSplineArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiFullStackedSplineArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedSplineAreaSeries}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaCoreXF(this)}},__.d.StiFullStackedSplineAreaArea=class extends __.d.StiFullStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiFullStackedColumnArea,__.d.IStiFullStackedSplineAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedSplineSeries}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaAreaCoreXF(this)}},__.d.StiFunnelArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable,__.d.IStiFunnelArea]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesType(){return __.d.StiFunnelSeries}getSeriesTypes(){return[__.d.StiFunnelSeries]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterFunnelLabels,__.d.StiOutsideRightFunnelLabels,__.d.StiOutsideLeftFunnelLabels]}constructor(){super(),this.core=new __.d.StiFunnelAreaCoreXF(this),this.colorEach=!0}},__.d.StiFunnelWeightedSlicesArea=class extends __.d.StiFunnelArea{getDefaultSeriesType(){return __.d.StiFunnelWeightedSlicesSeries}getSeriesTypes(){return[__.d.StiFunnelWeightedSlicesSeries]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterFunnelLabels]}constructor(){super(),this.core=new __.d.StiFunnelAreaCoreXF(this),this.colorEach=!0}},__.d.StiGanttArea=class extends __.d.StiClusteredBarArea{implements(){let e=super.implements().concat([__.d.IStiClusteredBarArea,__.d.IStiClusteredColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,__.d.IStiGanttArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiGanttSeries}getSeriesTypes(){return[__.d.StiGanttSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiValueAxisLabels,__.d.StiCenterAxisLabels,__.d.StiOutsideAxisLabels]}constructor(){super(),this.core=new __.d.StiGanttAreaCoreXF(this)}};{class vT0 extends __.d.StiAxisArea{implements(){let e=super.implements().concat([__.d.IStiHeatmapArea]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterHeatmapLabels]}getDefaultSeriesType(){return __.d.StiHeatmapSeries}getSeriesTypes(){return[__.d.StiHeatmapSeries]}createNew(){return new vT0}constructor(){super(),this.core=new __.d.StiHeatmapAreaCoreXF(this)}}__.d.StiHeatmapArea=vT0}__.d.StiPictorialArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPictorialArea,__.d.IStiRoundValuesArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("RoundValues","",!0),new StiBoolMeta("Actual","",!0)]}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}getDefaultSeriesType(){return __.d.StiPictorialSeries}getSeriesTypes(){return[__.d.StiPictorialSeries]}constructor(){super(),this.roundValues=!0,this.actual=!1,this.core=new __.d.StiPictorialAreaCoreXF(this),this.colorEach=!0,this.roundValues=!0}},__.d.StiPictorialStackedArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiOutsideRightPictorialStackedLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPictorialStackedLabels,__.d.StiOutsideLeftPictorialStackedLabels,__.d.StiOutsideRightPictorialStackedLabels]}getDefaultSeriesType(){return __.d.StiPictorialStackedSeries}getSeriesTypes(){return[__.d.StiPictorialStackedSeries]}constructor(){super(),this.core=new __.d.StiPictorialStackedAreaCoreXF(this),this.colorEach=!0}},__.d.StiPie3dArea=class extends __.d.StiPieArea{meta(){return[...super.meta(),new StiRemoveMeta("ColorEach")]}getDefaultSeriesLabelsType(){return __.d.StiCenterPie3dLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPie3dLabels,__.d.StiInsideEndPie3dLabels]}getDefaultSeriesType(){return __.d.StiPie3dSeries}getSeriesTypes(){return[__.d.StiPie3dSeries]}constructor(){super(),this.core=new __.d.StiPie3dAreaCoreXF(this),this.colorEach=!0}},__.d.StiRadarAreaArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,__.d.IStiRadarAreaArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarAreaSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarAreaAreaCoreXF(this)}},__.d.StiRadarLineArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarArea,__.d.IStiArea,ICloneable,__.d.IStiRadarLineArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarLineSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarLineAreaCoreXF(this)}},__.d.StiRadarPointArea=class extends __.d.StiRadarArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarPointArea,__.d.IStiRadarArea,__.d.IStiArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRadarPointSeries}getSeriesTypes(){return[__.d.StiRadarPointSeries,__.d.StiRadarLineSeries,__.d.StiRadarAreaSeries]}constructor(){super(),this.core=new __.d.StiRadarPointAreaCoreXF(this)}},__.d.StiRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiRangeArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRangeSeries}getSeriesTypes(){return[__.d.StiRangeSeries]}constructor(){super(),this.core=new __.d.StiRangeAreaCoreXF(this)}},__.d.StiRangeBarArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiRangeBarArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRangeBarSeries}getSeriesTypes(){return[__.d.StiRangeBarSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiInsideBaseAxisLabels,__.d.StiOutsideBaseAxisLabels,__.d.StiOutsideAxisLabels,__.d.StiLeftAxisLabels,__.d.StiValueAxisLabels,__.d.StiRightAxisLabels]}constructor(){super(),this.core=new __.d.StiRangeBarAreaCoreXF(this)}},__.d.StiSplineRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiClusteredColumnArea,__.d.IStiSplineRangeArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSplineRangeSeries}getSeriesTypes(){return[__.d.StiSplineRangeSeries]}constructor(){super(),this.core=new __.d.StiSplineRangeAreaCoreXF(this)}},__.d.StiSteppedRangeArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiClusteredColumnArea,__.d.IStiSteppedRangeArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiSteppedRangeSeries}getSeriesTypes(){return[__.d.StiSteppedRangeSeries]}constructor(){super(),this.core=new __.d.StiSteppedRangeAreaCoreXF(this)}},__.d.StiRibbonArea=class extends __.d.StiAxisArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRibbonArea,__.d.IStiAxisArea,ICloneable,__.d.IStiArea]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiRibbonSeries}getSeriesTypes(){return[__.d.StiRibbonSeries]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF(this)}},__.d.StiStackedAreaArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiStackedAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedAreaSeries}constructor(){super(),this.core=new __.d.StiStackedAreaAreaCoreXF(this)}},__.d.StiStackedLineArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedLineArea,__.d.IStiArea,__.d.IStiAxisArea,__.d.IStiStackedColumnArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedLineSeries}constructor(){super(),this.core=new __.d.StiStackedLineAreaCoreXF(this)}},__.d.StiStackedSplineArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiStackedSplineArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedSplineAreaSeries}constructor(){super(),this.core=new __.d.StiStackedSplineAreaCoreXF(this)}},__.d.StiStackedSplineAreaArea=class extends __.d.StiStackedColumnArea{implements(){let e=super.implements().concat([__.d.IStiAxisArea,__.d.IStiStackedColumnArea,__.d.IStiArea,__.d.IStiStackedSplineAreaArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedSplineSeries}constructor(){super(),this.core=new __.d.StiStackedSplineAreaAreaCoreXF(this)}},__.d.StiStockArea=class extends __.d.StiClusteredColumnArea{implements(){let e=super.implements().concat([__.d.IStiArea,__.d.IStiStockArea,__.d.IStiClusteredColumnArea,__.d.IStiAxisArea,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStockSeries}getSeriesTypes(){return[__.d.StiStockSeries]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels]}constructor(){super(),this.core=new __.d.StiStockAreaCoreXF(this)}},__.d.StiSunburstArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiCenterPieLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterPieLabels]}getDefaultSeriesType(){return __.d.StiSunburstSeries}getSeriesTypes(){return[__.d.StiSunburstSeries]}constructor(){super(),this.core=new __.d.StiSunburstAreaCoreXF(this)}},__.d.StiTreemapArea=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiTreemapArea,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesLabelsType(){return __.d.StiNoneLabels}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterTreemapLabels]}getDefaultSeriesType(){return __.d.StiTreemapSeries}getSeriesTypes(){return[__.d.StiTreemapSeries]}constructor(){super(),this.core=new __.d.StiTreemapAreaCoreXF(this)}},__.d.StiAxisTitle=class{implements(){let e=[__.d.IStiAxisTitle,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiFontMeta("Font","","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.black),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Alignment","",StringAlignment,StringAlignment.Center),new StiEnumMeta("Position","",__.d.StiTitlePosition,__.d.StiTitlePosition.Outside),new StiEnumMeta("Direction","",__.d.StiDirection,__.d.StiDirection.LeftToRight)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.alignment=this.alignment,e.direction=this.direction,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.title=e),e}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=Color.black,s=!0,r=StringAlignment.Center,n=__.d.StiDirection.LeftToRight,l=!0,o=__.d.StiTitlePosition.Outside){this.allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.color=Color.black,this.antialiasing=!0,this.alignment=StringAlignment.Center,this.position=__.d.StiTitlePosition.Outside,this.direction=__.d.StiDirection.LeftToRight,this.font=e,this.text=t,this.color=i,this.antialiasing=s,this.alignment=r,this.direction=n,this.allowApplyStyle=l,this.position=o,this.core=new __.d.StiAxisTitleCoreXF(this)}};{class _T0 extends StiService{implements(){let e=super.implements().concat([__.d.IStiConstantLines,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("Antialiasing","",!0),new StiEnumMeta("Position","",__.d.StiConstantLines_StiTextPosition,__.d.StiConstantLines_StiTextPosition.LeftTop),new StiFontMeta(["Font","fn"],"","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiEnumMeta("Orientation","",__.d.StiConstantLines_StiOrientation,__.d.StiConstantLines_StiOrientation.Horizontal),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.black),new StiBoolMeta("ShowInLegend","",!0),new StiBoolMeta("ShowBehind"),new StiStringMeta("AxisValue","","1"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.constantLines=e),e}get serviceCategory(){return"Chart"}get ServiceType(){return _T0}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}toString(){return this.serviceName}constructor(){super(),this._allowApplyStyle=!0,this.antialiasing=!0,this.position=__.d.StiConstantLines_StiTextPosition.LeftTop,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0,this.orientation=__.d.StiConstantLines_StiOrientation.Horizontal,this.lineWidth=1,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.black,this.showInLegend=!0,this.showBehind=!1,this.axisValue="1",this.visible=!0,this.core=new __.d.StiConstantLinesCoreXF(this)}}__.d.StiConstantLines=_T0}{class gU0 extends CollectionBase{implements(){let e=[IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let t of e.properties()){let e=new __.d.StiChartFilter;this.add(e),e.loadFromJsonObject(t.value)}}loadFromXml(t){for(let e=0;e<t.childNodes.length;e++){let s=t.childNodes[e];if("value"==s.nodeName){let e=s.textContent.split(","),t=e[2],i=("LessThenOrEqualTo"==(t="LessThen"==(t="GreaterThenOrEqualTo"==(t="GreaterThen"==t?"GreaterThan":t)?"GreaterThanOrEqualTo":t)?"LessThan":t)&&(t="LessThanOrEqualTo"),new __.d.StiChartFilter(Enum.parse(StiFilterItem,e[0]),Enum.parse(StiFilterDataType,e[1]),Enum.parse(StiFilterCondition,t),XMLConvert.decodeName(e[3])));this.add(i)}}}clone(){let t=new gU0;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e),null==e.filters&&(e.filters=this)}}__.d.StiChartFiltersCollection=gU0}{class yU0{constructor(e,t,i,s,r,n,l,o,a,h,u,S,d,m,c,g){this.index=e,this.argument=t,this.value=i,this.valueEnd=s,this.weight=l,this.xValue=r,this.yValue=n,this.valueOpen=o,this.valueClose=a,this.valueLow=h,this.valueHigh=u,this.title=S,this.key=d,this.color=m,this.toolTip=c,this.tag=g}}__.d.StiDataItem=yU0,__.d.StiDataItemComparer=class{compare(e,t){let i=null,s=null;if(s=this.sortType==__.d.StiSeriesSortType.Value?(i=e.value,t.value):(i=e.argument,t.argument),null==i&&null==s)return 0;if(null==i)return 1;if(null==s)return-1;let r=i[Stimulsoft.System.StiObject.stimulsoft]().compareTo(s);return(r=0==r?e.index[Stimulsoft.System.StiObject.stimulsoft]().compareTo(t.index):r)*this.directionFactor}constructor(e,t){this.directionFactor=1,this.sortType=__.d.StiSeriesSortType.None,this.directionFactor=1,t==__.d.StiSeriesSortDirection.Descending&&(this.directionFactor=-1),this.sortType=e}}}__.d.StiRadarGridLines=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarGridLines,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiColorMeta("Color","",Color.silver),new StiEnumMeta("Style","",StiPenStyle,StiPenStyle.Dot),new StiBoolMeta("Visible","",!0),new StiBoolMeta("Area","needSetAreaJsonPropertyInternal").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.style=this.style,null!=this.core&&(e.core=this.core.clone(),e.core.gridLines=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){this.needSetAreaJsonPropertyInternal=!1,this._allowApplyStyle=!0,this.color=Color.silver,this.style=StiPenStyle.Solid,this.visible=!0,this.color=e,this.style=t,this.visible=i,this._allowApplyStyle=s,this.core=new __.d.StiRadarGridLinesCoreXF(this)}},__.d.StiRadarGridLinesHor=class extends __.d.StiRadarGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarGridLines,__.d.IStiRadarGridLinesHor,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){super(e,t,i,s)}},__.d.StiRadarGridLinesVert=class extends __.d.StiRadarGridLines{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarGridLines,__.d.IStiRadarGridLinesVert,ICloneable]);return(this.implements=()=>e)()}constructor(e=Color.silver,t=StiPenStyle.Solid,i=!0,s=!0){super(e,t,i,s)}},__.d.StiHeatmapLegend=class extends __.d.StiLegend{constructor(){super(),this.direction=__.d.StiLegendDirection.TopToBottom,this.horAlignment=__.d.StiLegendHorAlignment.RightOutside,this.vertAlignment=__.d.StiLegendVertAlignment.Center,this.markerVisible=!0,this.markerSize=new Size(10,10),this.markerAlignment=__.d.StiMarkerAlignment.Left,this.core=new __.d.StiHeatmapLegendCoreXF(this)}},__.d.StiMarker=class{implements(){let e=[IStiJsonReportObject,__.d.IStiMarker,ICloneable];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiBoolMeta("ShowInLegend","",!0),new StiBoolMeta("Visible","",!0),new StiBrushMeta(["Brush","br"]),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("Size","",7),new StiNumberMeta("Angle"),new StiEnumMeta("Type","",__.d.StiMarkerType,__.d.StiMarkerType.Circle),new StiEnumMeta("Icon","",StiFontIcons)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.marker=e),e}constructor(){this.showInLegend=!0,this.visible=!0,this.extendedVisible=__.d.StiExtendedStyleBool.FromStyle,this.brush=new StiSolidBrush(Color.white),this.borderColor=Color.black,this.size=7,this.angle=0,this.type=__.d.StiMarkerType.Circle,this.icon=null,this.core=new __.d.StiMarkerCoreXF(this)}},__.d.StiLineMarker=class extends __.d.StiMarker{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiLineMarker,__.d.IStiMarker,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Step","",15),new StiNumberMeta("Size","",5),new StiBoolMeta("Visible","",!1),new StiColorMeta("BorderColor","",Color.transparent)]}constructor(){super(),this.step=15,this.visible=!1,this.borderColor=Color.transparent,this.size=5}},__.d.StiRadarAxis=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarAxis,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("AllowApplyStyle","_",!0),new StiBoolMeta("Visible","",!0),new StiObjectMeta("Range"),new StiBoolMeta("Area","jsonLoadFromJsonObjectArea").get(()=>null!=this.area)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}constructor(e=new __.d.StiAxisRange,t=!0,i=!0){this.jsonLoadFromJsonObjectArea=!1,this._allowApplyStyle=!0,this.visible=!0,this.range=e,this.visible=t,this._allowApplyStyle=i}},__.d.StiRadarAxisLabels=class{implements(){let e=[IStiJsonReportObject,__.d.IStiRadarAxisLabels,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiBoolMeta("RotationLabels","",!0),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("DrawBorder"),new StiStringNullOrEmptyMeta("Format"),new StiFontMeta(["Font","fn"],"","Tahoma",8),new StiBoolMeta("Antialiasing","",!0),new StiColorMeta("Color","",Color.black),new StiColorMeta("BorderColor","",Color.black),new StiBrushMeta(["Brush","bh"]),new StiNumberMeta("Width","",0),new StiBoolMeta("WordWrap")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e.brush=this.brush.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.labels=e),e}constructor(e="",t=new Font("Tahoma",8),i=!0,s=!1,r=Color.black,n=Color.black,l=new StiSolidBrush(Color.gainsboro),o=!0,a=!0,h=0,u=!1){this.allowApplyStyle=!0,this.rotationLabels=!0,this.textBefore="",this.textAfter="",this.drawBorder=!1,this.format="",this.font=new Font("Tahoma",8),this.antialiasing=!0,this.color=Color.black,this.borderColor=Color.black,this.brush=new StiSolidBrush(Color.gainsboro),this.width=0,this.wordWrap=!1,this.format=e,this.font=t,this.antialiasing=i,this.drawBorder=s,this.color=r,this.borderColor=n,this.allowApplyStyle=o,this.brush=l,this.rotationLabels=a,this.width=h,this.wordWrap=u,this.core=new __.d.StiRadarAxisLabelsCoreXF(this)}},__.d.StiXRadarAxis=class extends __.d.StiRadarAxis{implements(){let e=super.implements().concat([__.d.IStiXRadarAxis,__.d.IStiRadarAxis,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Labels")]}get propName(){return""}clone(){let e=super.clone();return e.labels=this.labels.clone(),e}get xCore(){return this.core}constructor(e=new __.d.StiRadarAxisLabels,t=new __.d.StiAxisRange,i=!0,s=!0){super(t,i,s),this.labels=new __.d.StiRadarAxisLabels,this.core=new __.d.StiXRadarAxisCoreXF(this),this.labels=e}},__.d.StiYRadarAxis=class extends __.d.StiRadarAxis{implements(){let e=super.implements().concat([__.d.IStiYRadarAxis,__.d.IStiRadarAxis,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Labels"),new StiObjectMeta("Ticks"),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.gray),new StiNumberMeta("LineWidth","",1)]}get propName(){return""}clone(){let e=super.clone();return e.lineStyle=this.lineStyle,e.labels=this.labels.clone(),e.ticks=this.ticks.clone(),e}get yCore(){return this.core}constructor(e=new __.d.StiAxisLabels,t=new __.d.StiAxisRange,i=new __.d.StiAxisTicks,s=StiPenStyle.Solid,r=Color.gray,n=1,l=!0,o=!0){super(t,l,o),this.labels=new __.d.StiAxisLabels,this.ticks=new __.d.StiAxisTicks,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.gray,this.lineWidth=1,this.info=new __.d.StiAxisInfoXF,this.core=new __.d.StiYRadarAxisCoreXF(this),this.labels=e,this.ticks=i,this.lineStyle=s,this.lineColor=r,this.lineWidth=n}},__.d.StiSeriesInteraction=class{constructor(){this.parentSeries=null}implements(){let e=[__.d.IStiSeriesInteraction,IStiJsonReportObject,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringNullOrEmptyMeta("DrillDownPageGuid")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}getReport(){if(null==this.parentSeries)return null;if(null==this.parentSeries.chart)return null;return this.parentSeries.chart.report}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}get hyperlink(){return this.parentSeries.hyperlink}set hyperlink(e){this.parentSeries.hyperlink=e}get tag(){return this.parentSeries.tag}set tag(e){this.parentSeries.tag=e}get toolTip(){return this.parentSeries.toolTip}set toolTip(e){this.parentSeries.toolTip=e}get hyperlinkDataColumn(){return this.parentSeries.hyperlinkDataColumn}set hyperlinkDataColumn(e){this.parentSeries.hyperlinkDataColumn=e}get tagDataColumn(){return this.parentSeries.tagDataColumn}set tagDataColumn(e){this.parentSeries.tagDataColumn=e}get toolTipDataColumn(){return this.parentSeries.toolTipDataColumn}set toolTipDataColumn(e){this.parentSeries.toolTipDataColumn=e}get listOfHyperlinks(){return this.parentSeries.listOfHyperlinks}set listOfHyperlinks(e){this.parentSeries.listOfHyperlinks=e}get listOfTags(){return this.parentSeries.listOfTags}set listOfTags(e){this.parentSeries.listOfTags=e}get listOfToolTips(){return this.parentSeries.listOfToolTips}set listOfToolTips(e){this.parentSeries.listOfToolTips=e}get allowSeries(){return this.parentSeries.allowSeries}set allowSeries(e){this.parentSeries.allowSeries=e}get allowSeriesElements(){return this.parentSeries.allowSeriesElements}set allowSeriesElements(e){this.parentSeries.allowSeriesElements=e}get drillDownEnabled(){return this.parentSeries.drillDownEnabled}set drillDownEnabled(e){this.parentSeries.drillDownEnabled=e}get drillDownReport(){return this.parentSeries.drillDownReport}set drillDownReport(e){this.parentSeries.drillDownReport=e}get drillDownPage(){return this.parentSeries.drillDownPage}set drillDownPage(e){this.parentSeries.drillDownPage=e}get drillDownPageGuid(){return this.parentSeries.drillDownPageGuid}set drillDownPageGuid(e){this.parentSeries.drillDownPageGuid=e}get parentComponent(){if(null==this.parentSeries||null==this.parentSeries.chart)return null;return this.parentSeries.chart}},__.d.StiSeriesPointsInfo=class{constructor(){this.additionalSeriesId=""}},__.d.StiBoxAndWhiskerSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiBoxAndWhiskerSeries,__.d.IStiSeriesBorderThickness]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBoolMeta("ShowInnerPoints"),new StiBoolMeta("ShowMeanMarkers","",!0),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiBoxAndWhiskerArea}constructor(){super(),this.allowApplyBrush=!1,this.showInnerPoints=!1,this.showMeanMarkers=!0,this.borderThickness=1,this.seriesLabels=new __.d.StiNoneLabels,this.core=new __.d.StiBoxAndWhiskerSeriesCoreXF(this)}},__.d.StiBubbleSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([__.d.IStiBaseLineSeries,__.d.IStiBubbleSeries,__.d.IStiFontIconsSeries,__.d.IStiScatterSeries,__.d.IStiSeriesBorderThickness,IStiJsonReportObject,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["LineMarker","Marker"]),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiStringNullOrEmptyMeta("WeightDataColumn"),new StiExpressionMeta("Weight"),new StiExpressionMeta("ListOfWeights"),new StiEnumMeta("Icon","",StiFontIcons),new StiNumberMeta("BubbleScale","",100)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiBubbleArea}get weights(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfWeights))return __.d.StiSeries.getValuesFromString(this.listOfWeights);let e=this.chart.series.indexOf(this);if(0==e)return this._weights;return[3+3*e,5+4*e,9+3*e]}return this._weights}set weights(e){this._weights=e}get weightsString(){let t=new StringBuilder,i=!0;for(let e of this.weights)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set weightsString(e){if(null==e||0==e.trim().length)this._weights=[];else{let t=e.split(";"),i=(this._weights=StiArray.create(Number,t.length),0);for(let e of t)this._weights[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetWeight(e){}invokeGetWeight(e,t){try{this.onGetWeight(t),null!=this.getWeight&&this.getWeight(e,t)}catch(t){if(Exception.logEvent(t,this.chart,"getWeight").isAll)throw t}}onGetListOfWeights(e){}invokeGetListOfWeights(i,s,r){try{if(this.onGetListOfWeights(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfWeights**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfWeights,e));s.value=i.report.toString2(t)}null!=this.getListOfWeights&&this.getListOfWeights(i,s)}catch(s){if(Exception.logEvent(s,this.chart,"getListOfWeights").isAll)throw s}}get bubbleScale(){return this._bubbleScale}set bubbleScale(e){this._bubbleScale=e<0?100:e}constructor(){super(),this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.gainsboro),this._weights=[1,3,2],this.weightDataColumn="",this.weight="",this.listOfWeights="",this.icon=null,this.borderThickness=1,this._bubbleScale=100,this.core=new __.d.StiBubbleSeriesCoreXF(this)}},__.d.StiClusteredColumnSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnSeries,__.d.IStiFontIconsSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}constructor(){super(),this.showZeros=!1,this.cornerRadius=new StiCornerRadius,this._width=.9,this.borderColor=Color.gray,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.icon=null,this.borderThickness=1,this.core=new __.d.StiClusteredColumnSeriesCoreXF(this)}},__.d.StiClusteredBarSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnSeries,__.d.IStiSeries,ICloneable,__.d.IStiClusteredBarSeries,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}get xAxis(){if(this.yAxis==__.d.StiSeriesYAxis.LeftYAxis)return __.d.StiSeriesXAxis.BottomXAxis;return __.d.StiSeriesXAxis.TopXAxis}set xAxis(e){this.yAxis=e==__.d.StiSeriesXAxis.BottomXAxis?__.d.StiSeriesYAxis.LeftYAxis:__.d.StiSeriesYAxis.RightYAxis}getDefaultAreaType(){return __.d.StiClusteredBarArea}constructor(){super(),this.core=new __.d.StiClusteredBarSeriesCoreXF(this)}},__.d.StiLineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.core=new __.d.StiLineSeriesCoreXF(this)}},__.d.StiAreaSeries=class extends __.d.StiLineSeries{implements(){let e=super.implements().concat([__.d.IStiLineSeries,__.d.IStiBaseLineSeries,__.d.IStiAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiAreaSeriesCoreXF(this)}},__.d.StiHistogramSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiHistogramSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiHistogramArea}get width(){return this._width1}set width(e){.01<=e&&e<=1&&(this._width1=e)}constructor(){super(),this._width1=.98,this.core=new __.d.StiHistogramSeriesCoreXF(this)}},__.d.StiParetoSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiParetoSeries,__.d.IStiSeriesBorderThickness,IStiCornerRadius,__.d.IStiBaseLineSeries,__.d.IStiClusteredColumnSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowNullsSeries,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiRemoveMeta("Conditions"),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiBoolMeta("AllowApplyLineColor","",!1),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e.marker=this.marker.clone(),e.lineStyle=this.lineStyle,e}getDefaultAreaType(){return __.d.StiParetoArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineColor(){return this.getLineColor()}set lineColor(e){this.setLineColor(e)}getLineColor(){return this._lineColor}setLineColor(e){this._lineColor=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}constructor(){super(),this.showZeros=!1,this._width=.9,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.showNulls=!0,this.cornerRadius=new StiCornerRadius,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this._lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.labelsOffset=0,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this.allowApplyLineColor=!1,this.showNullsAs=__.d.StiShowEmptyCellsAs.Gap,this.showZerosAs=__.d.StiShowEmptyCellsAs.Gap,this.icon=null,this.core=new __.d.StiParetoSeriesCoreXF(this)}},__.d.StiSplineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiSplineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiSplineSeriesCoreXF(this)}},__.d.StiSplineAreaSeries=class extends __.d.StiSplineSeries{implements(){let e=super.implements().concat([__.d.IStiSplineSeries,__.d.IStiBaseLineSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiSplineAreaSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiSplineAreaSeriesCoreXF(this)}},__.d.StiSteppedLineSeries=class extends __.d.StiBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiBaseLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiSteppedLineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("PointAtCenter")]}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.pointAtCenter=!1,this.core=new __.d.StiSteppedLineSeriesCoreXF(this)}},__.d.StiSteppedAreaSeries=class extends __.d.StiSteppedLineSeries{implements(){let e=super.implements().concat([__.d.IStiSteppedLineSeries,__.d.IStiBaseLineSeries,IStiJsonReportObject,__.d.IStiSteppedAreaSeries,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("TopmostLine","",!0),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiClusteredColumnArea}constructor(){super(),this.topmostLine=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiSteppedAreaSeriesCoreXF(this)}},__.d.StiWaterfallSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("ConnectorLine"),new StiObjectMeta("Total")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiWaterfallArea}constructor(){super(),this.core=new __.d.StiWaterfallSeriesCoreXF(this),this.connectorLine=new __.d.StiWaterfallConnectorLine,this.total=new __.d.StiWaterfallTotal}},__.f.StiSeriesInteractionConverter=class{},__.d.StiPieSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPieSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiAllowApplyBorderColor,__.d.IStiSeriesBorderThickness,__.d.IStiAllowApplyBrush,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiBoolMeta("AllowApplyBrush","",!0),new StiBoolMeta("AllowApplyBorderColor","",!0),new StiNumberMeta("StartAngle","",0),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("Diameter","",0),new StiNumberMeta("Distance","",0),new StiExpressionMeta("CutPieList"),new StiEnumMeta("Icon","",StiFontIcons)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPieArea}getArguments(){let e=super.getArguments();if(0==e.length&&null!=this.chart&&null!=this.chart.report&&this.chart.report.isDesigning&&!this.isDashboard)return["Arg1","Arg2","Arg3"];return e}setArguments(e){super.setArguments(e)}get diameter(){return this._diameter}set diameter(e){(this._diameter=e)<5&&(this._diameter=0)}get distance(){return this._distance}set distance(e){this._distance=Math.max(0,e)}get cutPieListValues(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.cutPieList))return __.d.StiSeries.getValuesFromString(this.cutPieList);return[]}return this._cutPieListValues}set cutPieListValues(e){this._cutPieListValues=e}get cuttedPieList(){return this.cutPieList}set cuttedPieList(e){this.cutPieList=e}onGetCutPieList(e){}invokeGetCutPieList(i,s){try{if(this.onGetCutPieList(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartPieSeriesCutPieList**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.cutPieList,e));s.value=i.report.toString2(t)}null!=this.getCutPieList&&this.getCutPieList(i,s)}catch(s){if(Exception.logSeriesExpression(s,this.chart,this.serviceName,"cutPieList").isAll)throw s}}constructor(){super(),this.showZeros=!1,this.allowApplyBrush=!0,this.allowApplyBorderColor=!0,this.startAngle=0,this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.lighting=!0,this._diameter=0,this._distance=0,this._cutPieListValues=[],this.cutPieList="",this.icon=null,this.core=new __.d.StiPieSeriesCoreXF(this)}},__.d.StiDoughnutSeries=class extends __.d.StiPieSeries{implements(){let e=super.implements().concat([__.d.IStiPieSeries,__.d.IStiSeries,ICloneable,__.d.IStiDoughnutSeries,IStiJsonReportObject,__.d.IStiAllowApplyBorderColor,__.d.IStiAllowApplyBrush,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width")]}getDefaultAreaType(){return __.d.StiDoughnutArea}constructor(){super(),this.width=0,this.core=new __.d.StiDoughnutSeriesCoreXF(this)}},__.d.StiCandlestickSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeries,__.d.IStiFinancialSeries,ICloneable,__.d.IStiCandlestickSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine","ValueDataColumn","Value","ListOfValues"]),new StiStringNullOrEmptyMeta("ValueDataColumnOpen"),new StiStringNullOrEmptyMeta("ValueDataColumnClose"),new StiStringNullOrEmptyMeta("ValueDataColumnHigh"),new StiStringNullOrEmptyMeta("ValueDataColumnLow"),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("BorderColorNegative","",Color.gray),new StiNumberMeta("BorderWidth","",2),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiExpressionMeta("ValueOpen"),new StiExpressionMeta("ListOfValuesOpen"),new StiExpressionMeta("ValueClose"),new StiExpressionMeta("ListOfValuesClose"),new StiExpressionMeta("ValueHigh"),new StiExpressionMeta("ListOfValuesHigh"),new StiExpressionMeta("ValueLow"),new StiExpressionMeta("ListOfValuesLow")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiCandlestickArea}get valuesOpen(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesOpen))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesOpen);let e=this.chart.series.indexOf(this);return[4+7*e,7+7*e,5+7*e]}return this._valuesOpen}set valuesOpen(e){this._valuesOpen=e}get valuesClose(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesClose))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesClose);let e=this.chart.series.indexOf(this);return[2+7*e,3+7*e,5+7*e]}return this._valuesClose}set valuesClose(e){this._valuesClose=e}get valuesStringOpen(){let t=new StringBuilder,i=!0;for(let e of this.valuesOpen)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringOpen(e){if(null==e||0==e.trim().length)this.valuesOpen=[];else{let t=e.split(";"),i=(this.valuesOpen=StiArray.create(Number,t.length),0);for(let e of t)this.valuesOpen[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringClose(){let t=new StringBuilder,i=!0;for(let e of this.valuesClose)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringClose(e){if(null==e||0==e.trim().length)this.valuesClose=[];else{let t=e.split(";"),i=(this.valuesClose=StiArray.create(Number,t.length),0);for(let e of t)this.valuesClose[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringHigh(){let t=new StringBuilder,i=!0;for(let e of this.valuesHigh)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringHigh(e){if(null==e||0==e.trim().length)this.valuesHigh=[];else{let t=e.split(";"),i=(this.valuesHigh=StiArray.create(Number,t.length),0);for(let e of t)this.valuesHigh[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesStringLow(){let t=new StringBuilder,i=!0;for(let e of this.valuesLow)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringLow(e){if(null==e||0==e.trim().length)this.valuesLow=[];else{let t=e.split(";"),i=(this.valuesLow=StiArray.create(Number,t.length),0);for(let e of t)this.valuesLow[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}get valuesHigh(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesHigh))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesHigh);let e=this.chart.series.indexOf(this);return[6+7*e,9+7*e,7+7*e]}return this._valuesHigh}set valuesHigh(e){this._valuesHigh=e}get valuesLow(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesLow))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesLow);let e=this.chart.series.indexOf(this);return[1+7*e,3+7*e,4+7*e]}return this._valuesLow}set valuesLow(e){this._valuesLow=e}get borderWidth(){return this._borderWidth}set borderWidth(e){0<e&&(this._borderWidth=e)}onGetValueOpen(e){}invokeGetValueOpen(i,s){try{if(this.onGetValueOpen(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueOpen**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueOpen,e));s.value=i.report.toString2(t)}null!=this.getValueOpen&&this.getValueOpen(i,s)}catch(s){if(Exception.logEvent(s,this.chart,"getValueOpen").isAll)throw s}}onGetListOfValuesOpen(e){}invokeGetListOfValuesOpen(i,s){try{if(this.onGetListOfValuesOpen(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesOpen**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesOpen,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesOpen&&this.getListOfValuesOpen(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesOpen").isAll)throw s}}onGetValueClose(e){}invokeGetValueClose(i,s){try{if(this.onGetValueClose(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueClose**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueClose,e));s.value=i.report.toString2(t)}null!=this.getValueClose&&this.getValueClose(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueClose").isAll)throw s}}onGetListOfValuesClose(e){}invokeGetListOfValuesClose(i,s){try{if(this.onGetListOfValuesClose(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesClose**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesClose,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesClose&&this.getListOfValuesClose(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesClose").isAll)throw s}}onGetValueHigh(e){}invokeGetValueHigh(i,s){try{if(this.onGetValueHigh(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueHigh**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueHigh,e));s.value=i.report.toString2(t)}null!=this.getValueHigh&&this.getValueHigh(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueHigh").isAll)throw s}}onGetListOfValuesHigh(e){}invokeGetListOfValuesHigh(i,s){try{if(this.onGetListOfValuesHigh(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesHigh**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesHigh,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesHigh&&this.getListOfValuesHigh(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesHigh").isAll)throw s}}onGetValueLow(e){}invokeGetValueLow(i,s){try{if(this.onGetValueLow(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueLow**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueLow,e));s.value=i.report.toString2(t)}null!=this.getValueLow&&this.getValueLow(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueLow").isAll)throw s}}onGetListOfValuesLow(e){}invokeGetListOfValuesLow(i,s){try{if(this.onGetListOfValuesLow(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesLow**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfValuesLow,e));s.value=i.report.toString2(t)}null!=this.getListOfValuesLow&&this.getListOfValuesLow(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesLow").isAll)throw s}}get valueOpen(){return this.valueObjOpen}set valueOpen(e){this.valueObjOpen=e}get valueClose(){return this.valueObjClose}set valueClose(e){this.valueObjClose=e}get valueHigh(){return this.valueObjHigh}set valueHigh(e){this.valueObjHigh=e}get valueLow(){return this.valueObjLow}set valueLow(e){this.valueObjLow=e}constructor(){super(),this._valuesOpen=[4,7,5],this._valuesClose=[2,3,5],this._valuesHigh=[6,9,7],this._valuesLow=[1,3,4],this.valueDataColumnOpen="",this.valueDataColumnClose="",this.valueDataColumnHigh="",this.valueDataColumnLow="",this.borderColor=Color.gray,this.borderColorNegative=Color.gray,this._borderWidth=2,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.transparent),this.valueObjOpen="",this.listOfValuesOpen="",this.valueObjClose="",this.listOfValuesClose="",this.valueObjHigh="",this.listOfValuesHigh="",this.valueObjLow="",this.listOfValuesLow="",this.core=new __.d.StiCandlestickSeriesCoreXF(this)}},__.d.StiStockSeries=class extends __.d.StiCandlestickSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStockSeries,__.d.IStiFinancialSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["BorderColor","BorderWidth","Brush","BrushNegative"]),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiNumberMeta("LineWidth","",2),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiStockArea}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this._lineWidth=2,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1,this.core=new __.d.StiStockSeriesCoreXF(this)}},__.d.StiStackedBarSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBarSeries,__.d.IStiSeriesBorderThickness,IStiFontIconsSeries,IStiCornerRadius,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.8),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiStackedBarArea}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}get xAxis(){if(this.yAxis==__.d.StiSeriesYAxis.LeftYAxis)return __.d.StiSeriesXAxis.BottomXAxis;return __.d.StiSeriesXAxis.TopXAxis}set xAxis(e){this.yAxis=e==__.d.StiSeriesXAxis.BottomXAxis?__.d.StiSeriesYAxis.LeftYAxis:__.d.StiSeriesYAxis.RightYAxis}constructor(){super(),this.showZeros=!1,this._width=.8,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.cornerRadius=new StiCornerRadius,this.icon=null,this.core=new __.d.StiStackedBarSeriesCoreXF(this)}},__.d.StiFullStackedBarSeries=class extends __.d.StiStackedBarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBarSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,__.d.IStiFullStackedBarSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedBarArea}constructor(){super(),this.core=new __.d.StiFullStackedBarSeriesCoreXF(this)}},__.d.StiStackedBaseLineSeries=class extends __.d.StiSeries{constructor(){super(...arguments),this.showNulls=!0,this.marker=new __.d.StiMarker,this.lineMarker=new __.d.StiLineMarker,this.lighting=!0,this.lineColor=Color.mediumBlue,this._lineWidth=2,this.lineStyle=StiPenStyle.Solid,this.lineColorNegative=Color.firebrick,this.allowApplyColorNegative=!1}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TrendLine","Conditions"]),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker"),new StiObjectMeta("LineMarker"),new StiBoolMeta("Lighting","",!0),new StiColorMeta("LineColor","",Color.mediumBlue),new StiNumberMeta("LineWidth","_",2),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColorNegative","",Color.firebrick),new StiBoolMeta("AllowApplyColorNegative")]}clone(){let e=super.clone();return e.lineStyle=this.lineStyle,e}get showMarker(){return this.marker.visible}set showMarker(e){this.marker.visible=e}get markerColor(){return StiBrush.toColor(this.marker.brush)}set markerColor(e){this.marker.brush=new StiSolidBrush(e),this.marker.borderColor=StiColorUtils.dark(e,50)}get markerSize(){return this.marker.size}set markerSize(e){this.marker.size=e}get markerType(){return this.marker.type}set markerType(e){this.marker.type=e}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea}},__.d.StiStackedLineSeries=class extends __.d.StiStackedBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,__.d.IStiSeries,ICloneable,__.d.IStiShowNullsSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.core=new __.d.StiStackedLineSeriesCoreXF(this)}},__.d.StiStackedAreaSeries=class extends __.d.StiStackedLineSeries{implements(){let e=super.implements().concat([ICloneable,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiStackedAreaSeries,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBrushMeta(["Brush","bh"]),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.coreBrush.clone(),e}getDefaultAreaType(){return __.d.StiStackedColumnArea}get coreBrush(){return this.brush}set coreBrush(e){this.brush=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiStackedAreaSeriesCoreXF(this)}},__.d.StiFullStackedAreaSeries=class extends __.d.StiStackedAreaSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedAreaSeries,__.d.IStiStackedAreaSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiShowNullsSeries,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiStackedLineSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedAreaSeriesCoreXF(this)}},__.d.StiStackedColumnSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,__.d.IStiAllowApplyBrushNegative,IStiCornerRadius,__.d.IStiSeriesBorderThickness,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiNumberMeta("Width","_",.8),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiEnumMeta("Icon","",StiFontIcons),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.showZeros=!1,this._width=.8,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.icon=null,this.cornerRadius=new StiCornerRadius,this.core=new __.d.StiStackedColumnSeriesCoreXF(this)}},__.d.StiFullStackedColumnSeries=class extends __.d.StiStackedColumnSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedColumnSeries,__.d.IStiStackedColumnSeries,ICloneable,__.d.IStiSeries,IStiJsonReportObject,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedColumnSeriesCoreXF(this)}},__.d.StiFullStackedLineSeries=class extends __.d.StiStackedLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedLineSeries,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedLineSeriesCoreXF(this)}},__.d.StiStackedSplineSeries=class extends __.d.StiStackedBaseLineSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedBaseLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiStackedSplineSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiStackedSplineSeriesCoreXF(this)}},__.d.StiStackedSplineAreaSeries=class extends __.d.StiStackedSplineSeries{implements(){let e=super.implements().concat([__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedSplineAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBrushMeta("Brush"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative")]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiStackedColumnArea}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.core=new __.d.StiStackedSplineAreaSeriesCoreXF(this)}},__.d.StiFullStackedSplineAreaSeries=class extends __.d.StiStackedSplineAreaSeries{implements(){let e=super.implements().concat([__.d.IStiFullStackedSplineAreaSeries,__.d.IStiShowNullsSeries,__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiStackedSplineAreaSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedSplineAreaSeriesCoreXF(this)}},__.d.StiFullStackedSplineSeries=class extends __.d.StiStackedSplineSeries{implements(){let e=super.implements().concat([__.d.IStiStackedSplineSeries,__.d.IStiStackedBaseLineSeries,__.d.IStiFullStackedSplineSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea}constructor(){super(),this.core=new __.d.StiFullStackedSplineSeriesCoreXF(this)}},__.d.StiFunnelSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeries,__.d.IStiFontIconsSeries,__.d.IStiSeriesBorderThickness,__.d.IStiSeries,ICloneable,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowZeros"),new StiBoolMeta("AllowApplyBrush","",!0),new StiBoolMeta("AllowApplyBorderColor","",!0),new StiBrushMeta(["Brush","bh"]),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiEnumMeta("Icon","",StiFontIcons)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiFunnelArea}constructor(){super(),this.showZeros=!1,this.allowApplyBrush=!0,this.allowApplyBorderColor=!0,this.brush=new StiSolidBrush(Color.gainsboro),this.borderColor=Color.gray,this.borderThickness=1,this.icon=null,this.core=new __.d.StiFunnelSeriesCoreXF(this)}},__.d.StiFunnelWeightedSlicesSeries=class extends __.d.StiFunnelSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeries,__.d.IStiFunnelWeightedSlicesSeries,__.d.IStiSeries,ICloneable]);return(this.implements=()=>e)()}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiFunnelWeightedSlicesArea}constructor(){super(),this.core=new __.d.StiFunnelWeightedSlicesSeriesCoreXF(this)}},__.d.StiGanttSeries=class extends __.d.StiClusteredBarSeries{implements(){let e=super.implements().concat([__.d.IStiClusteredColumnSeries,__.d.IStiClusteredBarSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiGanttSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TopN"),new StiRemoveMeta("TrendLine"),new StiStringMeta("ValueDataColumnEnd"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiGanttArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiGanttSeriesCoreXF(this)}},__.d.StiHeatmapSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiHeatmapSeries,__.d.IStiSeriesBorderThickness,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("BorderColor","",Color.gray),new StiNumberMeta("BorderThickness","",1),new StiStringNullOrEmptyMeta("XValuesDataColumn"),new StiStringNullOrEmptyMeta("YValuesDataColumn"),new StiExpressionMeta("XValue"),new StiExpressionMeta("ListOfXValues"),new StiExpressionMeta("YValue"),new StiExpressionMeta("ListOfYValues"),new StiStringNullOrEmptyMeta("XValuesString","",StiJsonSaveMode.Document),new StiStringNullOrEmptyMeta("YValuesString","",StiJsonSaveMode.Document)]}getDefaultAreaType(){return __.d.StiHeatmapArea}getDefaultLegendType(){return __.d.StiHeatmapLegend}get xValues(){return this.getXValues()}set xValues(e){this.setXValues(e)}getXValues(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._xValues;if(!StiString.isNullOrEmpty(this.listOfXValues))return __.d.StiSeries.getArgumentsFromString(this.listOfXValues);if(null==this._xValues||0==this._xValues.length)return["A","B","C","A","B","C","A","B","C"];return this._xValues}setXValues(e){this._xValues=e}get yValues(){return this.getYValues()}set yValues(e){this.setYValues(e)}getYValues(){if(null==this.chart||!this.chart.isDesigning||this.isDashboard)return this._yValues;if(!StiString.isNullOrEmpty(this.listOfYValues))return __.d.StiSeries.getArgumentsFromString(this.listOfYValues);if(null==this._yValues||0==this._yValues.length)return["A","A","A","B","B","B","C","C","C"];return this._yValues}setYValues(e){this._yValues=e}get xValuesString(){let i=new StringBuilder,s=!0;for(let t of this._xValues)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XMLConvert.encodeName(e)):i.appendFormat(";{0}",XMLConvert.encodeName(e)),s=!1}return i.toString()}set xValuesString(t){if(null==t||0==t.trim().length)this._xValues=[];else{let e=t.split(";");this._xValues=[];for(let i of e){let e=XMLConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._xValues.push(t.result):this._xValues.push(e)}}}get yValuesString(){let i=new StringBuilder,s=!0;for(let t of this._yValues)if(null!=t){let e="";e=t instanceof DateTime?t.toString("YYYY-MM-DDTHH:mm:ss.SSSSSS"):t.toString(),s?i.appendFormat("{0}",XMLConvert.encodeName(e)):i.appendFormat(";{0}",XMLConvert.encodeName(e)),s=!1}return i.toString()}set yValuesString(t){if(null==t||0==t.trim().length)this._yValues=[];else{let e=t.split(";");this._yValues=[];for(let i of e){let e=XMLConvert.decodeName(i),t=DateTime.tryParseExact(e,["YYYY-MM-DDTHH:mm:ss.SSSSSS"]);t.successfully?this._yValues.push(t.result):this._yValues.push(e)}}}onGetListOfYValues(e){}invokeGetListOfYValues(i,s){try{if(this.onGetListOfYValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfYValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfYValues,e));s.value=i.report.toString2(t)}null!=this.getListOfYValues&&this.getListOfYValues(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfYValues").isAll)throw s}}onGetListOfXValues(e){}invokeGetListOfXValues(i,s){try{if(this.onGetListOfXValues(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSeriesListOfXValues**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.listOfXValues,e));s.value=i.report.toString2(t)}null!=this.getListOfXValues&&this.getListOfXValues(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfXValues").isAll)throw s}}constructor(){super(),this._xValues=[],this._yValues=[],this.yValuesDataColumn="",this.xValuesDataColumn="",this.xValue="",this.yValue="",this.listOfXValues="",this.listOfYValues="",this.borderColor=Color.gray,this.borderThickness=1,this.core=new __.d.StiHeatmapSeriesCoreXF(this)}};let IStiPictorialStackedSeries=__.d.IStiPictorialStackedSeries;__.d.StiPictorialStackedSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([__.d.IStiPictorialSeries,__.d.IStiFontIconsSeries,ICloneable,__.d.IStiSeries,IStiPictorialStackedSeries,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.Coffee)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPictorialStackedArea}constructor(){super(),this.icon=StiFontIcons.Coffee,this.core=new __.d.StiPictorialStackedSeriesCoreXF(this)}},__.d.StiPie3dPeripherySurfaceBounds=class{constructor(e,t,i,s,r,n){this.startAngle=e,this.endAngle=t,this.startPoint=i,this.endPoint=s,this.realStartAngle=r,this.realEndAngle=n}};{class o_0{draw(e,t,i){if(null==this.point1||null==this.point2||null==this.point3||null==this.point4)return;let s=new List,r=(s.add(new StiLineSegmentGeom(this.point1,this.point2)),s.add(new StiLineSegmentGeom(this.point2,this.point3)),s.add(new StiLineSegmentGeom(this.point3,this.point4)),this.toClose&&s.add(new StiCloseFigureSegmentGeom),e.getPathBounds(s));null!=this.animation?e.drawAnimationPathElement(i,t,s,this.rectangle,null,this,this.animation,null):(e.fillPath(i,s,r,null),e.drawPath(t,s,r))}static empty(){return new o_0(null,null,null,null,null,null,null)}constructor(e,t,i,s,r,n,l){this.rectangle=e,this.point1=t,this.point2=i,this.point3=s,this.point4=r,this.toClose=n,this.animation=l}}__.d.StiPie3dQuadrilateral=o_0}__.d.StiPie3dSeries=class extends __.d.StiPieSeries{implements(){let e=super.implements().concat([__.d.IStiPie3dSeries,__.d.IStiShowZerosSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("Options3D")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiPie3dArea}constructor(){super(),this.options3D=new __.d.StiPie3dOptions,this.core=new __.d.StiPie3dSeriesCoreXF(this)}},__.d.StiRadarSeries=class extends __.d.StiSeries{constructor(){super(...arguments),this.showNulls=!0,this.marker=new __.d.StiMarker}implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries,__.d.IStiShowNullsSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiBoolMeta("ShowNulls","",!0),new StiObjectMeta("Marker")]}clone(){let e=super.clone();return null!=this.marker&&(e.marker=this.marker.clone()),e}},__.d.StiRadarAreaSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([__.d.IStiRadarSeries,__.d.IStiRadarLineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiRadarAreaSeries,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2),new StiBrushMeta("Brush")]}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiRadarAreaArea}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.brush=new StiSolidBrush(Color.gainsboro),this.core=new __.d.StiRadarAreaSeriesCoreXF(this)}},__.d.StiRadarLineSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarLineSeries,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("Lighting","",!0),new StiNumberMeta("LineWidth","",2)]}get lineWidth(){return this._lineWidth}set lineWidth(e){0<e&&(this._lineWidth=e)}getDefaultAreaType(){return __.d.StiRadarLineArea}constructor(){super(),this.lineColor=Color.black,this.lineStyle=StiPenStyle.Solid,this.lighting=!0,this._lineWidth=2,this.core=new __.d.StiRadarLineSeriesCoreXF(this)}},__.d.StiRadarPointSeries=class extends __.d.StiRadarSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRadarPointSeries,ICloneable,__.d.IStiSeries,__.d.IStiRadarSeries]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiRadarPointArea}constructor(){super(),this.core=new __.d.StiRadarPointSeriesCoreXF(this)}},__.d.StiRangeBarSeries=class extends __.d.StiClusteredColumnSeries{implements(){let e=super.implements().concat([__.d.IStiRangeBarSeries,__.d.IStiClusteredColumnSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyBrushNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiExpressionMeta("Value"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValues"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiRangeBarArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartGanttSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiRangeBarSeriesCoreXF(this)}},__.d.StiRangeSeries=class extends __.d.StiLineSeries{implements(){let e=super.implements().concat([__.d.IStiLineSeries,__.d.IStiLineRangeSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this.valuesEnd=[];else{let t=e.split(";"),i=(this.valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this.valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[3,5,9],this.valueDataColumnEnd="",this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiRangeSeriesCoreXF(this)}},__.d.StiSplineRangeSeries=class extends __.d.StiSplineSeries{implements(){let e=super.implements().concat([__.d.IStiSplineSeries,__.d.IStiSplineRangeSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TopN"),new StiRemoveMeta("TrendLine"),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiExpressionMeta("ValueEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiSplineRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,9+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this._valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this._valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[4,5,9],this.valueDataColumnEnd="",this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiSplineRangeSeriesCoreXF(this)}},__.d.StiSteppedRangeSeries=class extends __.d.StiSteppedLineSeries{implements(){let e=super.implements().concat([__.d.IStiSteppedLineSeries,__.d.IStiBaseLineSeries,__.d.IStiRangeSeries,__.d.IStiSteppedRangeSeries,IStiJsonReportObject,__.d.IStiSeries,ICloneable,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["TopN","TrendLine"]),new StiBrushMeta(["Brush","bh"]),new StiStringNullOrEmptyMeta("ValueDataColumnEnd"),new StiBrushMeta("BrushNegative"),new StiBoolMeta("AllowApplyBrushNegative"),new StiExpressionMeta("ValueEnd","valueObjEnd"),new StiExpressionMeta("ListOfValuesEnd")]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiSteppedRangeArea}get valuesEnd(){if(null!=this.chart&&null!=this.chart.report&&this.chart.isDesigning&&!this.isDashboard){if(!StiString.isNullOrEmpty(this.listOfValuesEnd))return __.d.StiSeries.getNullableValuesFromString(this,this.listOfValuesEnd);let e=this.chart.series.indexOf(this);if(0==e)return this._valuesEnd;return[3+3*e,5+4*e,7+3*e,6+3*e,6+3*e]}return this._valuesEnd}set valuesEnd(e){this._valuesEnd=e}get valuesStringEnd(){let t=new StringBuilder,i=!0;for(let e of this.valuesEnd)i?t.appendFormat("{0}",e):t.appendFormat(";{0}",e),i=!1;return t.toString()}set valuesStringEnd(e){if(null==e||0==e.trim().length)this.valuesEnd=[];else{let t=e.split(";"),i=(this._valuesEnd=StiArray.create(Number,t.length),0);for(let e of t)this._valuesEnd[i++]=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}}onGetValueEnd(e){}invokeGetValueEnd(i,s){try{if(this.onGetValueEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesValueEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(this.valueEnd,e));s.value=i.report.toString2(t)}null!=this.getValueEnd&&this.getValueEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetValueEnd").isAll)throw s}}onGetListOfValuesEnd(e){}invokeGetListOfValuesEnd(i,s,r){try{if(r.onGetListOfValuesEnd(s),i.report.calculationMode==__.a.StiCalculationMode.Interpretation){let e=new StiText,t=(e.name="**ChartSteppedRangeSeriesListOfValuesEnd**",e.page=i.report.pages.getByIndex(0),__.a.Engine.StiParser.StiParser.parseTextValue(r.listOfValuesEnd,e));s.value=i.report.toString2(t)}null!=r.getListOfValuesEnd&&r.getListOfValuesEnd(i,s)}catch(s){if(Exception.log(s,this.chart,"invokeGetListOfValuesEnd").isAll)throw s}}get valueEnd(){return this.valueObjEnd}set valueEnd(e){this.valueObjEnd=e}constructor(){super(),this.brush=new StiSolidBrush(Color.gainsboro),this._valuesEnd=[4,5,7,6,6],this.valueDataColumnEnd="",this.brushNegative=new StiSolidBrush(Color.firebrick),this.allowApplyBrushNegative=!1,this.valueObjEnd="",this.listOfValuesEnd="",this.core=new __.d.StiSteppedRangeSeriesCoreXF(this)}},__.d.StiScatterSplineSeries=class extends __.d.StiScatterSeries{implements(){let e=super.implements().concat([ICloneable,__.d.IStiScatterLineSeries,__.d.IStiBaseLineSeries,__.d.IStiScatterSplineSeries,IStiJsonReportObject,__.d.IStiSeries,__.d.IStiScatterSeries,__.d.IStiAllowApplyColorNegative]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("LineMarker"),new StiNumberMeta("Tension","",.55)]}clone(){let e=super.clone();return e}getDefaultAreaType(){return __.d.StiScatterArea}constructor(){super(),this.tension=.55,this.core=new __.d.StiScatterSplineSeriesCoreXF(this)}},__.d.StiRibbonSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiRibbonSeries,IStiCornerRadius,__.d.IStiSeriesBorderThickness]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("TrendLine"),new StiNumberMeta("Width","_",.5),new StiColorMeta("BorderColor","",Color.black),new StiNumberMeta("BorderThickness","",1),new StiBrushMeta("Brush"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(e=>this.cornerRadius=StiCornerRadius.tryParse(e.value.toString())).setXml(e=>this.cornerRadius=StiCornerRadius.tryParse(e.textContent))]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiRibbonArea}constructor(){super(),this._width=.5,this.borderColor=Color.black,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.cornerRadius=new StiCornerRadius,this.core=new __.d.StiRibbonSeriesCoreXF(this)}},__.d.StiRibbonSeriesMetadata=class{constructor(e,t){this.rectangles=new List,this.brush=e,this.borderColor=t}},__.d.StiSunburstSeries=class extends __.d.StiSeries{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSunburstSeries,__.d.IStiSeriesBorderThickness,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("BorderThickness","",1)]}clone(){let e=super.clone();return e.brush=this.brush.clone(),e}getDefaultAreaType(){return __.d.StiSunburstArea}constructor(){super(),this.borderColor=Color.gray,this.borderThickness=1,this.brush=new StiSolidBrush(Color.gainsboro),this.core=new __.d.StiSunburstSeriesCoreXF(this)}},__.d.StiNoneLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiNoneLabels,__.d.IStiSeriesLabels,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta(["Antialiasing","Visible","LabelColor","BorderColor","Brush","Font"])]}constructor(){super(),this.core=new __.d.StiNoneLabelsCoreXF(this)}},__.d.StiInsideBaseAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiInsideBaseAxisLabels,__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideBaseAxisLabelsCoreXF(this)}},__.d.StiInsideEndAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,__.d.IStiInsideEndAxisLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideEndAxisLabelsCoreXF(this)}},__.d.StiLeftAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiLeftAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiLeftAxisLabelsCoreXF(this)}},__.d.StiOutsideAxisLabels=class extends __.d.StiAxisSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideAxisLabels,__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("LineLength","",15)]}constructor(){super(),this.lineLength=15,this.core=new __.d.StiOutsideAxisLabelsCoreXF(this)}},__.d.StiOutsideBaseAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiOutsideBaseAxisLabels,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideBaseAxisLabelsCoreXF(this)}},__.d.StiOutsideEndAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideEndAxisLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideEndAxisLabelsCoreXF(this)}},__.d.StiRightAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,__.d.IStiRightAxisLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiRightAxisLabelsCoreXF(this)}},__.d.StiValueAxisLabels=class extends __.d.StiCenterAxisLabels{implements(){let e=super.implements().concat([__.d.IStiValueAxisLabels,__.d.IStiCenterAxisLabels,__.d.IStiAxisSeriesLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiValueAxisLabelsCoreXF(this)}},__.d.StiFunnelSeriesLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiFunnelSeriesLabels,ICloneable,__.d.IStiSeriesLabels]);return(this.implements=()=>e)()}},__.d.StiCenterFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable,__.d.IStiCenterFunnelLabels]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterFunnelLabelsCoreXF(this)}},__.d.StiOutsideLeftFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiCenterFunnelLabels,__.d.IStiOutsideLeftFunnelLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideLeftFunnelLabelsCoreXF(this)}},__.d.StiOutsideRightFunnelLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([__.d.IStiOutsideRightFunnelLabels,__.d.IStiCenterFunnelLabels,IStiJsonReportObject,__.d.IStiSeriesLabels,__.d.IStiFunnelSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideRightFunnelLabelsCoreXF(this)}},__.d.StiCenterHeatmapLabels=class extends __.d.StiAxisSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterHeatmapLabelsCoreXF(this)}},__.d.StiCenterPictorialStackedLabels=class extends __.d.StiFunnelSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterPictorialStackedLabelsCoreXF(this)}},__.d.StiOutsideLeftPictorialStackedLabels=class extends __.d.StiCenterPictorialStackedLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.lineColor=Color.black,this.core=new __.d.StiOutsideLeftPictorialStackedLabelsCoreXF(this)}},__.d.StiOutsideRightPictorialStackedLabels=class extends __.d.StiCenterPictorialStackedLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.lineColor=Color.black,this.core=new __.d.StiOutsideRightPictorialStackedLabelsCoreXF(this)}},__.d.StiPictorialStackedLabels=class extends __.d.StiSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeriesLabels]);return(this.implements=()=>e)()}},__.d.StiPieSeriesLabels=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterPie3dLabels=class extends __.d.StiPieSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterPie3dLabelsCoreXF(this)}},__.d.StiCenterPieLabels=class extends __.d.StiPieSeriesLabels{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,__.d.IStiCenterPieLabels,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AutoRotate")]}constructor(){super(),this.autoRotate=!1,this.core=new __.d.StiCenterPieLabelsCoreXF(this)}},__.d.StiInsideEndPie3dLabels=class extends __.d.StiCenterPie3dLabels{constructor(){super(),this.core=new __.d.StiInsideEndPie3dLabelsCoreXF(this)}},__.d.StiInsideEndPieLabels=class extends __.d.StiCenterPieLabels{implements(){let e=super.implements().concat([__.d.IStiCenterPieLabels,__.d.IStiSeriesLabels,__.d.IStiPieSeriesLabels,__.d.IStiInsideEndPieLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiInsideEndPieLabelsCoreXF(this)}},__.d.StiOutsidePieLabels=class extends __.d.StiCenterPieLabels{implements(){let e=super.implements().concat([__.d.IStiOutsidePieLabels,__.d.IStiCenterPieLabels,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("Angle"),new StiBoolMeta("ShowValue"),new StiNumberMeta("LineLength","",20),new StiColorMeta("LineColor","",Color.black)]}constructor(){super(),this.showValue=!1,this.lineLength=20,this.lineColor=Color.black,this.core=new __.d.StiOutsidePieLabelsCoreXF(this)}},__.d.StiTwoColumnsPieLabels=class extends __.d.StiOutsidePieLabels{implements(){let e=super.implements().concat([__.d.IStiTwoColumnsPieLabels,__.d.IStiOutsidePieLabels,__.d.IStiCenterPieLabels,__.d.IStiPieSeriesLabels,__.d.IStiSeriesLabels,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiRemoveMeta("AutoRotate")]}constructor(){super(),this.core=new __.d.StiTwoColumnsPieLabelsCoreXF(this)}},__.d.StiCenterTreemapLabels=class extends __.d.StiAxisSeriesLabels{constructor(){super(),this.core=new __.d.StiCenterTreemapLabelsCoreXF(this)}};{class abb extends StiService{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStrips,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("AllowApplyStyle","",!0),new StiBoolMeta("ShowBehind","",!0),new StiBrushMeta("StripBrush"),new StiBoolMeta("Antialiasing","",!0),new StiFontMeta("Font","","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiColorMeta("TitleColor","",Color.green),new StiEnumMeta("Orientation","",__.d.StiStrips_StiOrientation,__.d.StiStrips_StiOrientation.Horizontal),new StiBoolMeta("ShowInLegend","",!0),new StiStringMeta("MaxValue","","1"),new StiStringMeta("MinValue","","0"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return null!=this.core&&(e.core=this.core.clone(),e.core.strips=e),e}get serviceCategory(){return"Chart"}get serviceType(){return abb}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}constructor(){super(),this._allowApplyStyle=!0,this.showBehind=!0,this.stripBrush=new StiSolidBrush(Color.transparent),this.antialiasing=!0,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0,this.titleColor=Color.green,this.orientation=__.d.StiStrips_StiOrientation.Horizontal,this.showInLegend=!0,this.maxValue="1",this.minValue="0",this.visible=!0,this.core=new __.d.StiStripsCoreXF(this)}}__.d.StiStrips=abb}__.d.StiStyle01=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF01}},__.d.StiCustomStyle=class extends __.d.StiStyle01{implements(){let e=super.implements().concat([__.d.IStiCustomStyle]);return(this.implements=()=>e)()}get serviceName(){return"CustomStyle"}get customCore(){return this.core}constructor(e=null){super(),this.core=new __.d.StiCustomStyleCoreXF(this),this.core.reportStyleName=e}},__.d.StiStyle02=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF02}},__.d.StiStyle03=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF03}},__.d.StiStyle04=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF04}},__.d.StiStyle05=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF05}},__.d.StiStyle06=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF06}},__.d.StiStyle07=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF07}},__.d.StiStyle08=class extends __.d.StiStyle03{constructor(){super(),this.core=new __.d.StiStyleCoreXF08}},__.d.StiStyle09=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF09}},__.d.StiStyle10=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF10}},__.d.StiStyle11=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF11}},__.d.StiStyle12=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF12}},__.d.StiStyle13=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF13}},__.d.StiStyle14=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF14}},__.d.StiStyle15=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF15}},__.d.StiStyle16=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF16}},__.d.StiStyle17=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF17}},__.d.StiStyle18=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF18}},__.d.StiStyle19=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF19}},__.d.StiStyle20=class extends __.d.StiChartStyle{constructor(){super(),this.core=new __.d.StiStyleCoreXF20}},__.d.StiStyle21=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF21}},__.d.StiStyle22=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF22}},__.d.StiStyle23=class extends __.d.StiChartStyle{constructor(){super(),this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF23}},__.d.StiStyle24=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Orange")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Orange,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF24}},__.d.StiStyle26=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Turquoise")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Turquoise,this.core=new __.d.StiStyleCoreXF26}},__.d.StiStyle27=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","SlateGray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.SlateGray,this.core=new __.d.StiStyleCoreXF27}},__.d.StiStyle28=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkBlue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkBlue,this.core=new __.d.StiStyleCoreXF28}},__.d.StiStyle30=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkGray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkGray,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF30}},__.d.StiStyle31=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkTurquoise")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkTurquoise,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF31}},__.d.StiStyle32=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Silver")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Silver,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF32}},__.d.StiStyle33=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","AliceBlue")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.AliceBlue,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF33}},__.d.StiStyle34=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","DarkGreen")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.DarkGreen,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF34}},__.d.StiStyle35=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Sienna")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Sienna,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF35}},__.d.StiStyle36=class extends __.d.StiChartStyle{get dashboardName(){return StiLocalization.get("PropertyColor","Gray")}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.Gray,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF36}},__.d.StiStyle37=class extends __.d.StiChartStyle{get dashboardName(){return StiWhiteBlackStyleColors.dashboardName}constructor(){super(),this.allowDashboard=!0,this.styleIdent=StiElementStyleIdent.WhiteBlack,this.isOffice2015Style=!0,this.core=new __.d.StiStyleCoreXF37}},__.d.StiChartTableDataCells=class{meta(){return[new StiFontMeta("Font","","Arial",8),new StiColorMeta("TextColor","",Color.darkGray),new StiNumberMeta("ShrinkFontToFitMinimumSize","",1),new StiBoolMeta("ShrinkFontToFit")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.font=this.font.clone(),e}constructor(e=!1,t=1,i=new Font("Arial",8),s=Color.darkGray){this.font=new Font("Arial",8),this.textColor=Color.darkGray,this.shrinkFontToFit=!1,this.shrinkFontToFitMinimumSize=1,this.font=i,this.textColor=s,this.shrinkFontToFit=e,this.shrinkFontToFitMinimumSize=t}},__.d.StiChartTableHeader=class{implements(){let e=[IStiJsonReportObject,__.d.IStiChartTableHeader,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiStringNullOrEmptyMeta("TextAfter"),new StiBrushMeta("Brush"),new StiFontMeta("Font","","Arial",8),new StiColorMeta("TextColor","",Color.darkGray),new StiBoolMeta("WordWrap"),new StiStringNullOrEmptyMeta("Format")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.brush=this.brush.clone(),e.font=this.font.clone(),e}constructor(e="",t=new StiSolidBrush(Color.white),i=new Font("Arial",8),s=Color.darkGray,r=!1,n=""){this.brush=new StiSolidBrush(Color.white),this.font=new Font("Arial",8),this.textColor=Color.darkGray,this.wordWrap=!1,this.textAfter="",this.textAfter=e,this.brush=t,this.font=i,this.textColor=s,this.wordWrap=r,this.format=n}},__.d.StiSeriesTopN=class{constructor(){this.mode=__.d.StiTopNMode.None,this.count=5,this.showOthers=!0,this.othersText="Others"}implements(){let e=[IStiJsonReportObject,__.d.IStiSeriesTopN,ICloneable];return(this.implements=()=>e)()}meta(){return[new StiEnumMeta("Mode","",__.d.StiTopNMode,__.d.StiTopNMode.None),new StiNumberMeta("Count","",5),new StiBoolMeta("ShowOthers","",!0),new StiStringMeta("OthersText","","Others")]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}get propName(){return""}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e}};{class Hbb extends StiService{constructor(){super(...arguments),this.lineColor=Color.black,this.lineWidth=1,this.lineStyle=StiPenStyle.Solid,this.showShadow=!0,this.allowApplyStyle=!0,this.position=__.d.StiTrendLine_StiTextPosition.LeftBottom,this.font=new Font("Arial",7),this.text="",this.titleVisible=!0}implements(){let e=super.implements().concat([__.d.IStiTrendLine,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiColorMeta("LineColor","",Color.black),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("ShowShadow","",!0),new StiEnumMeta("Position","",__.d.StiTrendLine_StiTextPosition,__.d.StiConstantLines_StiTextPosition.LeftBottom),new StiFontMeta("Font","","Arial",7),new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("TitleVisible","",!0),new StiBoolMeta("AllowApplyStyle","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartTrendLines.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadTrendLineFromXml(t){switch(t.attributes.getNamedItem("type").value){case"Stimulsoft.Report.Chart.StiTrendLineNone":{let e=new __.d.StiTrendLineNone;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineLinear":{let e=new __.d.StiTrendLineLinear;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineExponential":{let e=new __.d.StiTrendLineExponential;return e.loadFromXml(t),e}case"Stimulsoft.Report.Chart.StiTrendLineLogarithmic":{let e=new __.d.StiTrendLineLogarithmic;return e.loadFromXml(t),e}}return new __.d.StiTrendLineNone}get propName(){return""}clone(){let e=super.clone();return null!=this.core&&(e.core=this.core.clone(),e.core.trendLine=e),e}get serviceName(){return this.core.localizedName}get serviceCategory(){return"Chart"}get serviceType(){return Hbb}toString(){return this.serviceName}}__.d.StiTrendLine=Hbb}__.d.StiTrendLineExponential=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,ICloneable,IStiJsonReportObject,__.d.IStiTrendLineExponential]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineExponentialCoreXF(this)}},__.d.StiTrendLineLinear=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineLinear,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineLinearCoreXF(this)}},__.d.StiTrendLineLogarithmic=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineLogarithmic,ICloneable,IStiJsonReportObject]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineLogarithmicCoreXF(this)}},__.d.StiTrendLineNone=class extends __.d.StiTrendLine{implements(){let e=super.implements().concat([__.d.IStiTrendLine,__.d.IStiTrendLineNone,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiTrendLineNoneCoreXF(this)}};{class a1b extends CollectionBase{implements(){let e=[__.d.IStiTrendLinesCollection,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}saveToJsonObject(t){if(0==this.list.length)return null;let i=new StiJson,s=0;for(let e of this.list)i.addPropertyJObject(s.toString(),e.saveToJsonObject(t)),s++;return i}loadFromJsonObject(e){for(let r of e.properties()){let e=r.value,t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartTrendLines.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());this.list.push(s),s.loadFromJsonObject(r.value)}}loadFromXml(i){for(let t=0;t<i.childNodes.length;t++){let s=i.childNodes[t];if(null==s.attributes)continue;let e=s.attributes.getNamedItem("type");if(null!=e){let e=s.attributes.getNamedItem("type").value,t=e.split(".").pop(),i=new __.d[t];this.list.push(i),i.loadFromXml(s)}}}clone(){let t=new a1b;for(let e of this.list)t.add(e.clone());return t}add(e){this.list.push(e)}}__.d.StiTrendLinesCollection=a1b}__.d.StiWaterfallConnectorLine=class{constructor(){this.lineColor=Color.lightGray,this.lineWidth=1,this.visible=!0}implements(){let e=[__.d.IStiTrendLine,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiColorMeta("LineColor","",Color.lightGray),new StiNumberMeta("LineWidth","",1),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiBoolMeta("TitleVisible","visible",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}},__.d.StiWaterfallTotal=class{constructor(){this.text="Total",this.visible=!0}implements(){let e=[__.d.IStiTrendLine,ICloneable,IStiJsonReportObject];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiStringNullOrEmptyMeta("Text"),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}},__.d.StiCamera3D=class{translateMatrix(){return new __.d.StiMatrix([[1,0,0,0],[0,1,0,0],[0,0,1,0],[-this.position.x,-this.position.y,-this.position.z,1]])}rotateMatrix(){return new __.d.StiMatrix([[this.right.x,this.up.x,this.forward.x,0],[this.right.y,this.up.y,this.forward.y,0],[this.right.z,this.up.z,this.forward.z,0],[0,0,0,1]])}cameraMatrix(){return __.d.StiMatrix.multiply(this.translateMatrix(),this.rotateMatrix())}constructor(e,t){this.forward=new __.d.StiVector4(0,0,1,1),this.up=new __.d.StiVector4(0,1,0,1),this.right=new __.d.StiVector4(1,0,0,1),this.nearPlane=.1,this.farPlane=100,this.render=e,this.position=new __.d.StiVector4(t.x,t.y,t.z,1),this.h_fov=1,this.v_fov=this.h_fov*(e.height/e.width)}},__.d.StiProjection=class{constructor(e){let t=e.camera,i=(this.near=t.nearPlane,this.far=t.farPlane,this.right=Math.tan(t.h_fov/2),this.left=-this.right,this.top=Math.tan(t.v_fov/2),this.bottom=-this.top,2/(this.right-this.left)),s=2/(this.top-this.bottom),r=(this.far+this.near)/(this.far-this.near),n=-2*this.near*this.far/(this.far-this.near),l=(this.projectionMatrix=new __.d.StiMatrix([[i,0,0,0],[0,s,0,0],[0,0,r,1],[0,0,n,0]]),e.halfWidth),o=e.halfHeight;this.toScreenMatrix=new __.d.StiMatrix([[l,0,0,0],[0,-o,0,0],[0,0,1,0],[l,o,0,1]])}},__.d.StiRender3D=class{constructor(e,t){this.width=e,this.height=t,this.halfWidth=e/2,this.halfHeight=t/2,this.camera=new __.d.StiCamera3D(this,new __.d.StiVector3(0,0,-30)),this.projection=new __.d.StiProjection(this)}};let IStiClusteredColumnSeries3D=__.d.IStiClusteredColumnSeries3D,StiConstantLines_StiOrientation=__.d.StiConstantLines_StiOrientation,StiStrips_StiOrientation=__.d.StiStrips_StiOrientation;__.d.StiAxisAreaCoreXF3D=class extends __.d.StiAreaCoreXF{applyStyle(e){super.applyStyle(e);let t=this.area;t.allowApplyStyle&&(null!=t.interlacingHor&&t.interlacingHor.core.applyStyle(e),null!=t.interlacingVert&&t.interlacingVert.core.applyStyle(e),null!=t.gridLinesHor&&t.gridLinesHor.core.applyStyle(e),null!=t.gridLinesVert&&t.gridLinesVert.core.applyStyle(e),null!=t.xAxis&&t.xAxis.core.applyStyle(e),null!=t.yAxis)&&t.yAxis.core.applyStyle(e)}render(i,e){let t=e.clone(),s=this.area,r=(this.prepareInfo(e.clone()),s.xAxis.core.getAxisTitleSize(i)),n=s.yAxis.core.getAxisTitleSize(i),l=new Rectangle(n.width,e.height-r.height,e.width-n.width,r.height),o=new Rectangle(0,0,n.width,e.height-r.height),a=s.yAxis.core.getAxisRect(i,e,!0,!0,!1,!0),h=(e=new Rectangle(a.width,0,e.width-a.width,e.height),s.xAxis.core.getAxisRect(i,e,!0,!0,!1,!0)),u=(e=new Rectangle(a.width,0,e.width-a.width,e.height-h.height),e=new Rectangle(e.x+n.width,e.y,e.width-n.width,e.height-r.height),this.prepareInfo(e.clone()),s.core.getSeries()),S=this.getRedner3D(),d=new __.d.StiAxisAreaViewGeom3D(s,t,S),m=this.getFactorWidthHeight(e),c=m,g=1,p=this.getPositionZ(s),_=StiBrush.toColor(this.area.brush),f=new __.d.StiXYAreaGeom3D(c,g,S),C=(f.color=_,new __.d.StiXZAreaGeom3D(c,p,S)),w=(C.color=_,new __.d.StiZYAreaGeom3D(p,g,S)),b=(w.color=_,d.createChildGeoms(),d.childGeoms.push(w),d.childGeoms.push(C),d.childGeoms.push(f),new __.d.StiRectangle3D);b.length=m,b.height=1,b.width=-this.getPositionZ(s),this.renderInterlacingHor(S,b,d),this.renderInterlacingVer(S,b,d),this.renderGridLinesHorZY(S,b,s.gridLinesHor,d),this.renderGridLinesHorXY(S,b,s.gridLinesHor,d),this.renderGridLinesVertXY(S,b,s.gridLinesVert,d),this.renderGridLinesVertZX(S,b,s.gridLinesVert,d);for(let e of this.area.chart.strips.list)e.showBehind&&this.renderStrips(i,S,b,d,e);for(let e of this.area.chart.constantLines.list)e.showBehind&&this.renderConstantLines(i,S,b,d,e);if(this.renderSeries(S,i,b,d,u),0<u.length){let e=s.yAxis.core.render3D(i,b,S),t=(d.createChildGeoms(),d.childGeoms.push(e),s.xAxis.core.render3D(i,b,S));d.createChildGeoms(),d.childGeoms.push(t)}for(let e of this.area.chart.strips.list)e.showBehind||this.renderStrips(i,S,b,d,e);for(let e of this.area.chart.constantLines.list)e.showBehind||this.renderConstantLines(i,S,b,d,e);let y=s.xAxis.title.core.render(i,l,s.xAxis),x=(null!=y&&(d.createChildGeoms(),d.childGeoms.push(y)),s.yAxis.title.core.render(i,o,s.yAxis));return null!=x&&(d.createChildGeoms(),d.childGeoms.push(x)),d}renderStrips(e,t,i,s,r){if(!r.visible)return;r.orientation===StiStrips_StiOrientation.Vertical&&this.renderXStrips(e,t,i,s,r),r.orientation===StiStrips_StiOrientation.Horizontal&&this.renderYStrips(e,t,i,s,r)}renderYStrips(h,u,S,d,m){if(m.visible){let l=this.calculateYValue(m.minValue),o=this.calculateYValue(m.maxValue),e=(l>o&&([l,o]=[o,l]),l+S.y),t=o+S.y,a=m.showBehind?S.z:S.front;if(0<=e&&e<=S.height&&0<t&&t<=S.height){let e=new __.d.StiPoint3D(S.x,l,a),t=new __.d.StiPoint3D(S.x,o,a),i=new __.d.StiPoint3D(S.right,l,a),s=new __.d.StiPoint3D(S.right,o,a),r=StiBrush.toColor(m.stripBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,u);d.createChildGeoms(),d.childGeoms.push(n)}if(m.titleVisible){let e=S.right-(S.right-S.x)/2,t=o-(o-l)/2,i=new __.d.StiPoint3D(e,t,a),s=StiFontGeom.changeFontSize(m.font,m.font.size*h.options.zoom),r=StiReportParser.parse(m.text,this.area.chart),n=new __.d.StiTextGeom3D(r,s,m.titleColor,StiRotationMode.CenterCenter,0,i,u);d.createChildGeoms(),d.childGeoms.push(n)}}}renderXStrips(h,u,S,d,m){if(m.visible){let l=this.calculateXValue(m.minValue),o=this.calculateXValue(m.maxValue),e=(l>o&&([l,o]=[o,l]),l+S.x),t=o+S.x,a=m.showBehind?S.z:S.front;if(0<=e&&e<=S.right&&0<=t&&t<=S.right){let e=new __.d.StiPoint3D(l,S.y,a),t=new __.d.StiPoint3D(l,S.top,a),i=new __.d.StiPoint3D(o,S.y,a),s=new __.d.StiPoint3D(o,S.top,a),r=StiBrush.toColor(m.stripBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,u);d.createChildGeoms(),d.childGeoms.push(n)}if(m.titleVisible){let e=o-(o-l)/2,t=S.top-(S.top-S.y)/2,i=new __.d.StiPoint3D(e,t,a),s=StiFontGeom.changeFontSize(m.font,m.font.size*h.options.zoom),r=StiReportParser.parse(m.text,this.area.chart),n=new __.d.StiTextGeom3D(r,s,m.titleColor,StiRotationMode.CenterCenter,90,i,u);d.createChildGeoms(),d.childGeoms.push(n)}}}calculateXValue(e){let t=this.area,i=StiReportParser.parse(e,this.area.chart),s=parseFloat(i.replace(",","."));return s*t.xAxis.info.dpi}calculateYValue(e){let t=this.area,i=StiReportParser.parse(e,this.area.chart),s=parseFloat(i.replace(",","."));return s*t.yAxis.info.dpi}renderConstantLines(e,t,i,s,r){if(!r.visible)return;r.orientation===StiConstantLines_StiOrientation.Vertical&&this.renderXConstantLines(e,t,i,s,r),r.orientation===StiConstantLines_StiOrientation.Horizontal&&this.renderYConstantLines(e,t,i,s,r)}renderYConstantLines(n,a,h,u,S){if(S.visible){let e=this.area,t,i=DateTime.fromString(S.axisValue,!1);if(null!=i)t=i.toOADate();else try{let e=StiReportParser.parse2(S.axisValue,this.area.chart.report);t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){t=0}let s=t*e.yAxis.info.dpi,l=s+h.y,o=S.showBehind?h.z:h.front;if(0<=l&&l<=h.height){let e=new __.d.StiPoint3D(h.x,l,o),t=new __.d.StiPoint3D(h.right,l,o),i=S.lineColor,s=S.lineStyle,r=S.lineWidth,n=new __.d.StiLineGeom3D(e,t,i,r,s,a);u.createChildGeoms(),u.childGeoms.push(n)}if(S.titleVisible){let e=StiFontGeom.changeFontSize(S.font,S.font.size*n.options.zoom),t=StiReportParser.parse(S.text,this.area.chart),i=new __.d.StiPoint3D(h.x,l,o),s=StiRotationMode.LeftBottom;switch(S.position){case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new __.d.StiPoint3D(h.x,l,o);break;case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new __.d.StiPoint3D(h.x,l,o);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new __.d.StiPoint3D(h.x+h.length/2,l,o);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new __.d.StiPoint3D(h.x+h.length/2,l,o);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new __.d.StiPoint3D(h.right,l,o);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new __.d.StiPoint3D(h.right,l,o);break}let r=new __.d.StiTextGeom3D(t,e,S.lineColor,s,0,i,a);u.createChildGeoms(),u.childGeoms.push(r)}}}renderXConstantLines(n,a,h,u,S){if(S.visible){let e=this.area,t,i=DateTime.fromString(S.axisValue,!1);if(null!=i)t=i.toOADate();else try{let e=StiReportParser.parse2(S.axisValue,this.area.chart.report);t=e[Stimulsoft.System.StiObject.stimulsoft]().toNumber()}catch(e){t=0}let s=t*e.xAxis.info.dpi,l=s+h.x,o=S.showBehind?h.z:h.front;if(0<=l&&l<=h.right){let e=new __.d.StiPoint3D(l,h.y,o),t=new __.d.StiPoint3D(l,h.top,o),i=S.lineColor,s=S.lineStyle,r=S.lineWidth,n=new __.d.StiLineGeom3D(e,t,i,r,s,a);u.createChildGeoms(),u.childGeoms.push(n)}if(S.titleVisible){let e=StiFontGeom.changeFontSize(S.font,S.font.size*n.options.zoom),t=StiReportParser.parse(S.text,this.area.chart),i=new __.d.StiPoint3D(l,h.top,o),s=StiRotationMode.LeftBottom;switch(S.position){case __.d.StiConstantLines_StiTextPosition.LeftBottom:s=StiRotationMode.LeftTop,i=new __.d.StiPoint3D(l,h.top,o);break;case __.d.StiConstantLines_StiTextPosition.LeftTop:s=StiRotationMode.LeftBottom,i=new __.d.StiPoint3D(l,h.top,o);break;case __.d.StiConstantLines_StiTextPosition.CenterBottom:s=StiRotationMode.CenterTop,i=new __.d.StiPoint3D(l,h.y+h.height/2,o);break;case __.d.StiConstantLines_StiTextPosition.CenterTop:s=StiRotationMode.CenterBottom,i=new __.d.StiPoint3D(l,h.y+h.height/2,o);break;case __.d.StiConstantLines_StiTextPosition.RightBottom:s=StiRotationMode.RightTop,i=new __.d.StiPoint3D(l,h.y,o);break;case __.d.StiConstantLines_StiTextPosition.RightTop:s=StiRotationMode.RightBottom,i=new __.d.StiPoint3D(l,h.y,o);break}let r=new __.d.StiTextGeom3D(t,e,S.lineColor,s,90,i,a);u.createChildGeoms(),u.childGeoms.push(r)}}}renderInterlacingVer(a,h,u){let S=this.area;if(!S.interlacingVert.visible)return;let e=0,t=new List,i=S.xAxis.info.stripPositions,s=!0;for(let e of i){if(s){t.add(e),s=!1;continue}t.add(e)}let r=StiArray.create(Number,t.length),n=(t.copyTo(r),!0);for(let o of r){let l=r[e+1];if(n){let e=new __.d.StiPoint3D(o,h.y,h.z),t=new __.d.StiPoint3D(o,h.top,h.z),i=new __.d.StiPoint3D(l,h.y,h.z),s=new __.d.StiPoint3D(l,h.top,h.z),r=StiBrush.toColor(S.interlacingVert.interlacedBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a);u.createChildGeoms(),u.childGeoms.push(n),t=e,e=new __.d.StiPoint3D(o,h.y,h.front),s=i,i=new __.d.StiPoint3D(l,h.y,h.front),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a),u.createChildGeoms(),u.childGeoms.push(n)}if(n=!n,++e==r.length-1)break}}switchOff(){let e=this.area.as(__.d.IStiAxisArea3D);e.xAxis.visible=!1,e.yAxis.visible=!1,e.xAxis.title.text="",e.yAxis.title.text="",e.gridLinesHor.visible=!1,e.gridLinesVert.visible=!1,e.interlacingHor.visible=!1,e.interlacingVert.visible=!1,e.gridLinesHor.minorVisible=!1,e.gridLinesVert.minorVisible=!1}renderInterlacingHor(a,h,u){let S=this.area;if(!S.interlacingHor.visible)return;let t=new List,i=S.yAxis.info.stripPositions.length,s=StiArray.create(Number,i);for(let e=0;e<i;e++)s[i-1-e]=S.yAxis.info.stripPositions[e];let r=!0;for(let e of s){if(r){t.add(e),r=!1;continue}t.add(e)}let e=StiArray.create(Number,t.length),n=(t.copyTo(e),0),d=!0;for(let o of e){let l=e[n+1];if(d){let e=new __.d.StiPoint3D(h.x,o,h.z),t=new __.d.StiPoint3D(h.x,l,h.z),i=new __.d.StiPoint3D(h.right,o,h.z),s=new __.d.StiPoint3D(h.right,l,h.z),r=StiBrush.toColor(S.interlacingHor.interlacedBrush),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a);u.createChildGeoms(),u.childGeoms.push(n),i=e,s=t,e=new __.d.StiPoint3D(h.x,o,h.front),t=new __.d.StiPoint3D(h.x,l,h.front),n=new __.d.StiPlaneGeom3D(e,t,s,i,r,a),u.createChildGeoms(),u.childGeoms.push(n)}if(d=!d,++n==e.length-1)break}}prepareInfo(e){let s=this.getFactorWidthHeight(e),r=this.area,n=this.getSeries();if(0<n.length){r.xAxis.info.stripLines=new __.d.StiStripLinesXF,r.yAxis.info.stripLines=new __.d.StiStripLinesXF,r.zAxis.info.stripLines=new __.d.StiStripLinesXF,this.valuesCount=0;for(let t=0;t<n.length;t++){let e=n[t].values;null!=e&&(this.valuesCount=Math.max(e.length,this.valuesCount))}this.prepareRange(r.xAxis,r.yAxis,r.zAxis),this.checkStartFromZeroYAxis(r.yAxis),this.calculateMinimumAndMaximumYAxis(r.yAxis),this.calculateMinimumAndMaximumXAxis(r.xAxis),this.createStripLinesXAxis(r.xAxis),this.createStripLinesYAxis(r.yAxis),this.createStripLinesZAxis(r.zAxis),this.checkStripLinesAndMaximumMinimumXAxis(r.xAxis),this.checkStripLinesAndMaximumMinimumYAxis(r.yAxis),this.checkStripLinesAndMaximumMinimumZAxis(r.zAxis),this.checkShowEdgeValues(r.xAxis),r.xAxis.info.dpi=s/r.xAxis.info.range,r.yAxis.info.dpi=1/r.yAxis.info.range,r.zAxis.info.dpi=r.xAxis.info.dpi;let e=this.getPrePositionZ(r),t=e/s,i=(r.zAxis.info.dpi=2<t?2*s/r.zAxis.info.range:r.xAxis.info.dpi,this.calculateStepX(r.xAxis,0,s),this.calculateStepY(r.yAxis,1,0),this.calculateStepZ(r.zAxis,0,this.getPositionZ(r)),{ref:r.xAxis.info.labelsCollection});this.calculatePositions(r.xAxis,i,1),r.xAxis.info.labelsCollection=i.ref,i={ref:r.yAxis.info.labelsCollection},this.calculatePositions(r.yAxis,i,1),r.yAxis.info.labelsCollection=i.ref}let t=this.getRedner3D(),i=s,l=1,o=this.getPositionZ(r),a=new __.d.StiXYAreaGeom3D(i,l,t),h=new __.d.StiXZAreaGeom3D(i,o,t),u=new __.d.StiZYAreaGeom3D(o,l,t),S=a.measureCientRect(),d=h.measureCientRect(),m=u.measureCientRect(),c=Rectangle.union(S,d),g=(c=Rectangle.union(c,m),this.contextScale=Math.min(e.height/c.height,e.width/c.width),e.x+(e.width-c.width*this.contextScale)/2),p=e.y+(e.height-c.height*this.contextScale)/2;this.contextTranslate=new Point(c.x*this.contextScale-g,c.y*this.contextScale-p)}calculateMinimumAndMaximumYAxis(e){let t=.1,i=(0<this.getSeries().length&&this.getSeries()[0].seriesLabels.is(__.d.StiOutsideEndAxisLabels)&&(t=.15),Math.min(t,Math.abs(4/((e.info.maximum+e.info.minimum)/2))));e.info.maximum*=1+i*Math.sign(e.info.maximum),e.info.minimum*=1-i*Math.sign(e.info.minimum),e.info.minimum==e.info.maximum&&(0==e.info.maximum?e.info.maximum=100:(e.info.minimum-=.1*e.info.minimum,e.info.maximum+=.1*e.info.maximum))}checkStartFromZeroYAxis(e){e.info.maximum<0&&(e.info.maximum=0),0<e.info.minimum&&(e.info.minimum=0)}calculateStepX(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(0).value-e.info.stripLines.getByIndex(1).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=1,e.info.stripPositions=[])}calculateStepY(e,t,i){2<=e.info.stripLines.count?(e.info.step=Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(i,t)):(e.info.step=1,e.info.stripPositions=[])}calculateStepZ(e,t,i){2<=e.info.stripLines.count?(e.info.step=-Math.abs((e.info.stripLines.getByIndex(1).value-e.info.stripLines.getByIndex(0).value)*e.info.dpi),e.core.calculateStripPositions(t,i)):(e.info.step=-1,e.info.stripPositions=[])}calculatePositions(s,e,t,i=!1){let r=[],n=0,l=s.info.stripPositions.length;for(let i=0;i<l;i++){if(0==n){let e=new __.d.StiStripPositionXF,t=i;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],r.push(e)}if(i==l-1&&0!=n){let e=s;if(null!=e&&e.showEdgeValues){let e=new __.d.StiStripPositionXF,t=l-1;e.stripLine=s.info.stripLines.getByIndex(t),e.position=s.info.stripPositions[t],r.push(e)}}++n==t&&(n=0)}e.ref=r}getPrePositionZ(e){if(e.is(__.d.StiClusteredColumnArea3D)&&!e.sideBySide)return e.xAxis.info.dpi*this.getSeries().length;return e.xAxis.info.dpi}getPositionZ(e){if(e.is(__.d.StiClusteredColumnArea3D)&&!e.sideBySide)return e.zAxis.info.dpi*this.getSeries().length;return e.zAxis.info.dpi}renderSeries(i,s,r,n,l){let e=n.area;if(e.is(__.d.StiClusteredColumnArea3D)&&e.sideBySide&&l.some(e=>e.is(IStiClusteredColumnSeries3D)))l[0].core.renderSideBySide(i,s,r,n,l);else for(let t=l.length-1;0<=t;t--){let e=l[t];e.core.renderSeries3D(i,s,r,n,t,l)}}renderGridLinesHorZY(r,n,l,o){let e=this.area,t=e.yAxis.info.stripPositions;if(0<t.length)for(let e of t)if(l.visible&&l.style!=StiPenStyle.None){let s=e+n.y;if(0<=s&&s<=n.height){let e=new __.d.StiPoint3D(n.x,s,n.z),t=new __.d.StiPoint3D(n.x,s,n.front),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesHorXY(r,n,l,o){let e=this.area,t=e.yAxis.info.stripPositions;if(0<t.length)for(let e of t)if(l.visible&&l.style!=StiPenStyle.None){let s=e+n.y;if(0<=s&&s<=n.height){let e=new __.d.StiPoint3D(n.x,s,n.z),t=new __.d.StiPoint3D(n.right,s,n.z),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesVertZX(r,n,l,o){let e=this.area,t=e.xAxis.info.stripPositions;if(0<t.length)for(let s of t)if(l.visible&&l.style!=StiPenStyle.None){let e=s+n.x;if(0<=e&&e<=n.right){let e=new __.d.StiPoint3D(s,n.y,n.z),t=new __.d.StiPoint3D(s,n.y,n.front),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}renderGridLinesVertXY(r,n,l,o){let e=this.area,t=e.xAxis.info.stripPositions;if(0<t.length)for(let s of t)if(l.visible&&l.style!=StiPenStyle.None){let e=s+n.x;if(0<=e&&e<=n.right){let e=new __.d.StiPoint3D(s,n.y,n.z),t=new __.d.StiPoint3D(s,n.top,n.z),i=new __.d.StiLineGeom3D(e,t,l.color,1,l.style,r);o.createChildGeoms(),o.childGeoms.push(i)}}}checkShowEdgeValues(e){0<e.info.stripLines.count&&(e.showEdgeValues||(e.info.stripLines.getByIndex(0).valueObject=null,e.info.stripLines.getByIndex(e.info.stripLines.count-1).valueObject=null))}calculateMinimumAndMaximumXAxis(e){}createStripLinesYAxis(l){if(this.area.getDefaultSeriesType()==__.d.StiFullStackedColumnSeries3D){let i=!1,s=!1,e=this.getSeries();for(let t of e)for(let e of t.values)0<e&&(i=!0),e<0&&(s=!0);let t=s?-100:0,r=i?100:0,n=(0==t&&0==r&&(r=100),__.d.StiStripLineCalculatorXF.getInterval(t,r,6));l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(t,r,n,!1);for(let e of l.info.stripLines.list)e.valueObject=StiString.format("{0}%",e.valueObject)}else{let e=__.d.StiStripLineCalculatorXF.getInterval(l.info.minimum,l.info.maximum,6),t=this.area.chart;t.isDashboard&&(l.labels.calculatedStep=e),l.info.stripLines=__.d.StiStripLineCalculatorXF.getStripLines(l.info.minimum,l.info.maximum,e,!1)}l.info.stripLines.list.reverse()}createStripLinesXAxis(s){for(let e=0;e<=this.valuesCount+1;e++)s.info.stripLines.add2(e,e);let t=this.getSeries();for(let e of t)for(let i=0;i<this.valuesCount;i++){let t=null;if(null!=e.arguments&&i<e.arguments.length&&null==(t=e.arguments[i]))continue;if(null!=t){let e=1+i;e<s.info.stripLines.count&&(s.info.stripLines.getByIndex(e).valueObject=t)}}}createStripLinesZAxis(t){let i=this.getSeries();for(let e=0;e<=i.length;e++)t.info.stripLines.add2(e,e)}checkStripLinesAndMaximumMinimumXAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}checkStripLinesAndMaximumMinimumYAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.maximum=100,e.info.minimum=0)}checkStripLinesAndMaximumMinimumZAxis(e){0<e.info.stripLines.count?(e.info.minimum=e.info.stripLines.getByIndex(0).value,e.info.maximum=e.info.stripLines.getByIndex(e.info.stripLines.count-1).value):(e.info.minimum=0,e.info.maximum=1)}getArgumentLabel(e,t){if(null==e)return"";let i=this.area;if(i.core.seriesOrientation==__.d.StiChartSeriesOrientation.Vertical)return i.xAxis.core.getLabelText(e,t);return""}prepareRange(e,t,i){}getDividerY(){let e=this.area;return this.calculateDivider(e.yAxis)}calculateDivider(t){let i=0;if(null!=t.info.stripLines)for(let e of t.info.stripLines.list){if(0==e.value)return t.info.stripPositions[i];i++}return 0}getRedner3D(){let e=this.area,t=new __.d.StiRender3D(1e3,1e3);return t.globalRotationX=e.rotationX,t.globalRotationY=e.rotationY,t.globalScale=e.scale,t.camera.position.x=e.cameraX,t.camera.position.y=e.cameraY,t.camera.position.z=e.cameraZ,t.camera.nearPlane=e.nearPlane,t.contextScale=this.contextScale,t.contextTranslate=this.contextTranslate,t}getFactorWidthHeight(e){let t=e.width/e.height;return t=(t=2<t?2:t)<1?1:t}constructor(e){super(e),this.valuesCount=0}},__.d.StiClusteredColumnAreaCoreXF3D=class extends __.d.StiAxisAreaCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","ClusteredColumn")}get position(){return __.d.StiChartAreaPosition.ClusteredColumn3d}prepareRange(e,i,t){let s=!0,r=(i.info.minimum=0,i.info.maximum=0,this.getSeries());for(let t of r)for(let e of t.values)null!=e&&(s?(i.info.maximum=e,i.info.minimum=e,s=!1):(i.info.maximum=Math.max(e,i.info.maximum),i.info.minimum=Math.min(e,i.info.minimum)))}constructor(e){super(e)}},__.d.StiLineAreaCoreXF3D=class extends __.d.StiClusteredColumnAreaCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","Line")}get position(){return __.d.StiChartAreaPosition.Line3d}constructor(e){super(e)}},__.d.StiStackedColumnAreaCoreXF3D=class extends __.d.StiAxisAreaCoreXF3D{prepareSeriesRange(e){let s=[],r=[],n=this.getSeries();for(let i=0;i<this.valuesCount;i++)for(let t of n)if(t[Stimulsoft.System.StiObject.stimulsoft]().getType()==e&&t.yAxis==__.d.StiSeriesYAxis.LeftYAxis&&(s.push(0),r.push(0),i<t.values.length)){let e=t.values[i];0<e?r[i]=r[i]+e:s[i]=s[i]+e}let t=[s,r];return t}prepareRange(e,t,i){let s=this.getSeries(),r=new Hashtable;for(let e of s)r.set(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),e[Stimulsoft.System.StiObject.stimulsoft]().getType());let n=[],l=[];for(let e of r.values){let t=this.prepareSeriesRange(e),i=0;for(let e of t[0])n.length<=i?n.push(e):n[i]=Math.min(n[i],e),i++;i=0;for(let e of t[1])l.length<=i?l.push(e):l[i]=Math.max(l[i],e),i++}let o=!0;for(let e of n)o?(t.info.minimum=e,o=!1):t.info.minimum=Math.min(e,t.info.minimum);o=!0;for(let e of l)o?(t.info.maximum=e,o=!1):t.info.maximum=Math.max(e,t.info.maximum)}get localizedName(){return"3D"+StiLocalization.get("Chart","StackedColumn")}get position(){return __.d.StiChartAreaPosition.StackedColumn3d}constructor(e){super(e)}},__.d.StiFullStackedColumnAreaCoreXF3D=class extends __.d.StiStackedColumnAreaCoreXF3D{get localizedName(){return"3D"+StiLocalization.get("Chart","FullStackedColumn")}get position(){return __.d.StiChartAreaPosition.FullStackedColumn3d}constructor(e){super(e)}},__.d.StiAxisCoreXF3D=class{implements(){let e=[ICloneable,__.d.IStiApplyStyle,__.d.IStiAxisCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.axis.allowApplyStyle&&(this.axis.lineColor=e.core.axisLineColor,this.axis.labels.core.applyStyle(e),this.axis.title.core.applyStyle(e))}getFontGeom(e){let t=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*e.options.zoom);return t}calculateStripPositions(t,e){if(e-=t,t=0,null==this.axis.info.stripLines||this.axis.info.stripLines.count<2)this.axis.info.stripPositions=[];else{this.axis.info.stripPositions=StiArray.create(Number,this.axis.info.stripLines.count),this.axis.info.stripPositions[0]=t,this.axis.info.stripPositions[this.axis.info.stripPositions.length-1]=e;for(let e=1;e<this.axis.info.stripPositions.length-1;e++)this.axis.info.stripPositions[e]=t+e*this.axis.info.step}}render3D(e,t,i){return null}getAxisTitleSize(e){if(StiString.isNullOrEmpty(this.axis.title.text))return SizeD.empty;let t=StiFontGeom.changeFontSize(this.axis.title.font,this.axis.title.font.size*e.options.zoom),i=e.measureString(this.axis.title.text,t);switch(this.axis.title.direction){case __.d.StiDirection.LeftToRight:case __.d.StiDirection.RightToLeft:return i;case __.d.StiDirection.BottomToTop:case __.d.StiDirection.TopToBottom:return new SizeD(i.height,i.width)}return SizeD.empty}getStringFormatGeom(e,t){let i=e.getGenericStringFormat();return i.trimming=StringTrimming.None,t||(i.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap),0<this.axis.labels.width&&(i.alignment=StringAlignment.Far),i}constructor(e){this.axis=e}},__.d.StiAxisInfoXF3D=class{constructor(){this.dpi=0,this.step=0,this.stripPositions=null,this.labelsCollection=null,this.minimum=0,this.maximum=0}implements(){let e=[ICloneable,__.d.IStiAxisInfoXF3D];return(this.implements=()=>e)()}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.stripLines=this.stripLines.clone(),e}get range(){return this.maximum-this.minimum}},__.d.StiAxisLabelInfoXF3D=class{},__.d.StiAxisLabelsCoreXF3D=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisLabelsCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.labels.allowApplyStyle&&(this.labels.color=e.core.axisLabelsColor)}constructor(e){this.labels=e}},__.d.StiAxisTitleCoreXF3D=class{implements(){let e=[__.d.IStiApplyStyle,ICloneable,__.d.IStiAxisTitleCoreXF3D];return(this.implements=()=>e)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}applyStyle(e){this.title.allowApplyStyle&&(this.title.color=e.core.axisTitleColor)}render(e,t,i){if(StiString.isNullOrEmpty(i.title.text))return null;let s=i.title.font.size*e.options.zoom,r=StiFontGeom.changeFontSize(i.title.font,s),n=this.getAngleTitle(i);return new __.d.StiAxisTitleGeom3D(i,t,n,r)}getAngleTitle(e){let t=0;switch(e.title.direction){case __.d.StiDirection.LeftToRight:t=0;break;case __.d.StiDirection.RightToLeft:t=180;break;case __.d.StiDirection.BottomToTop:t=-90;break;case __.d.StiDirection.TopToBottom:t=90;break}return t}constructor(e){this.title=e}},__.d.StiXAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{getAxisRect(e,t,i,s,r,n){let l=SizeF.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(e,null);if(0==o.length)l=new SizeF(0,0);else for(let e of o){if(e.clientSize.isEmpty)continue;l=l.isEmpty?e.clientSize:new SizeF(Math.max(l.width,e.clientSize.width),Math.max(l.height,e.clientSize.height))}return l}measureStripLines(S,d){let m=[],c=this.axis.labels.width,g=this.axis.labels.wordWrap;if(null!=this.axis.info.labelsCollection)for(let u of this.axis.info.labelsCollection){let e=u[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiStripPositionXF);if(null==e.stripLine.valueObject)continue;let i=this.getLabelText2(e.stripLine.valueObject,e.stripLine.value,null),t=(!g&&0<c&&(i=__.d.StiTextContentHelper.getMeasureText(S,i,this.axis.labels.font,c)),e.position),s=S.getGenericStringFormat(),r=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*S.options.zoom),n=-this.axis.labels.angle,l=0==n?StiRotationMode.CenterTop:StiRotationMode.RightTop,o=null;if(null!=d){let e=d;o=new __.d.StiPoint3D(t,e.y,e.front)}let a;if(0<this.axis.labels.width){let e=Math.floor(this.axis.labels.width*S.options.zoom),t=S.measureRotatedString2(i,r,new Rectangle,s,l,n,e);a=new SizeF(t.width,t.height)}else{let e=S.measureRotatedString2(i,r,new Rectangle,s,l,n);a=new SizeF(e.width,e.height)}if(0!=n&&null!=o){let e=new Point(o.x,o.y),t=S.measureRotatedString4(i,r,e,s,l,n);a=new SizeF(t.width,t.height)}let h=new __.d.StiAxisLabelInfoXF3D;h.clientSize=a,h.rotationMode=l,h.textPoint=o,h.text=i,h.stripLine=e.stripLine,h.angle=n,h.width=this.axis.labels.width,h.wordWrap=this.axis.labels.wordWrap,m.push(h)}return m}getLabelText(e,t){return this.getLabelText2(e.valueObject,e.value,t)}getLabelText2(i,e,s){null==i&&(i=""),this.storedCulture=CultureInfo.currentCulture;let r=this.axis.area.chart.report.culture;try{StiString.isNullOrEmpty(this.axis.area.chart.report.culture)||(CultureInfo.currentCulture=CultureInfo.cultures[r]);let t="";if(null!=(t=null!=(t=null!=s?s.format:t)&&0!=t.trim().length?t:this.axis.labels.format)&&0!=t.trim().length){if("string"==typeof i){let e=Stimulsoft.System.StiNumber.tryParse(i);if(e.successfully)i=e.result;else{let e=DateTime.fromString(i.toString(),!1);null!=e&&(i=e)}}else if(null==i)return"";if(!__.d.StiChartOptions.oldChartPercentMode&&t.startsWith("P")){let e=0;return 1<t.length&&(e=t[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1)[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,i,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+t+"}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,i,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(r)||(CultureInfo.currentCulture=this.storedCulture)}return i.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}render3D(e,t,i){if(!this.axis.visible)return null;let s=new __.d.StiXAxisGeom3D(t,i);return this.renderLabels(e,t,s,i),s}renderLabels(t,i,s,r){{let e=this.measureStripLines(t,i);s.createChildGeoms();for(let t of e)if(!t.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,t.clientSize,t.textPoint,t.text,t.stripLine,t.rotationMode,t.angle,t.width,t.wordWrap,r);s.childGeoms.push(e)}}}constructor(e){super(e)}},__.d.StiYAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{getAxisRect(e,t,i,s,r,n){let l=SizeF.empty;if(!this.axis.visible)return l;let o=this.measureStripLines(e,null);if(0==o.length)l=new SizeF(0,0);else for(let e of o){if(e.clientSize.isEmpty)continue;l=l.isEmpty?e.clientSize:new SizeF(Math.max(l.width,e.clientSize.width),Math.max(l.height,e.clientSize.height))}return l}measureStripLines(u,S){let d=[],m=Math.floor(this.axis.labels.width*u.options.zoom),c=this.axis.labels.wordWrap;if(null!=this.axis.info.labelsCollection)for(let h of this.axis.info.labelsCollection){let i=this.getLabelText(h.stripLine),t=(!c&&0<m&&(i=__.d.StiTextContentHelper.getMeasureText(u,i,this.axis.labels.font,m)),h.position),s=StiFontGeom.changeFontSize(this.axis.labels.font,this.axis.labels.font.size*u.options.zoom),r=Stimulsoft.Base.Drawing.StiRotationMode.RightCenter,n=-this.axis.labels.angle,l=u.getGenericStringFormat(),o=null;if(null!=S){let e=S;o=new __.d.StiPoint3D(e.x,t,e.front)}let a;if(0<this.axis.labels.width){let e=u.measureRotatedString2(i,s,new Rectangle,l,r,n,m);a=new SizeF(e.width,e.height)}else{let e=u.measureRotatedString2(i,s,new Rectangle,l,r,n);a=new SizeF(e.width,e.height)}if(0!=n&&null!=o){let e=new Point(o.x,o.y),t=u.measureRotatedString4(i,s,e,l,r,n);a=new SizeF(t.width,t.height)}let e=new __.d.StiAxisLabelInfoXF3D;e.clientSize=a,e.rotationMode=r,e.textPoint=o,e.text=i,e.stripLine=h.stripLine,e.angle=n,e.width=a.width,e.wordWrap=this.axis.labels.wordWrap,d.push(e)}return d}setTotalNumberCapacity(){let i,s=this.axis.labels.formatService.as(StiNumberFormatService);if(null!=s){let e=this.axis.labels.calculatedStep;if(0==e)return;let t=Math.abs(Math.trunc(Math.log10(e)));s.totalNumberCapacity=t,null!=(s=null==(i=this.axis.area.chart.seriesLabels.formatService)?void 0:i.as(StiNumberFormatService))&&(s.totalNumberCapacity=t)}}getLabelText(e){let t=e.valueObject;null==t&&(t="");try{if(null!=this.axis.labels.formatService){if(this.setTotalNumberCapacity(),t instanceof DateTime)return this.axis.labels.formatService.is(StiDateFormatService)||this.axis.labels.formatService.is(StiTimeFormatService)?``+this.axis.labels.textBefore+this.axis.labels.formatService.format(t)+this.axis.labels.textAfter:``+this.axis.labels.textBefore+t+this.axis.labels.textAfter;return``+this.axis.labels.textBefore+this.axis.labels.formatService.format(e.value)+this.axis.labels.textAfter}if(null!=this.axis.labels.format&&0!=this.axis.labels.format.trim().length){this.storedCulture=CultureInfo.currentCulture;let e=this.axis.area.chart.report.culture;StiString.isNullOrEmpty(this.axis.area.chart.report.culture)||(CultureInfo.currentCulture=CultureInfo.cultures[e]);try{if("string"==typeof t&&(t=t[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),!__.d.StiChartOptions.oldChartPercentMode&&this.axis.labels.format.startsWith("P")){let e=0;return 1<this.axis.labels.format.length&&(e=parseInt(this.axis.labels.format[Stimulsoft.System.StiObject.stimulsoft]().remove(0,1))),StiString.format("{0}{1:N"+e.toString()+"}{2}{3}",this.axis.labels.textBefore,t,"%",this.axis.labels.textAfter)}return StiString.format("{0}{1:"+this.axis.labels.format+"}{2}",this.axis.labels.textBefore,t,this.axis.labels.textAfter)}catch(e){}finally{StiString.isNullOrEmpty(e)||(CultureInfo.currentCulture=this.storedCulture)}}return StiString.format("{0}{1}{2}",this.axis.labels.textBefore,t,this.axis.labels.textAfter)}catch(e){}return t.toString().replace(".",",").replace(",",Stimulsoft.System.Globalization.CultureInfo.currentCulture.numberFormat.numberDecimalSeparator)}render3D(e,t,i){if(!this.axis.visible)return null;let s=new __.d.StiYAxisGeom3D(t,i);return this.renderLabels(e,t,s,i),s}renderLabels(t,i,s,l){{let e=this.measureStripLines(t,i),r=Rectangle.empty,n=[];for(let s of e)if(!s.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,s.clientSize,s.textPoint,s.text,s.stripLine,s.rotationMode,s.angle,s.width,s.wordWrap,l),t=!1,i=e.measureCientRect();(t=r==Rectangle.empty?(r=i,!0):!r.intersectsWith(i))&&(n.push(s),r=i)}for(let t of n)if(!t.clientSize.isEmpty){let e=new __.d.StiAxisLabelGeom3D(this.axis,t.clientSize,t.textPoint,t.text,t.stripLine,t.rotationMode,t.angle,t.width,t.wordWrap,l);s.createChildGeoms(),s.childGeoms.push(e)}}}constructor(e){super(e)}},__.d.StiZAxisCoreXF3D=class extends __.d.StiAxisCoreXF3D{render3D(e,t,i){return null}constructor(e){super(e)}};{class p6b{get rows(){var e;return null!=(e=this.grid.length)?e:0}get columns(){var e;return null!=(e=this.grid[0].length)?e:0}static deepCopy(e){return e.map(e=>e.slice())}getByIndex(e,t){return this.grid[e][t]}setByIndex(e,t,i){this.grid[e][t]=i}static multiply(l,o){let e=l.columns,t=l.rows,a=new p6b(StiArray.create2(Number,t,e));for(let n=0;n<a.rows;++n)for(let r=0;r<a.columns;++r)for(let s=0;s<l.columns;++s){let e=l.getByIndex(n,s),t=o.getByIndex(s,r),i=a.getByIndex(n,r);a.setByIndex(n,r,i+e*t)}return new p6b(a)}constructor(e){Array.isArray(e)?this.grid=p6b.deepCopy(e):this.grid=p6b.deepCopy(e.grid)}}__.d.StiMatrix=p6b}__.d.StiVector3=class{constructor(e,t,i){this.x=e,this.y=t,this.z=i}},__.d.StiVector4=class extends __.d.StiVector3{constructor(e,t,i,s){super(e,t,i),this.w=s}},__.d.StiSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF{renderSeries3D(e,t,i,s,r,n){return null}getSeriesColor(e,t,i){return null}constructor(e){super(e)}};{class ahb extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.color=t,this.series.borderColor=e.core.getColumnBorder(t))}get localizedName(){return"3D "+StiLocalization.get("Chart","ClusteredColumn")}renderSeries3D(e,t,i,s,r,n){if(null==n||0==n.length||null==this.series.chart)return;this.render(e,t,i,s,r,n)}render(u,S,e,t,i,s){let d=new List,r=t.area,m=r,c=0,g=m.axisCore.valuesCount*s.length,p=s[i];if(null==p)return;let _=0,f=0;if(p.columnShape==__.d.StiColumnShape3D.PartialPyramid)for(let e of s)_=Math.max(_,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max()),f=Math.min(f,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min());let C=m.xAxis.info.step*p.width,w=m.zAxis.info.step*p.length,b=this.measureZPosition(m,s.length-i-1)+m.zAxis.info.step*(1-p.length)/2;for(let h=0;h<m.axisCore.valuesCount;h++){let a=ahb.measureXPosition(m,h,C);if(h<p.values.length){let s=p.values[h],i=this.getSeriesColor(c,g,p.color),r=(i=p.processSeriesColors(c,i),p.core.getSeriesBorderColor(c,g)),n=ahb.getColumnRect3D(p,s,a,C,b,w),l=null;if(p.columnShape==__.d.StiColumnShape3D.Box)l=new __.d.StiBoxSeriesElementGeom3D(n,s,h,p,i,r,u);else if(p.columnShape==__.d.StiColumnShape3D.PartialPyramid){let e=0<s?_:f,t=ahb.getColumnRect3D(p,e,a,C,b,w);l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,n,s,h,p,i,r,u)}else l=new __.d.StiPyramidSeriesElementGeom3D(n,s,h,p,i,r,u);null!=p.core.interaction&&(l.interaction=this.getInteraction(m,p,h)),t.createChildGeoms(),t.childGeoms.push(l);let o=p.core.getSeriesLabels();if(null!=o&&o.visible){let e=h+1,t=m.axisCore.getArgumentLabel(m.xAxis.info.stripLines.getByIndex(e),p),i=o.core.renderLabel3D(u,this.series,S,n,h,s,s,t,p.core.getTag(h),0,c,g);null!=i&&d.add(i)}}c++}for(let e of d)t.createChildGeoms(),t.childGeoms.push(e)}renderSideBySide(p,_,e,t,i){let f=new List,s=t.area,C=s,w=0,b=C.axisCore.valuesCount*i.length,r=0;for(let e of i)r+=C.xAxis.info.step/i.length*e.width;for(let g=0;g<C.axisCore.valuesCount;g++)for(let e=0;e<i.length;e++){let a=i[e],h=0,u=0;if(a.columnShape==__.d.StiColumnShape3D.PartialPyramid)for(let e of i)h=Math.max(h,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().max()),u=Math.min(u,e.values[Stimulsoft.System.StiObject.stimulsoft]().toList().min());let S=C.zAxis.info.step*a.length,d=C.xAxis.info.step/i.length*a.width,m=C.zAxis.info.step*(1-a.length)/2,c=this.measureLeftPosition(s,g,r);for(let t=0;t<e;t++){let e=i[t].width;c+=C.xAxis.info.step/i.length*e}if(g<a.values.length){let s=a.values[g],i=this.getSeriesColor(w,b,a.color),r=(i=a.processSeriesColors(w,i),a.core.getSeriesBorderColor(w,b)),n=ahb.getColumnRect3D(a,s,c,d,m,S),l=null;if(a.columnShape==__.d.StiColumnShape3D.Box)l=new __.d.StiBoxSeriesElementGeom3D(n,s,g,a,i,r,p);else if(a.columnShape==__.d.StiColumnShape3D.PartialPyramid){let e=0<s?h:u,t=ahb.getColumnRect3D(a,e,c,d,m,S);l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,n,s,g,a,i,r,p)}else l=new __.d.StiPyramidSeriesElementGeom3D(n,s,g,a,i,r,p);null!=a.core.interaction&&(l.interaction=this.getInteraction(C,a,g)),t.createChildGeoms(),t.childGeoms.push(l);let o=a.core.getSeriesLabels();if(null!=o&&o.visible){let e=g+1,t=C.axisCore.getArgumentLabel(C.xAxis.info.stripLines.getByIndex(e),a),i=o.core.renderLabel3D(p,this.series,_,n,g,s,s,t,a.core.getTag(g),0,w,b);null!=i&&f.add(i)}}w++}for(let e of f)t.createChildGeoms(),t.childGeoms.push(e)}measureLeftPosition(e,t,i){let s=e.xAxis.info.stripPositions[t+1],r=(s-=e.xAxis.info.step/2)+(e.xAxis.info.step-i)/2;return r}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}static measureXPosition(e,t,i){let s=e.xAxis.info.stripPositions[t+1];return s-=i/2}measureZPosition(e,t){return e.zAxis.info.stripPositions[t]}static getColumnRect3D(e,t,i,s,r,n){let l=e.chart.area,o=l.axisCore.getDividerY(),a=t*l.yAxis.info.dpi,h=new __.d.StiRectangle3D;return h.x=i,h.y=o,h.z=r,h.width=n,h.height=a,h.length=s,h}constructor(e){super(e)}}__.d.StiClusteredColumnSeriesCoreXF3D=ahb}__.d.StiLineSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t),this.series.allowApplyStyle&&(this.series.lineColor=t)}get localizedName(){return"3D "+StiLocalization.get("Chart","Line")}renderSeries3D(m,l,e,c,t,i){let s=c.area;if(null==i||0==i.length||null==this.series.chart)return;let g=s,p=0,_=g.axisCore.valuesCount*i.length,f=i[t];if(null==f)return;let C=g.xAxis.info.step*f.width,w=this.measureZPosition(g,i.length-t-1)+g.zAxis.info.step*(1-f.width)/2;for(let d=0;d<g.axisCore.valuesCount;d++){if(f.values.length-1<d)continue;let S=f.values[d];if(d<f.values.length-1){let e=g.axisCore.getDividerY(),t=f.lineColor,i=f.core.getSeriesBorderColor(p,_),s=f.values[d+1],r=this.measureXPosition(g,d),n=S*g.yAxis.info.dpi,l=new __.d.StiPoint3D(r,e+n,w),o=new __.d.StiPoint3D(r,e+n,w-C),a=(r=this.measureXPosition(g,d+1),n=s*g.yAxis.info.dpi,new __.d.StiPoint3D(r,e+n,w-C)),h=new __.d.StiPoint3D(r,e+n,w),u=new __.d.StiLineSeriesGeom3D(l,o,a,h,t,i,m);c.createChildGeoms(),c.childGeoms.push(u)}let n=f.core.getSeriesLabels();if(null!=n&&n.visible){let e=this.measureXPosition(g,d),t=__.d.StiClusteredColumnSeriesCoreXF3D.getColumnRect3D(f,S,e,0,w-C/2,0),i=d+1,s=g.axisCore.getArgumentLabel(g.xAxis.info.stripLines[i],f),r=n.core.renderLabel3D(m,this.series,l,t,d,S,S,s,f.core.getTag(d),0,p,_);null!=r&&(c.createChildGeoms(),c.childGeoms.push(r))}}}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}measureXPosition(e,t){return e.xAxis.info.stripPositions[t+1]}measureZPosition(e,t){return e.zAxis.info.stripPositions[t]}constructor(e){super(e)}},__.d.StiStackedColumnSeriesCoreXF3D=class extends __.d.StiSeriesCoreXF3D{applyStyle(e,t){super.applyStyle(e,t);let i=this.series;i.allowApplyStyle&&(i.color=t,i.borderColor=e.core.getColumnBorder(t))}get localizedName(){return"3D"+StiLocalization.get("Chart","StackedColumn")}renderSeries3D(C,w,e,t,i,s){if(null==s||0==s.length||null==this.series.chart)return;let b=[],r=t.area,y=r,n=s[0],x=n.columnShape!=__.d.StiColumnShape3D.Box,A=y.zAxis.info.step*n.length,L=y.xAxis.info.step*n.width,T=y.zAxis.info.step*(1-n.length)/2,D=y.yAxis.info.dpi,v=StiArray.create2(Number,y.axisCore.valuesCount,s.length),l=0;for(let t=0;t<s.length;t++)for(let e=0;e<s[t].values.length;e++)v[e][t]=l,l++;let F=l,B=!1;for(let i=0;i<y.axisCore.valuesCount;i++){for(let e=0;e<s.length;e++){let t=s[e];if(i<t.values.length){let e=t.values[i];if(e<0){B=!0;break}}}if(B)break}for(let f=0;f<y.axisCore.valuesCount;f++){let S=__.d.StiClusteredColumnSeriesCoreXF3D.measureXPosition(y,f,L),d=0,m=0,c=[],g=[],p=0,_=0;for(let e=0;e<s.length;e++){let t=s[e];if(f<t.values.length){let e=t.values[f];0<e?p+=e:_+=e}}for(let u=0;u<s.length;u++){let a=y.axisCore.getDividerY(),h=s[u];if(f<h.values.length){let t=v[f][u],i=h.values[f];if(this.series.is(__.d.IStiFullStackedColumnSeries3D)&&(0!=p||0!=_)&&null!=i){let e=B?.5:1;D=0<=i?e/p:e/Math.abs(_)}let e=i*D,s=(a+=0<i?d:m,new __.d.StiRectangle3D),r=(s.x=S,s.y=a,s.z=T,s.width=A,s.height=e,s.length=L,this.getSeriesColor(t,F,h.color)),n=(r=h.processSeriesColors(t,r),h.core.getSeriesBorderColor(t,F)),l=null;if(x){let e=0<i?p*D:_*D,t=new __.d.StiRectangle3D;t.x=S,t.y=y.axisCore.getDividerY(),t.z=T,t.width=A,t.height=e,t.length=L,l=new __.d.StiPartialPyramidSeriesElementGeom3D(t,s,i,f,h,r,n,C)}else l=new __.d.StiBoxSeriesElementGeom3D(s,i,f,h,r,n,C);null!=h.core.interaction&&(l.interaction=this.getInteraction(y,h,f));let o=h.core.getSeriesLabels();if(null!=o&&o.visible){let e=o.core.renderLabel3D(C,this.series,w,s,f,i,i,"",h.core.getTag(f),0,t,F);null!=e&&b.push(e)}(0<i?c:g).push(l),0<i?d+=e:m+=e}}g.reverse();for(let t=0;t<g.length;t++){let e=g[t];e.is(__.d.IStiDrawSidesGeom3D)&&(e.drawLeft=!1,e.drawBack=!1,e.drawTop=0==t,e.drawBottom=0==c.length&&t==g.length-1)}for(let t=0;t<c.length;t++){let e=c[t];e.is(__.d.IStiDrawSidesGeom3D)&&(e.drawLeft=!1,e.drawBack=!1,e.drawBottom=0==g.length&&0==t,e.drawTop=t==c.length-1)}for(let e of g)t.createChildGeoms(),t.childGeoms.push(e);for(let e of c)t.createChildGeoms(),t.childGeoms.push(e)}for(let e of b)t.createChildGeoms(),t.childGeoms.push(e)}getSeriesBorderColor(e,t){let i=super.getSeriesBorderColor(e,t);if(null==i)return this.series.borderColor;return i}getSeriesColor(t,i,e){if(null==this.series.chart||null==this.series.chart.area)return e;if(this.series.chart.area.colorEach&&StiString.isNullOrEmpty(this.series.autoSeriesColorDataColumn)){let e=null!=this.series.chart.style?this.series.chart.style.core:new __.d.StiStyleCoreXF29;return e.getColorByIndex(t,i,this.seriesColors)}return e}constructor(e){super(e)}},__.d.StiFullStackedColumnSeriesCoreXF3D=class extends __.d.StiStackedColumnSeriesCoreXF3D{get localizedName(){return"3D "+StiLocalization.get("Chart","FullStackedColumn")}constructor(e){super(e)}},__.d.StiAxisSeriesLabelsCoreXF3D=class extends __.d.StiSeriesLabelsCoreXF{get seriesLabelsType(){return __.d.StiSeriesLabelsType.Axis}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){return null}constructor(e){super(e)}},__.d.StiCenterAxisLabelsCoreXF3D=class extends __.d.StiAxisSeriesLabelsCoreXF3D{get position(){return __.d.StiSeriesLabelsPosition.CenterAxis}get localizedName(){return StiLocalization.get(
11
+ "Chart","LabelsCenter")}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){null==n&&(n=0);let d=this.getLabelText(t,l=null==l?0:l,o,a,t.coreTitle,!1),m=this.getLabelColor(t,u,S),c=this.getBorderColor(t,u,S),g=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*i.options.zoom),p=t.core.getSeriesBorderColor(u,S),_=t.core.getSeriesBrush(u,S),f=this.processSeriesColors(r,this.seriesLabels.brush,t),C=this.getPointLabel(s);return new __.d.StiCenterAxisLabelsGeom3D(this.seriesLabels,t,r,n,d,m,c,_,f,p,g,C,e)}getPointLabel(e){return new __.d.StiPoint3D(e.x+e.length/2,e.y+e.height/2,e.front)}constructor(e){super(e)}},__.d.StiOutsideAxisLabelsCoreXF3D=class extends __.d.StiCenterAxisLabelsCoreXF3D{get position(){return __.d.StiSeriesLabelsPosition.OutsideAxis}get localizedName(){return StiLocalization.get("Chart","LabelsOutside")}renderLabel3D(e,t,i,s,r,n,l,o,a,h,u,S){null==n&&(n=0);let d=this.getLabelText(t,l=null==l?0:l,o,a,t.coreTitle,!1),m=this.getLabelColor(t,u,S),c=this.getBorderColor(t,u,S),g=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*i.options.zoom),p=t.core.getSeriesBorderColor(u,S),_=t.core.getSeriesBrush(u,S),f=this.processSeriesColors(r,this.seriesLabels.brush,t),C=this.getPointLabel2(s,n);return new __.d.StiOutsideAxisLabelsGeom3D(this.seriesLabels,t,r,n,d,m,c,_,f,p,g,C,e)}getPointLabel2(e,t){let i=0<t?e.height:-e.height;return new __.d.StiPoint3D(e.x+e.length/2,e.y+i,e.front)}constructor(e){super(e)}};let IStiColor=__.e.IStiColor,IStiBorderColor=__.e.IStiBorderColor;{class l9b extends __.d.StiCellGeom{static multiplyVertexes(r,n){let e=new __.d.StiMatrix(StiArray.create2(Number,r.rows,n.columns));for(let s=0;s<r.rows;s++)for(let i=0;i<n.columns;i++){let t=0;for(let e=0;e<r.columns;e++)t+=r.grid[s][e]*n.grid[e][i];e.setByIndex(s,i,t)}return e}normilizeVertixes(n){for(let r=0;r<n.rows;r++){let e=n.grid[r][0],t=n.grid[r][1],i=n.grid[r][2],s=n.grid[r][3];n.grid[r][0]=e/s,n.grid[r][1]=t/s,n.grid[r][2]=i/s,n.grid[r][3]=s/s}return n}globalTransform(){if(this.isGlobalTransform)return;this.translate(new __.d.StiVector3(-.5,-.5,1)),this.rotateX(this.render.globalRotationX*Math.PI/180),this.rotateY(this.render.globalRotationY*Math.PI/180),this.scale(this.render.globalScale),this.isGlobalTransform=!0}getPoints(){this.globalTransform();let s=this.screenProjection(),r=new List;for(let i=0;i<s.rows;i++){let e=s.grid[i][0],t=s.grid[i][1];r.add(this.getPointN(e,t))}return r}draw(e){if(null==this.vertexes)return;this.globalTransform();let t=this.screenProjection();this.drawElements(e,t)}measureCientRect(){this.globalTransform();let s=this.screenProjection(),r=new List;for(let i=0;i<s.rows;i++){let e=s.grid[i][0],t=s.grid[i][1];r.add(new PointF(e,t))}return this.getClientRectangle(r)}getClientRectangle(t){let i=0,s=0,r=0,n=0,l=!0;for(let e of t)l?(i=e.x,s=e.y,r=e.x,r=e.y,l=!1):(i=Math.min(i,e.x),s=Math.min(s,e.y),r=Math.max(r,e.x),n=Math.max(n,e.y));return new Rectangle(i,s,r-i,n-s)}screenProjection(){let e=l9b.multiplyVertexes(this.vertexes,this.render.camera.cameraMatrix());return e=l9b.multiplyVertexes(e,this.render.projection.projectionMatrix),e=this.normilizeVertixes(e),l9b.multiplyVertexes(e,this.render.projection.toScreenMatrix)}drawElements(n,t){n.pushSmoothingModeToAntiAlias();for(let r=0;r<this.faces.length;r++){let e=this.faces[r],s=this.getFacePolygonPoints(e,t);if(this.is(IStiColor)&&2<s.length){let e=new List,t=(e.add(new StiLinesSegmentGeom(s)),null==this.colorsFaces?this.color:this.colorsFaces[r]),i=null;this.is(__.d.StiSeriesElementGeom3D)&&(i=this.getInteractionData()),n.fillPath2(t,e,Rectangle.empty,i,this.getToolTip())}}this.drawBorder(n,t),n.popSmoothingMode()}getToolTip(){return null}drawBorder(i,s){let r=this.getBorderColor();if(null==r)return;for(let t=0;t<this.faces.length;t++){let e=this.faces[t];this.drawFaceBorder(i,s,e,r)}}drawFaceBorder(e,s,r,t){let n=new List;for(let i=0;i<r.length;i++){let e=r[i],t=this.getPoint(s,e);n.add(t)}n.add(n[0]),e.drawLines(new StiPenGeom(t,1),n)}getFacePolygonPoints(r,n){let l=new List;for(let s=0;s<r.length;s++){let e=r[s],t=n.grid[e][0],i=n.grid[e][1];l.add(this.getPointN(t,i))}return l}getBorderColor(){var e;if(this.is(IStiBorderColor)&&null!=this.borderColor&&0!=(null==(e=this.borderColor)?void 0:e.a))return 10<this.borderColor.a?this.borderColor:Color.white;return null}getPoint(e,t){let i=e.grid[t][0],s=e.grid[t][1];return this.getPointN(i,s)}getPointN(e,t){let i=e*this.render.contextScale-this.render.contextTranslate.x,s=t*this.render.contextScale-this.render.contextTranslate.y;return new PointF(i,s)}translate(e){let t=__.d.StiMatrixHelper.translate(e.x,e.y,e.z);this.vertexes=l9b.multiplyVertexes(this.vertexes,t)}scale(e){let t=__.d.StiMatrixHelper.scale(e);this.vertexes=l9b.multiplyVertexes(this.vertexes,t)}rotateX(e){let t=__.d.StiMatrixHelper.rotateX(e);this.vertexes=l9b.multiplyVertexes(this.vertexes,t)}rotateY(e){let t=__.d.StiMatrixHelper.rotateY(e);this.vertexes=l9b.multiplyVertexes(this.vertexes,t)}rotateZ(e){let t=__.d.StiMatrixHelper.rotateZ(e);this.vertexes=l9b.multiplyVertexes(this.vertexes,t)}constructor(e){super(Rectangle.empty),this.drawEdges=!0,this.render=e}}__.d.StiGeom3D=l9b}__.d.StiLineGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=new StiPenGeom(this.color,1),s=(i.penStyle=this.penStyle,i.thickness=this.lineWidth,this.getPointN(t.grid[0][0],t.grid[0][1])),r=this.getPointN(t.grid[1][0],t.grid[1][1]);e.pushSmoothingModeToAntiAlias(),e.drawLine(i,s.x,s.y,r.x,r.y),e.popSmoothingMode()}constructor(e,t,i,s,r,n){super(n),this.color=i,this.penStyle=r,this.lineWidth=s,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1]])}},__.d.StiPlaneGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiColor]);return(this.implements=()=>e)()}constructor(e,t,i,s,r,n){super(n),this.color=r,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1],[i.x,i.y,i.z,1],[s.x,s.y,s.z,1]]),this.faces=new List,this.faces.add([0,1,2,3]),this.colorsFaces=[r]}};let StiStringFormatGeom=Stimulsoft.Base.Context.StiStringFormatGeom,StringFormat=Stimulsoft.System.Drawing.StringFormat;__.d.StiTextGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=new Rectangle;l.x=n.x-i.width/2,l.y=n.y-i.height/2,l.width=i.width,l.height=i.height,this.drawText(e,l)}drawText(e,t){let i=new StiSolidBrush(this.color),s=this.getStringFormat();e.drawRotatedString6(this.text,this.font,i,t,s,this.mode,this.angle,!0,t.width)}getStringFormat(){let e=new StringFormat;switch(e.trimming=StringTrimming.None,e.formatFlags=StringFormatFlags.MeasureTrailingSpaces|StringFormatFlags.NoWrap,this.mode){case StiRotationMode.CenterCenter:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.LeftCenter:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.RightCenter:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Center;break;case StiRotationMode.CenterTop:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.CenterBottom:e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Far;break;case StiRotationMode.RightTop:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.LeftTop:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Near;break;case StiRotationMode.LeftBottom:e.alignment=StringAlignment.Near,e.lineAlignment=StringAlignment.Far;break;case StiRotationMode.RightBottom:e.alignment=StringAlignment.Far,e.lineAlignment=StringAlignment.Far;break}let t=new StiStringFormatGeom(e);return t.isGeneric=!0,t}getLabelRect(e){return e.measureString(this.text,this.font)}constructor(e,t,i,s,r,n,l){super(l),this.text=e,this.font=t,this.color=i,this.mode=s,this.angle=r,this.vertexes=new __.d.StiMatrix([[n.x,n.y,n.z,1]])}},__.d.StiAreaGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiColor]);return(this.implements=()=>e)()}constructor(e){super(e)}},__.d.StiAxisAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e){super(e)}},__.d.StiAxisAreaViewGeom3D=class extends __.d.StiAreaGeom{draw(e){}drawGeom(e){super.drawGeom(e)}drawChildGeoms(t){if(null!=this.childGeoms){let e=this.clientRectangle.clone();e.x=0,e.y=0,t.pushTranslateTransform(this.clientRectangle.x,this.clientRectangle.y);for(let e of this.childGeoms)this.allowChildDrawing(e)&&e.drawGeom(t);t.popTransform()}}constructor(e,t,i){super(e,t),this.render=i}},__.d.StiXYAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[0,t,0,1],[e,t,0,1],[e,0,0,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiXZAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[e,0,0,1],[e,0,-t,1],[0,0,-t,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiZYAreaGeom3D=class extends __.d.StiAreaGeom3D{constructor(e,t,i){super(i),this.vertexes=new __.d.StiMatrix([[0,0,0,1],[0,t,0,1],[0,t,-e,1],[0,0,-e,1]]),this.faces=new List,this.faces.add([0,1,2,3])}},__.d.StiAxisLabelGeom3D=class extends __.d.StiGeom3D{drawElements(e,t){let i=t.grid[0][0],s=t.grid[0][1],r=this.getPointN(i,s),n=this.axis.core.getFontGeom(e),l=this.axis.core.getStringFormatGeom(e,this.wordWrap),o=new StiSolidBrush(this.axis.labels.color),a=this.width*e.options.zoom;e.drawRotatedString9(this.text,n,o,r,l,this.rotationMode,this.angle,!0,a)}measureCientRect(){this.globalTransform();let e=this.screenProjection(),t=e.grid[0][0],i=e.grid[0][1],s=this.getPointN(t,i);return new Rectangle(s.x,s.y,this.clientSize.width,this.clientSize.height)}constructor(e,t,i,s,r,n,l,o,a,h){super(h),this.axis=e,this.clientSize=t,this.text=s,this.stripLine=r,this.rotationMode=n,this.angle=l,this.width=o,this.wordWrap=a;let u=i,S=this.getPointN(u.x,u.y);this.clientRectangle=new Rectangle(S.x,S.y,t.width,t.height),this.vertexes=new __.d.StiMatrix([[u.x,u.y,u.z,1]])}},__.d.StiAxisTitleGeom3D=class extends __.d.StiCellGeom{draw(e){let t=new StiSolidBrush(this.axis.title.color),i=e.getDefaultStringFormat();e.drawRotatedString5(this.axis.title.text,this.font,t,this.clientRectangle,i,StiRotationMode.CenterCenter,this.angle,!0)}constructor(e,t,i,s){super(t),this.axis=e,this.angle=i,this.font=s}},__.d.StiXAxisGeom3D=class extends __.d.StiGeom3D{constructor(e,t){super(t)}},__.d.StiYAxisGeom3D=class extends __.d.StiGeom3D{constructor(e,t){super(t)}},__.d.StiLegendColumnMarker3D=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(r,n,l,o,a,e){try{let e=n,t=n.core.getSeriesColor(o,a,e.color),i=(t=n.processSeriesColors(o,t),new StiSolidBrush(t)),s=new StiPenGeom(n.core.getSeriesBorderColor(o,a));null!=n.chart&&null!=n.chart.style&&n.chart.style.core.fillColumn(r,l,i,null),r.drawRectangle2(s,l.x,l.y,l.width,l.height)}catch(e){}}},__.d.StiLegendLineMarker3D=class{implements(){let e=[__.d.IStiLegendMarker];return(this.implements=()=>e)()}draw(s,r,n,l,o,e){try{let e=r,t=new StiSolidBrush(r.processSeriesColors(l,e.lineColor)),i=new StiPenGeom(r.core.getSeriesBorderColor(l,o));null!=r.chart&&null!=r.chart.style&&r.chart.style.core.fillColumn(s,n,t,null),s.drawRectangle2(i,n.x,n.y,n.width,n.height)}catch(e){}}},__.d.StiSeriesElementGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([__.d.IStiSeriesElement]);return(this.implements=()=>e)()}getInteractionData(){let e=this.series.chart,t=new StiInteractionDataGeom;return t.componentName=e.name,t.componentIndex=null!=e.page?e.page.components.indexOf(e).toString():"",t.pageGuid=this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownEnabled?this.series[Stimulsoft.System.StiObject.stimulsoft]().as(__.d.StiSeries).drillDownPageGuid:"",t.pageIndex=null!=e.page?e.page.report.renderedPages.indexOf(e.page).toString():"",t.elementIndex=this.elementIndex.toString(),t.interactionData=this.interaction,t}getValueIndex(){let e=this.index;return this.series.is(__.d.IStiClusteredBarSeries)||this.series.is(__.d.IStiStackedBarSeries)||this.series.is(__.d.IStiFullStackedBarSeries)?this.series.chart.area.is(__.d.IStiAxisArea)&&!this.series.chart.area.reverseVert&&(e=this.series.values.length-e-1):this.series.chart.area.is(__.d.IStiAxisArea)&&this.series.chart.area.reverseHor&&(e=this.series.values.length-e-1),e}getToolTip(){let e=this.getValueIndex();return this.getToolTip2(e)}getToolTip2(e){let t=null;return null!=this.series.toolTips&&e<this.series.toolTips.length&&(t=this.series.toolTips[e]),t=!StiString.isNullOrEmpty(t)&&t.includes('"StiColor":"#ffffff"')?t.replace('"StiColor":"#ffffff"',StiString.format('"StiColor":"{0}"',Stimulsoft.System.Drawing.ColorTranslator.toHtml2(this.seriesColor,!1))):t}constructor(e,t,i,s,r){super(e),this.series=s,this.value=t,this.index=i,this.seriesColor=r}},__.d.StiBoxSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor,__.d.IStiDrawSidesGeom3D]);return(this.implements=()=>e)()}get backFace(){return[4,5,6,7]}get leftFace(){return[0,4,5,1]}get bottomFace(){return[0,3,7,4]}get topFace(){return[1,2,6,5]}get rightFace(){return[2,3,7,6]}get frontFace(){return[0,1,2,3]}get columnRect3D(){return this._columnRect3D}set columnRect3D(e){this._columnRect3D=e,this.setVertexes(e)}get drawLeft(){return this._drawLeft}set drawLeft(e){this._drawLeft=e,this.buildFaces(),this.buildColorFaces()}get drawBack(){return this._drawBack}set drawBack(e){this._drawBack=e,this.buildFaces(),this.buildColorFaces()}get drawTop(){return this._drawTop}set drawTop(e){this._drawTop=e,this.buildFaces(),this.buildColorFaces()}get drawBottom(){return this._drawBottom}set drawBottom(e){this._drawBottom=e,this.buildFaces(),this.buildColorFaces()}setVertexes(e){this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z+e.width,1],[e.x,e.y+e.height,e.z+e.width,1],[e.x+e.length,e.y+e.height,e.z+e.width,1],[e.x+e.length,e.y,e.z+e.width,1],[e.x,e.y,e.z,1],[e.x,e.y+e.height,e.z,1],[e.x+e.length,e.y+e.height,e.z,1],[e.x+e.length,e.y,e.z,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}buildFaces(){let e=new List;e.add(this.rightFace),e.add(this.frontFace),this.drawTop&&e.insert(0,this.topFace),this.drawBottom&&e.insert(0,this.bottomFace),this.drawBack&&e.insert(0,this.backFace),this.drawLeft&&e.insert(0,this.leftFace),this.faces=e}buildColorFaces(){let e=[];e.push(StiColorUtils.changeDarkness(this.color,.4)),e.push(this.color),this.drawTop&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBottom&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBack&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawLeft&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.colorsFaces=e}getFacePolygonPoints(r,n){let l=new List;if(this.isTopFace(r)&&!this.isDrawTopFace(n))return l;if(this.isBottomFace(r)&&!this.isDrawBottomFace(n))return l;for(let s=0;s<r.length;s++){let e=r[s],t=n.grid[e][0],i=n.grid[e][1];l.add(this.getPointN(t,i))}return l}isTopFace(t){if(t.length!=this.topFace.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!=this.topFace[e])return!1;return!0}isBottomFace(t){if(t.length!=this.bottomFace.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!=this.bottomFace[e])return!1;return!0}isDrawTopFace(e){let t=this.getPoint(e,1),i=this.getPoint(e,5);return 0<this.columnRect3D.height?t.y>i.y:t.y<i.y}isDrawBottomFace(e){let t=this.getPoint(e,0),i=this.getPoint(e,4);return 0<this.columnRect3D.height?t.y<i.y:t.y>i.y}constructor(e,t,i,s,r,n,l){super(l,t,i,s,r),this._drawLeft=!0,this._drawBack=!0,this._drawTop=!0,this._drawBottom=!0,this.columnRect3D=e,this.color=r,this.borderColor=n,this.buildFaces(),this.buildColorFaces()}},__.d.StiLineSeriesGeom3D=class extends __.d.StiGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor]);return(this.implements=()=>e)()}constructor(e,t,i,s,r,n,l){super(l),this.color=r,this.borderColor=n,this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z,1],[t.x,t.y,t.z,1],[i.x,i.y,i.z,1],[s.x,s.y,s.z,1]]),this.faces=new List,this.faces.insert(0,[0,1,2,3]);let o=e.y>=i.y?r:StiColorUtils.changeDarkness(r,.4);this.colorsFaces=[o]}},__.d.StiPartialPyramidSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor,__.d.IStiDrawSidesGeom3D]);return(this.implements=()=>e)()}get backFace(){return[4,5,6,7]}get leftFace(){return[0,4,5,1]}get bottomFace(){return[0,3,7,4]}get topFace(){return[1,2,6,5]}get rightFace(){return[2,3,7,6]}get frontFace(){return[0,1,2,3]}get drawLeft(){return this._drawLeft}set drawLeft(e){this._drawLeft=e,this.buildFaces(),this.buildColorFaces()}get drawBack(){return this._drawBack}set drawBack(e){this._drawBack=e,this.buildFaces(),this.buildColorFaces()}get drawTop(){return this._drawTop}set drawTop(e){this._drawTop=e,this.buildFaces(),this.buildColorFaces()}get drawBottom(){return this._drawBottom}set drawBottom(e){this._drawBottom=e,this.buildFaces(),this.buildColorFaces()}setVertexes(e,t){let i=e.height/(t.y-e.y),s=e.height/(t.top-e.y),r=t.length/s/2,n=e.width/s/2,l=t.length/i/2,o=e.width/i/2;this.vertexes=new __.d.StiMatrix([[e.x+l,t.y,e.z+e.width-o,1],[e.x+r,t.y+t.height,e.z+e.width-n,1],[e.x+e.length-r,t.y+t.height,e.z+e.width-n,1],[e.x+e.length-l,t.y,e.z+e.width-o,1],[e.x+l,t.y,e.z+o,1],[e.x+r,t.y+t.height,e.z+n,1],[e.x+e.length-r,t.y+t.height,e.z+n,1],[e.x+e.length-l,t.y,e.z+o,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}buildFaces(){let e=new List;e.add(this.rightFace),e.add(this.frontFace),this.drawTop&&e.insert(0,this.topFace),this.drawBottom&&e.insert(0,this.bottomFace),this.drawBack&&e.insert(0,this.backFace),this.drawLeft&&e.insert(0,this.leftFace),this.faces=e}buildColorFaces(){let e=[];e.push(StiColorUtils.changeDarkness(this.color,.4)),e.push(this.color),this.drawTop&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBottom&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawBack&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.drawLeft&&e.splice(0,0,StiColorUtils.changeDarkness(this.color,.4)),this.colorsFaces=e}constructor(e,t,i,s,r,n,l,o){super(o,i,s,r,n),this._drawLeft=!0,this._drawBack=!0,this._drawTop=!0,this._drawBottom=!0,this.rect3D=e,this.partialRect3D=t,this.setVertexes(e,t),this.color=n,this.borderColor=l,this.buildFaces(),this.buildColorFaces()}},__.d.StiPyramidSeriesElementGeom3D=class extends __.d.StiSeriesElementGeom3D{implements(){let e=super.implements().concat([IStiBorderColor,IStiColor]);return(this.implements=()=>e)()}get columnRect3D(){return this._columnRect3D}set columnRect3D(e){this._columnRect3D=e,this.setVertexes(e)}get backFace(){return[3,1,4]}get leftFace(){return[0,1,3]}get bottomFace(){return[0,3,4,2]}get rightFace(){return[2,1,4]}get frontFace(){return[0,1,2]}setVertexes(e){this.vertexes=new __.d.StiMatrix([[e.x,e.y,e.z+e.width,1],[e.x+e.length/2,e.y+e.height,e.z+e.width/2,1],[e.x+e.length,e.y,e.z+e.width,1],[e.x,e.y,e.z,1],[e.x+e.length,e.y,e.z,1]])}drawBorder(e,t){let i=this.getBorderColor();if(null==i)return;this.drawFaceBorder(e,t,this.frontFace,i),this.drawFaceBorder(e,t,this.rightFace,i)}constructor(e,t,i,s,r,n,l){super(l,t,i,s,r),this.columnRect3D=e,this.color=r,this.borderColor=n,this.faces=new List,this.faces.add(this.backFace),this.faces.add(this.leftFace),this.faces.add(this.bottomFace),this.faces.add(this.rightFace),this.faces.add(this.frontFace),this.colorsFaces=[StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),StiColorUtils.changeDarkness(r,.4),r]}},__.d.StiSeriesLabelsGeom3D=class extends __.d.StiGeom3D{constructor(e,t,i,s,r){super(r),this.seriesLabels=e,this.series=t,this.index=i,this.value=s}},__.d.StiCenterAxisLabelsGeom3D=class extends __.d.StiSeriesLabelsGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=new Rectangle(n.x-i.width/2,n.y-i.height/2,i.width,i.height);this.drawLabelArea(e,l),this.drawLabelText(e,l)}drawLabelArea(e,t){if(t.isEmpty)return;let i=this.seriesLabels.drawBorder?new StiPenGeom(this.labelBorderColor,1):null;e.fillRectangle(this.seriesLabelsBrush,t,null),this.seriesLabels.drawBorder&&e.drawRectangle2(i,t.x,t.y,t.width,t.height)}drawLabelText(e,t){let i=new StiSolidBrush(this.labelColor),s=StiFontGeom.changeFontSize(this.seriesLabels.font,this.seriesLabels.font.size*e.options.zoom),r=this.getFormatGeom(e);e.drawRotatedString6(this.text,s,i,t,r,StiRotationMode.CenterCenter,this.seriesLabels.angle,!0,t.width)}getFormatGeom(e){let t=this.seriesLabels.core.getStringFormatGeom(e);return this.seriesLabels.wordWrap&&(t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center),t}getLabelRect(e){let t=this.seriesLabels.width*e.options.zoom;if(this.seriesLabels.wordWrap)return e.measureString2(this.text,this.font,t,this.getFormatGeom(e));let i=e.measureString(this.text,this.font);return new SizeF(t,i.height)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,d),this.text=r,this.labelColor=n,this.labelBorderColor=l,this.seriesBrush=o,this.seriesLabelsBrush=a,this.seriesBorderColor=h,this.font=u,this.vertexes=new __.d.StiMatrix([[S.x,S.y,S.z,1]])}},__.d.StiOutsideAxisLabelsGeom3D=class extends __.d.StiCenterAxisLabelsGeom3D{drawElements(e,t){let i=this.getLabelRect(e),s=t.grid[0][0],r=t.grid[0][1],n=this.getPointN(s,r),l=0<this.value?-i.height-4:i.height+4,o=new Rectangle(n.x-i.width/2,n.y+l,i.width,i.height);this.drawLabelArea(e,o),this.drawLabelText(e,o)}constructor(e,t,i,s,r,n,l,o,a,h,u,S,d){super(e,t,i,s,r,n,l,o,a,h,u,S,d)}},__.d.StiMatrixHelper=class{static translate(e,t,i){return new __.d.StiMatrix([[1,0,0,0],[0,1,0,0],[0,0,1,0],[e,t,i,1]])}static scale(e){return new __.d.StiMatrix([[e,0,0,0],[0,e,0,0],[0,0,e,0],[0,0,0,1]])}static rotateX(e){return new __.d.StiMatrix([[1,0,0,0],[0,Math.cos(e),Math.sin(e),0],[0,-Math.sin(e),Math.cos(e),0],[0,0,0,1]])}static rotateY(e){return new __.d.StiMatrix([[Math.cos(e),0,-Math.sin(e),0],[0,1,0,0],[Math.sin(e),0,Math.cos(e),0],[0,0,0,1]])}static rotateZ(e){return new __.d.StiMatrix([[Math.cos(e),Math.sin(e),0,0],[-Math.sin(e),Math.cos(e),0,0],[0,0,1,0],[0,0,0,1]])}},__.d.StiPoint3D=class{constructor(e,t,i){this.x=e,this.y=t,this.z=i}},__.d.StiRectangle3D=class{constructor(){this.x=0,this.y=0,this.z=0,this.length=0,this.height=0,this.width=0}get right(){return this.x+this.length}get front(){return this.z+this.width}get top(){return this.y+this.height}};{class $pb extends StiService{constructor(){super(...arguments),this.chart=null,this._allowApplyStyle=!0}implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}static loadFromJsonObjectInternal(e){let t=e.properties().firstOrDefault(e=>"Ident"==e.name).value.toString(),i=Stimulsoft.StiOptions.Services.chartAreas.find(e=>e[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()==t);if(null==i)throw StiString.format("Type {0} is not found!",t);let s=StiActivator.createObject(i[Stimulsoft.System.StiObject.stimulsoft]().getType());return s.loadFromJsonObject(e),s}static loadAreaFromXml(e,t){let i=e.attributes.getNamedItem("type").value,s=i.split(".").pop(),r=new __.d[s];return r.chart=t,r.loadFromXml(e),r}get propName(){return""}clone(){let e=super.clone();return null!=this.core&&(e.core=this.core.clone(),e.core.area=e),e}toString(){return this.serviceName}getDefaultSeriesType(){return null}getSeriesTypes(){return null}getDefaultSeriesLabelsType(){return null}getSeriesLabelsTypes(){return null}get serviceCategory(){return"Chart"}get serviceType(){return $pb}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.chart&&this.core.applyStyle(this.chart.style)}}__.d.StiArea3D=$pb}__.d.StiAxisArea3D=class extends __.d.StiArea{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiArea,__.d.IStiAxisArea3D,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiObjectMeta("InterlacingHor","_").set(e=>{this._interlacingHor.loadFromJsonObject(e.value),this._interlacingHor.needSetAreaJsonPropertyInternal&&(this._interlacingHor.needSetAreaJsonPropertyInternal=!1,this._interlacingHor.area=this)}).setXml(e=>{this._interlacingHor.loadFromXml(e),this._interlacingHor.area=this}),new StiObjectMeta("InterlacingVert","_").set(e=>{this._interlacingVert.loadFromJsonObject(e.value),this._interlacingVert.needSetAreaJsonPropertyInternal&&(this._interlacingVert.needSetAreaJsonPropertyInternal=!1,this._interlacingVert.area=this)}).setXml(e=>{this._interlacingVert.loadFromXml(e),this._interlacingVert.area=this}),new StiObjectMeta("GridLinesHor","_").set(e=>{this._gridLinesHor.loadFromJsonObject(e.value),this._gridLinesHor.needSetAreaJsonPropertyInternal&&(this._gridLinesHor.needSetAreaJsonPropertyInternal=!1,this._gridLinesHor.area=this)}).setXml(e=>{this._gridLinesHor.loadFromXml(e),this._gridLinesHor.area=this}),new StiObjectMeta("GridLinesVert","_").set(e=>{this._gridLinesVert.loadFromJsonObject(e.value),this._gridLinesVert.needSetAreaJsonPropertyInternal&&(this._gridLinesVert.needSetAreaJsonPropertyInternal=!1,this._gridLinesVert.area=this)}).setXml(e=>{this._gridLinesVert.loadFromXml(e),this._gridLinesVert.area=this}),new StiObjectMeta("YAxis","_"),new StiObjectMeta("XAxis","_"),new StiObjectMeta("ZAxis","_")]}clone(){let e=super.clone();return e.interlacingHor=this.interlacingHor.clone(),e.interlacingVert=this.interlacingVert.clone(),e.gridLinesHor=this.gridLinesHor.clone(),e.gridLinesVert=this.gridLinesVert.clone(),e.xAxis=this.xAxis.clone(),e.yAxis=this.yAxis.clone(),e.zAxis=this.zAxis.clone(),e}get xAxis(){return this._xAxis}set xAxis(e){this._xAxis=e,null!=this._xAxis&&(this._xAxis.area=this)}get yAxis(){return this._yAxis}set yAxis(e){this._yAxis=e,null!=this._yAxis&&(this._yAxis.area=this)}get zAxis(){return this._zAxis}set zAxis(e){this._zAxis=e,null!=this._zAxis&&(this._zAxis.area=this)}get rotationX(){return this._rotationX}set rotationX(e){this._rotationX=e<-60?-60:0<e?0:e}get rotationY(){return this._rotationY}set rotationY(e){this._rotationY=e<10?10:60<e?60:e}get axisCore(){return this.core}get interlacingHor(){return this._interlacingHor}set interlacingHor(e){this._interlacingHor=e,null!=this._interlacingHor&&(this._interlacingHor.area=this)}get interlacingVert(){return this._interlacingVert}set interlacingVert(e){this._interlacingVert=e,null!=this._interlacingVert&&(this._interlacingVert.area=this)}get gridLinesHor(){return this._gridLinesHor}set gridLinesHor(e){this._gridLinesHor=e,null!=this._gridLinesHor&&(this._gridLinesHor.area=this)}get gridLinesVert(){return this._gridLinesVert}set gridLinesVert(e){this._gridLinesVert=e,null!=this._gridLinesVert&&(this._gridLinesVert.area=this)}getDefaultSeriesLabelsType(){return __.d.StiCenterAxisLabels3D}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels3D,__.d.StiOutsideAxisLabels3D]}constructor(){super(),this._rotationX=0,this._rotationY=20,this.scale=20,this.cameraX=3,this.cameraY=3,this.cameraZ=-80,this.nearPlane=.1,this.xAxis=new __.d.StiXAxis3D,this.yAxis=new __.d.StiYAxis3D,this.zAxis=new __.d.StiZAxis3D,this.gridLinesHor=new __.d.StiGridLinesHor,this.gridLinesVert=new __.d.StiGridLinesVert,this.interlacingHor=new __.d.StiInterlacingHor,this.interlacingVert=new __.d.StiInterlacingVert}},__.d.StiClusteredColumnArea3D=class extends __.d.StiAxisArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiClusteredColumnArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("SideBySide","",!1,!0)]}get sideBySide(){return this._sideBySide}set sideBySide(e){this._sideBySide=e}getDefaultSeriesType(){return __.d.StiClusteredColumnSeries3D}getSeriesTypes(){return[__.d.StiClusteredColumnSeries3D]}constructor(){super(),this._sideBySide=!0,this.core=new __.d.StiClusteredColumnAreaCoreXF3D(this)}},__.d.StiLineArea3D=class extends __.d.StiClusteredColumnArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiLineArea3D,__.d.IStiClusteredColumnArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("SideBySide","",!1,!0).set(e=>{this.sideBySide=!1}).setXml(e=>{this.sideBySide=!1})]}get sideBySide(){return!1}set sideBySide(e){}getDefaultSeriesType(){return __.d.StiLineSeries3D}getSeriesTypes(){return[__.d.StiLineSeries3D]}constructor(){super(),this.core=new __.d.StiLineAreaCoreXF3D(this)}},__.d.StiStackedColumnArea3D=class extends __.d.StiAxisArea3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiStackedColumnArea3D,__.d.IStiAxisArea3D,ICloneable,__.d.IStiArea3D]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiStackedColumnSeries3D}getSeriesTypes(){return[__.d.StiStackedColumnSeries3D]}getSeriesLabelsTypes(){return[__.d.StiNoneLabels,__.d.StiCenterAxisLabels3D]}constructor(){super(),this.core=new __.d.StiStackedColumnAreaCoreXF3D(this)}},__.d.StiFullStackedColumnArea3D=class extends __.d.StiStackedColumnArea3D{implements(){let e=super.implements().concat([__.d.StiArea3D,__.d.IStiAxisArea3D,__.d.IStiFullStackedColumnArea3D,IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}getDefaultSeriesType(){return __.d.StiFullStackedColumnSeries3D}getSeriesTypes(){return[__.d.StiFullStackedColumnSeries3D]}constructor(){super(),this.core=new __.d.StiFullStackedColumnAreaCoreXF3D(this)}},__.d.StiAxis3D=class{constructor(){this._allowApplyStyle=!0,this.info=new __.d.StiAxisInfoXF3D,this.labels=new __.d.StiAxisLabels3D,this.lineColor=Color.gray,this.visible=!0}implements(){let e=[IStiJsonReportObject,__.d.IStiAxis3D,IStiJsonReportObject];return(this.implements=()=>e)()}is(e){if(e instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(e);if("function"==typeof e)return this instanceof e;if(null==e)throw new Error("Type for comparison is 'undefined'");return!1}is2(e){return this.is(e)}as(e){if(this.is(e))return this;return null}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiBoolMeta("AllowApplyStyle","",!0),new StiObjectMeta("Labels"),new StiObjectMeta("Title"),new StiBoolMeta("Visible","",!0),new StiColorMeta("LineColor","",Color.gray)]}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.labels=this.labels.clone(),e.title=this.title.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.axis=e),e}get allowApplyStyle(){return this._allowApplyStyle}set allowApplyStyle(e){this._allowApplyStyle!=e&&(this._allowApplyStyle=e)&&null!=this.area&&null!=this.area.chart&&this.core.applyStyle(this.area.chart.style)}get title(){return null==this._title&&(this._title=new __.d.StiAxisTitle3D,this.is(__.d.StiXAxis3D)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYAxis3D)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title}set title(e){null==this._title&&(this._title=new __.d.StiAxisTitle3D,this.is(__.d.StiXAxis3D)?this._title.direction=__.d.StiDirection.LeftToRight:this.is(__.d.StiYAxis3D)&&(this._title.direction=__.d.StiDirection.BottomToTop)),this._title=e}};let IStiFont=__.e.IStiFont,StiDirection=(__.d.StiAxisLabels3D=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisLabels3D,IStiFont,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.Font=this.font.clone(),null!=this.core&&(e.Core=this.core.clone(),e.Core.Labels=e),e}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiStringNullOrEmptyMeta("Format"),new StiFontMeta("Font","","Tahoma",8),new StiColorMeta("Color","",Color.black),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiNumberMeta("Angle"),new StiNumberMeta("Width"),new StiBoolMeta("WordWrap")]}constructor(e="",t="",i="",s=new Font("Tahoma",8),r=Color.black,n=!0,l=0,o=0,a=!1){this.allowApplyStyle=!0,this.format="",this.font=new Font("Tahoma",8),this.color=Color.black,this.textBefore="",this.textAfter="",this.angle=0,this.width=0,this.wordWrap=!1,this.format=e,this.textBefore=t,this.textAfter=i,this.font=s,this.color=r,this.allowApplyStyle=n,this.angle=l,this.width=o,this.wordWrap=a,this.core=new __.d.StiAxisLabelsCoreXF3D(this)}},__.d.StiDirection);__.d.StiAxisTitle3D=class{implements(){let e=[IStiJsonReportObject,__.d.IStiAxisTitle3D,IStiFont,ICloneable];return(this.implements=()=>e)()}saveToJsonObject(e){return StiMetaHelper.saveToJsonObject(e,this)}loadFromJsonObject(e){StiMetaHelper.loadFromJsonObject(e,this)}loadFromXml(e){StiMetaHelper.loadFromXml(e,this)}clone(){let e=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return e.direction=this.direction,e.font=this.font.clone(),null!=this.core&&(e.core=this.core.clone(),e.core.title=e),e}meta(){return[new StiBoolMeta("AllowApplyStyle","",!0),new StiFontMeta("Font","","Tahoma",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.black),new StiEnumMeta("Direction","",StiDirection,StiDirection.LeftToRight)]}constructor(e=new Font("Tahoma",12,FontStyle.Bold),t="",i=Color.black,s=StiDirection.LeftToRight,r=!0){this.allowApplyStyle=!0,this.font=new Font("Tahoma",12,FontStyle.Bold),this.text="",this.color=Color.black,this.direction=StiDirection.LeftToRight,this.font=e,this.text=t,this.color=i,this.direction=s,this.allowApplyStyle=r,this.core=new __.d.StiAxisTitleCoreXF3D(this)}},__.d.StiXAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiAxis3D,__.d.IStiXAxis3D,ICloneable]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowEdgeValues")]}get propName(){return""}constructor(){super(),this.showEdgeValues=!1,this.core=new __.d.StiXAxisCoreXF3D(this)}},__.d.StiYAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiYAxis3D,ICloneable]);return(this.implements=()=>e)()}get propName(){return""}constructor(){super(),this.core=new __.d.StiYAxisCoreXF3D(this)}},__.d.StiZAxis3D=class extends __.d.StiAxis3D{implements(){let e=super.implements().concat([IStiJsonReportObject,__.d.IStiZAxis3D,ICloneable]);return(this.implements=()=>e)()}get propName(){return""}constructor(){super(),this.core=new __.d.StiZAxisCoreXF3D(this)}},__.d.StiSeries3D=class extends __.d.StiSeries{},__.d.StiBaseLineSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiColorMeta("LineColor","",Color.darkGray)]}constructor(){super(),this.lineColor=Color.black,this.seriesLabels=new __.d.StiOutsideAxisLabels3D}},__.d.StiClusteredColumnSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D,IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiNumberMeta("Length","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("Color","",Color.darkGray),new StiEnumMeta("ColumnShape","",__.d.StiColumnShape3D)]}get length(){return this._length}set length(e){.01<=e&&e<=1&&(this._length=e)}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiClusteredColumnArea3D}constructor(){super(),this._length=.9,this._width=.9,this.borderColor=Color.gray,this.color=Color.darkGray,this.columnShape=__.d.StiColumnShape3D.Box,this.seriesLabels=new __.d.StiOutsideAxisLabels3D,this.core=new __.d.StiClusteredColumnSeriesCoreXF3D(this)}},__.d.StiLineSeries3D=class extends __.d.StiBaseLineSeries3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable,__.d.IStiSeries,__.d.IStiLineSeries3D]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiLineArea3D}constructor(){super(),this.width=.8,this.seriesLabels=new __.d.StiOutsideAxisLabels3D,this.core=new __.d.StiLineSeriesCoreXF3D(this)}},__.d.StiStackedColumnSeries3D=class extends __.d.StiSeries3D{implements(){let e=super.implements().concat([__.d.IStiStackedColumnSeries3D,__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D,IStiJsonReportObject,ICloneable,__.d.IStiSeries]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiNumberMeta("Width","_",.9),new StiNumberMeta("Length","_",.9),new StiColorMeta("BorderColor","",Color.gray),new StiColorMeta("Color","",Color.darkGray),new StiEnumMeta("ColumnShape","",__.d.StiColumnShape3D)]}get length(){return this._length}set length(e){.01<=e&&e<=1&&(this._length=e)}get width(){return this._width}set width(e){.01<=e&&e<=1&&(this._width=e)}getDefaultAreaType(){return __.d.StiStackedColumnArea3D}constructor(){super(),this._length=.9,this._width=.9,this.borderColor=Color.gray,this.color=Color.darkGray,this.columnShape=__.d.StiColumnShape3D.Box,this.core=new __.d.StiStackedColumnSeriesCoreXF3D(this)}},__.d.StiFullStackedColumnSeries3D=class extends __.d.StiStackedColumnSeries3D{implements(){let e=super.implements().concat([__.d.IStiFullStackedColumnSeries3D,__.d.IStiStackedColumnSeries3D,__.d.IStiClusteredColumnSeries3D,__.d.IStiColumnShape3D]);return(this.implements=()=>e)()}getDefaultAreaType(){return __.d.StiFullStackedColumnArea3D}constructor(){super(),this.core=new __.d.StiFullStackedColumnSeriesCoreXF3D(this)}},__.d.StiAxisSeriesLabels3D=class extends __.d.StiSeriesLabels{constructor(){super(...arguments),this._showInPercent=!1}implements(){let e=super.implements().concat([__.d.IStiSeriesLabels,ICloneable,__.d.IStiAxisSeriesLabels]);return(this.implements=()=>e)()}meta(){return[...super.meta(),new StiBoolMeta("ShowInPercent","_")]}get showInPercent(){return this._showInPercent}set showInPercent(e){this._showInPercent=e,this._showInPercent&&!this.format.startsWith("P")&&(this.format="P2"),this._showInPercent||(this.format="")}},__.d.StiCenterAxisLabels3D=class extends __.d.StiAxisSeriesLabels3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiCenterAxisLabelsCoreXF3D(this)}},__.d.StiOutsideAxisLabels3D=class extends __.d.StiAxisSeriesLabels3D{implements(){let e=super.implements().concat([IStiJsonReportObject,ICloneable]);return(this.implements=()=>e)()}constructor(){super(),this.core=new __.d.StiOutsideAxisLabelsCoreXF3D(this)}};{class Nrb{static run(s,r){if(void 0===s)return void Nrb.run(Stimulsoft,"Stimulsoft");if("Stimulsoft.ExternalLibrary"==r||"Stimulsoft.Blockly"==r||"Stimulsoft.Report.StiOptions"==r||"Stimulsoft.StiOptions"==r)return;r=r.replace("Stimulsoft.System","System");for(let i in s){let e=s[i],t=typeof e;"function"==t?(e.ssTypeName=i,e.ssNamespace=r):"object"==t&&Nrb.run(e,r+`.`+i)}}}__.b.StiTypesHelper=Nrb}__.b.StiTypesHelper.run();export{Stimulsoft};