stimulsoft-dashboards-js-angular 2026.2.1 → 2026.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/stimulsoft.blockly.editor.mjs +2 -2
- package/stimulsoft.dashboards.mjs +3 -3
- package/stimulsoft.designer.mjs +6 -6
- package/stimulsoft.reports.chart.mjs +2 -2
- package/stimulsoft.reports.d.ts +9 -2
- package/stimulsoft.reports.engine.mjs +12 -12
- package/stimulsoft.reports.export.mjs +6 -6
- package/stimulsoft.reports.import.xlsx.mjs +2 -2
- package/stimulsoft.reports.maps.mjs +3 -3
- package/stimulsoft.viewer.mjs +5 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Stimulsoft.Dashboards.JS
|
|
3
|
-
Version: 2026.2.
|
|
4
|
-
Build date: 2026.04.
|
|
3
|
+
Version: 2026.2.2
|
|
4
|
+
Build date: 2026.04.28
|
|
5
5
|
License: https://www.stimulsoft.com/en/licensing/reports
|
|
6
6
|
*/
|
|
7
7
|
import{Stimulsoft}from"./stimulsoft.reports.engine.mjs";function defaultsDeep(t,e){for(var i in e)i in t?defaultsDeep(t[i],e[i]):t[i]=e[i];return t}defaultsDeep(Stimulsoft||{},{Dashboard:{Components:{Panel:{},Button:{},Cards:{},Helpers:{},Chart:{Design:{}},TreeViewBox:{},TreeView:{},Table:{Design:{}},RegionMap:{},Progress:{},PivotTable:{Design:{}},OnlineMap:{},ListBox:{},DatePicker:{},NumberBox:{},ComboBox:{},Gauge:{Design:{}},Indicator:{},Text:{Design:{}},RangeSelector:{},Design:{},Image:{Design:{}},WebContent:{},Shape:{}},Export:{Settings:{},Tools:{},Helpers:{},Painters:{Table:{}}},Interactions:{Design:{}},Helpers:{},Render:{},Visuals:{Gauge:{},Cards:{},Indicator:{},Progress:{Helpers:{}},RangeSelector:{}},Design:{Helpers:{}},Images:{},Options:{},Visualizers:{},Drawing:{Helpers:{},Painters:{}}},Designer:{Dashboards:{}},Reflection:{}});var __={};__.a=Stimulsoft.Dashboard,__.b=Stimulsoft.Designer,__.c=Stimulsoft.Reflection,__.d=__.b.Dashboards,__.e=__.a.Components,__.f=__.a.Export,__.g=__.a.Interactions,__.h=__.a.Helpers,__.i=__.a.Render,__.j=__.a.Visuals,__.k=__.a.Design,__.l=__.a.Images,__.m=__.a.Options,__.n=__.a.Visualizers,__.o=__.a.Drawing,__.p=__.o.Helpers,__.q=__.o.Painters,__.r=__.k.Helpers,__.s=__.j.Gauge,__.t=__.j.Cards,__.u=__.j.Indicator,__.v=__.j.Progress,__.w=__.j.RangeSelector,__.x=__.v.Helpers,__.y=__.g.Design,__.z=__.f.Settings,__.A=__.f.Tools,__.B=__.f.Helpers,__.C=__.f.Painters,__.D=__.C.Table,__.E=__.e.Panel,__.F=__.e.Button,__.G=__.e.Cards,__.H=__.e.Helpers,__.I=__.e.Chart,__.J=__.e.TreeViewBox,__.K=__.e.TreeView,__.L=__.e.Table,__.M=__.e.RegionMap,__.N=__.e.Progress,__.O=__.e.PivotTable,__.P=__.e.OnlineMap,__.Q=__.e.ListBox,__.R=__.e.DatePicker,__.S=__.e.NumberBox,__.T=__.e.ComboBox,__.U=__.e.Gauge,__.V=__.e.Indicator,__.W=__.e.Text,__.X=__.e.RangeSelector,__.Y=__.e.Design,__.Z=__.e.Image,__._=__.e.WebContent,__.aa=__.e.Shape,__.ab=__.Z.Design,__.ac=__.W.Design,__.ad=__.U.Design,__.ae=__.O.Design,__.af=__.L.Design,__.ag=__.I.Design;{let t;(t=>{t[t["None"]=0]="None",t[t["DecimalDigits"]=1]="DecimalDigits",t[t["DecimalSeparator"]=2]="DecimalSeparator",t[t["GroupSeparator"]=4]="GroupSeparator",t[t["GroupSize"]=8]="GroupSize",t[t["PositivePattern"]=16]="PositivePattern",t[t["NegativePattern"]=32]="NegativePattern",t[t["CurrencySymbol"]=64]="CurrencySymbol",t[t["PercentageSymbol"]=128]="PercentageSymbol",t[t["Abbreviation"]=256]="Abbreviation",t[t["NegativeInRed"]=512]="NegativeInRed"})(t=__.a.StiTextFormatState||(__.a.StiTextFormatState={}));let e;(t=>{t[t["EqualTo"]=0]="EqualTo",t[t["NotEqualTo"]=1]="NotEqualTo",t[t["GreaterThan"]=2]="GreaterThan",t[t["GreaterThanOrEqualTo"]=3]="GreaterThanOrEqualTo",t[t["LessThan"]=4]="LessThan",t[t["LessThanOrEqualTo"]=5]="LessThanOrEqualTo",t[t["Between"]=6]="Between",t[t["NotBetween"]=7]="NotBetween",t[t["Containing"]=8]="Containing",t[t["NotContaining"]=9]="NotContaining",t[t["BeginningWith"]=10]="BeginningWith",t[t["EndingWith"]=11]="EndingWith",t[t["IsNull"]=12]="IsNull",t[t["IsNotNull"]=13]="IsNotNull"})(e=__.a.StiFilterCondition||(__.a.StiFilterCondition={}));let i;(t=>{t[t["Argument"]=0]="Argument",t[t["Value"]=1]="Value",t[t["ValueEnd"]=2]="ValueEnd",t[t["Expression"]=3]="Expression",t[t["ValueOpen"]=4]="ValueOpen",t[t["ValueClose"]=5]="ValueClose",t[t["ValueLow"]=6]="ValueLow",t[t["ValueHigh"]=7]="ValueHigh"})(i=__.a.StiFilterItem||(__.a.StiFilterItem={}));let r;(t=>{t[t["String"]=0]="String",t[t["Numeric"]=1]="Numeric",t[t["DateTime"]=2]="DateTime",t[t["Boolean"]=3]="Boolean",t[t["Expression"]=4]="Expression"})(r=__.a.StiFilterDataType||(__.a.StiFilterDataType={}))}{let t;(t=>{t[t["ArgumentChartMeter"]=1]="ArgumentChartMeter",t[t["SeriesChartMeter"]=2]="SeriesChartMeter",t[t["SortByChartMeter"]=3]="SortByChartMeter",t[t["ValueChartMeter"]=4]="ValueChartMeter",t[t["StartValueChartMeter"]=5]="StartValueChartMeter",t[t["EndValueChartMeter"]=6]="EndValueChartMeter",t[t["OpenValueChartMeter"]=7]="OpenValueChartMeter",t[t["CloseValueChartMeter"]=8]="CloseValueChartMeter",t[t["LowValueChartMeter"]=9]="LowValueChartMeter",t[t["HighValueChartMeter"]=10]="HighValueChartMeter",t[t["WeightChartMeter"]=11]="WeightChartMeter",t[t["XChartMeter"]=12]="XChartMeter",t[t["YChartMeter"]=13]="YChartMeter",t[t["IndicatorValueChartMeter"]=14]="IndicatorValueChartMeter",t[t["MaxGaugeMeter"]=15]="MaxGaugeMeter",t[t["MinGaugeMeter"]=16]="MinGaugeMeter",t[t["SeriesGaugeMeter"]=17]="SeriesGaugeMeter",t[t["ValueGaugeMeter"]=18]="ValueGaugeMeter",t[t["TargetGaugeMeter"]=19]="TargetGaugeMeter",t[t["SeriesIndicatorMeter"]=20]="SeriesIndicatorMeter",t[t["TargetIndicatorMeter"]=21]="TargetIndicatorMeter",t[t["ValueIndicatorMeter"]=22]="ValueIndicatorMeter",t[t["SeriesProgressMeter"]=23]="SeriesProgressMeter",t[t["TargetProgressMeter"]=24]="TargetProgressMeter",t[t["ValueProgressMeter"]=25]="ValueProgressMeter",t[t["LatitudeMapMeter"]=26]="LatitudeMapMeter",t[t["LongitudeMapMeter"]=27]="LongitudeMapMeter",t[t["LocationMapMeter"]=28]="LocationMapMeter",t[t["LocationValueMapMeter"]=29]="LocationValueMapMeter",t[t["LocationColorMapMeter"]=30]="LocationColorMapMeter",t[t["LocationArgumentMapMeter"]=31]="LocationArgumentMapMeter",t[t["KeyMapMeter"]=32]="KeyMapMeter",t[t["NameMapMeter"]=33]="NameMapMeter",t[t["ValueMapMeter"]=34]="ValueMapMeter",t[t["GroupMapMeter"]=35]="GroupMapMeter",t[t["ColorMapMeter"]=36]="ColorMapMeter",t[t["ColorScaleColumn"]=37]="ColorScaleColumn",t[t["DataBarsColumn"]=38]="DataBarsColumn",t[t["DimensionColumn"]=39]="DimensionColumn",t[t["IndicatorColumn"]=40]="IndicatorColumn",t[t["MeasureColumn"]=41]="MeasureColumn",t[t["SparklinesColumn"]=42]="SparklinesColumn",t[t["BubbleColumn"]=43]="BubbleColumn",t[t["ColorScaleCardsColumn"]=44]="ColorScaleCardsColumn",t[t["DataBarsCardsColumn"]=45]="DataBarsCardsColumn",t[t["DimensionCardsColumn"]=46]="DimensionCardsColumn",t[t["IndicatorCardsColumn"]=47]="IndicatorCardsColumn",t[t["MeasureCardsColumn"]=48]="MeasureCardsColumn",t[t["SparklinesCardsColumn"]=49]="SparklinesCardsColumn",t[t["BubbleCardsColumn"]=50]="BubbleCardsColumn",t[t["PivotColumn"]=51]="PivotColumn",t[t["PivotRow"]=52]="PivotRow",t[t["PivotSummary"]=53]="PivotSummary",t[t["NameListBoxMeter"]=54]="NameListBoxMeter",t[t["KeyListBoxMeter"]=55]="KeyListBoxMeter",t[t["KeyTreeViewMeter"]=56]="KeyTreeViewMeter",t[t["KeyTreeViewBoxMeter"]=57]="KeyTreeViewBoxMeter",t[t["NameComboBoxMeter"]=58]="NameComboBoxMeter",t[t["KeyComboBoxMeter"]=59]="KeyComboBoxMeter",t[t["ValueDatePickerMeter"]=60]="ValueDatePickerMeter",t[t["ValueNumberBoxMeter"]=61]="ValueNumberBoxMeter",t[t["TextMeter"]=62]="TextMeter",t[t["TextMeasureMeter"]=63]="TextMeasureMeter",t[t["ImageMeter"]=64]="ImageMeter",t[t["WebContentMeter"]=65]="WebContentMeter",t[t["ArgumentRangeSelectorMeter"]=66]="ArgumentRangeSelectorMeter",t[t["ValueRangeSelectorMeter"]=67]="ValueRangeSelectorMeter",t[t["SeriesRangeSelectorMeter"]=68]="SeriesRangeSelectorMeter"})(t=__.e.StiMeterIdent||(__.e.StiMeterIdent={}))}let StiEventHandler=Stimulsoft.Report.Events.StiEventHandler,StiFilterInclusionMode=Stimulsoft.Report.Dashboard.StiFilterInclusionMode,StiEventMeta=Stimulsoft.Base.Meta.StiEventMeta,StiBlocklyHelper=Stimulsoft.Report.Helpers.StiBlocklyHelper,StiContainer=Stimulsoft.Report.Components.StiContainer,StiBorder=Stimulsoft.Base.Drawing.StiBorder,StiColorMeta=Stimulsoft.Base.Meta.StiColorMeta,StiEnumMeta=Stimulsoft.Base.Meta.StiEnumMeta,StiNumberMeta=Stimulsoft.Base.Meta.StiNumberMeta,StiObjectMeta=Stimulsoft.Base.Meta.StiObjectMeta,StiStringMeta=Stimulsoft.Base.Meta.StiStringMeta,StiRemoveMeta=Stimulsoft.Base.Meta.StiRemoveMeta,StiStringNullOrEmptyMeta=Stimulsoft.Base.Meta.StiStringNullOrEmptyMeta,StiMath=Stimulsoft.System.StiMath,ImplementsIStiDashboardWatermark=Stimulsoft.Report.Dashboard.ImplementsIStiDashboardWatermark,IStiDashboardWatermark=Stimulsoft.Report.Dashboard.IStiDashboardWatermark,StiAdvancedWatermark=Stimulsoft.Base.Drawing.StiAdvancedWatermark,StiSurfaceViewMode=Stimulsoft.Report.Components.StiSurfaceViewMode,StiAppExpressionParser=Stimulsoft.Report.Helpers.StiAppExpressionParser,StiAppExpressionHelper=Stimulsoft.Base.StiAppExpressionHelper,StiString=Stimulsoft.System.StiString,IStiJsonReportObject=Stimulsoft.Base.JsonReportObject.IStiJsonReportObject,ImplementsIStiDashboard=Stimulsoft.Report.Dashboard.ImplementsIStiDashboard,StiJsonReportObjectHelper=Stimulsoft.Base.StiJsonReportObjectHelper,StiKeyHelper=Stimulsoft.Base.StiKeyHelper,StiSolidBrush=Stimulsoft.Base.Drawing.StiSolidBrush,StiBrush=Stimulsoft.Base.Drawing.StiBrush,StiUnit=Stimulsoft.Report.Units.StiUnit,StiMargins=Stimulsoft.Report.Components.StiMargins,StiDataSourcePicker=Stimulsoft.Data.Engine.StiDataSourcePicker,Color=Stimulsoft.System.Drawing.Color,IStiSkipOwnFilter=Stimulsoft.Report.Dashboard.IStiSkipOwnFilter,IStiUserFilters=Stimulsoft.Data.Engine.IStiUserFilters,StiCrossLinkedFilterHelper=Stimulsoft.Report.Dashboard.Helpers.StiCrossLinkedFilterHelper,IStiFilterElement=Stimulsoft.Report.Dashboard.IStiFilterElement,StiGroupElementHelper=Stimulsoft.Report.Dashboard.StiGroupElementHelper,IStiElement=Stimulsoft.Report.Dashboard.IStiElement,StiElementStyleIdent=Stimulsoft.Report.Dashboard.StiElementStyleIdent,Enum=Stimulsoft.System.Enum,IStiDashboard=Stimulsoft.Report.Dashboard.IStiDashboard,StiPage=Stimulsoft.Report.Components.StiPage,Loc=Stimulsoft.Base.Localization.StiLocalization,SizeD=Stimulsoft.System.Drawing.Size,StiDashboardViewMode=Stimulsoft.Report.Components.StiDashboardViewMode,IStiAltProperties=Stimulsoft.Report.Dashboard.IStiAltProperties,IStiTitleElement=Stimulsoft.Report.Dashboard.IStiTitleElement,RectangleD=Stimulsoft.System.Drawing.Rectangle,StiDashboardContentAlignment=Stimulsoft.Report.Dashboard.StiDashboardContentAlignment,IStiGlobalizationProvider=Stimulsoft.Report.IStiGlobalizationProvider,StiScriptHelper=Stimulsoft.Report.StiScriptHelper,StiMetaHelper=(__.e.StiDashboard=class extends StiPage{implements(){let t=super.implements().concat([IStiDashboard,IStiDashboardWatermark,IStiGlobalizationProvider,...ImplementsIStiDashboard,...ImplementsIStiDashboardWatermark,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(){let t=super.clone();return t.dashboardWatermark=this.dashboardWatermark?.clone(),t.beginRenderEvent=this.beginRenderEvent?.clone(),t.refreshingEvent=this.refreshingEvent?.clone(),t}meta(){return[...super.meta(),new StiRemoveMeta(["Margins","MirrorMargins","PrintHeadersFootersFromPreviousPage","PrintOnPreviousPage","StopBeforePrint","LargeHeight","LargeHeightFactor","ResetPageNumber","Watermark","ExcelSheet","CanBreak","Interaction","PaperSourceFirstPage","PaperSourceOfFirstPage","PaperSourceOtherPages","PaperSourceOfOtherPages","ShrinkToFit","UseParentStyles","Conditions","PaperSize","NumberOfCopies","BeginRenderEvent","RenderingEvent","EndRenderEvent","GetToolTipEvent","GetTagEvent","GetBookmarkEvent","GetHyperlinkEvent","BeforePrintEvent","AfterPrintEvent","MouseEnterEvent","MouseLeaveEvent","ClickEvent","DoubleEvent","ColumnBeginRenderEvent","ColumnEndRenderEvent","GetExcelSheetEvent","GetDrillDownReportEvent"]),new StiNumberMeta("Width","",1200),new StiNumberMeta("Height","",600),new StiNumberMeta("DeviceWidth","",480),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Blue),new StiStringNullOrEmptyMeta("Border").get(()=>StiJsonReportObjectHelper.Serialize.jBorder(this.border)).set(t=>this.border=StiJsonReportObjectHelper.Deserialize.border(t.value)).setXml(t=>this.border=StiBorder.loadFromXml(t.textContent)),new StiColorMeta("BackColor","",Color.transparent),new StiEnumMeta("DashboardViewMode","",StiDashboardViewMode,StiDashboardViewMode.Desktop),new StiStringMeta("AltSize","",StiJsonReportObjectHelper.Serialize.sizeD(SizeD.empty)).get(()=>StiJsonReportObjectHelper.Serialize.sizeD(this.altSize)).set(t=>this.altSize=StiJsonReportObjectHelper.Deserialize.sizeD(t.value.toString())).setXml(t=>this.altSize=Stimulsoft.System.Drawing.Size.convertFromXml(t.textContent)),new StiEnumMeta("ContentAlignment","",StiDashboardContentAlignment,StiDashboardContentAlignment.StretchXY),new StiEnumMeta("AltContentAlignment","",StiDashboardContentAlignment,StiDashboardContentAlignment.StretchXY),new StiObjectMeta("DashboardWatermark"),new StiEventMeta("BeginRenderEvent"),new StiEventMeta("RefreshingEvent")]}getMeters(t=!0,e=null){let i=[];return this.getElements(t,e).forEach(t=>i.push(...t.getMeters())),i}getElements(e=!0,i=null){return null==i?(e?this.getComponentsList():this.components.list).filter(t=>t.is(IStiElement)):StiString.isNullOrWhiteSpace(i)?(e?this.getComponentsList():this.components.list).filter(t=>t.is(IStiElement)).filter(t=>StiString.isNullOrWhiteSpace(StiGroupElementHelper.getGroup(t))):this.report.pages.list.flatMap(t=>e?t.getComponentsList():t.components.list).filter(t=>t.is(IStiElement)).filter(t=>StiGroupElementHelper.getGroup(t)==i)}getUserFilters(e){if(null==e)return null;let t=StiGroupElementHelper.getGroup(e),r=this.getElements(!0,t),l=e.as(IStiFilterElement);if(null!=l){if(StiCrossLinkedFilterHelper.isCrossLinkedFilter(l))return null;let t=r.filter(t=>t.is(IStiFilterElement)).find(t=>t.getKey()==l.getParentKey());if(null==t)return null;let e=[],i=t.is(IStiUserFilters)?t.userFilters:null;return null!=i&&e.push(...i),null!=(i=this.as(IStiDashboard).getUserFilters(t.as(IStiElement)))&&e.push(...i),e}return r.filter(t=>t.is(IStiUserFilters)&&(t!=e||!(t.is(IStiSkipOwnFilter)&&t.allowSkipOwnFilter))).flatMap(t=>this.getUserFilters3(t))}getUserFilters3(e){if(e.is(IStiFilterElement)&&e.inclusionMode==StiFilterInclusionMode.Always&&(null==e.userFilters||0==e.userFilters.length)){let t=e.getIdentityFilters();if(null!=t)return t}return e.userFilters.forEach(t=>t.elementKey=e.as(IStiElement).key),e.userFilters}getUnplacedElements(){return this.getComponents().list.filter(t=>0==t.width||0==t.height)}switchSurfaceViewMode(t){let e=t==StiSurfaceViewMode.Desktop?StiDashboardViewMode.Desktop:StiDashboardViewMode.Mobile;if(this.dashboardViewMode==e)return;this.dashboardViewMode=e;let s=!1,o=(this.altSize.isEmpty&&t==StiSurfaceViewMode.Mobile&&(this.altSize=new SizeD(480,800),s=!0,this.altContentAlignment=this.contentAlignment),this.getComponents());for(let n of o.list){let l=n.as(IStiAltProperties);if(null!=l){let t=n.parent,e=(n.parent.components.remove(n),o.getComponentByGuid(l.altParentKey,this)||this),i=(e.as(StiContainer)?.components.add(n),l.altParentKey=t.guid,n.clientRectangle.clone()),r=(n.clientRectangle=l.altClientRectangle.clone(),l.altClientRectangle=i,n.as(IStiTitleElement));if(null!=r?.title){let t=r.title.visible;s||(r.title.visible=l.altTitleVisible),l.altTitleVisible=t}}}let i=new SizeD(this.width,this.height),r=(this.width=this.altSize.width,this.height=this.altSize.height,this.altSize=i,this.contentAlignment);this.contentAlignment=this.altContentAlignment,this.altContentAlignment=r}removeMobileSurface(){this.altSize=SizeD.empty;let t=this.getComponents();for(let e of t.list){let t=e.as(IStiAltProperties);null!=t&&(t.altClientRectangle=RectangleD.empty)}this.altContentAlignment=StiDashboardContentAlignment.StretchXY}get isMobileSurfaceSelected(){return this.dashboardViewMode==StiDashboardViewMode.Mobile}get isDesktopSurfaceSelected(){return this.dashboardViewMode==StiDashboardViewMode.Desktop}fetchAllMeters(){return[]}getNestedPages(){return[]}get isEnabled(){return StiAppExpressionHelper.isExpressionSpecified(this,"enabled")?StiAppExpressionParser.parseBoolExpression(this,"enabled",!0):this.enabled}async isEnabledAsync(){return StiAppExpressionHelper.isExpressionSpecified(this,"enabled")?StiAppExpressionParser.parseBoolExpressionAsync(this,"enabled",!0):this.enabled}get isDefined(){return 0<this.components.count}get isQuerable(){return!0}retrieveUsedDataNames(e){return this.getElements(!0,e).flatMap(t=>t.retrieveUsedDataNames(e))[Stimulsoft.System.StiObject.stimulsoft]().distinct()}getDictionary(){return null!=this.report?this.report.dictionary:null}getDataSources(t){return StiDataSourcePicker.fetch(this,null,t,null!=this.report?this.getDictionary().fetchDataSources():null)}setString(t,e){switch(t){case"Alias":this.alias=e;break}}getString(t){switch(t){case"Alias":return this.alias}throw new Error(`Property with name `+t)}getAllStrings(){return["Alias"]}get serviceCategory(){return Loc.get("Permissions","ItemDashboards")}get localizedName(){return Loc.get("Components","StiDashboard")}get gridSize(){return this.report.info.gridSizePoints}get unit(){return StiUnit.HundredthsOfInch}get brush(){return new StiSolidBrush(this.backColor)}set brush(t){this.backColor=StiBrush.toColor(t)}get skip(){return!0}set skip(t){}convert(t,e,i=!1){}getKey(){return this.key}get key(){return this.guid}set key(t){this.guid=t}get style(){return this._style}set style(t){if(this._style==t)return;t==StiElementStyleIdent.Auto&&(t=Enum.getValues(typeof StiElementStyleIdent).find(t=>t!=StiElementStyleIdent.Auto)),this._style=t}getApp(){return this.report}invokeRefreshing(){this?.onRefreshing?.(),StiEventHandler.run(this.refreshingEvent,this.report),StiScriptHelper.invokeEventScript(this.report,this,this.refreshingEvent),StiBlocklyHelper.invokeBlockly(this.report,this,this.refreshingEvent)}get width(){return this._width2}set width(t){this._width2=StiMath.round2(t,2)}get height(){return this._height2}set height(t){this._height2=StiMath.round2(t,2)}get altSize(){return this._altSize}set altSize(t){this._altSize=t}get dashboardViewMode(){return this._dashboardViewMode}set dashboardViewMode(t){this._dashboardViewMode=t}get contentAlignment(){return this._contentAlignment}set contentAlignment(t){this._contentAlignment=t}get altContentAlignment(){return this._altContentAlignment}set altContentAlignment(t){this._altContentAlignment=t}get deviceWidth(){return this._deviceWidth}set deviceWidth(t){this._deviceWidth=t}get isMobileSurfacePresent(){return!this.altSize.isEmpty}constructor(t=null){super(t),this.backColor=Color.transparent,this.margins=new StiMargins(10,10,10,10),this._style=StiElementStyleIdent.Blue,this.customStyleName="",this.dashboardWatermark=new StiAdvancedWatermark,this.refreshingEvent=null,this._width2=1200,this._height2=600,this._altSize=SizeD.empty,this._dashboardViewMode=StiDashboardViewMode.Desktop,this._contentAlignment=StiDashboardContentAlignment.StretchXY,this._altContentAlignment=StiDashboardContentAlignment.StretchXY,this._deviceWidth=480,this.key=StiKeyHelper.generateKey(),this.width=1200,this.height=600}},Stimulsoft.Base.Meta.StiMetaHelper),Type=Stimulsoft.System.Type,IStiLocalizedMeter=Stimulsoft.Base.Meters.IStiLocalizedMeter,IStiMeter=Stimulsoft.Base.Meters.IStiMeter,StiJsonSaveMode=Stimulsoft.Base.StiJsonSaveMode,StiJson=Stimulsoft.Base.StiJson,IStiDimensionMeter=(__.e.StiMeter=class{is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}implements(){let t=[IStiMeter,IStiLocalizedMeter,IStiJsonReportObject];return(this.implements=()=>t)()}clone(t=!0,e=!0){let i=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return i.key=StiKeyHelper.generateKey(),i}saveToString(){return this.saveToJsonObject(StiJsonSaveMode.Report).serialize()}loadFromString(t){let e=new StiJson;e.deserialize(t),this.loadFromJsonObject(e)}meta(){return[new StiEnumMeta("Ident","",__.e.StiMeterIdent).set(()=>{}).setXml(()=>{}),new StiStringNullOrEmptyMeta("Key"),new StiStringNullOrEmptyMeta("Expression"),new StiStringNullOrEmptyMeta("Label")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}getUniqueCode(){let t=null!=this.expression?this.expression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0;return t=397*(t=397*(t=397*t^Type.getTypeName(this)[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^(null!=this.label?this.label[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.key?this.key[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),Math.abs(t)}get localizedName(){return""}isDefault(){return null==this.key&&null!=this.expression&&0==this.expression.length&&null!=this.label&&0==this.label.length}toString(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName();return StiString.isNullOrWhiteSpace(this.expression)?t:`${t}-"${this.expression}"`}constructor(t,e,i){this.expression="",this.label="",null==t&&(t=StiKeyHelper.generateKey()),this.key=t,null!=e&&(this.expression=e),null!=i&&(this.label=i)}},Stimulsoft.Base.Meters.IStiDimensionMeter),Dictionary=(__.e.StiDimensionMeter=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiDimensionMeter]);return(this.implements=()=>t)()}constructor(t,e,i){super(t,e,i)}},Stimulsoft.System.Collections.Dictionary),Attribute=Stimulsoft.System.Attribute;{class StiExportToolAttribute extends Attribute{constructor(t){super(),this.exportToolTypeName=t}static add(t,e){this.attributes.add(t,new StiExportToolAttribute(e))}}StiExportToolAttribute.attributes=new Dictionary,__.f.StiExportToolAttribute=StiExportToolAttribute}let ImplementsIStiPanelElement=Stimulsoft.Report.Dashboard.ImplementsIStiPanelElement,IStiPanelElement=Stimulsoft.Report.Dashboard.IStiPanelElement,StiBoolMeta=Stimulsoft.Base.Meta.StiBoolMeta,ImplementsIStiCornerRadius=Stimulsoft.Report.Components.ImplementsIStiCornerRadius,IStiCornerRadius=Stimulsoft.Report.Components.IStiCornerRadius,StiCornerRadius=Stimulsoft.Base.Drawing.StiCornerRadius,StiSimpleShadow=Stimulsoft.Base.Drawing.StiSimpleShadow,IStiSimpleShadow=Stimulsoft.Report.Components.IStiSimpleShadow,ImplementsIStiSimpleShadow=Stimulsoft.Report.Components.ImplementsIStiSimpleShadow,Rectangle=Stimulsoft.System.Drawing.Rectangle,ImplementsIStiMargin=Stimulsoft.Report.Dashboard.ImplementsIStiMargin,ImplementsIStiPadding=Stimulsoft.Report.Dashboard.ImplementsIStiPadding,ImplementsIStiPanel=Stimulsoft.Report.Dashboard.ImplementsIStiPanel,ImplementsIStiAltProperties=Stimulsoft.Report.Dashboard.ImplementsIStiAltProperties,StiComponentToolboxPosition=Stimulsoft.Report.Components.StiComponentToolboxPosition,StiEmptyBrush=Stimulsoft.Base.Drawing.StiEmptyBrush,StiToolboxCategory=Stimulsoft.Report.Components.StiToolboxCategory,StiLocalization=Stimulsoft.Base.Localization.StiLocalization,StiSimpleBorder=Stimulsoft.Base.Drawing.StiSimpleBorder,StiPadding=Stimulsoft.Report.Dashboard.StiPadding,StiMargin=Stimulsoft.Report.Dashboard.StiMargin,IStiGroupElement=Stimulsoft.Report.Dashboard.IStiGroupElement,IStiMargin=Stimulsoft.Report.Dashboard.IStiMargin,IStiPadding=Stimulsoft.Report.Dashboard.IStiPadding,IStiPanel=Stimulsoft.Report.Dashboard.IStiPanel,IStiSimpleBorder=Stimulsoft.Report.Components.IStiSimpleBorder,StiPanel=Stimulsoft.Report.Components.StiPanel,StiExportToolAttribute=__.f.StiExportToolAttribute,ImplementsIStiElement=(StiExportToolAttribute.add("StiPanelElement","Stimulsoft.Dashboard.Export.Tools.StiPanelElementExportTool"),__.E.StiPanelElement=class extends StiPanel{implements(){let t=super.implements().concat([IStiSimpleBorder,IStiCornerRadius,IStiSimpleShadow,IStiPanel,IStiPanelElement,IStiPadding,IStiMargin,IStiAltProperties,IStiDashboardWatermark,...ImplementsIStiPanel,...ImplementsIStiCornerRadius,...ImplementsIStiSimpleShadow,...ImplementsIStiPadding,...ImplementsIStiMargin,...ImplementsIStiAltProperties,...ImplementsIStiDashboardWatermark,...ImplementsIStiPanelElement,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.margin=this.margin?.clone(),e.padding=this.padding?.clone(),e.border2=this.border2?.clone(),e.dashboardWatermark=this.dashboardWatermark?.clone()[Stimulsoft.System.StiObject.stimulsoft]().as(StiAdvancedWatermark),e}meta(){return[...super.meta(),new StiRemoveMeta(["Border","UseParentStyles","MinSize","MaxSize","Interaction","PrintOn","GrowToHeight","ShiftMode","CanShrink","CanGrow","Printable","Bookmark","Hyperlink","Conditions","GetBookmarkEvent","GetHyperlinkEvent","GetTagEvent","GetToolTipEvent","BeforePrintEvent","AfterPrintEvent","ClickEvent","DoubleEvent","MouseEnterEvent","MouseLeaveEvent","GetDrillDownReportEvent"]),new StiObjectMeta("Margin").get(t=>this.margin.saveToJsonObject(3,3,3,3)),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(0,0,0,0)),new StiStringNullOrEmptyMeta("Border","border2").get(()=>StiJsonReportObjectHelper.Serialize.jBorder2(this.border2)).set(t=>this.border2=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.value)).setXml(t=>this.border2=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.textContent)),new StiColorMeta("BackColor","",Color.transparent),new StiStringMeta("AltClientRectangle","",StiJsonReportObjectHelper.Serialize.rectangleD(RectangleD.empty)).get(()=>StiJsonReportObjectHelper.Serialize.rectangleD(this.altClientRectangle)).set(t=>this.altClientRectangle=StiJsonReportObjectHelper.Deserialize.rectangleD(t.value)).setXml(t=>this.altClientRectangle=this.loadRectangleDFromXml(t.textContent)),new StiBoolMeta("AltTitleVisible","",!0),new StiStringNullOrEmptyMeta("AltParentKey"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("DashboardWatermark"),new StiStringNullOrEmptyMeta("Style"),new StiStringNullOrEmptyMeta("WatermarkStyle")]}getMeters(t=!0,e=null){return this.getElements(t,e).flatMap(t=>t.getMeters())}getElements(t=!0,e=null){let i=(t?this.getComponents():this.components).list.filter(t=>t.is(IStiElement));return null==e?i.filter(t=>!t.is(IStiGroupElement)||null==StiGroupElementHelper.getGroup(t)):i.filter(t=>StiGroupElementHelper.getGroup(t)==e)}fetchAllMeters(){return[]}getMeters2(){return[]}getFilterRules(){return[]}getNestedPages(){return[]}get dashboard(){return this.page.as(IStiDashboard)}get isDefined(){return!0}get isQuerable(){return!1}async isEnabledAsync(){return StiAppExpressionHelper.isExpressionSpecified(this,"enabled")?StiAppExpressionParser.parseBoolExpressionAsync(this,"enabled",!0):this.enabled}get zoom(){return null==this.report||null==this.report.info?1:this.report.info.zoom}retrieveUsedDataNames(t){return[]}getDictionary(){return null!=this.report?this.report.dictionary:null}getDataSources(t){return StiDataSourcePicker.fetch(this,null,t,this.getDictionary()?.fetchDataSources())}get watermarkStyle(){return this._watermarkStyle}set watermarkStyle(e){if(this._watermarkStyle!=e&&(this._watermarkStyle=e,null!=this?.report)&&null!=e){let t=this.report.styles.getByName(e);null!=t&&t.setStyleToComponent(this)}}getApp(){return this.report}get toolboxPosition(){return StiComponentToolboxPosition.TextElement}get localizedName(){return StiLocalization.get("Components","StiPanel")}get brush(){return new StiSolidBrush(this.backColor)}set brush(t){this.backColor=StiBrush.toColor(t)}get style(){return this.componentStyle}set style(t){this.componentStyle=t}get serviceCategory(){return Loc.get("Permissions","ItemDashboards")}get localizedCategory(){return this.serviceCategory}get toolboxCategory(){return StiToolboxCategory.Dashboards}canContainIn(t){return t.is(__.e.StiDashboard)}get key(){return this.guid}set key(t){this.guid=t}constructor(t=Rectangle.empty){super(t),this.margin=StiMargin.create(3),this.padding=StiPadding.create(0),this.border2=new StiSimpleBorder,this.backColor=Color.transparent,this.dashboardWatermark=new StiAdvancedWatermark,this._watermarkStyle="",this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.altTitleVisible=!0,this.altClientRectangle=RectangleD.empty,this.defaultClientRectangle=new Rectangle(0,0,300,300),this.helpUrl="user-manual/dashboards_panel.htm",this.key=StiKeyHelper.generateKey(),this.brush=new StiEmptyBrush,this.placeOnToolbox=!0}},Stimulsoft.Report.Dashboard.ImplementsIStiElement),ImplementsIStiBackColor=Stimulsoft.Report.Components.ImplementsIStiBackColor,StiPanelElement=__.E.StiPanelElement,IStiBackColor=Stimulsoft.Report.Components.IStiBackColor,StiComponent=Stimulsoft.Report.Components.StiComponent,StiDataSorter=(__.e.StiElement=class extends StiComponent{implements(){let t=super.implements().concat([IStiElement,IStiSimpleBorder,IStiBackColor,IStiPadding,IStiMargin,IStiAltProperties,...ImplementsIStiElement,...ImplementsIStiBackColor,...ImplementsIStiPadding,...ImplementsIStiMargin,...ImplementsIStiAltProperties,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiRemoveMeta(["UseParentStyles","MinSize","MaxSize","Interaction","PrintOn","GrowToHeight","ShiftMode","CanShrink","CanGrow","Printable","Bookmark","Hyperlink","Conditions","GetBookmarkEvent","GetHyperlinkEvent","GetTagEvent","GetToolTipEvent","BeforePrintEvent","AfterPrintEvent","ClickEvent","DoubleEvent","MouseEnterEvent","MouseLeaveEvent","GetDrillDownReportEvent"]),new StiObjectMeta("Margin").get(t=>this.margin.saveToJsonObject(3,3,3,3)),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(5,5,5,5)),new StiStringNullOrEmptyMeta("Border","border2").get(()=>StiJsonReportObjectHelper.Serialize.jBorder2(this.border2)).set(t=>this.border2=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.value)).setXml(t=>this.border2=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.textContent)),new StiColorMeta("BackColor","",Color.transparent),new StiStringMeta("AltClientRectangle","",StiJsonReportObjectHelper.Serialize.rectangleD(RectangleD.empty)).get(()=>StiJsonReportObjectHelper.Serialize.rectangleD(this.altClientRectangle)).set(t=>this.altClientRectangle=StiJsonReportObjectHelper.Deserialize.rectangleD(t.value)).setXml(t=>this.altClientRectangle=this.loadRectangleDFromXml(t.textContent)),new StiBoolMeta("AltTitleVisible","",!0),new StiStringNullOrEmptyMeta("AltParentKey","")]}convert(t,e,i=!1){}fetchAllMeters(){return[]}getMeters(){return[]}get dashboard(){return this.page.as(IStiDashboard)}get isDefined(){return!0}get isQuerable(){return!0}async isEnabledAsync(){return StiAppExpressionHelper.isExpressionSpecified(this,"enabled")?StiAppExpressionParser.parseBoolExpressionAsync(this,"enabled",!0):this.enabled}get zoom(){return null!=this.page?this.page.zoom:1}retrieveUsedDataNames2(t){return this.retrieveUsedDataNames()}retrieveUsedDataNames(){return[]}getDictionary(){return null!=this.report?this.report.dictionary:null}getDataSources(t){return StiDataSourcePicker.fetch(this,null,t,this.getDictionary()?.fetchDataSources())}clone(t){let e=super.clone(t);return e.border2=this.border2?.clone(),e.margin=this.margin?.clone(),e.padding=this.padding?.clone(),e}get backColor(){return this._backColor}set backColor(t){this._backColor=t}get padding(){return this.getPadding()}set padding(t){this.setPadding(t)}getPadding(){return this._padding}setPadding(t){this._padding=t}get serviceCategory(){return Loc.get("Permissions","ItemDashboards")}canContainIn(t){return t.is(__.e.StiDashboard)||t.is(StiPanelElement)}get localizedCategory(){return this.serviceCategory}get localizedName(){return Loc.get("Components","StiDashboard")}get key(){return this.guid}set key(t){this.guid=t}getNestedPages(){return null}constructor(t=Rectangle.empty){super(t),this.border2=new StiSimpleBorder,this._backColor=Color.transparent,this.margin=StiMargin.create(3),this._padding=StiPadding.create(5),this.altTitleVisible=!0,this.altClientRectangle=RectangleD.empty,this.toolboxCategory=StiToolboxCategory.Dashboards,this.defaultClientRectangle=new Rectangle(0,0,280,280),this.key=StiKeyHelper.generateKey(),this.placeOnToolbox=!0}},Stimulsoft.Data.Engine.StiDataSorter),DataColumn=Stimulsoft.System.Data.DataColumn,StiEmptyCellsAs=Stimulsoft.Report.Dashboard.StiEmptyCellsAs,StiReportParser=Stimulsoft.Report.Dashboard.StiReportParser,StiValueHelper=Stimulsoft.Base.Helpers.StiValueHelper,StiDataGrouper=Stimulsoft.Data.Engine.StiDataGrouper,DataTable=Stimulsoft.System.Data.DataTable,List=Stimulsoft.System.Collections.Generic.List,StiDataTable=Stimulsoft.Data.Engine.StiDataTable,StiStringsTableHelper=Stimulsoft.Report.Helpers.StiStringsTableHelper;{class Z0{static getIndicatorDataTable(t,e){let i=StiStringsTableHelper.loadStringRowsFromCache(e),r=(null==i&&(i=StiStringsTableHelper.loadStringRowsFromPackedString(t,[this.columnValue,this.columnTarget,this.columnSeries])),[]);if(r.push(new __.V.StiValueIndicatorMeter(null,null,StiLocalization.get("PropertyMain","Value"))),r.push(new __.V.StiTargetIndicatorMeter(null,null,StiLocalization.get("PropertyMain","Target"))),r.push(new __.V.StiSeriesIndicatorMeter(null,null,StiLocalization.get("Chart","Series"))),null==i)return new StiDataTable(r,[]);let l=i[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy(t=>t[2]).select(t=>[t.sum(t=>this.parseDecimal(t[0],e)),this.sumNullable(t.select(t=>this.parseNullableDecimal(t[1],e)).toList()),this.parseString(t.key,e)]);return new StiDataTable(r,l)}static getProgressDataTable(t,e){let i=StiStringsTableHelper.loadStringRowsFromCache(e),r=(null==i&&(i=StiStringsTableHelper.loadStringRowsFromPackedString(t,[this.columnValue,this.columnTarget,this.columnSeries])),[]);if(r.push(new __.N.StiValueProgressMeter(null,null,StiLocalization.get("PropertyMain","Value"))),r.push(new __.N.StiTargetProgressMeter(null,null,StiLocalization.get("PropertyMain","Target"))),r.push(new __.N.StiSeriesProgressMeter(null,null,StiLocalization.get("Chart","Series"))),null==i)return new StiDataTable(r,[]);let l=i[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy(t=>t[2]).select(t=>[t.sum(t=>this.parseDecimal(t[0],e)),this.sumNullable(t.select(t=>this.parseNullableDecimal(t[1],e)).toList()),this.parseString(t.key,e)]);return new StiDataTable(r,l)}static getGaugeDataTable(t,e,i){let r=StiStringsTableHelper.loadStringRowsFromCache(i),l=(null==r&&(r=StiStringsTableHelper.loadStringRowsFromPackedString(t,[this.columnValue,this.columnTarget,this.columnSeries])),[]);if(l.push(new __.U.StiValueGaugeMeter(null,null,StiLocalization.get("PropertyMain","Value"))),l.push(new __.U.StiTargetGaugeMeter(null,null,StiLocalization.get("PropertyMain","Target"))),l.push(new __.U.StiSeriesGaugeMeter(null,null,StiLocalization.get("Chart","Series"))),null==r)return new StiDataTable(l,[]);let n;if(e){n=new List;let t=r.find(t=>!0);null!=t&&n.add([this.parseDateTime(t[0],i),this.parseDateTime(t[1],i),this.parseDateTime(t[2],i)])}else n=r[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy(t=>t[2]).select(t=>[t.sum(t=>this.parseDecimal(t[0],i)),this.sumNullable(t.select(t=>this.parseNullableDecimal(t[1],i)).toList()),this.parseString(t.key,i)]);return new StiDataTable(l,n)}static getChartDataTable(t,s){let e=s.as(__.I.StiChartElement),o={ref:[]},i=StiStringsTableHelper.loadColumnsAndStringRowsFromCache(s,o),a=(null==i&&(i=StiStringsTableHelper.loadColumnsAndStringRowsFromPackedString(t,o)),e.isBubbleChart),r=e.isScatterChart,l=e.isRange,n=e.isFinancial,u=e.isHeatmapChart,S=e.manuallyEnteredChartMeter,m=[],h=[];for(let e of o.ref){let t=h.length;switch(e){case this.columnValue:if(a)h.push(new __.I.StiYChartMeter("Value","T.Value","Y"));else if(u)h.push(new __.I.StiValueChartMeter("Value","T.Value",StiLocalization.get("PropertyMain","Values"),S.seriesType));else if(l)h.push(new __.I.StiStartValueChartMeter("Value","Sum(T.Value)",StiLocalization.get("PropertyMain","Values"),S.seriesType));else if(n)h.push(new __.I.StiOpenValueChartMeter("Value","Sum(T.Value)",StiLocalization.get("PropertyMain","OpenValues"),S.seriesType));else{let t=S.clone().as(__.I.StiValueChartMeter);t.expression="Sum(T.Value)",t.label=StiLocalization.get("PropertyMain","Values"),t.key="Value",t.showNulls=StiEmptyCellsAs.ConnectPointsWithLine,t.showZeros=StiEmptyCellsAs.ConnectPointsWithLine,h.push(t)}break;case this.columnEndValue:l&&h.push(new __.I.StiEndValueChartMeter("EndValue","Sum(T.EndValue)",StiLocalization.get("PropertyMain","EndValues")));break;case this.columnCloseValue:n&&h.push(new __.I.StiCloseValueChartMeter("CloseValue","Sum(T.CloseValue)",StiLocalization.get("PropertyMain","CloseValues")));break;case this.columnLowValue:n&&h.push(new __.I.StiLowValueChartMeter("LowValue","Sum(T.LowValue)",StiLocalization.get("PropertyMain","LowValues")));break;case this.columnHighValue:n&&h.push(new __.I.StiHighValueChartMeter("HighValue","Sum(T.HighValue)",StiLocalization.get("PropertyMain","HighValues")));break;case this.columnArgument:a?h.push(new __.I.StiXChartMeter("Argument","T.Argument","X")):u||h.push(new __.I.StiArgumentChartMeter("Argument","T.Argument",StiLocalization.get("PropertyMain","Arguments")));break;case this.columnWeight:a&&h.push(new __.I.StiWeightChartMeter("Weight","Sum(T.Weight)",StiLocalization.get("PropertyMain","Weights")));break;case this.columnSeries:u||h.push(new __.I.StiSeriesChartMeter("Series","T.Series",StiLocalization.get("PropertyMain","Series")));break;case this.columnX:u&&h.push(new __.I.StiXChartMeter("X","T.X","X"));break;case this.columnY:u&&h.push(new __.I.StiYChartMeter("Y","T.Y","Y"));break}h.length!=t&&m.push(e)}if(null==i||!i.some(t=>!0))return new StiDataTable(h,[]);let c=new DataTable;c.tableName="T";for(let n of i){let r=c.newRow(),l=0;for(let i of o.ref){let e=null;switch(i){case this.columnValue:e=this.parseDecimal(n[l],s);break;case this.columnEndValue:e=this.parseDecimal(n[l],s);break;case this.columnCloseValue:e=this.parseDecimal(n[l],s);break;case this.columnLowValue:e=this.parseDecimal(n[l],s);break;case this.columnHighValue:e=this.parseDecimal(n[l],s);break;case this.columnArgument:e=a?this.parseDecimal(n[l],s):this.parseString(n[l],s);break;case this.columnWeight:e=this.parseDecimal(n[l],s);break;case this.columnSeries:e=this.parseString(n[l],s);break;case this.columnX:e=this.parseString(n[l],s);break;case this.columnY:e=this.parseString(n[l],s);break}let t=m.indexOf(i);if(-1!=t){if(!c.columns.contains("T."+i)){let t=new DataColumn("T."+i,"string"==typeof e?String:Number);c.columns.add(t)}r.sett(t,e)}l++}c.rows.add(r)}if(a||r||u){let t=c.rows.toList().select(t=>t.itemArray);return new StiDataTable(h,t)}{let t=StiDataGrouper.group(s.getDictionary(),c,h);return StiDataSorter.sort(t,e.userSorts,e.report,0)}}static sumNullable(t){if(null==t)return null;if(!(t=t?.filter(t=>null!=t)).length)return null;return t[Stimulsoft.System.StiObject.stimulsoft]().sum()}static parseDateTime(t,e){return null!=t&&t.includes("{")?StiValueHelper.tryToDateTime(StiReportParser.parse2(t,e.report)):StiValueHelper.tryToDateTime(t)}static parseDecimal(t,e){return null!=t&&0<=t.indexOf("{")?StiValueHelper.tryToNumber(StiReportParser.parse2(t,e.report)):StiValueHelper.tryToNumber(t)}static parseNullableDecimal(t,e){return null!=t&&0<=t.indexOf("{")&&(t=StiReportParser.parse2(t,e.report)),StiString.isNullOrWhiteSpace(t)?null:StiValueHelper.tryToNumber(t)}static parseString(t,e){if(null==t)return"";let i="string"==typeof t?t:t?.[Stimulsoft.System.StiObject.stimulsoft]().toString();return null!=i&&0<=i.indexOf("{")?StiReportParser.parse2(i,e.report):i}}Z0.columnValue="Value",Z0.columnEndValue="EndValue",Z0.columnTarget="Target",Z0.columnCloseValue="CloseValue",Z0.columnLowValue="LowValue",Z0.columnHighValue="HighValue",Z0.columnArgument="Argument",Z0.columnX="X",Z0.columnY="Y",Z0.columnWeight="Weight",Z0.columnSeries="Series",__.e.StiManuallyEnteredDataParser=Z0}let IStiMeasureMeter=Stimulsoft.Base.Meters.IStiMeasureMeter,StiTitlePadding=(__.e.StiMeasureMeter=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiMeasureMeter]);return(this.implements=()=>t)()}constructor(t,e,i){super(t,e,i)}},Stimulsoft.Report.Dashboard.StiTitlePadding),IStiTitlePadding=Stimulsoft.Report.Dashboard.IStiTitlePadding,StiTextSizeMode=Stimulsoft.Report.Dashboard.StiTextSizeMode,StiFontMeta=Stimulsoft.Base.Meta.StiFontMeta,ImplementsIStiTitle=Stimulsoft.Report.Dashboard.ImplementsIStiTitle,IStiTitle=Stimulsoft.Report.Dashboard.IStiTitle,ICloneable=Stimulsoft.System.ICloneable,Font=Stimulsoft.System.Drawing.Font,StiHorAlignment=Stimulsoft.Base.Drawing.StiHorAlignment;{class StiTitle{implements(){let t=[ICloneable,IStiJsonReportObject,IStiTitle,IStiTitlePadding,...ImplementsIStiTitle];return(this.implements=()=>t)()}meta(){return[new StiStringMeta("Text"),new StiColorMeta("ForeColor","",Color.transparent),new StiColorMeta("BackColor","",Color.transparent),new StiBoolMeta("Visible","",!0),new StiFontMeta("Font","","Arial",11),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Left),new StiEnumMeta("SizeMode","",StiTextSizeMode,StiTextSizeMode.Fit),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(0,0,0,0))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new StiTitle;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiTitle;return e.loadFromXml(t),e}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(t,e,i,r,l,n,s,o){this.padding=StiTitlePadding.create(0),this.horAlignment=StiHorAlignment.Left,this.font=new Font("Arial",11),this.backColor=Color.transparent,this.foreColor=Color.transparent,this.text="",this.visible=!0,this.sizeMode=StiTextSizeMode.Fit,null!=t&&(this.text=t),null!=e&&(this.foreColor=e),null!=i&&(this.backColor=i),null!=r&&(this.font=r),null!=l&&(this.horAlignment=l),null!=n&&(this.visible=n),null!=s&&(this.sizeMode=s),null!=o&&(this.padding=o)}}__.e.StiTitle=StiTitle}let StiFontIcons=Stimulsoft.Report.Helpers.StiFontIcons,IStiButtonElementIconSet=Stimulsoft.Report.Dashboard.IStiButtonElementIconSet;{class StiButtonElementIconSet{implements(){let t=[IStiButtonElementIconSet,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiEnumMeta("Icon","",StiFontIcons).check(()=>null!=this.icon),new StiEnumMeta("CheckedIcon","",StiFontIcons).check(()=>null!=this.checkedIcon),new StiEnumMeta("UncheckedIcon","",StiFontIcons).check(()=>null!=this.uncheckedIcon)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new StiButtonElementIconSet;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiButtonElementIconSet;return e.loadFromXml(t),e}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}isDefault(){return null==this.icon&&null==this.checkedIcon&&null==this.uncheckedIcon}constructor(t,e){this.icon=null,this.checkedIcon=null,this.uncheckedIcon=null,null!=t&&(this.checkedIcon=t),null!=e&&(this.uncheckedIcon=e)}}__.F.StiButtonElementIconSet=StiButtonElementIconSet}let StiFont=Stimulsoft.Base.StiFont,StiDataFilterCondition=Stimulsoft.Data.Engine.StiDataFilterCondition,StiBrushMeta=Stimulsoft.Base.Meta.StiBrushMeta,StiButtonElementIconSet=__.F.StiButtonElementIconSet,StiIconAlignment=Stimulsoft.Report.Dashboard.StiIconAlignment,StiAlignValue=Stimulsoft.Base.StiAlignValue,StiCopyStyleExtHub=Stimulsoft.Report.Design.StiCopyStyleExtHub,StiStyleBrush=Stimulsoft.Base.Drawing.StiStyleBrush,StiVertAlignment=Stimulsoft.Base.Drawing.StiVertAlignment,StiBorderSides=Stimulsoft.Base.Drawing.StiBorderSides,StiTextHorAlignment=Stimulsoft.Base.Drawing.StiTextHorAlignment,StiGeneralFormatService=Stimulsoft.Report.Components.TextFormats.StiGeneralFormatService,StiDataFilterRule=Stimulsoft.Data.Engine.StiDataFilterRule,StiButtonType=Stimulsoft.Report.Dashboard.StiButtonType,StiNumber=Stimulsoft.System.StiNumber,StiButtonShapeType=Stimulsoft.Base.Drawing.StiButtonShapeType,StiButtonStretch=Stimulsoft.Report.Dashboard.StiButtonStretch,ImplementsIStiButtonElement=Stimulsoft.Report.Dashboard.ImplementsIStiButtonElement,IStiCopyStyleExt=Stimulsoft.Report.Design.IStiCopyStyleExt,IStiWordWrap=Stimulsoft.Report.Components.IStiWordWrap,IStiTextBrush=Stimulsoft.Report.Components.IStiTextBrush,IStiButtonElement=Stimulsoft.Report.Dashboard.IStiButtonElement,ImplementsIStiFixedHeightElement=Stimulsoft.Report.Dashboard.ImplementsIStiFixedHeightElement,ImplementsIStiFont=Stimulsoft.Report.Components.ImplementsIStiFont,ImplementsIStiVertAlignment=Stimulsoft.Report.Components.ImplementsIStiVertAlignment,ImplementsIStiTextHorAlignment=Stimulsoft.Report.Components.ImplementsIStiTextHorAlignment,IStiBrush=Stimulsoft.Report.Components.IStiBrush,IStiFixedHeightElement=Stimulsoft.Report.Dashboard.IStiFixedHeightElement,IStiFont=Stimulsoft.Report.Components.IStiFont,IStiVertAlignment=Stimulsoft.Report.Components.IStiVertAlignment,IStiTextHorAlignment=Stimulsoft.Report.Components.IStiTextHorAlignment;{let e=Stimulsoft.Base.Drawing.SizeD,i=Stimulsoft.Base.Drawing.RectangleD;__.F.StiButtonElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiButtonElement,IStiCopyStyleExt,IStiTextHorAlignment,IStiVertAlignment,IStiWordWrap,IStiFont,IStiFixedHeightElement,IStiBrush,IStiTextBrush,IStiJsonReportObject,...ImplementsIStiButtonElement,...ImplementsIStiTextHorAlignment,...ImplementsIStiVertAlignment,...ImplementsIStiFont,...ImplementsIStiFixedHeightElement]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.brush=this.brush?.clone(),e.textBrush=this.textBrush?.clone(),e.iconBrush=this.iconBrush?.clone(),e.iconSet=this.iconSet?.clone(),e.shadow=this.shadow?.clone(),e.font=this.font?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.visualStates=this.visualStates.clone(),e.clickEvent=this.clickEvent?.clone(),e.checkedChangedEvent=this.checkedChangedEvent?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiStringMeta("Text","","Button"),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiEnumMeta("Type","",StiButtonType,StiButtonType.Button),new StiEnumMeta("ShapeType","",StiButtonShapeType,StiButtonShapeType.Rectangle),new StiEnumMeta("Stretch","",StiButtonStretch,StiButtonStretch.StretchXY),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("Group"),new StiEnumMeta("HorAlignment","",StiTextHorAlignment,StiTextHorAlignment.Center),new StiEnumMeta("VertAlignment","",StiVertAlignment,StiVertAlignment.Center),new StiEnumMeta("IconAlignment","",StiIconAlignment,StiIconAlignment.Left),new StiBoolMeta("WordWrap","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiBrushMeta("Brush"),new StiBrushMeta("TextBrush"),new StiBrushMeta("IconBrush"),new StiFontMeta("Font","","Arial",10),new StiBoolMeta("Checked"),new StiObjectMeta("IconSet").check(()=>null!=this.iconSet&&!this.iconSet.isDefault()).get(()=>this.iconSet.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.iconSet=StiButtonElementIconSet.createFromJsonObject(t.value)).setXml(t=>this.iconSet=StiButtonElementIconSet.createFromXml(t)),new StiObjectMeta("VisualStates").check(()=>null!=this.visualStates).get(()=>this.visualStates.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.visualStates=__.F.StiButtonVisualStates.createFromJsonObject(t.value)).setXml(t=>this.visualStates=__.F.StiButtonVisualStates.createFromXml(t)),new StiEventMeta("ClickEvent"),new StiEventMeta("CheckedChangedEvent"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly)]}get isFixedHeight(){return this.stretch==StiButtonStretch.StretchX}get checked(){return this.checkedValue}set checked(t){this.checkedValue!=t&&(this.checkedValue=t)}get stretch(){return this._stretch}set stretch(t){if(this._stretch!=t&&(this._stretch=t)==StiButtonStretch.StretchX&&this.isDesigning){let t=this.getFixedHeight();null!=t&&(this.height=StiNumber.getValueOrDefault(t))}}getIconSet(){return this.iconSet}getVisualStates(){return this.visualStates}get style(){return this._style}set style(t){this._style!=t&&(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}get customStyleName(){return this._customStyleName}set customStyleName(t){this._customStyleName!=t&&(this._customStyleName=t,StiString.isNullOrWhiteSpace(t)||(this._style=StiElementStyleIdent.Custom))}convertFrom(t){}getParentKey(){return""}setParentKey(t){}async applyDefaultFilters(){}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.toList()}getFonts(){return StiFont.get(...super.getFonts(),this.font,...this.visualStates.getFonts())}get backColor(){return StiBrush.toColor(this.brush)}set backColor(t){this.brush=new StiSolidBrush(t)}get foreColor(){return StiBrush.toColor(this.textBrush)}set foreColor(t){this.textBrush=new StiSolidBrush(t)}invokeSetCopyStyle(){null!=StiCopyStyleExtHub.visualStateDefault&&this.loadFromJsonObject(StiCopyStyleExtHub.visualStateDefault),this.visualStates.invokeSetCopyStyle()}invokeGetCopyStyle(){StiCopyStyleExtHub.visualStateDefault=this.saveToJsonObject(StiJsonSaveMode.Report),this.visualStates.invokeGetCopyStyle()}get toolboxPosition(){return StiComponentToolboxPosition.ButtonElement}get localizedName(){return StiLocalization.get("Components","StiButton")}getFixedHeight(){let t=this.report?.getCurrentPage();if(null==t)return null;return StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0)}get visualStates(){return this._visualStates}set visualStates(t){t!=this._visualStates&&null!=(this._visualStates=t)&&(t.parent=this)}get isChecked(){return StiAppExpressionHelper.isExpressionSpecified(this,"checked")?StiAppExpressionParser.parseBoolExpression(this,"checked",!0):this.checked}getMinSize(){if(!this.isFixedHeight)return super.getMinSize();let t=this.getFixedHeight();if(null==t)return e.empty;return new e(0,StiNumber.getValueOrDefault(t))}setMinSize(t){this.isFixedHeight||super.setMinSize(t)}getMaxSize(){if(!this.isFixedHeight)return super.getMaxSize();let t=this.getFixedHeight();if(null==t)return e.empty;return new e(0,StiNumber.getValueOrDefault(t))}setMaxSize(t){this.isFixedHeight||super.setMaxSize(t)}invokeCheckedChanged(t,e){}constructor(t=Rectangle.empty){super(t),this.checkedValue=!1,this.shapeType=StiButtonShapeType.Rectangle,this._stretch=StiButtonStretch.StretchXY,this.type=StiButtonType.Button,this.shadow=new StiSimpleShadow,this._style=StiElementStyleIdent.Auto,this._customStyleName="",this.userFilters=[],this.textFormat=new StiGeneralFormatService,this.font=new Font("Arial",10),this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.cornerRadius=new StiCornerRadius,this.horAlignment=StiTextHorAlignment.Center,this.vertAlignment=StiVertAlignment.Center,this.wordWrap=!0,this.brush=new StiStyleBrush,this.textBrush=new StiStyleBrush,this.defaultClientRectangle=new i(0,0,140,40),this.helpUrl="user-manual/dashboards_data_filtering_button.htm",this.text="Button",this.group="",this.iconAlignment=StiIconAlignment.Left,this.iconBrush=new StiStyleBrush,this.checkedChangedEvent=null,this.iconSet=new StiButtonElementIconSet,this.visualStates=new __.F.StiButtonVisualStates,this.border2.side=StiBorderSides.All,this.border2.size=2}}}let StiDefaultBrush=Stimulsoft.Base.Drawing.StiDefaultBrush,IStiButtonVisualState=Stimulsoft.Report.Dashboard.IStiButtonVisualState;{class Bc{constructor(){this.font=null,this.brush=new StiDefaultBrush,this.textBrush=new StiDefaultBrush,this.border=null,this.iconSet=new __.F.StiButtonElementIconSet,this.iconBrush=new StiDefaultBrush}implements(){let t=[IStiButtonVisualState,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiBrushMeta("Brush").check(()=>null!=this.brush),new StiBrushMeta("TextBrush").check(()=>null!=this.textBrush),new StiBrushMeta("IconBrush").check(()=>null!=this.iconBrush),new StiStringNullOrEmptyMeta("Font").check(()=>null!=this.font).get(()=>StiJsonReportObjectHelper.Serialize.font(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,null)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiStringNullOrEmptyMeta("Border").check(()=>null!=this.border).get(()=>StiJsonReportObjectHelper.Serialize.jBorder2(this.border)).set(t=>this.border=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.value)).setXml(t=>this.border=StiJsonReportObjectHelper.Deserialize.simpleBorder(t.textContent)),new StiObjectMeta("IconSet").check(()=>null!=this.iconSet&&!this.iconSet.isDefault()).get(()=>this.iconSet.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.iconSet=__.F.StiButtonElementIconSet.createFromJsonObject(t.value)).setXml(t=>this.iconSet=__.F.StiButtonElementIconSet.createFromXml(t))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new Bc;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new Bc;return e.loadFromXml(t),e}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.border=this.border?.clone(),t.brush=this.brush?.clone(),t.textBrush=this.textBrush?.clone(),t.iconBrush=this.iconBrush?.clone(),t.font=this.font?.clone(),t.iconSet=this.iconSet?.clone(),t}getIconSet(){return this.iconSet}}__.F.StiButtonVisualState=Bc}let IStiGetFonts=Stimulsoft.Base.IStiGetFonts,IStiButtonVisualStates=Stimulsoft.Report.Dashboard.IStiButtonVisualStates;{class Rc{implements(){let t=[IStiButtonVisualStates,ICloneable,IStiGetFonts,IStiCopyStyleExt];return(this.implements=()=>t)()}meta(){return[new StiObjectMeta("Hover").check(()=>null!=this.hover).get(()=>this.hover.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.hover=__.F.StiButtonVisualState.createFromJsonObject(t.value)).setXml(t=>this.hover=__.F.StiButtonVisualState.createFromXml(t)),new StiObjectMeta("Pressed").check(()=>null!=this.pressed).get(()=>this.pressed.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.pressed=__.F.StiButtonVisualState.createFromJsonObject(t.value)).setXml(t=>this.pressed=__.F.StiButtonVisualState.createFromXml(t)),new StiObjectMeta("Checked").check(()=>null!=this.checked).get(()=>this.checked.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.checked=__.F.StiButtonVisualState.createFromJsonObject(t.value)).setXml(t=>this.checked=__.F.StiButtonVisualState.createFromXml(t))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new Rc;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new Rc;return e.loadFromXml(t),e}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.hover=this.hover.clone(),t.pressed=this.pressed.clone(),t.checked=this.checked.clone(),t}getFonts(){return StiFont.get(this.hover.font,this.pressed.font,this.checked.font)}invokeSetCopyStyle(){null!=StiCopyStyleExtHub.visualStateHover&&(this.hover=new __.F.StiButtonVisualState,this.hover.loadFromJsonObject(StiCopyStyleExtHub.visualStateHover)),null!=StiCopyStyleExtHub.visualStatePressed&&(this.pressed=new __.F.StiButtonVisualState,this.pressed.loadFromJsonObject(StiCopyStyleExtHub.visualStatePressed)),null!=StiCopyStyleExtHub.visualStateChecked&&(this.checked=new __.F.StiButtonVisualState,this.checked.loadFromJsonObject(StiCopyStyleExtHub.visualStateDisabled))}invokeGetCopyStyle(){StiCopyStyleExtHub.visualStateHover=this.hover.saveToJsonObject(StiJsonSaveMode.Report),StiCopyStyleExtHub.visualStatePressed=this.pressed.saveToJsonObject(StiJsonSaveMode.Report),StiCopyStyleExtHub.visualStateChecked=this.checked.saveToJsonObject(StiJsonSaveMode.Report)}getHoverState(){return this.hover}getPressedState(){return this.pressed}getCheckedState(){return this.checked}get hover(){return this._hover}set hover(t){this._hover!=t&&null!=(this._hover=t)&&(t.parent=this.parent)}get pressed(){return this._pressed}set pressed(t){this._pressed!=t&&null!=(this._pressed=t)&&(t.parent=this.parent)}get checked(){return this._checked}set checked(t){this._checked!=t&&null!=(this._checked=t)&&(t.parent=this.parent)}constructor(){this.hover=new __.F.StiButtonVisualState,this.pressed=new __.F.StiButtonVisualState,this.checked=new __.F.StiButtonVisualState}}__.F.StiButtonVisualStates=Rc}let StiActivator=Stimulsoft.Base.StiActivator,IStiDashboardInteraction=(__.y.StiDashboardInteractionLoader=class{static loadInteractionFromJsonObject(t){let e=t.properties().find(t=>"Ident"==t.name).value.toString(),i=__.y.StiDashboardInteractionCreator.new2(e);return i.loadFromJsonObject(t),i}static loadInteractionFromXml(i){let t=i.attributes.getNamedItem("type");if(null!=t){let e=i.attributes.getNamedItem("type").value;if(!StiString.isNullOrEmpty(e)){let t=StiActivator.createObject2(e);if(null!=t)return t.loadFromXml(i),t}}return null}},Stimulsoft.Report.Dashboard.IStiDashboardInteraction),StiInteractionOnHover=Stimulsoft.Report.Dashboard.StiInteractionOnHover,StiInteractionOnClick=Stimulsoft.Report.Dashboard.StiInteractionOnClick,StiInteractionOpenHyperlinkDestination=Stimulsoft.Report.Dashboard.StiInteractionOpenHyperlinkDestination,StiInteractionIdent=Stimulsoft.Report.Dashboard.StiInteractionIdent,StiAvailableInteractionOnClick=Stimulsoft.Report.Dashboard.StiAvailableInteractionOnClick,StiAvailableInteractionOnHover=Stimulsoft.Report.Dashboard.StiAvailableInteractionOnHover,StiAvailableInteractionOnDataManipulation=Stimulsoft.Report.Dashboard.StiAvailableInteractionOnDataManipulation,StiDashboardInteractionLoader=(__.g.StiDashboardInteraction=class{implements(){let t=[IStiDashboardInteraction,IStiJsonReportObject];return(this.implements=()=>t)()}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}clone(t=!0,e=!0){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiEnumMeta("Ident","",StiInteractionIdent),new StiEnumMeta("OnHover","",StiInteractionOnHover),new StiEnumMeta("OnClick","",StiInteractionOnClick),new StiEnumMeta("HyperlinkDestination","",StiInteractionOpenHyperlinkDestination),new StiStringNullOrEmptyMeta("ToolTip"),new StiStringNullOrEmptyMeta("DrillDownPageKey"),new StiStringNullOrEmptyMeta("Hyperlink"),new StiObjectMeta("DrillDownParameters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.drillDownParameters,t)).set(t=>this.drillDownParameters.push(...t.value.properties().map(t=>__.g.StiDashboardDrillDownParameter.loadFromJson(t.value)))).setXml(t=>this.drillDownParameters.push(...t.childNodes.map(t=>__.g.StiDashboardDrillDownParameter.loadFromXml(t))))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.ApplyFilter&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}getDrillDownParameters(){return this.drillDownParameters.slice()}setDrillDownParameters(t){this.drillDownParameters=[],null!=t&&t.forEach(t=>{let e=new __.g.StiDashboardDrillDownParameter;e.name=t["name"],e.expression=t["expression"],this.drillDownParameters.push(e)})}constructor(t,e,i,r,l,n,s){this.availableOnClick=StiAvailableInteractionOnClick.All,this.availableOnHover=StiAvailableInteractionOnHover.All,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.None,this.onHover=StiInteractionOnHover.ShowToolTip,this.onClick=StiInteractionOnClick.ApplyFilter,this.hyperlinkDestination=StiInteractionOpenHyperlinkDestination.NewTab,this.toolTip="",this.hyperlink="",this.drillDownPageKey="",this.drillDownParameters=[],null!=t&&(this.onHover=t),null!=e&&(this.onClick=e),null!=i&&(this.hyperlinkDestination=i),null!=r&&(this.toolTip=r),null!=l&&(this.hyperlink=l),null!=n&&(this.drillDownPageKey=n),null!=s&&(this.drillDownParameters=s)}},__.g.StiCardsColumnDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.None&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.CardsColumn,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.onHover=StiInteractionOnHover.None,this.onClick=StiInteractionOnClick.None}},__.y.StiDashboardInteractionLoader),StiCardsColumnDashboardInteraction=__.g.StiCardsColumnDashboardInteraction,IStiElementInteraction=Stimulsoft.Report.Dashboard.IStiElementInteraction,IStiCardsColumn=Stimulsoft.Base.Meters.IStiCardsColumn,StiCardsColumnVisibility=Stimulsoft.Base.Drawing.StiCardsColumnVisibility,ImplementsIStiForeColor=Stimulsoft.Report.Components.ImplementsIStiForeColor,ImplementsIStiHorAlignment=Stimulsoft.Report.Components.ImplementsIStiHorAlignment,StiFormatService=Stimulsoft.Report.Components.TextFormats.StiFormatService,IStiForeColor=Stimulsoft.Report.Components.IStiForeColor,IStiTextFormat=Stimulsoft.Report.Components.IStiTextFormat,IStiHorAlignment=Stimulsoft.Report.Components.IStiHorAlignment,IStiDataTopN=Stimulsoft.Data.Engine.IStiDataTopN,StiDataTopN=Stimulsoft.Data.Engine.StiDataTopN,IStiMeasureCardsColumn=(__.G.StiCardsColumn=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiCardsColumn,IStiHorAlignment,IStiVertAlignment,IStiForeColor,IStiTextFormat,IStiFont,IStiWordWrap,IStiDataTopN,IStiElementInteraction,...ImplementsIStiHorAlignment,...ImplementsIStiForeColor,...ImplementsIStiFont]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiEnumMeta("VertAlignment","",StiVertAlignment,StiVertAlignment.Center),new StiNumberMeta("Height",""),new StiBoolMeta("WrapLine","",!0),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>{let e=StiFormatService.loadFormatFromXml(t);null!=e&&(this.textFormat=e)}),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiColorMeta("ForeColor","",Color.transparent),new StiEnumMeta("Visibility","",StiCardsColumnVisibility,StiCardsColumnVisibility.True),new StiFontMeta("Font","","Arial",10),new StiStringNullOrEmptyMeta("VisibilityExpression").check(()=>null!=this.visibilityExpression),new StiBoolMeta("WordWrap",""),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiCardsColumnDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiCardsColumnDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiCardsColumnDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}clone(){let t=super.clone();return t.textFormat=this.textFormat.clone(),t.dashboardInteraction=this.dashboardInteraction.clone(),t.topN=this.topN.clone(),t}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.horAlignment)^this.vertAlignment)^(null!=this.textFormat?this.textFormat[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^this.visibility[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.wrapLine[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.wordWrap[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.height[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^(null!=this.topN?this.topN[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),null!=this.visibilityExpression&&(t=397*t^this.visibilityExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode()),Math.abs(t)}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i),this.horAlignment=StiHorAlignment.Center,this.vertAlignment=StiVertAlignment.Center,this.textFormat=new StiGeneralFormatService,this.topN=new StiDataTopN,this.font=new Font("Arial",10),this.foreColor=Color.transparent,this.dashboardInteraction=new StiCardsColumnDashboardInteraction,this.wrapLine=!0,this.height=0,this.wordWrap=!1,this.visibility=StiCardsColumnVisibility.True,this.visibilityExpression=null,null!=r&&(this.horAlignment=r),null!=l&&(this.vertAlignment=l),null!=s&&(this.textFormat=s),null!=o&&(this.visibility=o),null!=a&&(this.visibilityExpression=a),null!=u&&(this.foreColor=u),null!=n&&(this.height=n),null!=S&&(this.wrapLine=S),null!=m&&(this.wordWrap=m),null!=h&&(this.dashboardInteraction=h),null!=c&&(this.topN=c)}},Stimulsoft.Base.Meters.IStiMeasureCardsColumn),StiCardsColumn=__.G.StiCardsColumn,IStiMeasureColumn=Stimulsoft.Base.Meters.IStiMeasureColumn,StiMeasureCardsColumn=(__.G.StiMeasureCardsColumn=class extends StiCardsColumn{implements(){let t=super.implements().concat([IStiMeasureMeter,IStiMeasureColumn,IStiMeasureCardsColumn]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("Dashboard","Measure")}constructor(t,e,i,r,l,n,s,o,a,u,S){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.MeasureCardsColumn}},__.G.StiMeasureCardsColumn),StiColor=Stimulsoft.Base.Drawing.StiColor,IStiBubbleColumn=Stimulsoft.Base.Meters.IStiBubbleColumn,IStiDimensionCardsColumn=(__.G.StiBubbleCardsColumn=class extends StiMeasureCardsColumn{implements(){let t=super.implements().concat([IStiBubbleColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiBoolMeta("AllowCustomColors"),new StiColorMeta("PositiveColor","",StiColor.get("537eb6")),new StiColorMeta("NegativeColor","",StiColor.get("ff0000"))]}getUniqueCode(){let t=super.getUniqueCode();return t=397*t^this.horAlignment[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}get localizedName(){return Loc.get("Chart","Bubble")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i,r,l,n,s,o,a,u,c),this.ident=__.e.StiMeterIdent.BubbleCardsColumn,this.allowCustomColors=!1,this.positiveColor=StiColor.get("537eb6"),this.negativeColor=StiColor.get("ff0000"),this.horAlignment=StiHorAlignment.Center,null!=S&&(this.allowCustomColors=S),null!=m&&(this.positiveColor=m),null!=h&&(this.negativeColor=h)}},Stimulsoft.Base.Meters.IStiDimensionCardsColumn),IStiArgumentMeter=(__.G.StiDimensionCardsColumn=class extends StiCardsColumn{implements(){let t=super.implements().concat([IStiDimensionMeter,IStiDimensionCardsColumn]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("Dashboard","Dimension")}constructor(t,e,i,r,l,n,s,o,a,u,S){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.DimensionCardsColumn}},__.H.StiMeterLoader=class{static loadFromJson2(t){let e=[];return t.forEach(t=>e.push(this.loadFromJson(t))),e.filter(t=>null!=t)}static loadFromJson(i){let r=i.properties().find(t=>"Ident"==t.name);if(null!=r){let t=r.value.toString(),e=__.H.StiMeterCreator.neww(t);if(null!=e)return e.loadFromJsonObject(i),e}return null}static loadFromXml(i){let t=i.attributes.getNamedItem("type");if(null!=t){let e=i.attributes.getNamedItem("type").value;if(!StiString.isNullOrEmpty(e)){let t=StiActivator.createObject2(e);if(null!=t)return t.loadFromXml(i),t}}return null}},__.I.StiIndicatorValueChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","IndicatorValue")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.IndicatorValueChartMeter}},Stimulsoft.Base.Meters.IStiArgumentMeter),IStiValueMeter=(__.I.StiArgumentChartMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiArgumentMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Argument")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ArgumentChartMeter}},Stimulsoft.Base.Meters.IStiValueMeter),StiTableColumnVisibility=(__.J.StiKeyTreeViewBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Key")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.KeyTreeViewBoxMeter}},__.K.StiKeyTreeViewMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Key")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.KeyTreeViewMeter}},__.g.StiTableColumnDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.None&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.TableColumn,this.availableOnClick=StiAvailableInteractionOnClick.ApplyFilter|StiAvailableInteractionOnClick.ShowDashboard,this.onHover=StiInteractionOnHover.None,this.onClick=StiInteractionOnClick.None}},Stimulsoft.Base.Drawing.StiTableColumnVisibility),IStiDataFormat=Stimulsoft.Data.Engine.IStiDataFormat,StiTimeFormatService=Stimulsoft.Report.Components.TextFormats.StiTimeFormatService,StiDateFormatService=Stimulsoft.Report.Components.TextFormats.StiDateFormatService,StiNumberFormatService=Stimulsoft.Report.Components.TextFormats.StiNumberFormatService,StiCurrencyFormatService=Stimulsoft.Report.Components.TextFormats.StiCurrencyFormatService,StiPercentageFormatService=Stimulsoft.Report.Components.TextFormats.StiPercentageFormatService,StiBooleanFormatService=Stimulsoft.Report.Components.TextFormats.StiBooleanFormatService,StiDataFormatKind=Stimulsoft.Data.Engine.StiDataFormatKind,StiSummaryColumnType=Stimulsoft.Base.StiSummaryColumnType,StiTableColumnDashboardInteraction=__.g.StiTableColumnDashboardInteraction,ImplementsIStiTextFormat=Stimulsoft.Report.Components.ImplementsIStiTextFormat,IStiTableColumn=Stimulsoft.Base.Meters.IStiTableColumn,IStiTableColumnSize=Stimulsoft.Report.Dashboard.IStiTableColumnSize,StiTableColumnSize=Stimulsoft.Report.Dashboard.StiTableColumnSize,IStiIndicatorColumn=(__.L.StiTableColumn=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiHorAlignment,IStiTextFormat,IStiTableColumn,IStiDataFormat,IStiForeColor,IStiDataTopN,...ImplementsIStiHorAlignment,...ImplementsIStiTextFormat,...ImplementsIStiForeColor,IStiJsonReportObject,IStiElementInteraction,IStiTableColumnSize]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Left),new StiEnumMeta("SummaryAlignment","",StiHorAlignment,StiHorAlignment.Right),new StiEnumMeta("HeaderAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>{let e=StiFormatService.loadFormatFromXml(t);null!=e&&(this.textFormat=e)}),new StiColorMeta("ForeColor","",Color.transparent),new StiBoolMeta("ShowTotalSummary"),new StiEnumMeta("SummaryType","",StiSummaryColumnType,StiSummaryColumnType.Sum),new StiBoolMeta("Visible","",!0).check(()=>!1),new StiEnumMeta("Visibility","",StiTableColumnVisibility,StiTableColumnVisibility.True),new StiStringNullOrEmptyMeta("VisibilityExpression").check(()=>null!=this.visibilityExpression),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("Size").check(()=>null!=this.size).set(t=>this.size=StiTableColumnSize.createFromJsonObject(t.value)).setXml(t=>this.size=StiTableColumnSize.createFromXml(t)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiTableColumnDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiTableColumnDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiTableColumnDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}clone(){let t=super.clone();return t.textFormat=this.textFormat.clone(),t.dashboardInteraction=this.dashboardInteraction.clone(),t.topN=this.topN.clone(),t.size=this.size?.clone(),t}getDataFormat(){if(this.textFormat.is(StiBooleanFormatService))return StiDataFormatKind.Boolean;if(this.textFormat.is(StiPercentageFormatService))return StiDataFormatKind.Percentage;if(this.textFormat.is(StiCurrencyFormatService))return StiDataFormatKind.Currency;if(this.textFormat.is(StiNumberFormatService))return StiDataFormatKind.Number;if(this.textFormat.is(StiDateFormatService))return StiDataFormatKind.Date;if(this.textFormat.is(StiTimeFormatService))return StiDataFormatKind.Time;return StiDataFormatKind.General}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.horAlignment)^this.summaryAlignment)^this.headerAlignment)^this.summaryType)^(null!=this.textFormat?this.textFormat[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^this.visibility[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^(null!=this.topN?this.topN[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),null!=this.visibilityExpression&&(t=397*t^this.visibilityExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode()),Math.abs(t)}checkRules(){this.size?.checkRules()}get visible(){return this.visibility==StiTableColumnVisibility.True}set visible(t){this.visibility=t?StiTableColumnVisibility.True:StiTableColumnVisibility.False}get size(){return this.getSize()}set size(t){this.setSize(t)}getSize(){return this._size}setSize(t){this._size=t}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i),this.horAlignment=StiHorAlignment.Left,this.textFormat=new StiGeneralFormatService,this.topN=new StiDataTopN,this.foreColor=Color.transparent,this.dashboardInteraction=new StiTableColumnDashboardInteraction,this.visibility=StiTableColumnVisibility.True,this.visibilityExpression=null,this.showTotalSummary=!1,this.summaryType=StiSummaryColumnType.Sum,this.summaryAlignment=StiHorAlignment.Right,this.headerAlignment=StiHorAlignment.Center,this._size=new StiTableColumnSize,null!=r&&(this.horAlignment=r),null!=l&&(this.textFormat=l),null!=n&&(this.visibility=n),null!=s&&(this.visibilityExpression=s),null!=a&&(this.showTotalSummary=a),null!=S&&(this.summaryAlignment=S),null!=m&&(this.headerAlignment=m),null!=u&&(this.summaryType=u),null!=o&&(this.foreColor=o),null!=h&&(this.dashboardInteraction=h),null!=c&&(this.topN=c)}},__.L.StiMeasureColumn=class extends __.L.StiTableColumn{implements(){let t=super.implements().concat([IStiMeasureMeter,IStiMeasureColumn]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("Dashboard","Indicator")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h){super(t,e,i,r,l,n,s,o,a,u,S,m,h),this.ident=__.e.StiMeterIdent.MeasureColumn}},Stimulsoft.Base.Meters.IStiIndicatorColumn),IStiColorScaleColumn=(__.L.StiIndicatorColumn=class extends __.L.StiMeasureColumn{implements(){let t=super.implements().concat([IStiIndicatorColumn]);return(this.implements=()=>t)()}getGize(){return null}set size(t){super.setSize(null)}get localizedName(){return Loc.get("Dashboard","Dimension")}constructor(t,e,i,r,l,n,s,o,a,u,S){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.IndicatorColumn}},Stimulsoft.Base.Meters.IStiColorScaleColumn),IStiDataBarsColumn=(__.L.StiColorScaleColumn=class extends __.L.StiMeasureColumn{implements(){let t=super.implements().concat([IStiColorScaleColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiColorMeta("MinimumColor","",Color.red),new StiColorMeta("MaximumColor","",Color.green)]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*t^this.minimumColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.maximumColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}getSize(){return null}setSize(t){super.setSize(null)}get localizedName(){return Loc.get("Dashboard","ColorScale")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.ColorScaleColumn,this.minimumColor=Color.red,this.maximumColor=Color.green,null!=m&&(this.minimumColor=m),null!=h&&(this.maximumColor=h)}},Stimulsoft.Base.Meters.IStiDataBarsColumn),IStiSparklinesColumn=(__.L.StiDataBarsColumn=class extends __.L.StiMeasureColumn{implements(){let t=super.implements().concat([IStiDataBarsColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiNumberMeta("Width","",0),new StiStringMeta("Minimum"),new StiStringMeta("Maximum"),new StiColorMeta("PositiveColor","",Color.transparent),new StiColorMeta("NegativeColor","",Color.transparent),new StiColorMeta("OverlappedColor","",Color.transparent),new StiColorMeta("FillColor","",Color.transparent)]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.width[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.horAlignment)^this.positiveColor.getHashCode())^this.negativeColor.getHashCode())^this.overlappedColor.getHashCode())^this.fillColor.getHashCode())^(null!=this.minimum?this.minimum[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.maximum?this.maximum[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0)}getSize(){return null}setSize(t){super.setSize(null)}get localizedName(){return Loc.get("Dashboard","DataBars")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g,b,C){super(t,e,i,r,l,n,s,o,h,c,d),this.ident=__.e.StiMeterIdent.DataBarsColumn,this.width=0,this.positiveColor=Color.transparent,this.negativeColor=Color.transparent,this.overlappedColor=Color.transparent,this.fillColor=Color.transparent,this.minimum="",this.maximum="",null!=p&&(this.headerAlignment=p),null!=a&&(this.positiveColor=a),null!=u&&(this.negativeColor=u),null!=S&&(this.overlappedColor=S),null!=m&&(this.fillColor=m),null!=g&&(this.width=g),null!=b&&(this.minimum=b),null!=C&&(this.maximum=C)}},Stimulsoft.Base.Meters.IStiSparklinesColumn),CultureInfo=(__.L.StiSparklinesColumn=class extends __.L.StiMeasureColumn{implements(){let t=super.implements().concat([IStiSparklinesColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("Type","",__.L.StiSparklinesType,__.L.StiSparklinesType.Area),new StiBoolMeta("ShowHighLowPoints"),new StiBoolMeta("ShowFirstLastPoints","",!0),new StiBoolMeta("AllowCustomColors"),new StiColorMeta("PositiveColor","",StiColor.get("537eb6")),new StiColorMeta("NegativeColor","",StiColor.get("ff0000"))]}getSize(){return null}setSize(t){super.setSize(null)}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.type[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.showHighLowPoints[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.showFirstLastPoints[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.allowCustomColors[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.positiveColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.negativeColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}get localizedName(){return Loc.get("Dashboard","Sparklines")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g){super(t,e,i,r,l,a,u,S,m,h,c),this.type=__.L.StiSparklinesType.Area,this.showHighLowPoints=!1,this.showFirstLastPoints=!0,this.allowCustomColors=!1,this.positiveColor=StiColor.get("537eb6"),this.negativeColor=StiColor.get("ff0000"),this.ident=__.e.StiMeterIdent.SparklinesColumn,null!=n&&(this.type=n),null!=s&&(this.showHighLowPoints=s),null!=o&&(this.showFirstLastPoints=o),null!=d&&(this.allowCustomColors=d),null!=p&&(this.positiveColor=p),null!=g&&(this.negativeColor=g)}},__.L.StiBubbleColumn=class extends __.L.StiMeasureColumn{implements(){let t=super.implements().concat([IStiBubbleColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiBoolMeta("AllowCustomColors"),new StiColorMeta("PositiveColor","",StiColor.get("537eb6")),new StiColorMeta("NegativeColor","",StiColor.get("ff0000"))]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*t^this.allowCustomColors[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.positiveColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.negativeColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}getSize(){return null}setSize(t){super.setSize(null)}get localizedName(){return Loc.get("Chart","Bubble")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.BubbleColumn,this.allowCustomColors=!1,this.positiveColor=StiColor.get("537eb6"),this.negativeColor=StiColor.get("ff0000"),this.horAlignment=StiHorAlignment.Center,null!=m&&(this.allowCustomColors=m),null!=h&&(this.positiveColor=h),null!=c&&(this.negativeColor=c)}},Stimulsoft.System.Globalization.CultureInfo),StiTextFormatState=(__.h.StiCultureHelper=class{static set(t){let e=t?.getParsedCulture();if(StiString.isNullOrWhiteSpace(e))return null;let i=CultureInfo.currentCulture;try{StiString.isNullOrEmpty(e)||null==CultureInfo.cultures[e]||(CultureInfo.currentCulture=CultureInfo.cultures[e])}catch(t){}return i}static restore(t){if(null==t)return;CultureInfo.currentCulture=t}},__.a.StiTextFormatState),StiExtValueConverter=Stimulsoft.Data.Functions.StiExtValueConverter,StiCultureHelper=__.h.StiCultureHelper,StiDataColumn=Stimulsoft.Report.Dictionary.StiDataColumn,StiMoneyNameHelper=Stimulsoft.Data.Helpers.StiMoneyNameHelper,TimeSpan=Stimulsoft.System.TimeSpan;{class StiTextFormatHelper{static get defaultGeneralFormat(){return null==this._defaultGeneralFormat&&(this._defaultGeneralFormat=new StiGeneralFormatService),this._defaultGeneralFormat}static get defaultCurrencyFormat(){return null==this._defaultCurrencyFormat&&(this._defaultCurrencyFormat=new StiCurrencyFormatService),this._defaultCurrencyFormat}static get defaultPercentageFormat(){return null==this._defaultPercentageFormat&&(this._defaultPercentageFormat=new StiPercentageFormatService,this._defaultPercentageFormat.positivePattern=1,this._defaultPercentageFormat.negativePattern=1,this._defaultPercentageFormat.decimalDigits=0,this._defaultPercentageFormat.groupSize=100,this._defaultPercentageFormat.state=StiTextFormatState.DecimalDigits|StiTextFormatState.GroupSize|StiTextFormatState.PositivePattern|StiTextFormatState.NegativePattern),this._defaultPercentageFormat}static get defaultNumberFormat(){return null==this._defaultNumberFormat&&(this._defaultNumberFormat=new StiNumberFormatService),this._defaultNumberFormat}static get defaultIntegerFormat(){return null==this._defaultIntegerFormat&&(this._defaultIntegerFormat=new StiNumberFormatService,this._defaultIntegerFormat.decimalDigits=0,this._defaultIntegerFormat.useGroupSeparator=!1,this._defaultIntegerFormat.useLocalSetting=!1),this._defaultIntegerFormat}static get defaultDateFormat(){return null==this._defaultDateFormat&&(this._defaultDateFormat=new StiDateFormatService),this._defaultDateFormat}static get defaultBooleanFormat(){return null==this._defaultBooleanFormat&&(this._defaultBooleanFormat=new StiBooleanFormatService),this._defaultBooleanFormat}static formatBasedOnColumnType(t,e,i){let r=e.cache[i];return null==r&&(r=StiTextFormatHelper.formatBasedOnColumnType2(t,e.textFormat,e,i),e.cache[i]=r),r}static formatBasedOnColumnType2(e,i,r,l){this.storedCulture=StiCultureHelper.set(e.report);try{if(null==l)return"";if(null==r)return l.toString();let t=e?.report?.getParsedCulture();if(StiExtValueConverter.isEligable(l,t))return StiExtValueConverter.convert(l,t);if(null==i||i instanceof StiGeneralFormatService){let t=typeof l;if("number"==t&&StiMoneyNameHelper.isMoneyName(r.label))return this.defaultCurrencyFormat.format(l);if("number"==t)return this.defaultNumberFormat.format(l);if("boolean"==t)return this.defaultBooleanFormat.format(l);if("object"==t){let t=Type.getType(l);if(Type.isDateType(t))return this.defaultDateFormat.format(l)}}if(null!=i&&i instanceof StiTimeFormatService){if(l instanceof TimeSpan)return i.format(l);let t=typeof l;if("number"==t){let t=TimeSpan.fromMilliseconds(l);return i.format(t)}if("string"==t){let{successfully:t,result:e}=StiNumber.tryParse(l);if(t){let t=TimeSpan.fromMilliseconds(e);return i.format(t)}}}return i.format(l)}catch{return l.toString()}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static format(t,e,i){this.storedCulture=StiCultureHelper.set(t);try{if(null==i)return"";return null!=e?e.format(i):i.toString()}catch{return i.toString()}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static formatAsPercentage(t,e){this.storedCulture=StiCultureHelper.set(t);try{if(null==e)return"";return this.defaultPercentageFormat.format(e)}catch{return e.toString()}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static formatAsPercentage2(t,e,i){this.storedCulture=StiCultureHelper.set(t);try{if(null==i)return"";if(null==e||e.is(StiGeneralFormatService))return this.defaultPercentageFormat.format(i);return e.format(i)}catch{return i.toString()}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static getDefaultFormatForColumn(t){let e=__.h.StiMeterHelper.toDataType(t);if(null==e)return this.defaultGeneralFormat;if(Type.isNumericType(e)){if(StiMoneyNameHelper.isMoneyName(t.as(StiDataColumn).nameInSource))return this.defaultCurrencyFormat;if(Type.isIntegerType(e))return this.defaultIntegerFormat;return this.defaultNumberFormat}if(Type.isDateType(e))return this.defaultDateFormat;if(e==Boolean)return this.defaultBooleanFormat;return this.defaultGeneralFormat}}__.h.StiTextFormatHelper=StiTextFormatHelper}let IStiDimensionColumn=Stimulsoft.Base.Meters.IStiDimensionColumn,IStiColorMapMeter=(__.L.StiDimensionColumn=class extends __.L.StiTableColumn{implements(){let t=super.implements().concat([IStiDimensionMeter,IStiDimensionColumn]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("ShowHyperlink"),new StiStringNullOrEmptyMeta("HyperlinkPattern")]}clone(){let t=super.clone();return t}get localizedName(){return Loc.get("Dashboard","Dimension")}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*t^this.showHyperlink[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.hyperlinkPattern[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.size[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i,r,l,n,s,a,m,h,c),this.ident=__.e.StiMeterIdent.DimensionColumn,this.showHyperlink=!1,this.hyperlinkPattern="",null!=u&&(this.showHyperlink=u),null!=S&&(this.hyperlinkPattern=S)}},Stimulsoft.Base.Meters.IStiColorMapMeter),IStiValueMapMeter=(__.M.StiColorMapMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiColorMapMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Color")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ColorMapMeter}},Stimulsoft.Base.Meters.IStiValueMapMeter),IStiGroupMapMeter=(__.M.StiValueMapMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMapMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueMapMeter}},Stimulsoft.Base.Meters.IStiGroupMapMeter),IStiNameMapMeter=(__.M.StiGroupMapMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiGroupMapMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Group")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.GroupMapMeter}},Stimulsoft.Base.Meters.IStiNameMapMeter),IStiKeyMapMeter=(__.M.StiNameMapMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiNameMapMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Name")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.NameMapMeter}},Stimulsoft.Base.Meters.IStiKeyMapMeter),StiPivotTableItemDashboardInteraction=(__.M.StiKeyMapMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiKeyMapMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Key")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.KeyMapMeter}},__.N.StiValueProgressMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueProgressMeter}},__.N.StiTargetProgressMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Target")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.TargetProgressMeter}},__.N.StiSeriesProgressMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Series")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SeriesProgressMeter}},__.g.StiPivotTableItemDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.None&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.PivotTableItem,this.availableOnClick=StiAvailableInteractionOnClick.ShowDashboard,this.availableOnHover=StiAvailableInteractionOnHover.None,this.onHover=StiInteractionOnHover.None,this.onClick=StiInteractionOnClick.None}},__.g.StiPivotTableItemDashboardInteraction),ImplementsIStiPivotItem=Stimulsoft.Report.Dashboard.ImplementsIStiPivotItem,IStiPivotItem=Stimulsoft.Report.Dashboard.IStiPivotItem,StiSortDirection=Stimulsoft.Report.CrossTab.Core.StiSortDirection,IStiMeterRules=Stimulsoft.Report.Dashboard.IStiMeterRules,ImplementsIStiTableColumnSize=Stimulsoft.Report.Dashboard.ImplementsIStiTableColumnSize,IStiPivotColumn=Stimulsoft.Base.Meters.IStiPivotColumn,IStiPivotRow=(__.O.StiPivotColumn=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiDimensionMeter,IStiHorAlignment,IStiTextFormat,IStiTableColumnSize,IStiPivotColumn,IStiPivotItem,IStiDataTopN,IStiMeterRules,...ImplementsIStiHorAlignment,...ImplementsIStiTextFormat,...ImplementsIStiTableColumnSize,...ImplementsIStiPivotItem,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(){let t=super.clone();return t.textFormat=this.textFormat.clone(),t.topN=this.topN.clone(),t.size=this.size?.clone(),t.horAlignment=this.horAlignment,t.showTotal=this.showTotal,t.totalLabel=this.totalLabel,t.sortDirection=this.sortDirection,t.expandExpression=this.expandExpression,t.visibility=this.visibility,t.visibilityExpression=this.visibilityExpression,t.dashboardInteraction=this.dashboardInteraction.clone(),t}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiBoolMeta("ShowTotal","",!0),new StiStringNullOrEmptyMeta("TotalLabel"),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t)),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("Size").check(()=>null!=this.size).set(t=>this.size=StiTableColumnSize.createFromJsonObject(t.value)).setXml(t=>this.size=StiTableColumnSize.createFromXml(t)),new StiEnumMeta("SortDirection","",StiSortDirection,StiSortDirection.Asc),new StiStringNullOrEmptyMeta("ExpandExpression"),new StiEnumMeta("Visibility","",StiTableColumnVisibility,StiTableColumnVisibility.True),new StiStringNullOrEmptyMeta("VisibilityExpression").check(()=>null!=this.visibilityExpression),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiPivotTableItemDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiPivotTableItemDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiPivotTableItemDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}checkRules(){this.size?.checkRules()}get strSortDirection(){return``+Enum.getName(StiSortDirection,this.sortDirection)+(this.sortDirection!=StiSortDirection.None?"ending":"")}set strSortDirection(t){this.sortDirection=Enum.parse(StiSortDirection,t.replace("ending",""))}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.horAlignment)^this.sortDirection)^(null!=this.textFormat?this.textFormat[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.topN?this.topN[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.size?this.size[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.showTotal?this.showTotal[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.totalLabel?this.totalLabel[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.expandExpression?this.expandExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibility?this.visibility[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibilityExpression?this.visibilityExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),Math.abs(t)}get localizedName(){return Loc.get("Components","StiPivotColumn")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i),this.horAlignment=StiHorAlignment.Center,this.showTotal=!0,this.totalLabel="",this.textFormat=new StiGeneralFormatService,this.size=new StiTableColumnSize,this.visibility=StiTableColumnVisibility.True,this.visibilityExpression="",this.expandExpression="",this.dashboardInteraction=new StiPivotTableItemDashboardInteraction,this.topN=new StiDataTopN,this.sortDirection=StiSortDirection.Asc,this.ident=__.e.StiMeterIdent.PivotColumn,null!=r&&(this.horAlignment=r),null!=l&&(this.textFormat=l),null!=n&&(this.topN=n),null!=a&&(this.size=a),null!=s&&(this.showTotal=s),null!=o&&(this.totalLabel=o),null!=u&&(this.sortDirection=u),null!=S&&(this.expandExpression=S),null!=m&&(this.visibility=m),null!=h&&(this.visibilityExpression=h),null!=c&&(this.dashboardInteraction=c)}},Stimulsoft.Base.Meters.IStiPivotRow),StiPivotTableSummaryDashboardInteraction=(__.O.StiPivotRow=class extends __.e.StiMeter{implements(){let t=super.implements().concat([IStiDimensionMeter,IStiHorAlignment,IStiTextFormat,IStiTableColumnSize,IStiPivotRow,IStiPivotItem,IStiDataTopN,IStiMeterRules,...ImplementsIStiHorAlignment,...ImplementsIStiTextFormat,...ImplementsIStiTableColumnSize,...ImplementsIStiPivotItem,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(){let t=super.clone();return t.textFormat=this.textFormat.clone(),t.topN=this.topN.clone(),t.size=this.size?.clone(),t.horAlignment=this.horAlignment,t.showTotal=this.showTotal,t.totalLabel=this.totalLabel,t.sortDirection=this.sortDirection,t.expandExpression=this.expandExpression,t.visibility=this.visibility,t.visibilityExpression=this.visibilityExpression,t.dashboardInteraction=this.dashboardInteraction.clone(),t}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiBoolMeta("ShowTotal","",!0),new StiStringNullOrEmptyMeta("TotalLabel"),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t)),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("Size").check(()=>null!=this.size).set(t=>this.size=StiTableColumnSize.createFromJsonObject(t.value)).setXml(t=>this.size=StiTableColumnSize.createFromXml(t)),new StiEnumMeta("SortDirection","",StiSortDirection,StiSortDirection.Asc),new StiStringNullOrEmptyMeta("ExpandExpression"),new StiEnumMeta("Visibility","",StiTableColumnVisibility,StiTableColumnVisibility.True),new StiStringNullOrEmptyMeta("VisibilityExpression").check(()=>null!=this.visibilityExpression),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiPivotTableItemDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiPivotTableItemDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiPivotTableItemDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}checkRules(){this.size?.checkRules()}get strSortDirection(){return``+Enum.getName(StiSortDirection,this.sortDirection)+(this.sortDirection!=StiSortDirection.None?"ending":"")}set strSortDirection(t){this.sortDirection=Enum.parse(StiSortDirection,t.replace("ending",""))}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.horAlignment)^this.sortDirection)^(null!=this.textFormat?this.textFormat[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.topN?this.topN[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.size?this.size[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.showTotal?this.showTotal[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.totalLabel?this.totalLabel[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.expandExpression?this.expandExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibility?this.visibility[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibilityExpression?this.visibilityExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),Math.abs(t)}get localizedName(){return Loc.get("Components","StiPivotRow")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){super(t,e,i),this.horAlignment=StiHorAlignment.Center,this.showTotal=!0,this.totalLabel="",this.textFormat=new StiGeneralFormatService,this.size=new StiTableColumnSize,this.visibility=StiTableColumnVisibility.True,this.visibilityExpression="",this.expandExpression="",this.dashboardInteraction=new StiPivotTableItemDashboardInteraction,this.topN=new StiDataTopN,this.sortDirection=StiSortDirection.Asc,this.ident=__.e.StiMeterIdent.PivotRow,null!=r&&(this.horAlignment=r),null!=l&&(this.textFormat=l),null!=n&&(this.topN=n),null!=a&&(this.size=a),null!=s&&(this.showTotal=s),null!=o&&(this.totalLabel=o),null!=u&&(this.sortDirection=u),null!=S&&(this.expandExpression=S),null!=m&&(this.visibility=m),null!=h&&(this.visibilityExpression=h),null!=c&&(this.dashboardInteraction=c)}},__.g.StiPivotTableSummaryDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.None&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.PivotTableSummary,this.availableOnClick=StiAvailableInteractionOnClick.ShowDashboard,this.availableOnHover=StiAvailableInteractionOnHover.All,this.onHover=StiInteractionOnHover.None,this.onClick=StiInteractionOnClick.None}},__.g.StiPivotTableSummaryDashboardInteraction),IStiPivotSummary=Stimulsoft.Base.Meters.IStiPivotSummary,IStiSeriesMeter=(__.O.StiPivotSummary=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiHorAlignment,IStiTextFormat,IStiTableColumnSize,IStiPivotSummary,IStiPivotItem,IStiMeterRules,IStiDimensionColumn,...ImplementsIStiHorAlignment,...ImplementsIStiTextFormat,...ImplementsIStiTableColumnSize,...ImplementsIStiPivotItem,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(){let t=super.clone();return t.textFormat=this.textFormat.clone(),t.size=this.size?.clone(),t.hideZeros=this.hideZeros,t.horAlignment=this.horAlignment,t.visibility=this.visibility,t.visibilityExpression=this.visibilityExpression,t.dashboardInteraction=this.dashboardInteraction.clone(),t.showHyperlink=this.showHyperlink,t.hyperlinkPattern=this.hyperlinkPattern,t}meta(){return[...super.meta(),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t)),new StiObjectMeta("Size").check(()=>null!=this.size).set(t=>this.size=StiTableColumnSize.createFromJsonObject(t.value)).setXml(t=>this.size=StiTableColumnSize.createFromXml(t)),new StiBoolMeta("HideZeros","",!0),new StiBoolMeta("ShowHyperlink","",!1),new StiEnumMeta("Visibility","",StiTableColumnVisibility,StiTableColumnVisibility.True),new StiStringNullOrEmptyMeta("VisibilityExpression").check(()=>null!=this.visibilityExpression),new StiStringNullOrEmptyMeta("HyperlinkPattern"),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiPivotTableSummaryDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiPivotTableSummaryDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiPivotTableSummaryDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}checkRules(){this.size?.checkRules()}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.horAlignment)^(null!=this.textFormat?this.textFormat[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.size?this.size[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.hideZeros?this.hideZeros[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibility?this.visibility[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.visibilityExpression?this.visibilityExpression[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.showHyperlink?this.showHyperlink[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0))^(null!=this.hyperlinkPattern?this.hyperlinkPattern[Stimulsoft.System.StiObject.stimulsoft]().getHashCode():0),Math.abs(t)}get localizedName(){return Loc.get("Components","StiPivotSummary")}constructor(t,e,i,r,l,n,s,o,a,u,S,m){super(t,e,i),this.horAlignment=StiHorAlignment.Center,this.textFormat=new StiGeneralFormatService,this.size=new StiTableColumnSize,this.visibility=StiTableColumnVisibility.True,this.visibilityExpression="",this.hideZeros=!0,this.showHyperlink=!1,this.hyperlinkPattern="",this.dashboardInteraction=new StiPivotTableSummaryDashboardInteraction,this.ident=__.e.StiMeterIdent.PivotSummary,null!=r&&(this.horAlignment=r),null!=l&&(this.textFormat=l),null!=n&&(this.size=n),null!=s&&(this.hideZeros=s),null!=o&&(this.visibility=o),null!=a&&(this.visibilityExpression=a),null!=u&&(this.dashboardInteraction=u),null!=S&&(this.showHyperlink=S),null!=m&&(this.hyperlinkPattern=m)}},__.P.StiLatitudeMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Latitude")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LatitudeMapMeter}},__.P.StiLongitudeMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Longitude")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LongitudeMapMeter}},__.Q.StiKeyListBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Key")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.KeyListBoxMeter}},__.Q.StiNameListBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiArgumentMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Name")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.NameListBoxMeter}},__.R.StiValueDatePickerMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueDatePickerMeter}},__.S.StiValueNumberBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueNumberBoxMeter}},__.I.StiEndValueChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","ValueEnd")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.EndValueChartMeter}},__.T.StiNameComboBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiArgumentMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Name")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.NameComboBoxMeter}},__.T.StiKeyComboBoxMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Key")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.KeyComboBoxMeter}},Stimulsoft.Base.Meters.IStiSeriesMeter),IStiTargetMeter=(__.U.StiSeriesGaugeMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiSeriesMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Series")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SeriesGaugeMeter}},__.U.StiValueGaugeMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueGaugeMeter}},Stimulsoft.Base.Meters.IStiTargetMeter),StiChartSeriesType=(__.U.StiTargetGaugeMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiTargetMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Target")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.TargetGaugeMeter}},__.V.StiSeriesIndicatorMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiSeriesMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Series")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SeriesIndicatorMeter}},__.V.StiValueIndicatorMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueIndicatorMeter}},__.V.StiTargetIndicatorMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiTargetMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Target")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.TargetIndicatorMeter}},__.I.StiWeightChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","Weight")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.WeightChartMeter}},Stimulsoft.Report.Dashboard.StiChartSeriesType),StiPenStyle=Stimulsoft.Base.Drawing.StiPenStyle,StiSeriesYAxis=Stimulsoft.Report.Chart.StiSeriesYAxis,StiNameValidator=(__.I.StiValueChartMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("SeriesType","",StiChartSeriesType,StiChartSeriesType.ClusteredColumn),new StiEnumMeta("YAxis","",StiSeriesYAxis,StiSeriesYAxis.LeftYAxis),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiNumberMeta("LineWidth","",2),new StiEnumMeta("ShowZeros","",StiEmptyCellsAs,StiEmptyCellsAs.Zero),new StiEnumMeta("ShowNulls","",StiEmptyCellsAs,StiEmptyCellsAs.Zero)]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.seriesType)^this.yAxis)^this.lineStyle)^this.lineWidth)^this.showNulls)^this.showZeros,Math.abs(t)}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i,r,l,n,s,o,a){super(t,e,i),this.seriesType=StiChartSeriesType.ClusteredColumn,this.yAxis=StiSeriesYAxis.LeftYAxis,this.lineStyle=StiPenStyle.Solid,this.lineWidth=2,this.showZeros=StiEmptyCellsAs.Zero,this.showNulls=StiEmptyCellsAs.Zero,this.ident=__.e.StiMeterIdent.ValueChartMeter,null!=r&&(this.seriesType=r),null!=l&&(this.yAxis=l),null!=n&&(this.lineStyle=n),null!=s&&(this.lineWidth=s),null!=a&&(this.showNulls=a),null!=o&&(this.showZeros=o)}},__.I.StiOpenValueChartMeter=class extends __.I.StiValueChartMeter{get localizedName(){return Loc.get("PropertyMain","ValueOpen")}constructor(t,e,i,r){super(t,e,i,r),this.ident=__.e.StiMeterIdent.OpenValueChartMeter,this.seriesType=StiChartSeriesType.Candlestick,null!=r&&(this.seriesType=r)}},__.I.StiCloseValueChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","ValueClose")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.CloseValueChartMeter}},__.I.StiLowValueChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","ValueLow")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LowValueChartMeter}},__.I.StiHighValueChartMeter=class extends __.e.StiMeasureMeter{get localizedName(){return Loc.get("PropertyMain","ValueHigh")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.HighValueChartMeter}},__.I.StiSeriesChartMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiSeriesMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Series")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SeriesChartMeter}},__.I.StiSortByChartMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiSeriesMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","SortBy")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SortByChartMeter}},__.I.StiXChartMeter=class extends __.e.StiDimensionMeter{get localizedName(){return`X`+Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.XChartMeter}},__.I.StiYChartMeter=class extends __.e.StiDimensionMeter{get localizedName(){return`Y`+Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.YChartMeter}},__.P.StiLocationMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Location")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LocationMapMeter}},__.P.StiLocationColorMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Group")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LocationColorMapMeter}},__.P.StiLocationValueMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LocationValueMapMeter}},__.P.StiLocationArgumentMapMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("PropertyMain","Argument")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.LocationArgumentMapMeter}},__.G.StiIndicatorCardsColumn=class extends __.G.StiMeasureCardsColumn{implements(){let t=super.implements().concat([IStiIndicatorColumn]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("Dashboard","Dimension")}constructor(t,e,i,r,l,n,s,o,a,u,S){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.IndicatorCardsColumn}},__.G.StiColorScaleCardsColumn=class extends __.G.StiMeasureCardsColumn{implements(){let t=super.implements().concat([IStiColorScaleColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiColorMeta("MinimumColor","",Color.red),new StiColorMeta("MaximumColor","",Color.green)]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*t^this.minimumColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.maximumColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}get localizedName(){return Loc.get("Dashboard","ColorScale")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h){super(t,e,i,r,l,n,s,o,a,u,h),this.ident=__.e.StiMeterIdent.ColorScaleCardsColumn,this.minimumColor=Color.red,this.maximumColor=Color.green,null!=S&&(this.minimumColor=S),null!=m&&(this.maximumColor=m)}},__.G.StiDataBarsCardsColumn=class extends __.G.StiMeasureCardsColumn{implements(){let t=super.implements().concat([IStiDataBarsColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiNumberMeta("Width"),new StiStringMeta("Minimum"),new StiStringMeta("Maximum"),new StiColorMeta("PositiveColor","",Color.transparent),new StiColorMeta("NegativeColor","",Color.transparent),new StiColorMeta("OverlappedColor","",Color.transparent),new StiColorMeta("FillColor","",Color.transparent)]}get localizedName(){return Loc.get("Dashboard","DataBars")}constructor(t,e,i,r,l,n,s,o,a,u,S){super(t,e,i,r,l,n,s,o,a,u,S),this.ident=__.e.StiMeterIdent.DataBarsCardsColumn,this.width=0,this.positiveColor=Color.transparent,this.negativeColor=Color.transparent,this.overlappedColor=Color.transparent,this.fillColor=Color.transparent,this.minimum="",this.maximum=""}},__.G.StiSparklinesCardsColumn=class extends __.G.StiMeasureCardsColumn{implements(){let t=super.implements().concat([IStiSparklinesColumn,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiEnumMeta("Type","",__.L.StiSparklinesType,__.L.StiSparklinesType.Area),new StiBoolMeta("ShowHighLowPoints"),new StiBoolMeta("ShowFirstLastPoints","",!0),new StiBoolMeta("AllowCustomColors"),new StiNumberMeta("Height"),new StiColorMeta("PositiveColor","",StiColor.get("537eb6")),new StiColorMeta("NegativeColor","",StiColor.get("ff0000"))]}getUniqueCode(){let t=super.getUniqueCode();return t=397*(t=397*(t=397*(t=397*(t=397*(t=397*t^this.type[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.showHighLowPoints[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.showFirstLastPoints[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.allowCustomColors[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.positiveColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode())^this.negativeColor[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}get localizedName(){return Loc.get("Dashboard","Sparklines")}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g){super(t,e,i,r,l,n,s,S,m,h,g),this.type=__.L.StiSparklinesType.Area,this.showHighLowPoints=!1,this.showFirstLastPoints=!0,this.allowCustomColors=!1,this.positiveColor=StiColor.get("537eb6"),this.negativeColor=StiColor.get("ff0000"),this.height=0,this.ident=__.e.StiMeterIdent.SparklinesCardsColumn,null!=o&&(this.type=o),null!=a&&(this.showHighLowPoints=a),null!=u&&(this.showFirstLastPoints=u),null!=c&&(this.allowCustomColors=c),null!=d&&(this.positiveColor=d),null!=p&&(this.negativeColor=p)}},Stimulsoft.Report.StiNameValidator),StiExpressionHelper=Stimulsoft.Data.Helpers.StiExpressionHelper,StiTextMeasureMeter=(__.W.StiTextMeasureMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}getUniqueName(){if(!StiString.isNullOrWhiteSpace(this.label))return StiNameValidator.correctName(this.label,!0,null);if(!StiString.isNullOrWhiteSpace(this.expression)){let t=this.expression,e=StiExpressionHelper.getFirstArgumentFromExpression(this.expression);return null!=e&&e.includes(".")&&(t=e.substring(e.indexOf(".")+1)),StiNameValidator.correctName(t,!0,null)}return"Measure"}static getUniqueNames(t){let l=new Dictionary;for(let r of t){let t=r.getUniqueName(),e=t,i=2;while(1){if(!l.containsKey(e)){l.add(e,r);break}e=t+i,i++}}return l}get localizedName(){return Loc.get("PropertyMain","Text")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.TextMeasureMeter}},__.X.StiArgumentRangeSelectorMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiArgumentMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Argument")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ArgumentRangeSelectorMeter}},__.X.StiSeriesRangeSelectorMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiSeriesMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Series")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.SeriesRangeSelectorMeter}},__.X.StiValueRangeSelectorMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Value")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ValueRangeSelectorMeter}},__.W.StiTextMeasureMeter),StiYChartMeter=__.I.StiYChartMeter,StiXChartMeter=__.I.StiXChartMeter,StiValueNumberBoxMeter=__.S.StiValueNumberBoxMeter,StiIndicatorValueChartMeter=__.I.StiIndicatorValueChartMeter,StiSortByChartMeter=__.I.StiSortByChartMeter,StiIndicatorCardsColumn=__.G.StiIndicatorCardsColumn,StiBubbleCardsColumn=__.G.StiBubbleCardsColumn,StiColorScaleCardsColumn=__.G.StiColorScaleCardsColumn,StiDataBarsCardsColumn=__.G.StiDataBarsCardsColumn,StiSparklinesCardsColumn=__.G.StiSparklinesCardsColumn,StiDimensionCardsColumn=__.G.StiDimensionCardsColumn,StiDataColumnExt=Stimulsoft.Report.Dictionary.StiDataColumnExt,StiBubbleColumn=__.L.StiBubbleColumn,StiLocationArgumentMapMeter=__.P.StiLocationArgumentMapMeter,StiLocationMapMeter=__.P.StiLocationMapMeter,StiLocationColorMapMeter=__.P.StiLocationColorMapMeter,StiLocationValueMapMeter=__.P.StiLocationValueMapMeter,StiKeyTreeViewBoxMeter=__.J.StiKeyTreeViewBoxMeter,StiKeyTreeViewMeter=__.K.StiKeyTreeViewMeter,StiIndicatorColumn=__.L.StiIndicatorColumn,StiColorScaleColumn=__.L.StiColorScaleColumn,StiDataBarsColumn=__.L.StiDataBarsColumn,StiSparklinesColumn=__.L.StiSparklinesColumn,Funcs=Stimulsoft.Data.Functions.Funcs,StiTextFormatHelper=__.h.StiTextFormatHelper,StiDimensionColumn=__.L.StiDimensionColumn,StiMeasureColumn=__.L.StiMeasureColumn,StiColorMapMeter=__.M.StiColorMapMeter,StiValueMapMeter=__.M.StiValueMapMeter,StiGroupMapMeter=__.M.StiGroupMapMeter,StiNameMapMeter=__.M.StiNameMapMeter,StiKeyMapMeter=__.M.StiKeyMapMeter,StiValueProgressMeter=__.N.StiValueProgressMeter,StiTargetProgressMeter=__.N.StiTargetProgressMeter,StiSeriesProgressMeter=__.N.StiSeriesProgressMeter,StiPivotColumn=__.O.StiPivotColumn,StiPivotRow=__.O.StiPivotRow,StiPivotSummary=__.O.StiPivotSummary,StiLatitudeMapMeter=__.P.StiLatitudeMapMeter,StiLongitudeMapMeter=__.P.StiLongitudeMapMeter,StiKeyListBoxMeter=__.Q.StiKeyListBoxMeter,StiNameListBoxMeter=__.Q.StiNameListBoxMeter,StiValueDatePickerMeter=__.R.StiValueDatePickerMeter,StiDataExpressionHelper=Stimulsoft.Data.Engine.StiDataExpressionHelper,StiTableColumn=__.L.StiTableColumn,DateTime=Stimulsoft.System.DateTime,StiNameComboBoxMeter=__.T.StiNameComboBoxMeter,StiKeyComboBoxMeter=__.T.StiKeyComboBoxMeter,StiSeriesGaugeMeter=__.U.StiSeriesGaugeMeter,StiValueGaugeMeter=__.U.StiValueGaugeMeter,StiTargetGaugeMeter=__.U.StiTargetGaugeMeter,StiSeriesIndicatorMeter=__.V.StiSeriesIndicatorMeter,StiValueIndicatorMeter=__.V.StiValueIndicatorMeter,StiTargetIndicatorMeter=__.V.StiTargetIndicatorMeter,StiWeightChartMeter=__.I.StiWeightChartMeter,StiOpenValueChartMeter=__.I.StiOpenValueChartMeter,StiCloseValueChartMeter=__.I.StiCloseValueChartMeter,StiLowValueChartMeter=__.I.StiLowValueChartMeter,StiHighValueChartMeter=__.I.StiHighValueChartMeter,StiArgumentChartMeter=__.I.StiArgumentChartMeter,StiValueChartMeter=__.I.StiValueChartMeter,StiSeriesChartMeter=__.I.StiSeriesChartMeter,StiEndValueChartMeter=__.I.StiEndValueChartMeter,IStiAppAlias=Stimulsoft.Base.IStiAppAlias,StiVariable=Stimulsoft.Report.Dictionary.StiVariable,StiArgumentRangeSelectorMeter=__.X.StiArgumentRangeSelectorMeter,StiSeriesRangeSelectorMeter=__.X.StiSeriesRangeSelectorMeter,StiValueRangeSelectorMeter=__.X.StiValueRangeSelectorMeter;{class _i{static getValue(t){if(t.is(StiValueChartMeter))return t;let e=new StiValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getGanttStartValue(t){let e=new StiValueChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e.seriesType=StiChartSeriesType.Gantt,e}static getGanttEndValue(t){let e=new StiEndValueChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getEndValue(t){if(t.is2(StiEndValueChartMeter))return t;let e=new StiEndValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getOpenValue(t){if(t.is(StiOpenValueChartMeter))return t;let e=new StiOpenValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getCloseValue(t){if(t.is2(StiCloseValueChartMeter))return t;let e=new StiCloseValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getLowValue(t){if(t.is2(StiLowValueChartMeter))return t;let e=new StiLowValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getHighValue(t){if(t.is2(StiHighValueChartMeter))return t;let e=new StiHighValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getValue2(t,e){let i=new StiValueChartMeter;return i.expression=StiMeterHelper.toTotalExpression2(t),i.seriesType=null!=e.values&&0<e.values.length?e.values[0].seriesType:StiChartSeriesType.ClusteredColumn,i.label=StiMeterHelper.toAlias(t),i}static getEndValue2(t){let e=new StiEndValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getCloseValue2(t){let e=new StiCloseValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getLowValue2(t){let e=new StiLowValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getHighValue2(t){let e=new StiHighValueChartMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getWeight(t){if(t.is2(StiWeightChartMeter))return t;let e=new StiWeightChartMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getWeight2(t){let e=new StiWeightChartMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getArgument(t){if(t.is2(StiArgumentChartMeter))return t;let e=new StiArgumentChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getArgument2(t){let e=new StiArgumentChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getX2(t){let e=new StiArgumentChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getXValue2(t){let e=new StiXChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getX(t){if(t.is2(StiArgumentChartMeter))return t;let e=new StiArgumentChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getXValue(t){if(t.is2(StiXChartMeter))return t;let e=new StiXChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getY2(t){let e=new StiValueChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getYValue2(t){let e=new StiYChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getY(t){if(t.is(StiValueChartMeter))return t;let e=new StiValueChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getYValue(t){if(t.is2(StiYChartMeter))return t;let e=new StiYChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries(t){if(t.is2(StiSeriesChartMeter))return t;let e=new StiSeriesChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSortBy(t){if(t.is2(StiSortByChartMeter))return t;let e=new StiSortByChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries2(t){let e=new StiSeriesChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getSortBy2(t){let e=new StiSortByChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getIndicatorValue(t){if(t.is2(StiIndicatorValueChartMeter))return t;let e=new StiIndicatorValueChartMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getIndicatorValue2(t){let e=new StiIndicatorValueChartMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.Chart=_i;class a8{static getName(t){if(t.is2(StiNameComboBoxMeter))return t;let e=new StiNameComboBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getName2(t){let e=new StiNameComboBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getKey(t){if(t.is2(StiKeyComboBoxMeter))return t;let e=new StiKeyComboBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getKey2(t){let e=new StiKeyComboBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.ComboBox=a8;class b8{static getFilter2(t){let e="",i=(null!=t&&null!=t.type&&(Type.isDateType(t.type)?e=DateTime.now.toString("MM/dd/yyyy"):Type.isNumericType(t.type)&&(e="0")),new StiDataFilterRule);return i.key=StiKeyHelper.generateKey(),i.condition=StiDataFilterCondition.EqualTo,i.path=StiMeterHelper.toExpression(t),i.value=e,i.value2=e,i}static getFilter(t,e){let i=StiDataExpressionHelper.getDataColumnFromExpression(e.page.as(__.e.StiDashboard),t.expression),r="",l=(null!=i&&null!=i.getDataType()&&(Type.isDateType(i.getDataType())?r=DateTime.now.toString("MM/dd/yyyy"):Type.isNumericType(i.getDataType())&&(r="0")),new StiDataFilterRule);return l.key=StiKeyHelper.generateKey(),l.condition=StiDataFilterCondition.EqualTo,l.path=StiExpressionHelper.removeFunction(t.expression),l.value=r,l.value2=r,l}}__.h.DataFilter=b8;class c8{static getValue(t){if(t.is2(StiValueDatePickerMeter))return t;let e=new StiValueDatePickerMeter;return e.expression=t.expression,e.label=t.label,e}static getValue2(t){let e=new StiValueDatePickerMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.DatePicker=c8;class d8{static getValue(t){if(t.is2(StiValueNumberBoxMeter))return t;let e=new StiValueNumberBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getValue2(t){let e=new StiValueNumberBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.NumberBox=d8;class e8{static getArgument(t){if(t.is2(StiArgumentRangeSelectorMeter))return t;let e=new StiArgumentRangeSelectorMeter;return e.key=t.key,e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getArgument2(t){let e=new StiArgumentRangeSelectorMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getValue(t){if(t.is2(StiValueRangeSelectorMeter))return t;let e=new StiValueRangeSelectorMeter;return e.key=t.key,e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getValue2(t){let e=new StiValueRangeSelectorMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getSeries(t){if(t.is2(StiSeriesRangeSelectorMeter))return t;let e=new StiSeriesRangeSelectorMeter;return e.key=t.key,e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries2(t){let e=new StiSeriesRangeSelectorMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.RangeSelector=e8;class f8{static getSeries(t){if(t.is2(StiSeriesGaugeMeter))return t;let e=new StiSeriesGaugeMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries2(t){let e=new StiSeriesGaugeMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getValue(t){if(t.is2(StiValueGaugeMeter))return t;let e=new StiValueGaugeMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getValue2(t){let e=new StiValueGaugeMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getTarget(t){if(t.is2(StiTargetGaugeMeter))return t;let e=new StiTargetGaugeMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getTarget2(t){let e=new StiTargetGaugeMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.Gauge=f8;class g8{static getSeries(t){if(t.is2(StiSeriesIndicatorMeter))return t;let e=new StiSeriesIndicatorMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries2(t){let e=new StiSeriesIndicatorMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getValue(t){if(t.is2(StiValueIndicatorMeter))return t;let e=new StiValueIndicatorMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getValue2(t){let e=new StiValueIndicatorMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getTarget(t){if(t.is2(StiTargetIndicatorMeter))return t;let e=new StiTargetIndicatorMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getTarget2(t){let e=new StiTargetIndicatorMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.Indicator=g8;class h8{static getName(t){if(t.is2(StiNameListBoxMeter))return t;let e=new StiNameListBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getName2(t){let e=new StiNameListBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getKey(t){if(t.is2(StiKeyListBoxMeter))return t;let e=new StiKeyListBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getKey2(t){let e=new StiKeyListBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.ListBox=h8;class i8{static getLatitude(t){if(t.is2(StiLatitudeMapMeter))return t;let e=new StiLatitudeMapMeter;return e.expression=t.expression,e.label=t.label,e}static getLongitude(t){if(t.is2(StiLongitudeMapMeter))return t;let e=new StiLongitudeMapMeter;return e.expression=t.expression,e.label=t.label,e}static getLocation(t){if(t.is2(StiLocationMapMeter))return t;return new StiLocationMapMeter(null,t.expression,t.label)}static getLocationColor(t){if(t.is2(StiLocationColorMapMeter))return t;return new StiLocationColorMapMeter(null,t.expression,t.label)}static getLocationValue(t){if(t.is2(StiLocationValueMapMeter))return t;return new StiLocationValueMapMeter(null,t.expression,t.label)}static getLocationArgument(t){if(t.is2(StiLocationArgumentMapMeter))return t;return new StiLocationArgumentMapMeter(null,t.expression,t.label)}static getLatitude2(t){let e=new StiLatitudeMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getLongitude2(t){let e=new StiLongitudeMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getLocation2(t){return new StiLocationMapMeter(null,StiMeterHelper.toExpression(t),StiMeterHelper.toAlias(t))}static getLocationColor2(t){return new StiLocationColorMapMeter(null,StiMeterHelper.toExpression(t),StiMeterHelper.toAlias(t))}static getLocationValue2(t){return new StiLocationValueMapMeter(null,StiMeterHelper.toExpression(t),StiMeterHelper.toAlias(t))}static getLocationArgument2(t){return new StiLocationArgumentMapMeter(null,StiMeterHelper.toExpression(t),StiMeterHelper.toAlias(t))}}__.h.OnlineMap=i8;class j8{static getColumn(t){if(t.is(StiPivotColumn))return t;let e=new StiPivotColumn;return e.key=t.key,e.expression=t.expression,e.label=t.label,e.textFormat=this.getFormat(t),e.topN=this.getTopN(t),e.horAlignment=t.is(IStiHorAlignment)?t.as(IStiHorAlignment).horAlignment:StiHorAlignment.Center,e.size=t.is(IStiTableColumnSize)&&null!=t.size?t.size:new StiTableColumnSize,e.totalLabel=this.getTotalLabel(t),e.showTotal=this.getShowTotal(t),e.sortDirection=this.getSortDirection(t),e.expandExpression=this.getExpandExpression(t),e}static getRow(t){if(t.is(StiPivotRow))return t;let e=new StiPivotRow;return e.key=t.key,e.expression=t.expression,e.label=t.label,e.textFormat=this.getFormat(t),e.topN=this.getTopN(t),e.horAlignment=t.is(IStiHorAlignment)?t.as(IStiHorAlignment).horAlignment:StiHorAlignment.Center,e.size=t.is(IStiTableColumnSize)&&null!=t.size?t.size:new StiTableColumnSize,e.totalLabel=this.getTotalLabel(t),e.showTotal=this.getShowTotal(t),e.sortDirection=this.getSortDirection(t),e.expandExpression=this.getExpandExpression(t),e}static getShowTotal(t){return t.is(IStiPivotRow)?t.as(IStiPivotRow).showTotal:!t.is(IStiPivotColumn)||t.as(IStiPivotColumn).showTotal}static getTotalLabel(t){return t.is(IStiPivotRow)?t.as(IStiPivotRow).totalLabel:t.is(IStiPivotColumn)?t.as(IStiPivotColumn).totalLabel:""}static getSortDirection(t){return t.is(IStiPivotRow)?t.as(IStiPivotRow).strSortDirection:t.is(IStiPivotColumn)?t.as(IStiPivotColumn).strSortDirection:"None"}static getExpandExpression(t){return t.is(IStiPivotRow)?t.as(IStiPivotRow).expandExpression:t.is(IStiPivotColumn)?t.as(IStiPivotColumn).expandExpression:""}static getSummary(t){if(t.is(StiPivotSummary))return t;let e=new StiPivotSummary;return e.key=t.key,e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e.textFormat=this.getFormat(t),e}static getSummary3(t,e){if(t.is(StiPivotSummary))return t;let i=new StiPivotSummary;return i.expression=StiMeterHelper.toTotalExpression3(t,e),i.label=t.label,i.textFormat=this.getFormat(t),i}static getColumn2(t){let e=new StiPivotColumn;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getRow2(t){let e=new StiPivotRow;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getSummary2(t){let e=new StiPivotSummary;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getFormat(t){if(t.is(StiPivotColumn))return t.textFormat;if(t.is(StiPivotRow))return t.textFormat;if(t.is(StiPivotSummary))return t.textFormat;return new StiGeneralFormatService}static getTopN(t){if(t.is(StiPivotColumn))return t.topN;if(t.is(StiPivotRow))return t.topN;return new StiDataTopN}}__.h.Pivot=j8;class k8{static getSeries(t){if(t.is2(StiSeriesProgressMeter))return t;let e=new StiSeriesProgressMeter;return e.expression=StiExpressionHelper.removeFunction(t.expression),e.label=t.label,e}static getSeries2(t){let e=new StiSeriesProgressMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getValue(t){if(t.is2(StiValueProgressMeter))return t;let e=new StiValueProgressMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getValue2(t){let e=new StiValueProgressMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getTarget(t){if(t.is2(StiTargetProgressMeter))return t;let e=new StiTargetProgressMeter;return e.expression=StiMeterHelper.toTotalExpression(t),e.label=t.label,e}static getTarget2(t){let e=new StiTargetProgressMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.Progress=k8;class l8{static getKey(t){if(t.is2(StiKeyMapMeter))return t;let e=new StiKeyMapMeter;return e.expression=t.expression,e.label=t.label,e}static getName(t){if(t.is2(StiNameMapMeter))return t;let e=new StiNameMapMeter;return e.expression=t.expression,e.label=t.label,e}static getGroup(t){if(t.is2(StiGroupMapMeter))return t;let e=new StiGroupMapMeter;return e.expression=t.expression,e.label=t.label,e}static getValue(t,e){let i=new StiValueMapMeter,r=(i.loadFromString(t.saveToString()),StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count");return i.expression=StiExpressionHelper.replaceFunction(i.expression,r),i}static getColor(t){if(t.is2(StiColorMapMeter))return t;let e=new StiColorMapMeter;return e.expression=t.expression,e.label=t.label,e}static getKey2(t){let e=new StiKeyMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getName2(t){let e=new StiNameMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getValue2(t){let e=new StiValueMapMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}static getGroup2(t){let e=new StiGroupMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}static getColor2(t){let e=new StiColorMapMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.RegionMap=l8;class m8{static getColumn(t){let e=t.as(StiTableColumn);return(e=null==e?new(t.is(IStiMeasureMeter)?StiMeasureColumn:StiDimensionColumn):e).loadFromString(t.saveToString()),e}static getDimension(t){let e=new StiDimensionColumn;return e.loadFromString(t.saveToString()),Funcs.isMeasureFunction(e.expression)&&(e.expression=StiExpressionHelper.removeFunction(e.expression)),e}static getDimension2(t){let e=new StiDimensionColumn;return e.textFormat=StiTextFormatHelper.getDefaultFormatForColumn(t),e.expression=StiMeterHelper.toExpression(t),e.horAlignment=__.h.StiTableAlignmentHelper.getHorAlign(t),e.label=StiMeterHelper.toAlias(t),e}static getMeasure(t,e){let i=new StiMeasureColumn;if(i.loadFromString(t.saveToString()),t.is(StiDimensionColumn)||t.is(StiSparklinesColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getMeasure2(t){let e=new StiMeasureColumn;return e.textFormat=StiTextFormatHelper.getDefaultFormatForColumn(t),e.expression=StiMeterHelper.toTotalExpression2(t),e.horAlignment=__.h.StiTableAlignmentHelper.getHorAlign(t),e.label=StiMeterHelper.toAlias(t),e}static getDataBars(t,e){let i=new StiDataBarsColumn;if(i.loadFromString(t.saveToString()),t.is(StiDimensionColumn)||t.is(StiSparklinesColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"First";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getColorScale(t,e){let i=new StiColorScaleColumn;if(i.loadFromString(t.saveToString()),t.is(StiDimensionColumn)||t.is(StiSparklinesColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getSparklines(t){let e=new StiSparklinesColumn;return e.loadFromString(t.saveToString()),Funcs.isMeasureFunction(e.expression)&&(e.expression=StiExpressionHelper.removeFunction(e.expression)),e}static getBubble(t,e){let i=new StiBubbleColumn;if(i.loadFromString(t.saveToString()),t.is(StiDimensionColumn)||t.is(StiSparklinesColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getIndicator(t,e){let i=new StiIndicatorColumn;if(i.loadFromString(t.saveToString()),t.is(StiDimensionColumn)||t.is(StiSparklinesColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i.horAlignment=StiHorAlignment.Right,i}}__.h.Table=m8;class n8{static getMeter(t){let e=new StiTextMeasureMeter;return e.loadFromJsonObject(t.saveToJsonObject(StiJsonSaveMode.Report)),e}static getMeter2(t){let e=new StiTextMeasureMeter;return e.expression=StiMeterHelper.toTotalExpression2(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.Text=n8;class o8{static getColumn(t){let e=t.as(StiCardsColumn);return(e=null==e?new(t.is(IStiMeasureMeter)?StiMeasureCardsColumn:StiDimensionCardsColumn):e).loadFromString(t.saveToString()),e}static getDimension(t){let e=new StiDimensionCardsColumn;return e.loadFromString(t.saveToString()),Funcs.isMeasureFunction(e.expression)&&(e.expression=StiExpressionHelper.removeFunction(e.expression)),e}static getDimension2(t){let e=new StiDimensionCardsColumn;return e.textFormat=StiTextFormatHelper.getDefaultFormatForColumn(t),e.expression=StiMeterHelper.toExpression(t),e.horAlignment=__.h.StiTableAlignmentHelper.getHorAlign(t),e.label=StiMeterHelper.toAlias(t),e}static getMeasure(t,e){let i=new StiMeasureCardsColumn;if(i.loadFromString(t.saveToString()),t.is2(StiDimensionCardsColumn)||t.is2(StiSparklinesCardsColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getMeasure2(t){let e=new StiMeasureCardsColumn;return e.textFormat=StiTextFormatHelper.getDefaultFormatForColumn(t),e.expression=StiMeterHelper.toTotalExpression2(t),e.horAlignment=__.h.StiTableAlignmentHelper.getHorAlign(t),e.label=StiMeterHelper.toAlias(t),e}static getDataBars(t,e){let i=new StiDataBarsCardsColumn;if(i.loadFromString(t.saveToString()),t.is2(StiDimensionCardsColumn)||t.is2(StiSparklinesCardsColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"First";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getColorScale(t,e){let i=new StiColorScaleCardsColumn;if(i.loadFromString(t.saveToString()),t.is2(StiDimensionCardsColumn)||t.is2(StiSparklinesCardsColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getSparklines(t){let e=new StiSparklinesCardsColumn;return e.loadFromString(t.saveToString()),Funcs.isMeasureFunction(e.expression)&&(e.expression=StiExpressionHelper.removeFunction(e.expression)),e}static getBubble(t,e){let i=new StiBubbleCardsColumn;if(i.loadFromString(t.saveToString()),t.is2(StiDimensionCardsColumn)||t.is2(StiSparklinesCardsColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i}static getIndicator(t,e){let i=new StiIndicatorCardsColumn;if(i.loadFromString(t.saveToString()),t.is2(StiDimensionCardsColumn)||t.is2(StiSparklinesCardsColumn)){let t=StiDataExpressionHelper.isNumericDataColumnInExpression(e,i.expression)?"Sum":"Count";i.expression=StiExpressionHelper.replaceFunction(i.expression,t)}return i.horAlignment=StiHorAlignment.Right,i}}__.h.Cards=o8;class p8{static getKey(t){if(t.is2(StiKeyTreeViewMeter))return t;let e=new StiKeyTreeViewMeter;return e.expression=t.expression,e.label=t.label,e}static getKey2(t){let e=new StiKeyTreeViewMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.TreeView=p8;class q8{static getKey(t){if(t.is2(StiKeyTreeViewBoxMeter))return t;let e=new StiKeyTreeViewBoxMeter;return e.expression=t.expression,e.label=t.label,e}static getKey2(t){let e=new StiKeyTreeViewBoxMeter;return e.expression=StiMeterHelper.toExpression(t),e.label=StiMeterHelper.toAlias(t),e}}__.h.TreeViewBox=q8;class StiMeterHelper{static toTotalExpression2(t){let e=t?.as(StiDataColumn);if(null!=e)return StiDataColumnExt.isNumericType(e)?this.toSumExpression2(e):this.toCountExpression2(e);return t?.getName()}static toTotalExpression(t){if(StiExpressionHelper.isFunctionPresent(t.expression))return t.expression;return this.toCountExpression(t.expression)}static toTotalExpression3(t,e){if(StiExpressionHelper.isFunctionPresent(t.expression))return t.expression;return StiDataExpressionHelper.isNumericDataColumnInExpression(e,t.expression)?this.toSumExpression(t.expression):this.toCountExpression(t.expression)}static toSumExpression2(t){return`Sum(${this.toExpression(t)})`}static toSumExpression(t){return`Sum(${t})`}static toCountExpression2(t){return`Count(${this.toExpression(t)})`}static toCountExpression(t){return`Count(${t})`}static toExpression(t){let e=t?.as(StiDataColumn);if(null!=e)return Funcs.toExpression2(e.dataSource.name,e.name);return Funcs.toExpression(t?.getName())}static toAlias(t){let e=t.as(IStiAppAlias);if(null!=e)return e.getAlias();return t?.getName()}static toDataType(t){let e=(t?.as(StiDataColumn))?.type;if(null!=e)return e;return(t?.as(StiVariable))?.type}}StiMeterHelper.Chart=_i,StiMeterHelper.ComboBox=a8,StiMeterHelper.DataFilter=b8,StiMeterHelper.DatePicker=c8,StiMeterHelper.NumberBox=d8,StiMeterHelper.RangeSelector=e8,StiMeterHelper.Gauge=f8,StiMeterHelper.Indicator=g8,StiMeterHelper.ListBox=h8,StiMeterHelper.OnlineMap=i8,StiMeterHelper.Pivot=j8,StiMeterHelper.Progress=k8,StiMeterHelper.RegionMap=l8,StiMeterHelper.Table=m8,StiMeterHelper.Cards=o8,StiMeterHelper.TreeView=p8,StiMeterHelper.TreeViewBox=q8,StiMeterHelper.Text=n8,__.h.StiMeterHelper=StiMeterHelper}__.G.StiCardsItem=class{constructor(){this.cornerRadius=new StiCornerRadius(0),this.margin=new StiMargin(12,12,12,12),this.padding=new StiPadding(12,12,12,12),this.colorEach=!1}meta(){return[new StiObjectMeta("Margin").get(t=>this.margin.saveToJsonObject(12,12,12,12)),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(12,12,12,12)),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiBoolMeta("ColorEach")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}isDefaultMargin(){return 12==this.margin.left&&12==this.margin.top&&12==this.margin.right&&12==this.margin.bottom}isDefaultPadding(){return 12==this.padding.left&&12==this.padding.top&&12==this.padding.right&&12==this.padding.bottom}};let IStiInteractionLayout=Stimulsoft.Report.Dashboard.IStiInteractionLayout,IStiShowBlanks=(__.g.StiCardsDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0)]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.isDefaultLayout}constructor(t,e,i){super(),this.ident=StiInteractionIdent.Cards,this.availableOnClick=StiAvailableInteractionOnClick.None,this.availableOnHover=StiAvailableInteractionOnHover.None,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.showFullScreenButton=t),null!=e&&(this.showSaveButton=e),null!=i&&(this.showViewDataButton=i)}},Stimulsoft.Report.Components.IStiShowBlanks),StiCardsDashboardInteraction=__.g.StiCardsDashboardInteraction,StiMeterHelper=__.h.StiMeterHelper,StiReportObjectStringConverter=Stimulsoft.System.Text.StiReportObjectStringConverter,IStiSeriesColors=Stimulsoft.Report.Dashboard.IStiSeriesColors,StiCardsItem=__.G.StiCardsItem,StiMeterLoader=__.H.StiMeterLoader,StiItemOrientation=Stimulsoft.Report.Dashboard.StiItemOrientation,ImplementsIStiCardsElement=Stimulsoft.Report.Dashboard.ImplementsIStiCardsElement,ImplementsIStiElementLayout=Stimulsoft.Report.Dashboard.ImplementsIStiElementLayout,IStiElementLayout=Stimulsoft.Report.Dashboard.IStiElementLayout,StiElementLayout=Stimulsoft.Report.Dashboard.StiElementLayout,ImplementsIStiTitleElement=Stimulsoft.Report.Dashboard.ImplementsIStiTitleElement,StiUsedDataHelper=Stimulsoft.Data.Helpers.StiUsedDataHelper,IStiCardsElement=Stimulsoft.Report.Dashboard.IStiCardsElement,StiDataSortRule=Stimulsoft.Data.Engine.StiDataSortRule,StiDataActionRule=Stimulsoft.Data.Engine.StiDataActionRule;{class StiCardsElement extends __.e.StiElement{implements(){let t=super.implements().concat([IStiCardsElement,IStiSimpleShadow,IStiTitleElement,IStiElementLayout,IStiElementInteraction,IStiCornerRadius,IStiSeriesColors,IStiGlobalizationProvider,IStiShowBlanks,...ImplementsIStiCardsElement,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,...ImplementsIStiCornerRadius,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.columns=this.columns.map(t=>t.clone()),e.dashboardInteraction=this.dashboardInteraction?.clone(),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.title=null!=this.title?this.title.clone():null,e.seriesColors=null!=this.seriesColors?this.seriesColors.slice():null,e.cornerRadius=this.cornerRadius?.clone(),e.shadow=this.shadow?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("Columns").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.columns,t)).set(t=>this.columns.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(StiCardsColumn)).where(t=>null!=t))).setXml(t=>this.columns.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)).filter(t=>null!=t))),new StiEnumMeta("Orientation","",StiItemOrientation,StiItemOrientation.Horizontal),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiNumberMeta("ColumnCount","",0),new StiStringNullOrEmptyMeta("Group"),new StiBoolMeta("CrossFiltering","",!0),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Cards").get(t=>this.cards.saveToJsonObject(t)),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("SeriesColors").get(()=>StiJsonReportObjectHelper.Serialize.colorArray(this.seriesColors)).set(t=>this.seriesColors=StiJsonReportObjectHelper.Deserialize.colorArray(t.value)).setXml(t=>this.seriesColors=StiReportObjectStringConverter.convertStringToColorArray(t.textContent)),new StiBoolMeta("ShowBlanks"),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiCardsDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiCardsDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiCardsDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiEventMeta("ClickEvent")]}get toolboxPosition(){return StiComponentToolboxPosition.CardsElement}get localizedName(){return StiLocalization.get("Components","StiCards")}convertFrom(t){let e=t.fetchAllMeters();if(this.columns.splice(0,this.columns.length),null==e)return;e.forEach(t=>{let e=t,i=null;e.is2(IStiDimensionMeter)?i=new StiDimensionCardsColumn:e.is2(IStiSparklinesColumn)?i=new __.G.StiSparklinesCardsColumn:e.is2(IStiDataBarsColumn)?i=new __.G.StiDataBarsCardsColumn:e.is2(IStiIndicatorColumn)?i=new __.G.StiIndicatorCardsColumn:e.is2(IStiColorScaleColumn)?i=new __.G.StiColorScaleCardsColumn:e.is2(IStiBubbleColumn)?i=new __.G.StiBubbleCardsColumn:e.is2(IStiMeasureMeter)&&((i=new StiMeasureCardsColumn).horAlignment=StiHorAlignment.Right),null!=i&&(i.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.columns.push(i))},this),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiCardsDashboardInteraction)}createMeters(t){let e=t.as(StiCardsElement);this.columns.splice(0,this.columns.length);for(let t of e.columns)this.columns.push(t)}createMeters2(e){this.columns.splice(0,this.columns.length);for(let t of e.columns.list)null!=t&&null!=t.type&&Type.isNumericType(t.type)?this.columns.push(StiMeterHelper.Cards.getMeasure2(t)):this.columns.push(StiMeterHelper.Cards.getDimension2(t))}createMeter(t){let e=t.as(StiDataColumn),i=t.as(StiVariable),r=null!=e?e.type:i?.type;if(null!=r&&Type.isNumericType(r)){let t=StiMeterHelper.Cards.getMeasure2(e);this.columns.push(t)}else this.columns.push(StiMeterHelper.Cards.getDimension2(t))}removeMeter(t){t<this.columns.length&&this.columns.splice(t,1)}removeAllMeters(){this.columns.splice(0,this.columns.length)}insertMeter(t,e){let i=e.as(StiCardsColumn);if(null==i)return;0<=t&&t<this.columns.length?this.columns.splice(t,0,i):this.columns.push(i)}insertNewDimension(t){let e=new StiDimensionCardsColumn;e.horAlignment=StiHorAlignment.Left,this.insertMeter(t,e)}insertNewMeasure(t){let e=new StiMeasureCardsColumn;e.expression="Sum()",e.horAlignment=StiHorAlignment.Right,this.insertMeter(t,e)}getMeasure(t){return StiMeterHelper.Cards.getMeasure2(t)}getDimension(t){return StiMeterHelper.Cards.getDimension2(t)}getCards(){return this.cards}fetchAllMeters(){return this.columns.slice()}getMeters(){return this.columns.slice()}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.columns)}get isDefined(){return null!=this.columns&&0<this.columns.length}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){let t=["Title.Text"];return t}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}getNestedPages(){let e=[],i="";if(null!=this.dashboardInteraction&&this.dashboardInteraction.onClick==StiInteractionOnClick.ShowDashboard&&(i=this.dashboardInteraction?.drillDownPageKey,StiKeyHelper.isKey(i))){let t=this.report.pages.list.find(t=>t.guid==i);null!=t&&e.push(t)}for(let t of this.columns)if(null!=t?.dashboardInteraction&&t.dashboardInteraction.onClick==StiInteractionOnClick.ShowDashboard&&(i=t?.dashboardInteraction?.drillDownPageKey,StiKeyHelper.isKey(i))){let t=this.report.pages.list.find(t=>t.guid==i);null!=t&&e.push(t)}return 0==e.length?null:e[Stimulsoft.System.StiObject.stimulsoft]().distinct()}constructor(t=Rectangle.empty){super(t),this.helpUrl="user-manual/dashboards_cards.htm",this.dataFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.group="",this.title=new __.e.StiTitle,this.crossFiltering=!0,this.shadow=new StiSimpleShadow,this.layout=new StiElementLayout,this.cornerRadius=new StiCornerRadius(0),this.showBlanks=!1,this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.seriesColors=[],this.orientation=StiItemOrientation.Horizontal,this.columns=[],this.cards=new StiCardsItem,this.columnCount=0,this.title.text=this.localizedName,this.dashboardInteraction=new StiCardsDashboardInteraction}}__.G.StiCardsElement=StiCardsElement}{let t;(t=>{t[t["Value"]=0]="Value",t[t["PercentOfTotal"]=1]="PercentOfTotal",t[t["Category"]=2]="Category",t[t["CategoryValue"]=3]="CategoryValue",t[t["CategoryPercentOfTotal"]=4]="CategoryPercentOfTotal"})(t=__.I.StiChartLabelsStyle||(__.I.StiChartLabelsStyle={}));let e;(t=>{t[t["False"]=0]="False",t[t["Auto"]=1]="Auto",t[t["Always"]=2]="Always"})(e=__.I.StiLegendVisibility||(__.I.StiLegendVisibility={}))}__.I.StiChartAreaIndicator=class{implements(){let t=[IStiJsonReportObject,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiObjectMeta("Value"),new StiObjectMeta("Title")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.value=this.value.clone(),t.title=this.title.clone(),t}constructor(){this.value=new __.I.StiChartAreaIndicatorValue,this.title=new __.I.StiChartAreaIndicatorTitle}};let StiChartAreaIndicator=__.I.StiChartAreaIndicator,IStiChartArea=Stimulsoft.Report.Dashboard.IStiChartArea,StiLabelsPlacement=(__.I.StiChartArea=class{implements(){let t=[IStiChartArea,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("ColorEach"),new StiBoolMeta("SideBySide","",!1,!0),new StiObjectMeta("GridLinesHor"),new StiObjectMeta("GridLinesVert"),new StiObjectMeta("InterlacingHor"),new StiObjectMeta("InterlacingVert"),new StiBoolMeta("ReverseHor"),new StiBoolMeta("ReverseVert"),new StiObjectMeta("XAxis").check(()=>!1),new StiObjectMeta("XTopAxis").check(()=>!1),new StiObjectMeta("YAxis").check(()=>!1),new StiObjectMeta("YRightAxis").check(()=>!1),new StiObjectMeta("Indicator"),new StiNumberMeta("HorSpacing","",6),new StiNumberMeta("VertSpacing","",6)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.gridLinesHor=null!=this.gridLinesHor?this.gridLinesHor.clone():null,t.gridLinesVert=null!=this.gridLinesVert?this.gridLinesVert.clone():null,t.interlacingHor=null!=this.interlacingHor?this.interlacingHor.clone():null,t.interlacingVert=null!=this.interlacingVert?this.interlacingVert.clone():null,t.indicator=null!=this.indicator?this.indicator.clone():null,t}get horSpacing(){return this._horSpacing}set horSpacing(t){0<=t&&(this._horSpacing=t)}get vertSpacing(){return this._vertSpacing}set vertSpacing(t){0<=t&&(this._vertSpacing=t)}constructor(t,e,i,r,l,n,s,o,a,u,S,m){this.sideBySide=!0,this.colorEach=!1,this.reverseHor=!1,this.reverseVert=!1,this.interlacingHor=new __.I.StiHorChartInterlacing,this.interlacingVert=new __.I.StiVertChartInterlacing,this.gridLinesHor=new __.I.StiHorChartGridLines,this.gridLinesVert=new __.I.StiVertChartGridLines,this.xAxis=new __.I.StiXChartAxis,this.xTopAxis=new __.I.StiXTopChartAxis,this.yAxis=new __.I.StiYChartAxis,this.yRightAxis=new __.I.StiYRightChartAxis,this.indicator=new StiChartAreaIndicator,this._horSpacing=6,this._vertSpacing=6,null!=t&&(this.colorEach=t),null!=e&&(this.reverseHor=e),null!=i&&(this.reverseVert=i),null!=r&&(this.gridLinesHor=r),null!=l&&(this.gridLinesVert=l),null!=l&&(this.interlacingHor=n),null!=s&&(this.interlacingVert=s),null!=o&&(this.xAxis=o),null!=a&&(this.yAxis=a),null!=u&&(this.xTopAxis=u),null!=S&&(this.yRightAxis=S),null!=m&&(this.indicator=m)}},__.I.StiChartAreaIndicatorTitle=class{constructor(){this.text="",this.color=Color.transparent}implements(){let t=[IStiJsonReportObject,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiStringMeta("Text"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t}},__.I.StiChartAreaIndicatorValue=class{constructor(){this.color=Color.transparent}implements(){let t=[IStiJsonReportObject,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t}},Stimulsoft.Report.Chart.StiLabelsPlacement),StiChartAxisLabels=(__.I.StiChartAxisLabels=class{implements(){let t=[ICloneable,IStiFont,...ImplementsIStiFont,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiNumberMeta("Angle","",0),new StiStringNullOrEmptyMeta("TextBefore"),new StiStringNullOrEmptyMeta("TextAfter"),new StiFontMeta("Font","","Arial",8),new StiEnumMeta("Placement","",StiLabelsPlacement,StiLabelsPlacement.AutoRotation),new StiColorMeta("Color","",Color.transparent),new StiEnumMeta("TextAlignment","",StiHorAlignment,StiHorAlignment.Right),new StiNumberMeta("Step","",0),new StiBoolMeta("WordWrap"),new StiNumberMeta("Width")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}constructor(t,e,i,r,l,n,s,o,a){this.angle=0,this.color=Color.transparent,this.font=new Font("Arial",8),this.placement=StiLabelsPlacement.AutoRotation,this.textAlignment=StiHorAlignment.Right,this.textAfter="",this.textBefore="",this.step=0,this.wordWrap=!1,this.width=0,null!=t&&(this.textBefore=t),null!=e&&(this.textAfter=e),null!=i&&(this.angle=i),null!=r&&(this.font=r),null!=l&&(this.placement=l),null!=n&&(this.color=n),null!=s&&(this.textAlignment=s),null!=o&&(this.width=o),null!=a&&(this.wordWrap=a)}},__.I.StiChartAxisLabels),StiTitlePosition=(__.I.StiChartAxis=class{implements(){let t=[IStiJsonReportObject,ICloneable];return(this.implements=()=>t)()}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.labels=this.labels.clone(),t.range=this.range.clone(),t}meta(){return[new StiObjectMeta("Labels").check(()=>null!=this.labels),new StiObjectMeta("Range").check(()=>null!=this.range),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}constructor(t,e,i){this.labels=new StiChartAxisLabels,this.range=new __.I.StiChartAxisRange,this.visible=!0,null!=t&&(this.labels=t),null!=e&&(this.range=e),null!=i&&(this.visible=i)}},__.I.StiChartAxisRange=class{implements(){let t=[IStiJsonReportObject,ICloneable];return(this.implements=()=>t)()}meta(){return[new StiNumberMeta("Minimum","",0),new StiNumberMeta("Maximum","",0),new StiBoolMeta("Auto","",!0)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}get minimum(){return this._minimum}set minimum(t){this._minimum=t}constructor(t,e,i){this._minimum=0,this.maximum=0,this.auto=!0,null!=t&&(this.auto=t),null!=e&&(this.minimum=e),null!=i&&(this.maximum=i)}},Stimulsoft.Report.Chart.StiTitlePosition),FontStyle=Stimulsoft.System.Drawing.FontStyle,StringAlignment=Stimulsoft.System.Drawing.StringAlignment;{let t;(t=>{t[t["Alignment"]=1]="Alignment",t[t["Color"]=2]="Color",t[t["Direction"]=3]="Direction",t[t["Font"]=4]="Font",t[t["Placement"]=5]="Placement",t[t["Position"]=6]="Position",t[t["Text"]=7]="Text",t[t["Visible"]=8]="Visible"})(t=__.I.Order||(__.I.Order={})),__.I.StiChartAxisTitle=class{implements(){let t=[IStiJsonReportObject];return(this.implements=()=>t)()}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}meta(){return[new StiFontMeta("Font","","Arial",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.transparent),new StiEnumMeta("Alignment","",StringAlignment,StringAlignment.Center),new StiEnumMeta("Position","",StiTitlePosition,StiTitlePosition.Outside),new StiBoolMeta("Visible","",!0)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}constructor(t,e,i,r,l,n){this.visible=!0,this.alignment=StringAlignment.Center,this.color=Color.transparent,this.font=new Font("Arial",12,FontStyle.Bold),this.position=StiTitlePosition.Outside,this.text="",null!=t&&(this.font=t),null!=e&&(this.text=e),null!=i&&(this.color=i),null!=r&&(this.alignment=r),null!=l&&(this.position=l),null!=n&&(this.visible=n)}}}let StiConstantLines_StiTextPosition=Stimulsoft.Report.Chart.StiConstantLines_StiTextPosition,IStiChartConstantLines=Stimulsoft.Report.Dashboard.IStiChartConstantLines;{class iq{implements(){let t=[ICloneable,IStiChartConstantLines,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("LineColor"),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiNumberMeta("LineWidth","",1),new StiStringMeta("AxisValue","","1"),new StiEnumMeta("Position","",StiConstantLines_StiTextPosition,StiConstantLines_StiTextPosition.LeftTop)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new iq;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new iq;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n){this.text="",this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.black,this.axisValue="1",this.lineWidth=1,this.position=StiConstantLines_StiTextPosition.LeftTop,null!=t&&(this.text=t),null!=e&&(this.axisValue=e),null!=i&&(this.lineColor=i),null!=r&&(this.lineStyle=r),null!=l&&(this.lineWidth=l),null!=n&&(this.position=n)}}__.I.StiChartConstantLines=iq}let StiMarkerType=Stimulsoft.Report.Chart.StiMarkerType,StiExtendedStyleBool=Stimulsoft.Report.Chart.StiExtendedStyleBool,StiSeriesLabelsValueType=(__.I.StiChartMarker=class{implements(){let t=[ICloneable,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiNumberMeta("Size","",7),new StiNumberMeta("Angle","",0),new StiEnumMeta("Type","",StiMarkerType,StiMarkerType.Circle),new StiEnumMeta("Visible","",StiExtendedStyleBool,StiExtendedStyleBool.FromStyle)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new __.I.StiChartConstantLines;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new __.I.StiChartConstantLines;return e.loadFromXml(t),e}constructor(t){this.size=7,this.angle=0,this.type=StiMarkerType.Circle,this.visible=StiExtendedStyleBool.FromStyle,null!=t&&(this.size=t)}},__.I.StiChartLegendTitle=class{meta(){return[new StiFontMeta("Font","","Arial",12,FontStyle.Bold),new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("Color","",Color.transparent)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}constructor(t,e,i){this.color=Color.transparent,this.font=new Font("Arial",12,FontStyle.Bold),this.text="",null!=t&&(this.font=t),null!=e&&(this.text=e),null!=i&&(this.color=i)}},Stimulsoft.Report.Chart.StiSeriesLabelsValueType),StiLegendDirection=(__.I.StiChartLegendLabels=class{implements(){let t=[ICloneable,IStiFont,...ImplementsIStiFont,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiFontMeta("Font","","Arial",8),new StiColorMeta("Color","",Color.transparent),new StiEnumMeta("ValueType","",StiSeriesLabelsValueType)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}constructor(t,e,i){this.color=Color.transparent,this.font=new Font("Arial",8),this.valueType=null,null!=t&&(this.font=t),null!=e&&(this.color=e),null!=i&&(this.valueType=i)}},Stimulsoft.Report.Chart.StiLegendDirection),StiChartLegendTitle=__.I.StiChartLegendTitle,StiChartLegendLabels=__.I.StiChartLegendLabels,StiLegendVertAlignment=Stimulsoft.Report.Chart.StiLegendVertAlignment,StiLegendHorAlignment=Stimulsoft.Report.Chart.StiLegendHorAlignment;{let t;(t=>{t[t["HorAlignment"]=1]="HorAlignment",t[t["Labels"]=2]="Labels",t[t["Title"]=3]="Title",t[t["VertAlignment"]=4]="VertAlignment"})(t=__.I.Order||(__.I.Order={})),__.I.StiChartLegend=class{implements(){let t=[IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiObjectMeta("Title"),new StiObjectMeta("Labels"),new StiEnumMeta("HorAlignment","",StiLegendHorAlignment,StiLegendHorAlignment.Left),new StiEnumMeta("VertAlignment","",StiLegendVertAlignment,StiLegendVertAlignment.TopOutside),new StiBoolMeta("Visible","",!0),new StiEnumMeta("Visibility","",__.I.StiLegendVisibility,__.I.StiLegendVisibility.Auto),new StiEnumMeta("Direction","",StiLegendDirection,StiLegendDirection.TopToBottom),new StiNumberMeta("Columns")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.title=this.title.clone(),t.labels=this.labels.clone(),t.horAlignment=this.horAlignment,t.vertAlignment=this.vertAlignment,t.visible=this.visible,t.direction=this.direction,t.columns=this.columns,t.visibility=this.visibility,t}get visible(){return this.visibility==__.I.StiLegendVisibility.Auto}set visible(t){this.visibility=t?__.I.StiLegendVisibility.Auto:__.I.StiLegendVisibility.False}constructor(t,e,i,r,l,n,s){this.horAlignment=StiLegendHorAlignment.Left,this.vertAlignment=StiLegendVertAlignment.TopOutside,this.visibility=__.I.StiLegendVisibility.Auto,this.direction=StiLegendDirection.TopToBottom,this.columns=0,this.labels=new StiChartLegendLabels,this.title=new StiChartLegendTitle,null!=t&&(this.title=t),null!=e&&(this.labels=e),null!=i&&(this.horAlignment=i),null!=r&&(this.vertAlignment=r),null!=l&&(this.visibility=l),null!=n&&(this.direction=n),null!=s&&(this.columns=s)}}}let StiDirection=Stimulsoft.Report.Chart.StiDirection,StiYChartAxisTitle=(__.I.StiYChartAxisTitle=class extends __.I.StiChartAxisTitle{meta(){return[...super.meta(),new StiEnumMeta("Direction","",StiDirection,StiDirection.BottomToTop)]}constructor(t,e,i,r,l,n,s){super(t,e,i,r,n,s),this.direction=StiDirection.BottomToTop,null!=l&&(this.direction=l)}},__.I.StiYChartAxisTitle),StiAutoBool=(__.I.StiYChartAxis=class extends __.I.StiChartAxis{clone(){let t=super.clone();return t.title=this.title.clone(),t.range=this.range?.clone(),t}meta(){return[...super.meta(),new StiObjectMeta("Title"),new StiBoolMeta("StartFromZero","",!0)]}constructor(t,e,i,r){super(t),this.title=new StiYChartAxisTitle,this.startFromZero=!0,null!=t&&(this.labels=t),null!=e&&(this.title=e),null!=i&&(this.visible=i),null!=r&&(this.startFromZero=r)}},Stimulsoft.Base.StiAutoBool),IStiChartDashboardInteraction=(__.I.StiXChartAxis=class extends __.I.StiChartAxis{clone(){let t=super.clone();return t.title=this.title.clone(),t}meta(){return[...super.meta(),new StiObjectMeta("Title").check(()=>null!=this.title),new StiEnumMeta("ShowEdgeValues","",StiAutoBool,StiAutoBool.Auto),new StiEnumMeta("StartFromZero","",StiAutoBool,StiAutoBool.Auto)]}constructor(t,e,i,r,l){super(t),this.title=new __.I.StiXChartAxisTitle,this.showEdgeValues=StiAutoBool.Auto,this.startFromZero=StiAutoBool.Auto,null!=t&&(this.labels=t),null!=e&&(this.title=e),null!=i&&(this.visible=i),null!=r&&(this.startFromZero=r),null!=l&&(this.showEdgeValues=l)}},Stimulsoft.Report.Dashboard.IStiChartDashboardInteraction),StiInteractionViewsState=Stimulsoft.Report.Dashboard.StiInteractionViewsState,IStiAllowUserSortingDashboardInteraction=Stimulsoft.Report.Dashboard.IStiAllowUserSortingDashboardInteraction,IStiAllowUserDrillDownDashboardInteraction=Stimulsoft.Report.Dashboard.IStiAllowUserDrillDownDashboardInteraction,IStiDrillDownElement=(__.g.StiChartDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiChartDashboardInteraction,IStiAllowUserDrillDownDashboardInteraction,IStiAllowUserSortingDashboardInteraction,IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("AllowUserDrillDown"),new StiBoolMeta("AllowUserSorting","",!0),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText"),new StiEnumMeta("ViewsState","",StiInteractionViewsState,StiInteractionViewsState.OnHover)]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.ApplyFilter&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)&&!this.allowUserDrillDown&&this.allowUserSorting&&this.isDefaultLayout}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.Chart,this.allowUserDrillDown=!1,this.allowUserSorting=!0,this.availableOnClick=StiAvailableInteractionOnClick.ApplyFilter|StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard|StiAvailableInteractionOnClick.DrillDown,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.AllowDrillDown|StiAvailableInteractionOnDataManipulation.AllowSorting,this.viewsState=StiInteractionViewsState.OnHover,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=o&&(this.allowUserDrillDown=o),null!=a&&(this.fileName=a),null!=u&&(this.headerText=u),null!=S&&(this.footerText=S),null!=m&&(this.showFullScreenButton=m),null!=h&&(this.showSaveButton=h),null!=c&&(this.showViewDataButton=c),null!=d&&(this.viewsState=d)}},Stimulsoft.Data.Engine.IStiDrillDownElement),StiChartTrendLineType=(__.g.StiDrillDownHelper=class{static isDrillAvailable(t){let e=t.is(IStiElementInteraction)?t.dashboardInteraction.as(IStiAllowUserDrillDownDashboardInteraction):null;if(null==e||!e.allowUserDrillDown)return!1;let i=t.as(IStiDrillDownElement);return null!=i}static isDrillUpAvailable(t){if(!this.isDrillAvailable(t))return!1;let e=t.as(IStiDrillDownElement);return 0<e.drillDownCurrentLevel}static isDrillDownAvailable(t){if(!this.isDrillAvailable(t))return!1;let e=t.as(IStiDrillDownElement);return e.drillDownCurrentLevel<e.drillDownLevelCount-1}static drillUp(t){let e=t.as(IStiDrillDownElement);e.drillDownCurrentLevel--,e.drillDownFilters=e.drillDownFiltersList[e.drillDownCurrentLevel],e.drillDownFiltersList.splice(e.drillDownFiltersList.length-1,1)}static drillDown(t,e=null){let i=t.as(IStiDrillDownElement);i.drillDownFiltersList.push(i.drillDownFilters),i.drillDownFilters=e,i.drillDownCurrentLevel++}},Stimulsoft.Report.Dashboard.StiChartTrendLineType);{class StiChartTrendLine{implements(){let t=[ICloneable,IStiChartConstantLines,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiStringNullOrEmptyMeta("KeyValueMeter"),new StiEnumMeta("Type","",StiChartTrendLineType,StiChartTrendLineType.None),new StiEnumMeta("LineStyle","",StiPenStyle,StiPenStyle.Solid),new StiColorMeta("LineColor","",Color.black),new StiNumberMeta("LineWidth","",1)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new StiChartTrendLine;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiChartTrendLine;return e.loadFromXml(t),e}constructor(t,e,i,r,l){this.type=StiChartTrendLineType.None,this.lineStyle=StiPenStyle.Solid,this.lineColor=Color.black,this.lineWidth=1,null!=t&&(this.keyValueMeter=t),null!=e&&(this.type=e),null!=i&&(this.lineColor=i),null!=r&&(this.lineStyle=r),null!=l&&(this.lineWidth=l)}}__.I.StiChartTrendLine=StiChartTrendLine}let StiColumnShape3D=Stimulsoft.Report.Chart.StiColumnShape3D,StiPie3dOptions=Stimulsoft.Report.Chart.StiPie3dOptions,StiDataMode=Stimulsoft.Report.StiDataMode,StiUserViewState=Stimulsoft.Report.Dashboard.StiUserViewState,IStiUserViewStates=Stimulsoft.Report.Dashboard.IStiUserViewStates,StiChartSeriesCreator=Stimulsoft.Report.Dashboard.StiChartSeriesCreator,StiChartMarker=__.I.StiChartMarker,StiDrillDownHelper=__.g.StiDrillDownHelper,StiChartDashboardInteraction=__.g.StiChartDashboardInteraction,IStiNegativeSeriesColors=Stimulsoft.Report.Dashboard.IStiNegativeSeriesColors,IStiParetoSeriesColors=Stimulsoft.Report.Dashboard.IStiParetoSeriesColors,ImplementsIStiSeriesColors=Stimulsoft.Report.Dashboard.ImplementsIStiSeriesColors,ImplementsIStiNegativeSeriesColors=Stimulsoft.Report.Dashboard.ImplementsIStiNegativeSeriesColors,ImplementsIStiParetoSeriesColors=Stimulsoft.Report.Dashboard.ImplementsIStiParetoSeriesColors,ImplementsIStiUserViewStates=Stimulsoft.Report.Dashboard.ImplementsIStiUserViewStates,ImplementsIStiSkipOwnFilter=Stimulsoft.Report.Dashboard.ImplementsIStiSkipOwnFilter,ImplementsIStiChartElement=Stimulsoft.Report.Dashboard.ImplementsIStiChartElement,StiChartLegend=__.I.StiChartLegend,StiTitle=__.e.StiTitle,StiChartGroups=Stimulsoft.Report.Dashboard.StiChartGroups,IStiChartElement=Stimulsoft.Report.Dashboard.IStiChartElement,ImplementsIStiDrillDownElement=Stimulsoft.Data.Engine.ImplementsIStiDrillDownElement,StiChartTrendLine=__.I.StiChartTrendLine,IStiShowNullsSeries=Stimulsoft.Report.Chart.IStiShowNullsSeries;{let e=Stimulsoft.Report.Components.StiTextFormatState;StiExportToolAttribute.add("StiChartElement","Stimulsoft.Dashboard.Export.Tools.StiChartElementExportTool");class StiChartElement extends __.e.StiElement{implements(){let t=super.implements().concat([IStiChartElement,IStiSimpleShadow,IStiCornerRadius,IStiUserViewStates,IStiSkipOwnFilter,IStiTitleElement,IStiElementLayout,IStiGlobalizationProvider,IStiSeriesColors,IStiNegativeSeriesColors,IStiParetoSeriesColors,IStiShowBlanks,...ImplementsIStiChartElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiUserViewStates,...ImplementsIStiSkipOwnFilter,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,...ImplementsIStiSeriesColors,...ImplementsIStiNegativeSeriesColors,...ImplementsIStiParetoSeriesColors,...ImplementsIStiDrillDownElement,IStiJsonReportObject,IStiElementInteraction,IStiDrillDownElement]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t),r=(e.values=this.values.map(t=>t.clone()),e.endValues=this.endValues.map(t=>t.clone()),e.closeValues=this.closeValues.map(t=>t.clone()),e.lowValues=this.lowValues.map(t=>t.clone()),e.highValues=this.highValues.map(t=>t.clone()),e.arguments=this.arguments.map(t=>t.clone()),e.weights=this.weights.map(t=>t.clone()),e.xValues=this.xValues.map(t=>t.clone()),e.yValues=this.yValues.map(t=>t.clone()),e.series=null!=this.series?this.series.clone():null,e.sortBy=null!=this.sortBy?this.sortBy.clone():null,e.indicatorValue=this.indicatorValue?.clone(),e.userFilters=this.userFilters.map(t=>t.clone()),e.userSorts=this.userSorts.map(t=>t.clone()),e.userViewStates=this.userViewStates.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.topN=this.topN.clone(),e.argumentFormat=null!=this.argumentFormat?this.argumentFormat.clone():null,e.valueFormat=null!=this.valueFormat?this.valueFormat.clone():null,e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.dashboardInteraction=this.dashboardInteraction.clone(),e.xAxis=null!=this.xAxis?this.xAxis.clone():null,e.xTopAxis=this.xTopAxis?.clone(),e.yAxis=null!=this.yAxis?this.yAxis.clone():null,e.yRightAxis=this.yRightAxis?.clone(),e.legend=null!=this.legend?this.legend.clone():null,e.area=null!=this.area?this.area.clone():null,e.seriesColors=null!=this.seriesColors?this.seriesColors.slice():null,e.negativeSeriesColors=null!=this.negativeSeriesColors?this.negativeSeriesColors.slice():null,e.paretoSeriesColors=null!=this.paretoSeriesColors?this.paretoSeriesColors.slice():null,e.marker=null!=this.marker?this.marker.clone():null,e.constantLines=this.constantLines.map(t=>t.clone()),e.strips=this.strips.map(t=>t.clone()),e.trendLines=this.trendLines.map(t=>t.clone()),e.chartConditions=this.chartConditions.map(t=>t.clone()),{}),l=this.getMeters(),n=e.getMeters();for(let i=0;i<l.length;i++){let t=l[i].key,e=n[i].key;r[t]=e}for(let t of e.chartConditions)t.keyValueMeter in r.hasOwnProperty&&(t.keyValueMeter=r[t.keyValueMeter]);return e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("UserSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userSorts,t)).set(t=>this.userSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.userSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Values").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.values,t)).set(t=>this.values.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.values.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("EndValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.endValues,t)).set(t=>this.endValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.endValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("CloseValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.closeValues,t)).set(t=>this.closeValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.closeValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("LowValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.lowValues,t)).set(t=>this.lowValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.lowValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("HighValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.highValues,t)).set(t=>this.highValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.highValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("Arguments").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.arguments,t)).set(t=>this.arguments.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.arguments.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("Weights").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.weights,t)).set(t=>this.weights.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.weights.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("XValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.xValues,t)).set(t=>this.xValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.xValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("YValues").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.yValues,t)).set(t=>this.yValues.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.yValues.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("UserViewStates").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userViewStates,t)).set(t=>this.userViewStates.push(...t.value.properties().map(t=>StiUserViewState.loadFromJson(t.value)))).setXml(t=>this.userViewStates.push(...t.childNodes.map(t=>StiUserViewState.loadFromXml(t)))),new StiBoolMeta("ColorEach"),new StiBoolMeta("ShowViewTitle"),new StiBoolMeta("CrossFiltering","",!0),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiChartDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiChartDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiChartDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiObjectMeta("ManuallyEnteredChartMeter").check(()=>null!=this.manuallyEnteredChartMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.I.StiValueChartMeter);null!=e&&(this.manuallyEnteredChartMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.I.StiValueChartMeter);null!=e&&(this.manuallyEnteredChartMeter=e)}),new StiObjectMeta("Series").check(()=>null!=this.series).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiSeriesChartMeter);null!=e&&(this.series=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiSeriesChartMeter);null!=e&&(this.series=e)}),new StiObjectMeta("SortBy").check(()=>null!=this.sortBy).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.I.StiSortByChartMeter);null!=e&&(this.sortBy=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.I.StiSortByChartMeter);null!=e&&(this.sortBy=e)}),new StiObjectMeta("IndicatorValue").check(()=>null!=this.indicatorValue).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.I.StiIndicatorValueChartMeter);null!=e&&(this.indicatorValue=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.I.StiIndicatorValueChartMeter);null!=e&&(this.indicatorValue=e)}),new StiObjectMeta("ArgumentFormat").check(()=>null!=this.argumentFormat).set(t=>this.argumentFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.argumentFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("ValueFormat").check(()=>null!=this.valueFormat).set(t=>this.valueFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.valueFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("XAxis").check(()=>null!=this.xAxis),new StiObjectMeta("XTopAxis").check(()=>null!=this.xTopAxis),new StiObjectMeta("YAxis").check(()=>null!=this.yAxis),new StiObjectMeta("YRightAxis").check(()=>null!=this.yRightAxis),new StiObjectMeta("Legend").check(()=>null!=this.legend),new StiObjectMeta("Area").check(()=>null!=this.area),new StiObjectMeta("Marker").check(()=>null!=this.marker),new StiObjectMeta("Labels").check(()=>null!=this.labels),new StiObjectMeta("Options3D").check(()=>null!=this.options3D),new StiObjectMeta("SeriesColors").get(()=>StiJsonReportObjectHelper.Serialize.colorArray(this.seriesColors)).set(t=>this.seriesColors=StiJsonReportObjectHelper.Deserialize.colorArray(t.value)).setXml(t=>this.seriesColors=StiReportObjectStringConverter.convertStringToColorArray(t.textContent)),new StiObjectMeta("NegativeSeriesColors").get(()=>StiJsonReportObjectHelper.Serialize.colorArray(this.negativeSeriesColors)).set(t=>this.negativeSeriesColors=StiJsonReportObjectHelper.Deserialize.colorArray(t.value)).setXml(t=>this.negativeSeriesColors=StiReportObjectStringConverter.convertStringToColorArray(t.textContent)),new StiObjectMeta("ParetoSeriesColors").get(()=>StiJsonReportObjectHelper.Serialize.colorArray(this.paretoSeriesColors)).set(t=>this.paretoSeriesColors=StiJsonReportObjectHelper.Deserialize.colorArray(t.value)).setXml(t=>this.paretoSeriesColors=StiReportObjectStringConverter.convertStringToColorArray(t.textContent)),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiObjectMeta("ConstantLines").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.constantLines,t)).set(t=>this.constantLines.push(...t.value.properties().map(t=>__.I.StiChartConstantLines.createFromJson(t.value)))).setXml(t=>this.constantLines.push(...t.childNodes.map(t=>__.I.StiChartConstantLines.createFromXml(t)))),new StiObjectMeta("Strips").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.strips,t)).set(t=>this.strips.push(...t.value.properties().map(t=>__.I.StiChartStrips.createFromJson(t.value)))).setXml(t=>this.strips.push(...t.childNodes.map(t=>__.I.StiChartStrips.createFromXml(t)))),new StiObjectMeta("TrendLines").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.trendLines,t)).set(t=>this.trendLines.push(...t.value.properties().map(t=>StiChartTrendLine.createFromJson(t.value)))).setXml(t=>this.trendLines.push(...t.childNodes.map(t=>StiChartTrendLine.createFromXml(t)))),new StiObjectMeta("ChartConditions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.chartConditions,t)).set(t=>this.chartConditions.push(...t.value.properties().map(t=>__.I.StiChartElementCondition.createFromJson(t.value)))).setXml(t=>this.chartConditions.push(...t.childNodes.map(t=>__.I.StiChartElementCondition.createFromXml(t)))),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiEnumMeta("DataMode","",StiDataMode,StiDataMode.UsingDataFields),new StiStringNullOrEmptyMeta("ManuallyEnteredData"),new StiEnumMeta("Icon","",StiFontIcons).check(()=>null!=this.icon),new StiBoolMeta("RoundValues","",!0),new StiStringNullOrEmptyMeta("SelectedViewStateKey").check(()=>null!=this.selectedViewStateKey),new StiEnumMeta("ColumnShape","",StiColumnShape3D,StiColumnShape3D.Box),new StiBoolMeta("ShowBlanks"),new StiEventMeta("ClickEvent")]}convertToBubble(){null!=this.arguments&&this.arguments.filter(t=>null!=t).forEach(t=>{t.expression=StiExpressionHelper.replaceFunction(t.expression,"Sum")})}convertFromBubble(){null!=this.arguments&&this.arguments.filter(t=>null!=t).forEach(t=>{t.expression=StiExpressionHelper.removeFunction(t.expression)}),null!=this.weights&&this.weights.splice(0,this.weights.length)}convertToGantt(){null!=this.values&&this.values?.filter(t=>null!=t).forEach(t=>{t.expression=StiExpressionHelper.removeFunction(t.expression)})}getChartSeriesTypes(i){let r=[];if(1<this.values.length){let t=Enum.parse(StiChartSeriesType,i),e=StiChartGroups.getGroup(t);if(null!=e)for(let t of e)r.push(Enum.getName(StiChartSeriesType,t))}return r}getManuallyEnteredChartMeter(){return this.manuallyEnteredChartMeter}addValue(t){null!=t&&this.values.push(StiMeterHelper.Chart.getValue2(t,this))}getValue2(t){return null!=t?StiMeterHelper.Chart.getValue2(t,this):null}getValue(t){return null!=t?StiMeterHelper.Chart.getValue(t.as(__.e.StiMeter)):null}getGanttStartValue(t){return null!=t?StiMeterHelper.Chart.getGanttStartValue(t):null}getGanttEndValue(t){return null!=t?StiMeterHelper.Chart.getGanttEndValue(t):null}getY(t){return null!=t?StiMeterHelper.Chart.getY2(t):null}getX(t){return null!=t?StiMeterHelper.Chart.getX2(t):null}fetchAllValues(){return this.values.slice()}fetchAllXValues(){return this.xValues.slice()}fetchAllYValues(){return this.yValues.slice()}getValueByIndex(t){return t<this.values.length?this.values[t]:null}insertValue(t,e){let i=e.as(__.I.StiValueChartMeter);null!=i&&(0<=t&&t<this.values.length?this.values.splice(t,0,i):this.values.push(i))}removeValue(t){t<this.values.length&&this.values.splice(t,1)}removeAllValues(){this.values.splice(0,this.values.length)}createNewValue(){let t=new __.I.StiValueChartMeter;return t.expression="Sum()",this.values.push(t),t}addEndValue(t){null!=t&&this.endValues.push(StiMeterHelper.Chart.getEndValue2(t))}getEndValue2(t){return null!=t?StiMeterHelper.Chart.getEndValue2(t):null}getEndValue(t){return null!=t?StiMeterHelper.Chart.getEndValue(t.as(__.e.StiMeter)):null}getEndValueByIndex(t){return t<this.endValues.length?this.endValues[t]:null}insertEndValue(t,e){let i=e.as(StiEndValueChartMeter);null!=i&&(0<=t&&t<this.endValues.length?this.endValues.splice(t,0,i):this.endValues.push(i))}removeEndValue(t){t<this.endValues.length&&this.endValues.splice(t,1)}removeAllEndValues(){this.endValues.splice(0,this.endValues.length)}createNewEndValue(){let t=new StiEndValueChartMeter;return t.expression="Sum()",this.endValues.push(t),t}addCloseValue(t){null!=t&&this.closeValues.push(StiMeterHelper.Chart.getCloseValue2(t))}getCloseValue2(t){return null!=t?StiMeterHelper.Chart.getCloseValue2(t):null}getCloseValue(t){return null!=t?StiMeterHelper.Chart.getCloseValue(t.as(__.e.StiMeter)):null}getCloseValueByIndex(t){return t<this.closeValues.length?this.closeValues[t]:null}insertCloseValue(t,e){let i=e.as(StiCloseValueChartMeter);null!=i&&(0<=t&&t<this.closeValues.length?this.closeValues.splice(t,0,i):this.closeValues.push(i))}removeCloseValue(t){t<this.closeValues.length&&this.closeValues.splice(t,1)}removeAllCloseValues(){this.closeValues.splice(0,this.closeValues.length)}createNewCloseValue(){let t=new StiCloseValueChartMeter;return t.expression="Sum()",this.closeValues.push(t),t}addLowValue(t){null!=t&&this.lowValues.push(StiMeterHelper.Chart.getLowValue2(t))}getLowValue2(t){return null!=t?StiMeterHelper.Chart.getLowValue2(t):null}getLowValue(t){return null!=t?StiMeterHelper.Chart.getLowValue(t.as(__.e.StiMeter)):null}getLowValueByIndex(t){return t<this.lowValues.length?this.lowValues[t]:null}insertLowValue(t,e){let i=e.as(StiLowValueChartMeter);null!=i&&(0<=t&&t<this.lowValues.length?this.lowValues.splice(t,0,i):this.lowValues.push(i))}removeLowValue(t){t<this.lowValues.length&&this.lowValues.splice(t,1)}removeAllLowValues(){this.lowValues.splice(0,this.lowValues.length)}createNewLowValue(){let t=new StiLowValueChartMeter;return t.expression="Sum()",this.lowValues.push(t),t}addHighalue(t){null!=t&&this.highValues.push(StiMeterHelper.Chart.getHighValue2(t))}getHighValue2(t){return null!=t?StiMeterHelper.Chart.getHighValue2(t):null}getHighValue(t){return null!=t?StiMeterHelper.Chart.getHighValue(t.as(__.e.StiMeter)):null}getHighValueByIndex(t){return t<this.highValues.length?this.highValues[t]:null}insertHighValue(t,e){let i=e.as(StiHighValueChartMeter);null!=i&&(0<=t&&t<this.highValues.length?this.highValues.splice(t,0,i):this.highValues.push(i))}removeHighValue(t){t<this.highValues.length&&this.highValues.splice(t,1)}removeAllHighValues(){this.highValues.splice(0,this.highValues.length)}createNewHighValue(){let t=new StiHighValueChartMeter;return t.expression="Sum()",this.highValues.push(t),t}addXValue(t){null!=t&&this.xValues.push(StiMeterHelper.Chart.getXValue2(t))}getXValue2(t){return null!=t?StiMeterHelper.Chart.getXValue2(t):null}getXValue(t){return null!=t?StiMeterHelper.Chart.getXValue(t.as(__.e.StiMeter)):null}getXValueByIndex(t){return t<this.xValues.length?this.xValues[t]:null}insertXValue(t,e){let i=e.as(__.I.StiXChartMeter);null!=i&&(0<=t&&t<this.xValues.length?this.xValues.splice(t,0,i):this.xValues.push(i))}removeXValue(t){t<this.xValues.length&&this.xValues.splice(t,1)}removeAllXValues(){this.xValues.splice(0,this.xValues.length)}createNewXValue(){let t=new __.I.StiXChartMeter;return this.xValues.push(t),t}addYValue(t){null!=t&&this.xValues.push(StiMeterHelper.Chart.getYValue2(t))}getYValue2(t){return null!=t?StiMeterHelper.Chart.getYValue2(t):null}getYValue(t){return null!=t?StiMeterHelper.Chart.getYValue(t.as(__.e.StiMeter)):null}getYValueByIndex(t){return t<this.yValues.length?this.yValues[t]:null}insertYValue(t,e){let i=e.as(StiYChartMeter);null!=i&&(0<=t&&t<this.yValues.length?this.yValues.splice(t,0,i):this.yValues.push(i))}removeYValue(t){t<this.yValues.length&&this.yValues.splice(t,1)}removeAllYValues(){this.yValues.splice(0,this.yValues.length)}createNewYValue(){let t=new StiYChartMeter;return this.yValues.push(t),t}addArgument(t){null!=t&&this.arguments.push(StiMeterHelper.Chart.getArgument2(t))}getArgument2(t){return null!=t?StiMeterHelper.Chart.getArgument2(t):null}getArgument(t){return null!=t?StiMeterHelper.Chart.getArgument(t.as(__.e.StiMeter)):null}fetchAllArguments(){return this.arguments.slice()}getArgumentByIndex(t){return t<this.arguments.length?this.arguments[t]:null}insertArgument(t,e){let i=e.as(StiArgumentChartMeter);null!=i&&(0<=t&&t<this.arguments.length?this.arguments.splice(t,0,i):this.arguments.push(i))}removeArgument(t){t<this.arguments.length&&this.arguments.splice(t,1)}removeAllArguments(){this.arguments.splice(0,this.arguments.length)}createNewArgument(){this.arguments.push(new StiArgumentChartMeter)}addWeight(t){null!=t&&this.weights.push(StiMeterHelper.Chart.getWeight2(t))}getWeight2(t){return null!=t?StiMeterHelper.Chart.getWeight2(t):null}getWeight(t){return null!=t?StiMeterHelper.Chart.getWeight(t.as(__.e.StiMeter)):null}getWeightByIndex(t){return t<this.weights.length?this.weights[t]:null}insertWeight(t,e){let i=e.as(StiWeightChartMeter);null!=i&&(0<=t&&t<this.weights.length?this.weights.splice(t,0,i):this.weights.push(i))}removeWeight(t){t<this.weights.length&&this.weights.splice(t,1)}removeAllWeights(){this.weights.splice(0,this.weights.length)}createNewWeight(){let t=new StiWeightChartMeter;t.expression="Sum()",this.weights.push(t)}addSeries(t){this.series=null!=t?StiMeterHelper.Chart.getSeries2(t):null}getSeries2(t){return null!=t?StiMeterHelper.Chart.getSeries2(t):null}getSeries(t){return null!=t?StiMeterHelper.Chart.getSeries(t.as(__.e.StiMeter)):null}getSeries3(){return this.series}insertSeries(t){this.series=t.as(StiSeriesChartMeter)}removeSeries(){this.series=null}createNewSeries(){this.series=new StiSeriesChartMeter}addSortBy(t){this.sortBy=null!=t?StiMeterHelper.Chart.getSortBy2(t):null}getSortBy2(t){return null!=t?StiMeterHelper.Chart.getSortBy2(t):null}getSortBy(t){return null!=t?StiMeterHelper.Chart.getSortBy(t.as(__.e.StiMeter)):null}getSortBy3(){return this.sortBy}insertSortBy(t){this.sortBy=t.as(__.I.StiSortByChartMeter)}removeSortBy(){this.sortBy=null}createNewSortBy(){this.sortBy=new __.I.StiSortByChartMeter}addIndicatorValue(t){this.indicatorValue=null!=t?StiMeterHelper.Chart.getIndicatorValue2(t):null}getIndicatorValue2(t){return null!=t?StiMeterHelper.Chart.getIndicatorValue2(t):null}getIndicatorValue(t){return null!=t?StiMeterHelper.Chart.getIndicatorValue(t.as(__.e.StiMeter)):null}getIndicatorValue3(){return this.indicatorValue}insertIndicatorValue(t){this.indicatorValue=t.as(__.I.StiIndicatorValueChartMeter)}removeIndicatorValue(){this.indicatorValue=null}createNewIndicatorValue(){this.indicatorValue=new __.I.StiIndicatorValueChartMeter}fetchConstantLines(){let t=[];return null!=this.constantLines&&t.push(...this.constantLines),t}addConstantLine(){this.constantLines.push(new __.I.StiChartConstantLines)}removeConstantLine(t){0<=t&&t<this.constantLines.length&&this.constantLines.splice(t,1)}moveConstantLine(e,i){if(0<=e&&e<this.constantLines.length){let t=this.constantLines[e];this.constantLines.splice(e,1),this.constantLines.splice(i,0,t)}}fetchStrips(){let t=[];return null!=this.strips&&t.push(...this.strips),t}addStrip(){let t=new __.I.StiChartStrips;t.stripBrush=new StiSolidBrush(Color.fromArgb(100,250,240,150)),this.strips.push(t)}removeStrip(t){0<=t&&t<this.strips.length&&this.strips.splice(t,1)}moveStrip(e,i){if(0<=e&&e<this.strips.length){let t=this.strips[e];this.strips.splice(e,1),this.strips.splice(i,0,t)}}addTrendLines(t,e,i,r,l){this.trendLines.push(new StiChartTrendLine(t,e,i,r,l))}fetchTrendLines(){let t=[];return null!=t&&t.push(...this.trendLines),t}clearTrendLines(){this.trendLines.splice(0,this.trendLines.length)}addChartCondition(t,e,i,r,l,n,s,o,a){this.chartConditions.push(new __.I.StiChartElementCondition(t,l,e,i,r,n,s,o,a))}fetchChartConditions(){let t=[];return null!=this.chartConditions&&t.push(...this.chartConditions),t}clearChartConditions(){this.chartConditions.splice(0,this.chartConditions.length)}convertFrom(t){let e=t.fetchAllMeters();if(this.values.splice(0,this.values.length),this.arguments.splice(0,this.arguments.length),null==e)return;e.filter(t=>(t.is2(IStiValueMeter)||t.is2(IStiMeasureMeter))&&!t.is2(IStiSeriesMeter)).forEach(t=>{let e=t,i=new __.I.StiValueChartMeter;i.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.values.push(i)},this),e.filter(t=>t.is(IStiSeriesMeter)).forEach(t=>{let e=t,i=new StiArgumentChartMeter;i.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.arguments.push(i)},this),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiChartDashboardInteraction)}fetchAllMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.values&&t.push(...this.values),null!=this.endValues&&t.push(...this.endValues),null!=this.closeValues&&t.push(...this.closeValues),null!=this.lowValues&&t.push(...this.lowValues),null!=this.highValues&&t.push(...this.highValues),null!=this.arguments&&t.push(...this.arguments),null!=this.weights&&t.push(...this.weights),null!=this.series&&t.push(this.series),null!=this.sortBy&&t.push(this.sortBy),null!=this.indicatorValue&&t.push(this.indicatorValue),null!=this.xValues&&t.push(...this.xValues),null!=this.yValues)&&t.push(...this.yValues),t}getMeters(){let r=[];if(this.dataMode==StiDataMode.UsingDataFields){for(let i of this.values)if(this.isBubbleChart){let t=new StiYChartMeter;t.key=i.key,t.expression=i.expression,t.label=i.label,r.push(t)}else if(this.isFinancial){let t=new __.I.StiOpenValueChartMeter;t.seriesType=i.seriesType,t.key=i.key,t.expression=i.expression,t.label=i.label,r.push(t)}else if(this.isRange){let t=new __.I.StiStartValueChartMeter;t.seriesType=i.seriesType,t.key=i.key,t.expression=i.expression,t.label=i.label,t.lineStyle=i.lineStyle,t.showNulls=i.showNulls,r.push(t)}else if(i.showZeros==StiEmptyCellsAs.Zero&&i.showNulls==StiEmptyCellsAs.Zero||!StiChartSeriesCreator.neww2(i.seriesType).is(IStiShowNullsSeries))r.push(i);else{let t=StiExpressionHelper.getFunction(i.expression),e=null;if("sum"==(t=null!=t?t.toLowerCase():t)?e="sumnulls":"avg"==t&&(e="avgnulls"),null!=e){let t=i.clone();t.key=i.key,t.expression=StiExpressionHelper.replaceFunction(i.expression,e),r.push(t)}else r.push(i)}if(this.isRange)for(let t of this.endValues)r.push(t);if(this.isFinancial)for(let t of this.closeValues)r.push(t);if(this.isFinancial)for(let t of this.lowValues)r.push(t);if(this.isFinancial)for(let t of this.highValues)r.push(t);let t=StiDrillDownHelper.isDrillAvailable(this)&&this.drillDownCurrentLevel<this.drillDownLevelCount?this.arguments.slice(this.drillDownCurrentLevel,this.drillDownCurrentLevel+1):this.arguments;for(let e of t)if(this.isBubbleChart){let t=new __.I.StiXChartMeter;t.key=e.key,t.expression=e.expression,t.label=e.label,r.push(t)}else r.push(e);if(this.isBubbleChart)for(let t of this.weights)r.push(t);if(null!=this.series&&r.push(this.series),null!=this.sortBy&&r.push(this.sortBy),null!=this.indicatorValue&&r.push(this.indicatorValue),this.isHeatmapChart)for(let t of this.xValues)r.push(t);if(this.isHeatmapChart)for(let t of this.yValues)r.push(t)}return r}retrieveUsedDataNames(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(t.push(...StiUsedDataHelper.getMany2(this.values)),t.push(...StiUsedDataHelper.getMany2(this.arguments)),t.push(...StiUsedDataHelper.getMany2(this.weights)),t.push(...StiUsedDataHelper.getMany(this.series)),t.push(...StiUsedDataHelper.getMany(this.sortBy)),t.push(...StiUsedDataHelper.getMany(this.indicatorValue)),t.push(...StiUsedDataHelper.getMany2(this.xValues)),t.push(...StiUsedDataHelper.getMany2(this.yValues))),t[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get isDefined(){return null!=this.values&&0<this.values.length||null!=this.weights&&0<this.weights.length&&this.isBubbleChart||null!=this.arguments&&0<this.arguments.length||null!=this.series||this.dataMode==StiDataMode.ManuallyEnteringData}get allowSkipOwnFilter(){return!0}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}get customStyleName(){return this._customStyleName}set customStyleName(t){this._customStyleName!=t&&(this._customStyleName=t,StiString.isNullOrWhiteSpace(t)||(this.style=StiElementStyleIdent.Custom))}switchSelectedViewState(t){__.I.StiChartUserViewStatesHelper.switchSelectedViewState(this,t)}saveToJsonForViewState(){return __.I.StiChartUserViewStatesHelper.saveToJsonObject(this)}loadFromJsonForViewState(t){__.I.StiChartUserViewStatesHelper.loadFromJsonObject(this,t)}setString(i,r){switch(i){case"Title.Text":this.title.text=r;break;case"Legend.Title.Text":this.legend.title.text=r;break;case"XAxis.Labels.TextAfter":this.xAxis.labels.textAfter=r;break;case"XAxis.Labels.TextBefore":this.xAxis.labels.textBefore=r;break;case"XAxis.Title.Text":this.xAxis.title.text=r;break;case"XTopAxis.Labels.TextAfter":this.xTopAxis.labels.textAfter=r;break;case"XTopAxis.Labels.TextBefore":this.xTopAxis.labels.textBefore=r;break;case"XTopAxis.Title.Text":this.xTopAxis.title.text=r;break;case"YAxis.Labels.TextAfter":this.yAxis.labels.textAfter=r;break;case"YAxis.Labels.TextBefore":this.yAxis.labels.textBefore=r;break;case"YAxis.Title.Text":this.yAxis.title.text=r;break;case"YRightAxis.Labels.TextAfter":this.yRightAxis.labels.textAfter=r;break;case"YRightAxis.Labels.TextBefore":this.yRightAxis.labels.textBefore=r;break;case"YRightAxis.Title.Text":this.yRightAxis.title.text=r;break}let l=0;for(let e of this.values){let t=`Value${l++}.Label`;i==t&&(e.label=r)}l=0;for(let e of this.arguments){let t=`Argument${l++}.Label`;i==t&&(e.label=r)}}getString(i){switch(i){case"Title.Text":return this.title.text;case"Legend.Title.Text":return this.legend.title.text;case"XAxis.Labels.TextAfter":return this.xAxis.labels.textAfter;case"XAxis.Labels.TextBefore":return this.xAxis.labels.textBefore;case"XAxis.Title.Text":return this.xAxis.title.text;case"XTopAxis.Labels.TextAfter":return this.xTopAxis.labels.textAfter;case"XTopAxis.Labels.TextBefore":return this.xTopAxis.labels.textBefore;case"XTopAxis.Title.Text":return this.xTopAxis.title.text;case"YAxis.Labels.TextAfter":return this.yAxis.labels.textAfter;case"YAxis.Labels.TextBefore":return this.yAxis.labels.textBefore;case"YAxis.Title.Text":return this.yAxis.title.text;case"YRightAxis.Labels.TextAfter":return this.yRightAxis.labels.textAfter;case"YRightAxis.Labels.TextBefore":return this.yRightAxis.labels.textBefore;case"YRightAxis.Title.Text":return this.yRightAxis.title.text}let r=0;for(let e of this.values){let t=`Value${r++}.Label`;if(i==t)return e.label}r=0;for(let e of this.arguments){let t=`Argument${r++}.Label`;if(i==t)return e.label}throw new Error(`Property with name `+i)}getAllStrings(){let e=["Title.Text","Legend.Title.Text"],i=(this.isAxisAreaChart&&(e.push("XAxis.Labels.TextAfter"),e.push("XAxis.Labels.TextBefore"),e.push("XAxis.Title.Text"),e.push("XTopAxis.Labels.TextAfter"),e.push("XTopAxis.Labels.TextBefore"),e.push("XTopAxis.Title.Text"),e.push("YAxis.Labels.TextAfter"),e.push("YAxis.Labels.TextBefore"),e.push("YAxis.Title.Text"),e.push("YRightAxis.Labels.TextAfter"),e.push("YRightAxis.Labels.TextBefore"),e.push("YRightAxis.Title.Text")),0);return this.values.forEach(t=>e.push(`Value${i++}.Label`)),i=0,this.arguments.forEach(t=>e.push(`Argument${i++}.Label`)),e}getFonts(){return StiFont.get(...super.getFonts(),this.title.font,this.labels.font,this.legend.labels.font,this.legend.title.font,this.xAxis.labels.font,this.xAxis.title.font,this.xTopAxis.labels.font,this.xTopAxis.title.font,this.yAxis.labels.font,this.yAxis.title.font,this.yRightAxis.labels.font,this.yRightAxis.title.font)}get toolboxPosition(){return StiComponentToolboxPosition.ChartElement}get localizedName(){return StiLocalization.get("Components","StiChart")}get colorEach(){return null!=this.area&&this.area.colorEach}set colorEach(t){null!=this.area&&(this.area.colorEach=t)}get xAxis(){return this.area?.xAxis}set xAxis(t){null!=this.area&&(this.area.xAxis=t)}get xTopAxis(){return this.area?.xTopAxis}set xTopAxis(t){null!=this.area&&(this.area.xTopAxis=t)}get yAxis(){return this.area?.yAxis}set yAxis(t){null!=this.area&&(this.area.yAxis=t)}get yRightAxis(){return this.area?.yRightAxis}set yRightAxis(t){null!=this.area&&(this.area.yRightAxis=t)}get labels(){return this._labels}set labels(t){null!=t&&(t.element=this),this._labels=t}static getValueFormatDefault(){let t=new StiNumberFormatService;return t.decimalDigits=0,t.state=e.DecimalDigits|e.Abbreviation,t}getManuallyEnteredDataTable(){if(this.dataMode!=StiDataMode.ManuallyEnteringData)return null;return __.e.StiManuallyEnteredDataParser.getChartDataTable(this.manuallyEnteredData,this)}get isAxisAreaChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.ClusteredBar||t.seriesType==StiChartSeriesType.ClusteredColumn||t.seriesType==StiChartSeriesType.Ribbon||t.seriesType==StiChartSeriesType.Pareto||t.seriesType==StiChartSeriesType.Histogram||t.seriesType==StiChartSeriesType.FullStackedArea||t.seriesType==StiChartSeriesType.FullStackedBar||t.seriesType==StiChartSeriesType.FullStackedColumn||t.seriesType==StiChartSeriesType.FullStackedLine||t.seriesType==StiChartSeriesType.FullStackedSpline||t.seriesType==StiChartSeriesType.FullStackedSplineArea||t.seriesType==StiChartSeriesType.StackedBar||t.seriesType==StiChartSeriesType.StackedColumn||t.seriesType==StiChartSeriesType.StackedLine||t.seriesType==StiChartSeriesType.StackedSpline||t.seriesType==StiChartSeriesType.StackedArea||t.seriesType==StiChartSeriesType.StackedSplineArea||t.seriesType==StiChartSeriesType.Scatter||t.seriesType==StiChartSeriesType.ScatterLine||t.seriesType==StiChartSeriesType.ScatterSpline||t.seriesType==StiChartSeriesType.Candlestick||t.seriesType==StiChartSeriesType.Stock||t.seriesType==StiChartSeriesType.Gantt||t.seriesType==StiChartSeriesType.Bubble||t.seriesType==StiChartSeriesType.Area||t.seriesType==StiChartSeriesType.Line||t.seriesType==StiChartSeriesType.Spline||t.seriesType==StiChartSeriesType.SplineArea||t.seriesType==StiChartSeriesType.SplineRange||t.seriesType==StiChartSeriesType.Range||t.seriesType==StiChartSeriesType.RangeBar||t.seriesType==StiChartSeriesType.SteppedArea||t.seriesType==StiChartSeriesType.SteppedLine||t.seriesType==StiChartSeriesType.SteppedRange||t.seriesType==StiChartSeriesType.BoxAndWhisker||t.seriesType==StiChartSeriesType.Heatmap))}get isStackedChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.StackedBar||t.seriesType==StiChartSeriesType.StackedColumn||t.seriesType==StiChartSeriesType.StackedLine||t.seriesType==StiChartSeriesType.StackedSpline||t.seriesType==StiChartSeriesType.StackedArea||t.seriesType==StiChartSeriesType.StackedSplineArea))}get isScatterChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.Scatter||t.seriesType==StiChartSeriesType.ScatterLine||t.seriesType==StiChartSeriesType.ScatterSpline||t.seriesType==StiChartSeriesType.Bubble))}get isLinesChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.FullStackedArea||t.seriesType==StiChartSeriesType.FullStackedLine||t.seriesType==StiChartSeriesType.FullStackedSpline||t.seriesType==StiChartSeriesType.FullStackedSplineArea||t.seriesType==StiChartSeriesType.StackedLine||t.seriesType==StiChartSeriesType.StackedSpline||t.seriesType==StiChartSeriesType.StackedArea||t.seriesType==StiChartSeriesType.StackedSplineArea||t.seriesType==StiChartSeriesType.Scatter||t.seriesType==StiChartSeriesType.ScatterLine||t.seriesType==StiChartSeriesType.ScatterSpline||t.seriesType==StiChartSeriesType.Area||t.seriesType==StiChartSeriesType.Line||t.seriesType==StiChartSeriesType.Spline||t.seriesType==StiChartSeriesType.SplineArea||t.seriesType==StiChartSeriesType.SplineRange||t.seriesType==StiChartSeriesType.Range||t.seriesType==StiChartSeriesType.SteppedArea||t.seriesType==StiChartSeriesType.SteppedLine||t.seriesType==StiChartSeriesType.SteppedRange))}get isBubbleChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Bubble)}get isBarChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.ClusteredBar||t.seriesType==StiChartSeriesType.FullStackedBar||t.seriesType==StiChartSeriesType.StackedBar||t.seriesType==StiChartSeriesType.Gantt))}get isRange(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.Range||t.seriesType==StiChartSeriesType.RangeBar||t.seriesType==StiChartSeriesType.SteppedRange||t.seriesType==StiChartSeriesType.SplineRange||t.seriesType==StiChartSeriesType.Gantt))}get isFinancial(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.Candlestick||t.seriesType==StiChartSeriesType.Stock))}get isPieChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Pie)}get isPie3dChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Pie3d)}get isDoughnutChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Doughnut)}get isFunnelChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.Funnel||t.seriesType==StiChartSeriesType.FunnelWeightedSlices))}get isPictorialStackedChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.PictorialStacked)}get isPictorialChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Pictorial)}get isHeatmapChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Heatmap)}get isTreemapChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Treemap)}get isParetoChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Pareto)}get isRibbonChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Ribbon)}get isSunburstChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Sunburst)}get isFullStackedChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.FullStackedArea||t.seriesType==StiChartSeriesType.FullStackedBar||t.seriesType==StiChartSeriesType.FullStackedColumn||t.seriesType==StiChartSeriesType.FullStackedLine||t.seriesType==StiChartSeriesType.FullStackedSpline||t.seriesType==StiChartSeriesType.FullStackedSplineArea))}get isWaterfallChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Waterfall)}get isRadarChart(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.RadarPoint||t.seriesType==StiChartSeriesType.RadarArea||t.seriesType==StiChartSeriesType.RadarLine))}get isAxisAreaChart3D(){return this.chartValuesList().some(t=>null!=t&&(t.seriesType==StiChartSeriesType.ClusteredColumn3D||t.seriesType==StiChartSeriesType.StackedColumn3D||t.seriesType==StiChartSeriesType.FullStackedColumn3D||t.seriesType==StiChartSeriesType.Line3D||t.seriesType==StiChartSeriesType.Area3D))}get isClusteredColumnChart3D(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.ClusteredColumn3D)}get isClusteredColumnChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.ClusteredColumn)}get isClusteredBarChart(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.ClusteredBar)}get isLineChart3D(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.Line3D)}get isSurfaceChart3D(){return this.chartValuesList().some(t=>null!=t&&t.seriesType==StiChartSeriesType.WireframeSurface3D)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}get drillDownLevelCount(){return null!=this.arguments?this.arguments.length:0}checkBrowsableProperties(){this.isRange?(this.setBrowsableProperty("Weights",!1),this.setBrowsableProperty("EndValues",!0),this.setBrowsableProperty("CloseValues",!1),this.setBrowsableProperty("LowValues",!1),this.setBrowsableProperty("HighValues",!1)):this.isFinancial?(this.setBrowsableProperty("Weights",!1),this.setBrowsableProperty("EndValues",!1),this.setBrowsableProperty("CloseValues",!0),this.setBrowsableProperty("LowValues",!0),this.setBrowsableProperty("HighValues",!0)):(this.isBubbleChart?this.setBrowsableProperty("Weights",!0):this.setBrowsableProperty("Weights",!1),this.setBrowsableProperty("EndValues",!1),this.setBrowsableProperty("CloseValues",!1),this.setBrowsableProperty("LowValues",!1),this.setBrowsableProperty("HighValues",!1))}setBrowsableProperty(t,e){}getChartSeries(){let t=StiChartSeriesType.ClusteredColumn;return 0<this.chartValuesList().length&&(t=this.chartValuesList()[0].seriesType),StiChartSeriesCreator.neww2(t)}chartValuesList(){if(this.dataMode==StiDataMode.UsingDataFields)return null==this.values?[]:this.values.filter(t=>null!=t);{let t=[];return null!=this.manuallyEnteredChartMeter&&t.push(this.manuallyEnteredChartMeter),t}}constructor(t=Rectangle.empty){super(t),this.title=new StiTitle,this.layout=new StiElementLayout,this.group="",this.crossFiltering=!0,this._style=StiElementStyleIdent.Auto,this._customStyleName="",this.userFilters=[],this.userSorts=[],this.userViewStates=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.topN=new StiDataTopN,this.dataTransformation={},this.dataFilters=[],this.seriesColors=[],this.negativeSeriesColors=[],this.paretoSeriesColors=[],this.cornerRadius=new StiCornerRadius(0),this.showBlanks=!1,this.shadow=new StiSimpleShadow,this.helpUrl="user-manual/dashboards_chart.htm",this.manuallyEnteredChartMeter=new __.I.StiValueChartMeter,this.showViewTitle=!1,this.values=[],this.endValues=[],this.closeValues=[],this.lowValues=[],this.highValues=[],this.arguments=[],this.weights=[],this.xValues=[],this.yValues=[],this.legend=new StiChartLegend,this.area=new __.I.StiChartArea,this._labels=new __.I.StiChartLabels,this.argumentFormat=new StiGeneralFormatService,this.valueFormat=StiChartElement.getValueFormatDefault(),this.trendLines=[],this.constantLines=[],this.strips=[],this.chartConditions=[],this.marker=new StiChartMarker,this.icon=null,this.roundValues=!0,this.columnShape=StiColumnShape3D.Box,this.dataMode=StiDataMode.UsingDataFields,this.drillDownFiltersList=[],this.drillDownFilters=[],this.drillDownCurrentLevel=0,this.title.text=this.localizedName,this.dashboardInteraction=new StiChartDashboardInteraction,this.labels=new __.I.StiChartLabels,this.previousAnimations=[],this.options3D=new StiPie3dOptions}}__.I.StiChartElement=StiChartElement}let IStiChartElementCondition=Stimulsoft.Report.Dashboard.IStiChartElementCondition,StiFilterCondition=Stimulsoft.Report.Components.StiFilterCondition,StiFilterDataType=Stimulsoft.Report.Components.StiFilterDataType,StiChartConditionalField=Stimulsoft.Report.Chart.StiChartConditionalField;{class Jz{implements(){let t=[ICloneable,IStiChartElementCondition,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiStringNullOrEmptyMeta("KeyValueMeter"),new StiEnumMeta("Condition","",StiFilterCondition,StiFilterCondition.EqualTo),new StiEnumMeta("DataType","",StiFilterDataType,StiFilterDataType.Numeric),new StiEnumMeta("Field","",StiChartConditionalField,StiChartConditionalField.Value),new StiStringNullOrEmptyMeta("Value"),new StiColorMeta("Color","",Color.white),new StiEnumMeta("MarkerType","",StiMarkerType,StiMarkerType.Circle),new StiNumberMeta("MarkerAngle","",0),new StiBoolMeta("IsExpression")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new Jz;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new Jz;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n,s,o,a){this.color=Color.white,this.markerAngle=0,this.markerType=StiMarkerType.Circle,this.condition=StiFilterCondition.EqualTo,this.dataType=StiFilterDataType.Numeric,this.value="",this.keyValueMeter="",this.field=StiChartConditionalField.Value,this.isExpression=!1,null!=t&&(this.keyValueMeter=t),null!=e&&(this.color=e),null!=i&&(this.dataType=i),null!=r&&(this.condition=r),null!=l&&(this.value=l),null!=n&&(this.markerType=n),null!=s&&(this.markerAngle=s),null!=o&&(this.field=o),null!=a&&(this.isExpression=a)}}__.I.StiChartElementCondition=Jz}__.I.StiChartGridLines=class{constructor(){this.color=Color.transparent}implements(){let t=[ICloneable,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiColorMeta("Color"),new StiBoolMeta("Visible")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}},__.I.StiChartInterlacing=class{meta(){return[new StiColorMeta("Color"),new StiBoolMeta("Visible")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(t,e){this.color=Color.transparent,this.visible=!1,null!=t&&(this.color=t),null!=t&&(this.visible=e)}};let IStiChartLabels=Stimulsoft.Report.Dashboard.IStiChartLabels,StiChartLabelsPosition=Stimulsoft.Report.Dashboard.StiChartLabelsPosition,IStiChartStrips=(__.I.StiChartLabels=class{implements(){let t=[IStiChartLabels,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiFontMeta("Font","","Arial",8),new StiStringNullOrEmptyMeta("TextAfter"),new StiStringNullOrEmptyMeta("TextBefore"),new StiColorMeta("ForeColor","",Color.transparent),new StiEnumMeta("AxisPosition","",StiChartLabelsPosition,StiChartLabelsPosition.None),new StiEnumMeta("PiePosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("Pie3dPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("DoughnutPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("FunnelPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("PictorialStackedPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Right),new StiEnumMeta("TreemapPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("HeatmapPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("RadarPosition","",StiChartLabelsPosition,StiChartLabelsPosition.None),new StiEnumMeta("ClusteredColumn3dPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("Line3dPosition","",StiChartLabelsPosition,StiChartLabelsPosition.Center),new StiEnumMeta("Position","",StiChartLabelsPosition),new StiEnumMeta("Style","",__.I.StiChartLabelsStyle,__.I.StiChartLabelsStyle.CategoryValue),new StiBoolMeta("AutoRotate"),new StiBoolMeta("WordWrap"),new StiNumberMeta("Width")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}get position(){return this.element.isStackedChart||this.axisPosition!=StiChartLabelsPosition.Total||(this.axisPosition=StiChartLabelsPosition.None),this.element.isPieChart?this.piePosition:this.element.isPie3dChart?this.pie3dPosition:this.element.isDoughnutChart||this.element.isSunburstChart?this.doughnutPosition:this.element.isFunnelChart?this.funnelPosition:this.element.isPictorialStackedChart?this.pictorialStackedPosition:this.element.isHeatmapChart?this.heatmapPosition:this.element.isTreemapChart?this.treemapPosition:this.element.isRadarChart?this.radarPosition:this.element.isAxisAreaChart3D?this.clusteredColumn3dPosition:this.element.isLineChart3D?this.line3dPosition:this.axisPosition}set position(t){this.element.isPieChart?this.piePosition=t:this.element.isPie3dChart?this.pie3dPosition=t:this.element.isDoughnutChart||this.element.isSunburstChart?this.doughnutPosition=t:this.element.isFunnelChart?this.funnelPosition=t:this.element.isPictorialStackedChart?this.pictorialStackedPosition=t:this.element.isHeatmapChart?this.heatmapPosition=t:this.element.isTreemapChart?this.treemapPosition=t:this.element.isRadarChart?this.radarPosition=t:this.element.isAxisAreaChart3D?this.clusteredColumn3dPosition=t:this.element.isLineChart3D?this.line3dPosition=t:this.axisPosition=t}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p){this.axisPosition=StiChartLabelsPosition.None,this.piePosition=StiChartLabelsPosition.Center,this.pie3dPosition=StiChartLabelsPosition.Center,this.clusteredColumn3dPosition=StiChartLabelsPosition.Center,this.line3dPosition=StiChartLabelsPosition.Center,this.doughnutPosition=StiChartLabelsPosition.Center,this.funnelPosition=StiChartLabelsPosition.Center,this.pictorialStackedPosition=StiChartLabelsPosition.Right,this.heatmapPosition=StiChartLabelsPosition.Center,this.treemapPosition=StiChartLabelsPosition.Center,this.radarPosition=StiChartLabelsPosition.None,this.foreColor=Color.transparent,this.font=new Font("Arial",8),this.autoRotate=!1,this.style=__.I.StiChartLabelsStyle.CategoryValue,this.textAfter="",this.textBefore="",this.wordWrap=!1,this.width=0,null!=t&&(this.axisPosition=t),null!=e&&(this.piePosition=e),null!=i&&(this.doughnutPosition=i),null!=r&&(this.funnelPosition=r),null!=l&&(this.treemapPosition=l),null!=n&&(this.heatmapPosition=n),null!=s&&(this.radarPosition=s),null!=o&&(this.clusteredColumn3dPosition=o),null!=a&&(this.style=a),null!=u&&(this.font=u),null!=S&&(this.foreColor=S),null!=m&&(this.textBefore=m),null!=h&&(this.textAfter=h),null!=c&&(this.autoRotate=c),null!=d&&(this.width=d),null!=p&&(this.wordWrap=p)}},Stimulsoft.Report.Dashboard.IStiChartStrips),StiStrips_StiOrientation=Stimulsoft.Report.Chart.StiStrips_StiOrientation;{class EA{implements(){let t=[ICloneable,IStiChartStrips,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiStringNullOrEmptyMeta("Text"),new StiColorMeta("TitleColor","",Color.green),new StiBrushMeta("StripBrush"),new StiEnumMeta("Orientation","",StiStrips_StiOrientation,StiStrips_StiOrientation.Horizontal),new StiStringMeta("MinValue","","0"),new StiStringMeta("MaxValue","","1")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new EA;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new EA;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n){this.text="",this.titleColor=Color.green,this.stripBrush=new StiSolidBrush(Color.transparent),this.orientation=StiStrips_StiOrientation.Horizontal,this.minValue="0",this.maxValue="1",null!=t&&(this.text=t),null!=e&&(this.minValue=e),null!=i&&(this.maxValue=i),null!=r&&(this.titleColor=r),null!=l&&(this.stripBrush=l),null!=n&&(this.orientation=n)}}__.I.StiChartStrips=EA}let Encoding=Stimulsoft.System.Text.Encoding,StiPacker=Stimulsoft.Base.StiPacker,StiMeterConverter=(__.I.StiChartUserViewStatesHelper=class{static saveToJsonObject(t){let e=new StiJson,i=StiJsonSaveMode.Report;return e.addPropertyJObject("UserFilters",StiJsonReportObjectHelper.Serialize.objectArray(t.userFilters,i)),e.addPropertyJObject("UserSorts",StiJsonReportObjectHelper.Serialize.objectArray(t.userSorts,i)),e.addPropertyJObject("Values",StiJsonReportObjectHelper.Serialize.objectArray(t.values,i)),e.addPropertyJObject("EndValues",StiJsonReportObjectHelper.Serialize.objectArray(t.endValues,i)),e.addPropertyJObject("CloseValues",StiJsonReportObjectHelper.Serialize.objectArray(t.closeValues,i)),e.addPropertyJObject("LowValues",StiJsonReportObjectHelper.Serialize.objectArray(t.lowValues,i)),e.addPropertyJObject("HighValues",StiJsonReportObjectHelper.Serialize.objectArray(t.highValues,i)),e.addPropertyJObject("Arguments",StiJsonReportObjectHelper.Serialize.objectArray(t.arguments,i)),e.addPropertyJObject("XValues",StiJsonReportObjectHelper.Serialize.objectArray(t.xValues,i)),e.addPropertyJObject("YValues",StiJsonReportObjectHelper.Serialize.objectArray(t.yValues,i)),e.addPropertyJObject("Weights",StiJsonReportObjectHelper.Serialize.objectArray(t.weights,i)),null!=t.series&&e.addPropertyJObject("Series",t.series.saveToJsonObject(i)),null!=t.sortBy&&e.addPropertyJObject("SortBy",t.sortBy.saveToJsonObject(i)),null!=t.indicatorValue&&e.addPropertyJObject("IndicatorValue",t.indicatorValue.saveToJsonObject(i)),null!=t.icon&&e.addPropertyEnum("Icon",StiFontIcons,t.icon),e.addPropertyBool("RoundValues",t.roundValues,!0),e.addPropertyEnum("ColumnShape",StiColumnShape3D,t.columnShape,StiColumnShape3D.Box),e}static loadFromJsonObject(i,t){for(let e of t.properties())switch(e.name){case"UserFilters":i.userFilters.splice(0,i.userFilters.length),i.userFilters.push(...e.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)));break;case"UserSorts":i.userSorts.splice(0,i.userSorts.length),i.userSorts.push(...e.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)));break;case"Values":i.values.splice(0,i.values.length),i.values.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"EndValues":i.endValues.splice(0,i.endValues.length),i.endValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"CloseValues":i.closeValues.splice(0,i.closeValues.length),i.closeValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"LowValues":i.lowValues.splice(0,i.lowValues.length),i.lowValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"HighValues":i.highValues.splice(0,i.highValues.length),i.highValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"Arguments":i.arguments.splice(0,i.arguments.length),i.arguments.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"Weights":i.weights.splice(0,i.weights.length),i.weights.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"XValues":i.xValues.splice(0,i.xValues.length),i.xValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"YValues":i.yValues.splice(0,i.yValues.length),i.yValues.push(...e.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)));break;case"Series":{let t=StiMeterLoader.loadFromJson(e.value).as(__.I.StiSeriesChartMeter);null!=t&&(i.series=t);break}case"SortBy":{let t=StiMeterLoader.loadFromJson(e.value).as(__.I.StiSortByChartMeter);null!=t&&(i.sortBy=t);break}case"IndicatorValue":{let t=StiMeterLoader.loadFromJson(e.value).as(StiIndicatorValueChartMeter);null!=t&&(i.indicatorValue=t);break}case"Icon":i.icon=Enum.parse(StiFontIcons,e.value.toString());break;case"RoundValues":i.roundValues=e.value[Stimulsoft.System.StiObject.stimulsoft]().toBoolean();break;case"ColumnShape":i.columnShape=Enum.parse(StiColumnShape3D,e.value.toString());break}}static clearVisualState(t){t.values.splice(0,t.values.length),t.endValues.splice(0,t.endValues.length),t.closeValues.splice(0,t.closeValues.length),t.lowValues.splice(0,t.lowValues.length),t.highValues.splice(0,t.highValues.length),t.arguments.splice(0,t.arguments.length),t.xValues.splice(0,t.xValues.length),t.yValues.splice(0,t.yValues.length),t.weights.splice(0,t.weights.length),t.series=null,t.sortBy=null,t.icon=null}static switchSelectedViewState(t,e){let i=t.selectedViewStateKey;StiString.isNullOrWhiteSpace(i)&&(i=t.userViewStates[0]?.key),this.saveVisualState(t,i),this.loadVisualState(t,e),t.selectedViewStateKey=e}static saveVisualState(t,e){if(StiString.isNullOrWhiteSpace(e))return;let i=t.userViewStates.find(t=>t.key==e);if(null==i)return;let r=this.saveToJsonObject(t);i.state=StiPacker.packToString(Encoding.UTF8.getBytes(r.serialize()))}static loadVisualState(t,e){if(this.clearVisualState(t),StiString.isNullOrWhiteSpace(e))return;let i=t.userViewStates.find(t=>t.key==e);if(StiString.isNullOrWhiteSpace(i?.state))return;let r=Encoding.UTF8.getString(StiPacker.unpackFromString(i.state)),l=new StiJson;l.deserialize(r),this.loadFromJsonObject(t,l)}},__.I.StiChartYRightAxisLabels=class extends __.I.StiChartAxisLabels{meta(){return[...super.meta(),new StiRemoveMeta("TextAlignment"),new StiEnumMeta("TextAlignment","",StiHorAlignment,StiHorAlignment.Left)]}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.textAlignment=StiHorAlignment.Left}},__.I.StiHorChartGridLines=class extends __.I.StiChartGridLines{meta(){return[...super.meta(),new StiColorMeta("Color"),new StiBoolMeta("Visible","",!0)]}constructor(t,e){super(),this.visible=!0,null!=t&&(this.color=t),null!=e&&(this.visible=e)}},__.I.StiHorChartInterlacing=class extends __.I.StiChartInterlacing{constructor(t,e){super(t,e)}},__.I.StiStartValueChartMeter=class extends __.I.StiValueChartMeter{get localizedName(){return Loc.get("PropertyMain","StartValue")}constructor(t,e,i,r){super(t,e,i,r),this.seriesType=StiChartSeriesType.Gantt,this.ident=__.e.StiMeterIdent.StartValueChartMeter,null!=r&&(this.seriesType=r)}},__.I.StiVertChartGridLines=class extends __.I.StiChartGridLines{meta(){return[...super.meta(),new StiColorMeta("Color"),new StiBoolMeta("Visible")]}constructor(t,e){super(),this.visible=!1,null!=t&&(this.color=t),null!=e&&(this.visible=e)}},__.I.StiVertChartInterlacing=class extends __.I.StiChartInterlacing{constructor(t,e){super(t,e)}},__.I.StiXChartAxisTitle=class extends __.I.StiChartAxisTitle{meta(){return[...super.meta(),new StiEnumMeta("Direction","",StiDirection,StiDirection.LeftToRight)]}constructor(t,e,i,r,l,n,s){super(t,e,i,r,n,s),this.direction=StiDirection.LeftToRight,null!=l&&(this.direction=l)}},__.I.StiXTopChartAxis=class extends __.I.StiXChartAxis{meta(){return[...super.meta(),new StiRemoveMeta(["Range","Visible"]),new StiBoolMeta("Visible")]}constructor(t,e,i){super(t,e,i),this.visible=!1}},__.I.StiYRightChartAxis=class extends __.I.StiYChartAxis{meta(){return[...super.meta(),new StiRemoveMeta(["Range","Visible"]),new StiBoolMeta("Visible")]}constructor(t,e,i){super(t,e,i),this.visible=!1,this.labels=new __.I.StiChartYRightAxisLabels}},__.Y.StiMeterConverter=class{},__.Y.StiMeterConverter),StiFilterDashboardInteraction=(__.ag.StiValueChartMeterConverter=class extends StiMeterConverter{},__.ag.StiXChartAxisConverter=class{},__.ag.StiYChartAxisConverter=class{},__.g.StiFilterDashboardInteraction=class extends __.g.StiDashboardInteraction{constructor(t,e,i,r){super(),this.ident=StiInteractionIdent.Filter,this.availableOnHover=StiAvailableInteractionOnHover.ShowToolTip,this.availableOnClick=StiAvailableInteractionOnClick.ApplyFilter,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.None,null!=t&&(this.onHover=t),null!=e&&(this.onClick=e),null!=i&&(this.toolTip=i),null!=r&&(this.drillDownParameters=r)}},__.g.StiFilterDashboardInteraction),ImplementsIStiComboBoxElement=Stimulsoft.Report.Dashboard.ImplementsIStiComboBoxElement,Size=Stimulsoft.System.Drawing.Size,StiItemSelectionMode=Stimulsoft.Report.Dashboard.StiItemSelectionMode,IStiComboBoxElement=Stimulsoft.Report.Dashboard.IStiComboBoxElement,StiCustomFormatService=(StiExportToolAttribute.add("StiComboBoxElement","Stimulsoft.Dashboard.Export.Tools.StiComboBoxElementExportTool"),__.T.StiComboBoxElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiComboBoxElement,IStiSimpleShadow,IStiCornerRadius,IStiFixedHeightElement,IStiElementInteraction,...ImplementsIStiComboBoxElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiFixedHeightElement,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("FixedHeight","",!0),...super.meta(),new StiStringNullOrEmptyMeta("ParentKey"),new StiStringNullOrEmptyMeta("InitialValue"),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiBoolMeta("ShowAllValue"),new StiBoolMeta("ShowBlanks"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiEnumMeta("SelectionMode","",StiItemSelectionMode,StiItemSelectionMode.One).set(t=>{let e=Enum.parse(StiItemSelectionMode,t.value);null!=e&&(this.selectionMode=e)}).setXml(t=>{let e=Enum.parse(StiItemSelectionMode,t.textContent);null!=e&&(this.selectionMode=e)}),new StiObjectMeta("NameMeter").check(()=>null!=this.nameMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.T.StiNameComboBoxMeter);null!=e&&(this.nameMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.T.StiNameComboBoxMeter);null!=e&&(this.nameMeter=e)}),new StiObjectMeta("KeyMeter").check(()=>null!=this.keyMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.T.StiKeyComboBoxMeter);null!=e&&(this.keyMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.T.StiKeyComboBoxMeter);null!=e&&(this.keyMeter=e)}),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiRemoveMeta("MinSize"),new StiRemoveMeta("MaxSize"),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiFilterDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiFilterDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiNumberMeta("MaxSelectedItems")]}clone(t){let e=super.clone(t);return e.nameMeter=null!=this.nameMeter?this.nameMeter.clone():null,e.keyMeter=null!=this.keyMeter?this.keyMeter.clone():null,e.userFilters=this.userFilters.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.textFormat=this.textFormat.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.dashboardInteraction=this.dashboardInteraction?.clone(),e}get isFixedHeight(){return this.fixedHeight}getParentKey(){return this.parentKey}setParentKey(t){this.parentKey=t}async applyDefaultFilters(){let t=await __.T.StiComboBoxHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.path=__.T.StiComboBoxHelper.getKeyMeterExpression(this),t.toList()}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return null!=this.nameMeter&&t.push(this.nameMeter),null!=this.keyMeter&&t.push(this.keyMeter),t}getMeters(){let t=[];return null!=this.nameMeter&&t.push(this.nameMeter),null!=this.keyMeter&&t.push(this.keyMeter),t}retrieveUsedDataNames(){return StiUsedDataHelper.getMany(this.nameMeter,this.keyMeter)}get isDefined(){return null!=this.nameMeter||null!=this.keyMeter}addKeyMeter2(t){this.keyMeter=null!=t?StiMeterHelper.ComboBox.getKey2(t):null}addKeyMeter(t){this.keyMeter=null!=t?StiMeterHelper.ComboBox.getKey(t.as(__.e.StiMeter)):null}getKeyMeter(){return this.keyMeter}removeKeyMeter(){this.keyMeter=null}createNewKeyMeter(){this.keyMeter=new __.T.StiKeyComboBoxMeter}addNameMeter2(t){this.nameMeter=null!=t?StiMeterHelper.ComboBox.getName2(t):null}addNameMeter(t){this.nameMeter=null!=t?StiMeterHelper.ComboBox.getName(t.as(__.e.StiMeter)):null}getNameMeter(){return this.nameMeter}removeNameMeter(){this.nameMeter=null}createNewNameMeter(){this.nameMeter=new __.T.StiNameComboBoxMeter}createNextMeter(t){null!=this.keyMeter&&null==this.nameMeter?this.nameMeter=StiMeterHelper.ComboBox.getName2(t):this.keyMeter=StiMeterHelper.ComboBox.getKey2(t)}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter)),r=(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.keyMeter=null==this.keyMeter?new __.T.StiKeyComboBoxMeter:this.keyMeter,this.keyMeter.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiValueMeter)));null!=(r=null==r?e.find(t=>t.is(IStiDimensionMeter)):r)&&(this.nameMeter=null==this.nameMeter?new __.T.StiNameComboBoxMeter:this.nameMeter,this.nameMeter.loadFromJsonObject(r.saveToJsonObject(StiJsonSaveMode.Report)))}get toolboxPosition(){return StiComponentToolboxPosition.ComboBoxElement}get localizedName(){return StiLocalization.get("Components","StiComboBox")}getMinSize(){let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMinSize(t){}getMaxSize(){if(!this.fixedHeight)return super.getMaxSize();let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMaxSize(t){this.fixedHeight||super.setMaxSize(t)}get fixedHeight(){return this._fixedHeight}set fixedHeight(t){this._fixedHeight!=t&&(this._fixedHeight=t)&&(this.height=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,this.page?.gridSize,!0))}constructor(t=Rectangle.empty){super(t),this.group="",this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.userFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.font=new Font("Arial",8),this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.foreColor=Color.transparent,this.showAllValue=!1,this.showBlanks=!1,this.selectionMode=StiItemSelectionMode.One,this.maxSelectedItems=0,this.textFormat=new StiGeneralFormatService,this.defaultClientRectangle=new Rectangle(0,0,200,40),this.helpUrl="user-manual/dashboards_data_filtering_combo_box.htm",this._fixedHeight=!0,this.dashboardInteraction=new StiFilterDashboardInteraction}},Stimulsoft.Report.Components.TextFormats.StiCustomFormatService),StiDataFilterCreator=Stimulsoft.Report.Dashboard.StiDataFilterCreator,DBNull=Stimulsoft.System.Data.DBNull,StiElementDataCache=Stimulsoft.Report.Dashboard.StiElementDataCache,ImplementsIStiGroupElement=(__.T.StiComboBoxHelper=class{static fetchItems(r,t,l){if(null==t||t==StiDataTable.nullTable||0==t.rows.length)return null;let n=this.getNameMeterIndex(t),s=this.getKeyMeterIndex(t);if(-1==n&&1==s)return null;-1==s&&(s=n),-1==n&&(n=s);let o=[];for(let i of t.rows){let t=i[s];if(null==t)continue;let e=i[n];!l&&this.isBlank(e)||o.push(new __.T.StiComboBoxItem(this.format(r,e),t))}return o}static isBlank(t){return null==t||t==DBNull.value||"string"==typeof t&&StiString.isNullOrEmpty(t)}static async fetchDefaultUserFilters(e){let t=!StiString.isNullOrEmpty(e.initialValue);if(e.showAllValue&&!t)return null;if(e.selectionMode==StiItemSelectionMode.Multi&&!t)return null;let i=this.getKeyMeterExpression(e);if(null==i)return null;let r=await StiElementDataCache.getOrCreate(e),l=this.fetchItems(e,r,e.showBlanks);if(null==l||0==l.length)return null;return this.fetchInitialValues(e,l).map(t=>StiDataFilterCreator.createEqualBasedOnValue(t.value,i,e))}static fetchInitialValues(i,r){if(!StiString.isNullOrEmpty(i.initialValue)){let e=this.getInitialValues(i),t=r.filter(t=>e.includes(t.value?.toString()));if(i.selectionMode==StiItemSelectionMode.One&&0<t.length)return[t[0]];return t}return[r[0]]}static getInitialValues(t){if(StiString.isNullOrEmpty(t.initialValue))return[];let e=StiReportParser.parse2(t.initialValue,t.report),i=e.split(";").map(t=>t.trim());return 0<t.maxSelectedItems&&i.length>t.maxSelectedItems&&i.splice(t.maxSelectedItems,i.length-t.maxSelectedItems),i}static getNameMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(__.T.StiNameComboBoxMeter));return null!=e?t.meters.indexOf(e):-1}static getKeyMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(__.T.StiKeyComboBoxMeter));return null!=e?t.meters.indexOf(e):-1}static getKeyMeterExpression(t){if(null!=t.keyMeter)return t.keyMeter.expression;if(null!=t.nameMeter)return t.nameMeter.expression;return null}static format(t,e){let i=t.as(IStiTextFormat);if(e instanceof DateTime&&!(i.textFormat.is2(StiDateFormatService)||i.textFormat.is2(StiTimeFormatService)||i.textFormat.is2(StiCustomFormatService)))return e.toShortDateString();let r=t?.report?.culture;if(StiExtValueConverter.isEligable(e,r))return StiExtValueConverter.convert(e,r);return i.textFormat.format(e)}},__.T.StiComboBoxItem=class{toString(){return null!=this.label?this.label:this.value.toString()}constructor(t,e=t){this.label=t,this.value=e}},Stimulsoft.Report.Dashboard.ImplementsIStiGroupElement),ImplementsIStiDatePickerElement=Stimulsoft.Report.Dashboard.ImplementsIStiDatePickerElement,StiInitialDateRangeSelection=Stimulsoft.Report.Dashboard.StiInitialDateRangeSelection,StiInitialDateRangeSelectionSource=Stimulsoft.Report.Dashboard.StiInitialDateRangeSelectionSource,StiDateSelectionMode=Stimulsoft.Report.Dashboard.StiDateSelectionMode,StiDateCondition=Stimulsoft.Report.Dashboard.StiDateCondition,IStiDatePickerElement=Stimulsoft.Report.Dashboard.IStiDatePickerElement,DateTimeRange=Stimulsoft.Report.DateTimeRange,Range=Stimulsoft.Report.Range,StiVariableHelper=Stimulsoft.Report.Engine.StiVariableHelper,StiDateViewMode=Stimulsoft.Report.Dashboard.StiDateViewMode,StiParser=(StiExportToolAttribute.add("StiDatePickerElement","Stimulsoft.Dashboard.Export.Tools.StiDatePickerElementExportTool"),__.R.StiDatePickerElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiDatePickerElement,IStiSimpleShadow,IStiCornerRadius,IStiFixedHeightElement,IStiGroupElement,...ImplementsIStiDatePickerElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiFixedHeightElement,...ImplementsIStiGroupElement,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("FixedHeight","",!0),...super.meta(),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiEnumMeta("Condition","",StiDateCondition,StiDateCondition.GreaterThanOrEqualTo),new StiEnumMeta("SelectionMode","",StiDateSelectionMode,StiDateSelectionMode.Single).set(t=>{let e=Enum.parse(StiDateSelectionMode,t.value);null!=e&&(this.selectionMode=e)}).setXml(t=>{let e=Enum.parse(StiDateSelectionMode,t.textContent);null!=e&&(this.selectionMode=e)}),new StiEnumMeta("InitialRangeSelection","",StiInitialDateRangeSelection,StiInitialDateRangeSelection.MonthPrevious),new StiEnumMeta("InitialRangeSelectionSource","",StiInitialDateRangeSelectionSource,StiInitialDateRangeSelectionSource.Variable),new StiObjectMeta("ValueMeter").check(()=>null!=this.valueMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiValueDatePickerMeter);null!=e&&(this.valueMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiValueDatePickerMeter);null!=e&&(this.valueMeter=e)}),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiRemoveMeta("MinSize"),new StiRemoveMeta("MaxSize"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiEnumMeta("ViewMode","",StiDateViewMode,StiDateViewMode.DatePicker)]}clone(t){let e=super.clone(t);return e.valueMeter=null!=this.valueMeter?this.valueMeter.clone():null,e.userFilters=this.userFilters.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.textFormat=this.textFormat.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}get isFixedHeight(){return this.fixedHeight}getParentKey(){return null}setParentKey(t){}async applyDefaultFilters(){let r=__.R.StiDatePickerHelper.getVariableSpecifiedAsValue(this.as(IStiDatePickerElement))?.as(StiVariable);if(null==r){let t=await __.R.StiDatePickerHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}else if(Range.isRangeType(r.type)&&this.initialRangeSelectionSource==StiInitialDateRangeSelectionSource.Selection){let t={ref:null},e={ref:null},i=(__.R.StiDatePickerHelper.calculateRangeFromInitial(this.initialRangeSelection,t,e),new DateTimeRange(t.ref,e.ref));StiVariableHelper.setVariableValue(this.report,r,i),r.valueObject=i}}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.path=__.R.StiDatePickerHelper.getValueMeterExpression(this),t.toList()}getPadding(){if(this.viewMode==StiDateViewMode.Slider)return StiPadding.create(0);return super.getPadding()}setPadding(t){super.setPadding(t)}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return null!=this.valueMeter&&t.push(this.valueMeter),t}getMeters(){let t=[];return __.R.StiDatePickerHelper.isVariableSpecifiedAsValue(this)?null!=this.valueMeter&&t.push(this.valueMeter):null!=this.valueMeter&&(this.selectionMode==StiDateSelectionMode.AutoRange||this.selectionMode==StiDateSelectionMode.Single&&this.viewMode==StiDateViewMode.Slider)&&t.push(this.valueMeter),t}retrieveUsedDataNames(){return null!=this.valueMeter&&(this.selectionMode==StiDateSelectionMode.AutoRange||this.selectionMode==StiDateSelectionMode.Single&&this.viewMode==StiDateViewMode.Slider)?StiUsedDataHelper.getMany(this.valueMeter):super.retrieveUsedDataNames()}get isDefined(){return null!=this.valueMeter}addValueMeter2(t){this.valueMeter=null!=t?StiMeterHelper.DatePicker.getValue2(t):null}addValueMeter(t){this.valueMeter=null!=t?StiMeterHelper.DatePicker.getValue(t.as(__.e.StiMeter)):null}getValueMeter(){return this.valueMeter}removeValueMeter(){this.valueMeter=null}createNewValueMeter(){this.valueMeter=new StiValueDatePickerMeter}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter));null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.valueMeter=null==this.valueMeter?new StiValueDatePickerMeter:this.valueMeter,this.valueMeter.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report)))}get toolboxPosition(){return StiComponentToolboxPosition.DatePickerElement}get localizedName(){return StiLocalization.get("Components","StiDatePicker")}getMinSize(){let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMinSize(t){}getMaxSize(){if(!this.fixedHeight)return super.getMaxSize();let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMaxSize(t){this.fixedHeight||super.setMaxSize(t)}get fixedHeight(){return this._fixedHeight}set fixedHeight(t){this._fixedHeight!=t&&(this._fixedHeight=t)&&(this.height=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,this.page?.gridSize,!0))}constructor(t=Rectangle.empty){super(t),this.group="",this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.userFilters=[],this.dataFilters=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.font=new Font("Arial",8),this.foreColor=Color.transparent,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.textFormat=new StiDateFormatService,this.defaultClientRectangle=new Rectangle(0,0,200,40),this.helpUrl="user-manual/dashboards_data_filtering_date_picker.htm",this._fixedHeight=!0,this.condition=StiDateCondition.GreaterThanOrEqualTo,this.selectionMode=StiDateSelectionMode.Single,this.viewMode=StiDateViewMode.DatePicker,this.initialRangeSelection=StiInitialDateRangeSelection.MonthPrevious,this.initialRangeSelectionSource=StiInitialDateRangeSelectionSource.Variable}},Stimulsoft.Report.Engine.StiParser.StiParser),StiVariableInitBy=Stimulsoft.Report.Dictionary.StiVariableInitBy,StiVariableExpressionHelper=Stimulsoft.Report.StiVariableExpressionHelper,NullableDateTime=Stimulsoft.System.NullableDateTime,StiAbbreviationNumberFormatHelper=(__.R.StiDatePickerHelper=class{static calculateRangeFromInitial(t,e,i){switch(t){case StiInitialDateRangeSelection.DayTomorrow:e.ref=DateTime.today.addDays(1),i.ref=DateTime.today.addDays(1);break;case StiInitialDateRangeSelection.DayToday:e.ref=DateTime.today,i.ref=DateTime.today;break;case StiInitialDateRangeSelection.DayYesterday:e.ref=DateTime.today.addDays(-1),i.ref=DateTime.today.addDays(-1);break;case StiInitialDateRangeSelection.Last7Days:e.ref=DateTime.today.addDays(-7),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.Last14Days:e.ref=DateTime.today.addDays(-14),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.Last30Days:e.ref=DateTime.today.addDays(-30),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.WeekNext:e.ref=DateTime.today.addDays(7).firstDayOfWeek(),i.ref=DateTime.today.addDays(7).lastDayOfWeek();break;case StiInitialDateRangeSelection.WeekCurrent:e.ref=DateTime.today.firstDayOfWeek(),i.ref=DateTime.today.lastDayOfWeek();break;case StiInitialDateRangeSelection.WeekPrevious:e.ref=DateTime.today.addDays(-7).firstDayOfWeek(),i.ref=DateTime.today.addDays(-7).lastDayOfWeek();break;case StiInitialDateRangeSelection.MonthNext:e.ref=DateTime.today.addMonths(1).firstDayOfMonth(),i.ref=DateTime.today.addMonths(1).lastDayOfMonth();break;case StiInitialDateRangeSelection.MonthCurrent:e.ref=DateTime.today.firstDayOfMonth(),i.ref=DateTime.today.lastDayOfMonth();break;case StiInitialDateRangeSelection.MonthPrevious:e.ref=DateTime.today.addMonths(-1).firstDayOfMonth(),i.ref=DateTime.today.addMonths(-1).lastDayOfMonth();break;case StiInitialDateRangeSelection.QuarterNext:e.ref=DateTime.today.addMonths(3).firstDayOfQuarter(),i.ref=DateTime.today.addMonths(3).lastDayOfQuarter();break;case StiInitialDateRangeSelection.QuarterCurrent:e.ref=DateTime.today.firstDayOfQuarter(),i.ref=DateTime.today.lastDayOfQuarter();break;case StiInitialDateRangeSelection.QuarterPrevious:e.ref=DateTime.today.addMonths(-3).firstDayOfQuarter(),i.ref=DateTime.today.addMonths(-3).lastDayOfQuarter();break;case StiInitialDateRangeSelection.QuarterFirst:e.ref=DateTime.today.firstDayOfFirthQuarter(),i.ref=DateTime.today.lastDayOfFirthQuarter();break;case StiInitialDateRangeSelection.QuarterSecond:e.ref=DateTime.today.firstDayOfSecondQuarter(),i.ref=DateTime.today.lastDayOfSecondQuarter();break;case StiInitialDateRangeSelection.QuarterThird:e.ref=DateTime.today.firstDayOfThirdQuarter(),i.ref=DateTime.today.lastDayOfThirdQuarter();break;case StiInitialDateRangeSelection.QuarterFourth:e.ref=DateTime.today.firstDayOfFourthQuarter(),i.ref=DateTime.today.lastDayOfFourthQuarter();break;case StiInitialDateRangeSelection.YearNext:e.ref=DateTime.today.addYears(1).firstDayOfYear(),i.ref=DateTime.today.addYears(1).lastDayOfYear();break;case StiInitialDateRangeSelection.YearCurrent:e.ref=DateTime.today.firstDayOfYear(),i.ref=DateTime.today.lastDayOfYear();break;case StiInitialDateRangeSelection.YearPrevious:e.ref=DateTime.today.addYears(-1).firstDayOfYear(),i.ref=DateTime.today.addYears(-1).lastDayOfYear();break;case StiInitialDateRangeSelection.DateToWeek:e.ref=DateTime.today.firstDayOfWeek(),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.DateToMonth:e.ref=DateTime.today.firstDayOfMonth(),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.DateToQuarter:e.ref=DateTime.today.firstDayOfQuarter(),i.ref=DateTime.today;break;case StiInitialDateRangeSelection.DateToYear:e.ref=DateTime.today.firstDayOfYear(),i.ref=DateTime.today;break;default:e.ref=DateTime.now,i.ref=DateTime.now;break}}static async fetchDefaultUserFilters(t){let e=this.getValueMeterExpression(t);if(t.selectionMode==StiDateSelectionMode.AutoRange||t.selectionMode==StiDateSelectionMode.Single&&t.viewMode==StiDateViewMode.Slider)return this.getAutoRangeDefaultUserFilters(t,e);if(t.selectionMode==StiDateSelectionMode.Single)return this.getSingleDefaultUserFilters(t,e);if(t.selectionMode==StiDateSelectionMode.Range)return this.getRangeDefaultUserFilters(t.initialRangeSelection,e);return null}static getSingleDefaultUserFilters(t,e){let i=this.getFormatedDate(DateTime.now);return[new StiDataFilterRule(null,e,this.getCondition(t),i)]}static getRangeDefaultUserFilters(t,e){let i={ref:null},r={ref:null},l=(this.calculateRangeFromInitial(t,i,r),this.getFormatedDate(i.ref)),n=this.getFormatedDate(r.ref);return[new StiDataFilterRule("",e,StiDataFilterCondition.Between,l,n,!0,!1)]}static async getAutoRangeDefaultUserFilters(t,e){let i=await StiElementDataCache.getOrCreate(t);if(null==i)return null;let r=i.rows.map(t=>t[0]).filter(t=>t instanceof DateTime);if(null==r||0==r.length)return null;let l=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().min(),n=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().max(),s=this.getFormatedDate(l),o=this.getFormatedDate(n);return[new StiDataFilterRule("",e,StiDataFilterCondition.Between,s,o,!0,!1)]}static getValueMeterExpression(t){return null!=t.valueMeter?t.valueMeter.expression:null}static getCondition(t){switch(t.condition){case StiDateCondition.EqualTo:return StiDataFilterCondition.EqualTo;case StiDateCondition.NotEqualTo:return StiDataFilterCondition.NotEqualTo;case StiDateCondition.GreaterThan:return StiDataFilterCondition.GreaterThan;case StiDateCondition.GreaterThanOrEqualTo:return StiDataFilterCondition.GreaterThanOrEqualTo;case StiDateCondition.LessThan:return StiDataFilterCondition.LessThan;case StiDateCondition.LessThanOrEqualTo:return StiDataFilterCondition.LessThanOrEqualTo;default:return StiDataFilterCondition.EqualTo}}static getFormatedDate(t){return t.toString("MM/dd/yyyy")}static getVariableSpecifiedAsValue(t){return StiVariableExpressionHelper.getVariableSpecifiedAsExpression(t,t.getValueMeter()?.expression)}static isVariableSpecifiedAsValue(t){return StiVariableExpressionHelper.isVariableSpecifiedAsExpression(t,t.getValueMeter()?.expression)}static getDefaultValue(e){let i=this.getVariableSpecifiedAsValue(e)?.as(StiVariable);if(null!=i){let t=e.report.dictionary.getVariableValueByName(i.name);if(i.initBy!=StiVariableInitBy.Expression||StiString.isNullOrEmpty(t)||(t=StiParser.parseTextValue(`{${t}}`,e)),i.type==DateTime||i.type==NullableDateTime)return StiValueHelper.tryToDateTime(t);if(i.type==DateTimeRange)return t[Stimulsoft.System.StiObject.stimulsoft]().is(DateTimeRange)?t:new DateTimeRange}return DateTime.now}},__.Y.StiElementEditorConsts=class{constructor(){this.elementEditor="Stimulsoft.Dashboard.Design.Components.StiElementEditor, Stimulsoft.Dashboard.Design, "+Stimulsoft.StiVersion.versionInfo,this.textFormatEditor="Stimulsoft.Report.Components.TextFormats.Design.StiTextFormatEditor, Stimulsoft.Report.Design, "+Stimulsoft.StiVersion.versionInfo}},__.Y.StiElementLayoutConverter=class{},__.Y.StiElementStyleConverter=class{},__.Y.StiMeterListConverter=class{},__.Y.StiTitleConverter=class{},Stimulsoft.Report.StiAbbreviationNumberFormatHelper),IStiMinGaugeMeter=(__.i.StiElementBuilder=class{getSeriesKeysLimitCount(t){let e=null;return e=t.isDesigning?100:e}getSeries(t,e,i,r,l=!1){if(null==t||-1==e)return null;let n=t.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereFirstOrDefaultArrayItemStringEqualsTo(e,i),s=null!=n&&0<n.length?n[e]:null;if(null!=s&&s instanceof DateTime)return s.toShortDateString();if(l&&null!=s){if("number"==typeof s)return StiAbbreviationNumberFormatHelper.format(s,r?.culture);if("string"==typeof s){let t=StiNumber.tryParse(s);if(t.successfully)return StiAbbreviationNumberFormatHelper.format(t.result,r?.culture)}}return this.toString(s)}getValue(e,i,t,r,l,n=!1){if(null==e||-1==i)return 0;if(r<2){if(n){let t=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableDateTime();if(null!=t)return t.ticks;return 0}return e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNumber()}let s=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereFirstOrDefaultArrayItemStringEqualsTo(t,l);if(null!=s&&0<s.length){if(n)return StiValueHelper.tryToDateTime(s[i]).ticks;return StiValueHelper.tryToNumber(s[i])}return 0}getTarget(e,i,t,r,l,n=!1){if(null==e||-1==i)return null;if(r<2){if(n){let t=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableDateTime();if(null!=t)return t.ticks;return null}return e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNumber()}let s=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereFirstOrDefaultArrayItemStringEqualsTo(t,l);if(null!=s&&0<s.length){if(n)return StiValueHelper.tryToDateTime(s[i]).ticks;return StiValueHelper.tryToNumber(s[i])}return 0}getNullableTarget(e,i,t,r,l,n=!1){if(null==e||-1==i)return null;if(r<2){if(n){let t=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableDateTime();if(null!=t)return t.ticks;return 0}return e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableNumber()}let s=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereFirstOrDefaultArrayItemStringEqualsTo(t,l);if(null!=s&&0<s.length){if(n){if(n)return StiValueHelper.tryToDateTime(s[i]).ticks;return 0}return StiValueHelper.tryToNumber(s[i])}return null}getNullableValue(t,e,i,r,l){if(null==t||-1==e)return null;if(r<2)return t.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(e).firstOrDefaultAsNullableNumber();let n=t.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereFirstOrDefaultArrayItemStringEqualsTo(i,l);return null!=n&&0<n.length?StiValueHelper.tryToNullableNumber(n[e]):null}getSeriesKeyValues(t,e,i){if(null==t||-1==e)return[""];let r=null!=i?t.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(e).distinct().select(this.replaceDbNull).where(t=>null!=t).take(i):t.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(e).distinct().select(this.replaceDbNull).where(t=>null!=t);return r.any()?r:[""]}getSeriesKeys(t,e,i){let r=this.getSeriesKeyValues(t,e,i);return null==r?[""]:r.map(this.toString)}replaceDbNull(t){return t}toString(t){return null==t?"":t.toString()}toReadableString(t,e){let i=e?.getParsedCulture();if(StiExtValueConverter.isEligable(t,i))return StiExtValueConverter.convert(t,i);return this.toString(t)}},Stimulsoft.Base.Meters.IStiMinGaugeMeter),IStiMaxGaugeMeter=(__.U.StiMinGaugeMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiMinGaugeMeter]);return(this.implements=()=>t)()}get localizedName(){return"Min"}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.MinGaugeMeter}},Stimulsoft.Base.Meters.IStiMaxGaugeMeter),StiFontUtils=(__.U.StiMaxGaugeMeter=class extends __.e.StiMeasureMeter{implements(){let t=super.implements().concat([IStiMaxGaugeMeter]);return(this.implements=()=>t)()}get localizedName(){return"Max"}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.MaxGaugeMeter}},__.s.StiGaugeIteration=class{},Stimulsoft.Base.Drawing.StiFontUtils),StiLinearTickLabelCustom=Stimulsoft.Report.Components.Gauge.StiLinearTickLabelCustom,StiRadialTickLabelCustom=Stimulsoft.Report.Components.Gauge.StiRadialTickLabelCustom,StiDashboardExpressionHelper=Stimulsoft.Report.Dashboard.Helpers.StiDashboardExpressionHelper,StiLabelRotationMode=Stimulsoft.Report.Gauge.StiLabelRotationMode,StiIndicatorBase=Stimulsoft.Report.Components.Gauge.Primitives.StiIndicatorBase,StiRadialRange=Stimulsoft.Report.Components.Gauge.StiRadialRange,StiRadialRangeList=Stimulsoft.Report.Components.Gauge.StiRadialRangeList,StiLinearMarker=Stimulsoft.Report.Components.Gauge.StiLinearMarker,StiLinearTickMarkMajor=Stimulsoft.Report.Components.Gauge.StiLinearTickMarkMajor,StiLinearTickLabelMajor=Stimulsoft.Report.Components.Gauge.StiLinearTickLabelMajor,StiRadiusMode=Stimulsoft.Report.Gauge.StiRadiusMode,Point=Stimulsoft.System.Drawing.Point,StiNeedle=Stimulsoft.Report.Components.Gauge.StiNeedle,StiRadialBar=Stimulsoft.Report.Components.Gauge.StiRadialBar,StiTickMarkSkin=Stimulsoft.Report.Gauge.StiTickMarkSkin,StiGaugeType=Stimulsoft.Report.Gauge.StiGaugeType,StiGauge=Stimulsoft.Report.Components.StiGauge,StiPlacement=Stimulsoft.Report.Gauge.StiPlacement,StiLinearRange=Stimulsoft.Report.Components.Gauge.StiLinearRange,StiLinearRangeList=Stimulsoft.Report.Components.Gauge.StiLinearRangeList,StiGaugeRangeMode=Stimulsoft.Report.Gauge.StiGaugeRangeMode,StiLinearScale=Stimulsoft.Report.Components.Gauge.StiLinearScale,StiGaugeRangeType=Stimulsoft.Report.Gauge.StiGaugeRangeType,StiGaugeCalculationMode=Stimulsoft.Report.Gauge.StiGaugeCalculationMode,StiMinGaugeMeter=__.U.StiMinGaugeMeter,StiMaxGaugeMeter=__.U.StiMaxGaugeMeter,StiRadialTickLabelMajor=Stimulsoft.Report.Components.Gauge.StiRadialTickLabelMajor,StiRadialTickMarkMajor=Stimulsoft.Report.Components.Gauge.StiRadialTickMarkMajor,StiRadialScale=Stimulsoft.Report.Components.Gauge.StiRadialScale,StiTypeNotRecognizedException=Stimulsoft.Data.Exceptions.StiTypeNotRecognizedException,StiDashboardStyleHelper=Stimulsoft.Report.Dashboard.Styles.StiDashboardStyleHelper,StiGaugeIteration=__.s.StiGaugeIteration,StiMarkerSkin=Stimulsoft.Report.Gauge.StiMarkerSkin,StiLinearTickMarkCustom=Stimulsoft.Report.Components.Gauge.StiLinearTickMarkCustom,StiLinearBar=Stimulsoft.Report.Components.Gauge.StiLinearBar,StiRadialTickMarkCustom=Stimulsoft.Report.Components.Gauge.StiRadialTickMarkCustom,StiLabelPlacement=Stimulsoft.Report.Dashboard.StiLabelPlacement;{class StiGaugeElementBuilder extends __.i.StiElementBuilder{findMinMaxValues(e,i,r,l,h,c,d,p,g,b,C,t,n){let f,y,w=!1;for(let t of r){let n=this.getValue(l,c,d,p,this.toString(t),h),s=this.getTarget(l,g,d,p,this.toString(t),h),o=0,a=0;if(h){let t=new DateTime(n);if(0==n&&(t=DateTime.now),null!=s){let t=Math.min(n,StiNumber.getValueOrDefault(s)),e=Math.max(n,StiNumber.getValueOrDefault(s)),i=.4*(e-t);o=new DateTime(t).addTicks(-i).ticks,a=new DateTime(e).addTicks(i).ticks}else o=t.addMonths(-1).ticks,a=t.addMonths(1).ticks}else n==b&&n==C&&(a=0==n?(o=-50,50):(o=n-n,n+n));let u=5;switch(e.type){case StiGaugeType.FullCircular:case StiGaugeType.HalfCircular:{let t=Math.min(i.width,i.height);u=t<330?2:t<450?5:t<650?7:10}break;case StiGaugeType.Linear:{let t=i.height;u=t<330?2:t<450?5:t<650?7:10}break;case StiGaugeType.HorizontalLinear:{let t=i.width;u=t<330?2:t<500?5:t<650?8:10}break;case StiGaugeType.Bullet:{let t=i.width;u=t<330?2:5}break}let S=0,m=0;if(e.calculationMode==StiGaugeCalculationMode.Auto){n<0&&(w=!0);let e=this.getSummary(n,o,a,h);if(n<=o&&(o=Math.round(n-.3*e)),n>=a&&(a=Math.round(n+.3*e)),null!=s){let t=s;t<o&&(o=Math.round(t-.3*e)),t>a&&(a=Math.round(t+.3*e))}if(S=o,m=a,-1<n&&n<1){(null==f||S<f)&&(f=S),(null==y||m>y)&&(y=m);continue}let t=S%5,i=(0!=t&&(S-=t),m-S),r=i/u,l=(0<r-r&&(r+=1),r%5);0!=l&&(r+=5-l),i=r*u,m=S+i}else m=e.dateTimeMode?(S=e.minimumDateTime?.ticks,e.maximumDateTime?.ticks):(S=e.getMinimumValue(),e.getMaximumValue());(null==f||S<f)&&(f=S),(null==y||m>y)&&(y=m)}t.ref=f,n.ref=y,t.ref<0&&e.calculationMode==StiGaugeCalculationMode.Auto&&!w&&(t.ref=0)}async render(t,e,i){return this.render2(t,e,i)()}render2(w,M,I){this.storedCulture=StiCultureHelper.set(w.report);try{let c=this.getValueMeterIndex(I),d=this.getSeriesMeterIndex(I),p=this.getTargetMeterIndex(I),t=this.getMinMeterIndex(I),e=this.getMaxMeterIndex(I),i=this.getSeriesKeyValues(I,d,this.getSeriesKeysLimitCount(w)),g=i.length,b=w.dateTimeMode,r=this.getMinValue(w,b,I,t),l=this.getMaxValue(w,b,I,e),C={ref:null},n={ref:null},f=(this.findMinMaxValues(w,M,i,I,b,c,d,g,p,r,l,C,n),C.ref),y=n.ref;return async()=>i[Stimulsoft.System.StiObject.stimulsoft]().toList().selectAsync(async t=>{let e=this.getValue(I,c,d,g,this.toString(t),b),i=this.getNullableTarget(I,p,d,g,this.toString(t),b),r={ref:null},l={ref:null},n={ref:null},s=(this.fundActualValues(w,M,b,e,f,y,r,l,n),r.ref),o=C.ref,a=n.ref,u=await this.createScale(w,b,a,M,f,y,i),S=(u.seriesKey=t,u.items.list.filter(t=>t.is(StiIndicatorBase)));for(let t of S)t.valueObj=e;if(u.minimum=f,u.maximum=y,u.majorInterval=s,u.minorInterval=o,w.type==StiGaugeType.Linear||w.type==StiGaugeType.HorizontalLinear||w.type==StiGaugeType.Bullet){let t=u.items.list.filter(t=>t.is(StiLinearRangeList))[0];null!=t&&1==t.ranges.length&&(t.ranges.getByIndex(0).startValue=u.minimum,t.ranges.getByIndex(0).endValue=u.maximum)}let m=new StiGauge(w.clientRectangle),h=(m.allowApplyStyle=!0,m.shortValue=w.shortValue,m.previousAnimations=w.previousAnimations,StiGaugeElementBuilder.setStyle(w,m),m.scales.add(u),m.applyStyle(m.style),new StiGaugeIteration);return h.gauge=m,h.value=e,h.target=i,h.series=this.getSeries(I,d,t,w.report,w.shortValue),h},this)}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}fundActualValues(t,e,i,r,l,n,s,o,a){let u=s.ref,S=o.ref,m=a.ref,h=5;switch(m=!1,t.type){case StiGaugeType.FullCircular:case StiGaugeType.HalfCircular:{let t=Math.min(e.width,e.height);t<330?(h=2,m=!0):h=t<450?5:t<650?7:10}break;case StiGaugeType.Linear:{let t=e.height;t<330?(h=2,m=!0):h=t<450?5:t<650?7:10}break;case StiGaugeType.HorizontalLinear:{let t=e.width;t<330?(h=2,m=!0):h=t<500?5:t<650?8:10}break;case StiGaugeType.Bullet:{let t=e.width;t<330?(h=2,m=!0):h=5}break}if(t.calculationMode!=StiGaugeCalculationMode.Auto)return 0==(u=Math.abs(Math.round((n-l)/h)))&&(u=1),S=u/2,s.ref=u,o.ref=S,void(a.ref=m);{let t=this.getSummary(r,l,n,i);u=Math.abs(Math.round(t/h)),S=u/2,s.ref=u,o.ref=S}if(-1<r&&r<1)return;let c=n-l,d=c/h,p=(0<d-d&&(d+=1),d%5);0!=p&&(d+=5-p),c=d*h,u=Math.abs(c/h),S=u/2,s.ref=u,o.ref=S,a.ref=m}getSummary(i,r,l,t){if(t){let t=l-r;return t=0==t?new DateTime(1,1,1).ticks:t}{let t=Math.round(l-r),e=Math.max(i,t);return e=Math.max(e,r),e=0==(e=Math.max(e,l))?100:e}}static setStyle(t,e){if(t.style!=StiElementStyleIdent.Custom)return void(e.style=StiDashboardStyleHelper.getGaugeStyle(t));let i=t.report.styles.getCustomGaugeStyle(t.customStyleName);if(null!=i)return e.style=i,e.customStyleName=t.customStyleName,e.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t)),void(e.allowApplyStyle=!1);e.style=StiDashboardStyleHelper.getGaugeStyle2(StiElementStyleIdent.Blue)}static getTargetBrush(t){if(t.style!=StiElementStyleIdent.Custom)return new StiSolidBrush(StiDashboardStyleHelper.getGaugeStyle(t).core.targetColor);let e=t.report.styles.getCustomGaugeStyle(t.customStyleName);if(null!=e&&null!=e.core)return new StiSolidBrush(e.core.targetColor);return new StiSolidBrush(StiDashboardStyleHelper.getGaugeStyle2(StiElementStyleIdent.Blue).core.targetColor)}static getTickMarkBrush(t){if(t.style!=StiElementStyleIdent.Custom)return StiDashboardStyleHelper.getGaugeStyle(t).core.tickMarkMajorBrush;let e=t.report.styles.getCustomGaugeStyle(t.customStyleName);if(null!=e&&null!=e.core)return e.core.tickMarkMajorBrush;return StiDashboardStyleHelper.getGaugeStyle2(StiElementStyleIdent.Blue).core.tickMarkMajorBrush}static getTickLabelBrush(t){if(t.style!=StiElementStyleIdent.Custom)return StiDashboardStyleHelper.getGaugeStyle(t).core.tickLabelMajorTextBrush;let e=t.report.styles.getCustomGaugeStyle(t.customStyleName);if(null!=e&&null!=e.core)return e.core.tickLabelMajorTextBrush;return StiDashboardStyleHelper.getGaugeStyle2(StiElementStyleIdent.Blue).core.tickLabelMajorTextBrush}async createScale(t,e,i,r,l,n,s=null){switch(t.type){case StiGaugeType.FullCircular:return this.createFullCircularScale(t,e,i,r,l,n,s);case StiGaugeType.HalfCircular:return this.createHalfCircularScale(t,e,i,r,l,n,s);case StiGaugeType.Linear:return this.createLinearScale(t,e,l,n,!1,s);case StiGaugeType.HorizontalLinear:return this.createLinearScale(t,e,l,n,!0,s);case StiGaugeType.Bullet:return this.createBullet(t,e,l,n,s);default:throw new StiTypeNotRecognizedException(t.type)}}static calculateMinorInterval(t,e){if(t<0&&e<0)return Math.abs((t-e)/5);if(t<0)return(e+Math.abs(t))/5;return(e-t)/5}async createFullCircularScale(e,t,i,r,l,n,s=null){let o=Math.min(r.width,r.height),a=o<150,u=o<75,S=new StiRadialScale,m=(S.dateTimeMode=t,S.allowApplyStyle=!1,S.radius=!e.labels.visible||e.labels.placement==StiLabelPlacement.Inside?.8:.63,S.startAngle=120,S.sweepAngle=300,S.startWidth=.05,S.endWidth=.05,S.minimum=0,S.maximum=180,S.majorInterval=StiGaugeElementBuilder.calculateMinorInterval(l,n),S.borderBrush=new StiEmptyBrush,S.brush=new StiEmptyBrush,await StiGaugeElementBuilder.addRadialRanges(e,l,n,S)),h=new StiRadialBar,c=(h.startWidth=.1,h.endWidth=.1,h.offset=.1,h.placement=StiPlacement.Outside,h.valueObj=90,S.items.add(h),new StiNeedle);if(c.relativeHeight=.3,c.relativeWidth=.4,c.startWidth=.1,c.endWidth=1,c.capBrush=new StiEmptyBrush,c.brush=new StiEmptyBrush,c.valueObj=90,S.items.add(c),e.labels.visible&&!u){let t=new StiRadialTickMarkMajor;t.relativeWidth=.03,t.relativeHeight=.006,t.skin=StiTickMarkSkin.Rectangle,t.brush=StiGaugeElementBuilder.getTickMarkBrush(e),e.labels.placement==StiLabelPlacement.Inside?(t.placement=StiPlacement.Inside,t.offset=m?0:-.1):(t.placement=StiPlacement.Outside,t.offset=.2),S.items.add(t)}if(e.labels.visible&&!a){let t=new StiRadialTickLabelMajor;t.allowApplyStyle=!1,t.textBrush=StiGaugeElementBuilder.getTickLabelBrush(e),t.labelRotationMode=i?StiLabelRotationMode.None:e.labels.rotationMode,t.formatService=e.valueFormat,null!=s&&(t.skipValuesObj=[StiNumber.getValueOrDefault(s)]),u&&(t.font=StiGaugeElementBuilder.getSmallElementFont(e)),e.labels.placement==StiLabelPlacement.Inside?(t.placement=StiPlacement.Inside,t.offset=m?.07:-.03):(t.placement=StiPlacement.Outside,t.offset=.27),S.items.add(t)}if(null!=s){let t=new StiRadialTickMarkCustom;if(t.placement=StiPlacement.Overlay,t.offset=-.15,t.relativeWidth=.1,t.relativeHeight=.02,t.borderWidth=0,t.brush=StiGaugeElementBuilder.getTargetBrush(e),t.valueObj=s[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),S.items.add(t),e.targetSettings.showLabel){let t=new StiRadialTickLabelCustom;switch(t.allowApplyStyle=!1,t.formatService=e.valueFormat,t.textBrush=StiGaugeElementBuilder.getTargetBrush(e),t.labelRotationMode=i?StiLabelRotationMode.None:e.labels.rotationMode,t.placement=e.targetSettings.placement,t.valueObj=StiNumber.getValueOrDefault(s),t.textObj=StiNumber.getValueOrDefault(s).toString(),t.font=StiGaugeElementBuilder.getSmallElementFont(e),e.targetSettings.placement){case StiPlacement.Overlay:t.offset=-.12;break;case StiPlacement.Outside:t.offset=.18;break}S.items.add(t)}}return S}async createHalfCircularScale(e,t,i,r,l,n,s=null){let o=Math.min(r.width,r.height),a=o<150,u=o<75,S=new StiRadialScale,m=(S.dateTimeMode=t,S.startAngle=180,S.sweepAngle=180,S.startWidth=.05,S.endWidth=.05,S.minimum=0,S.maximum=180,S.radius=.92,S.majorInterval=StiGaugeElementBuilder.calculateMinorInterval(l,n),S.center=new Point(.5,.7),S.radiusMode=StiRadiusMode.Auto,S.brush=new StiSolidBrush(Color.fromArgb2(238,238,238)),new StiRadialBar);if(m.startWidth=.05,m.endWidth=.05,m.offset=.1,m.valueObj=135,m.placement=StiPlacement.Overlay,m.brush=new StiSolidBrush(Color.red),S.items.add(m),await StiGaugeElementBuilder.addRadialRanges(e,l,n,S),e.labels.visible){if(!u){let t=new StiRadialTickMarkMajor;t.offset=.05,t.relativeWidth=.03,t.relativeHeight=.006,t.skin=StiTickMarkSkin.Rectangle,t.brush=StiGaugeElementBuilder.getTickMarkBrush(e),e.labels.placement==StiLabelPlacement.Inside?t.placement=StiPlacement.Inside:t.placement=StiPlacement.Outside,S.items.add(t)}if(!a){let t=new StiRadialTickLabelMajor;t.allowApplyStyle=!1,t.textBrush=StiGaugeElementBuilder.getTickLabelBrush(e),t.labelRotationMode=i?StiLabelRotationMode.None:e.labels.rotationMode,t.formatService=e.valueFormat,t.font=StiGaugeElementBuilder.getSmallElementFont(e),null!=s&&(t.skipValuesObj=[StiNumber.getValueOrDefault(s)]),e.labels.placement==StiLabelPlacement.Inside?(t.placement=StiPlacement.Inside,t.offset=.12):(t.placement=StiPlacement.Outside,t.offset=.1),S.items.add(t)}}if(null!=s){let t=new StiRadialTickMarkCustom;if(t.placement=StiPlacement.Overlay,t.relativeWidth=.1,t.relativeHeight=.02,t.borderWidth=0,t.brush=StiGaugeElementBuilder.getTargetBrush(e),t.valueObj=s[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),S.items.add(t),e.targetSettings.showLabel){let t=new StiRadialTickLabelCustom;switch(t.allowApplyStyle=!1,t.formatService=e.valueFormat,t.textBrush=StiGaugeElementBuilder.getTargetBrush(e),t.labelRotationMode=i?StiLabelRotationMode.None:e.labels.rotationMode,t.placement=e.targetSettings.placement,t.valueObj=StiNumber.getValueOrDefault(s),t.textObj=StiNumber.getValueOrDefault(s).toString(),e.targetSettings.placement){case StiPlacement.Inside:t.offset=.12;break;case StiPlacement.Outside:t.offset=.05;break}S.items.add(t)}}let h=new StiNeedle;return h.relativeHeight=.05,h.relativeWidth=.4,h.startWidth=.1,h.endWidth=.2,h.capBrush=new StiSolidBrush(Color.white),h.capBorderBrush=new StiSolidBrush(Color.fromArgb2(0,150,136)),h.capBorderWidth=2,h.brush=new StiSolidBrush(Color.fromArgb2(0,150,136)),h.borderWidth=0,h.textBrush=new StiSolidBrush(Color.fromArgb2(0,150,136)),h.valueObj=135,S.items.add(h),S}async createLinearScale(r,t,e,i,l,n){let s=StiDashboardStyleHelper.getGaugeStyle(r),o=new StiLinearScale;if(o.dateTimeMode=t,o.relativeHeight=l?.9:.92,o.orientation=l?Stimulsoft.System.Drawing.Orientation.Horizontal:Stimulsoft.System.Drawing.Orientation.Vertical,o.startWidth=.1,o.endWidth=.1,o.maximum=100,o.majorInterval=StiGaugeElementBuilder.calculateMinorInterval(e,i),o.borderBrush=new StiEmptyBrush,o.brush=s.core.linearScaleBrush,r.labels.visible){let t=new StiLinearTickLabelMajor,e=(t.formatService=r.valueFormat,t.font=StiGaugeElementBuilder.getSmallElementFont(r),t.allowApplyStyle=!1,t.textBrush=StiGaugeElementBuilder.getTickLabelBrush(r),null!=n&&(t.skipValuesObj=[StiNumber.getValueOrDefault(n)]),StiDashboardExpressionHelper.getForeColor(r,r.foreColor)),i=(Color.transparent.equals(e)||(t.allowApplyStyle=!1,t.textBrush=new StiSolidBrush(e)),new StiLinearTickMarkMajor);i.relativeHeight=l?.03:.003,i.relativeWidth=l?.003:.03,i.borderBrush=new StiEmptyBrush,i.borderWidth=0,i.brush=StiGaugeElementBuilder.getTickMarkBrush(r),r.labels.placement==StiLabelPlacement.Inside?(i.placement=StiPlacement.Inside,t.placement=StiPlacement.Inside):(i.placement=StiPlacement.Outside,t.placement=StiPlacement.Outside),t.offset=.04,o.items.add(t),o.items.add(i)}if(await StiGaugeElementBuilder.addLinearRanges(r,e,i,o),null!=n){let t=new StiLinearTickMarkCustom;if(t.placement=StiPlacement.Overlay,t.relativeWidth=l?.012:.1,t.relativeHeight=l?.1:.012,t.borderWidth=0,t.brush=StiGaugeElementBuilder.getTargetBrush(r),t.valueObj=null!=n?n[Stimulsoft.System.StiObject.stimulsoft]().toNumber():0,o.items.add(t),r.targetSettings.showLabel){let t=new StiLinearTickLabelCustom;t.allowApplyStyle=!1,t.formatService=r.valueFormat,t.textBrush=StiGaugeElementBuilder.getTargetBrush(r),t.placement=r.targetSettings.placement,t.offset=.04,t.valueObj=StiNumber.getValueOrDefault(n),t.textObj=StiNumber.getValueOrDefault(n).toString(),o.items.add(t)}}let a=new StiLinearMarker;return a.skin=l?StiMarkerSkin.TriangleBottom:StiMarkerSkin.TriangleRight,a.relativeWidth=l?.04:.1,a.relativeHeight=l?.1:.04,a.placement=StiPlacement.Overlay,a.valueObj=60,a.brush=new StiSolidBrush(Color.fromArgb2(205,220,57)),o.items.add(a),o}static async addRadialRanges(o,a,u,t){if(0<o.ranges.length&&o.rangeType==StiGaugeRangeType.Color){let s=new StiRadialRangeList;if(o.rangeMode==StiGaugeRangeMode.Percentage)for(let n of o.ranges){let t=StiValueHelper.parseNumber(await StiReportParser.parseAsync(n.startExpression,o)),e=StiValueHelper.parseNumber(await StiReportParser.parseAsync(n.endExpression,o)),i=a+(u-a)/100*t,r=a+(u-a)/100*e,l=new StiRadialRange;l.placement=StiPlacement.Overlay,l.startValue=i,l.endValue=r,l.startWidth=.05,l.endWidth=.05,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(n.color),s.ranges.add(l)}else for(let r of o.ranges){let t=StiValueHelper.parseNumber(await StiReportParser.parseAsync(r.startExpression,o)),e=StiValueHelper.parseNumber(await StiReportParser.parseAsync(r.endExpression,o)),i=new StiRadialRange;i.placement=StiPlacement.Overlay,i.startValue=t,i.endValue=e,i.startWidth=.05,i.endWidth=.05,i.borderBrush=new StiEmptyBrush,i.brush=new StiSolidBrush(r.color),s.ranges.add(i)}return t.items.add(s),0<s.ranges.length}return!1}async createBullet(i,t,e,r,l=null){let n=new StiLinearScale;if(n.dateTimeMode=t,n.orientation=Stimulsoft.System.Drawing.Orientation.Horizontal,n.relativeHeight=.85,n.startWidth=.01,n.endWidth=.01,n.maximum=100,n.majorInterval=StiGaugeElementBuilder.calculateMinorInterval(e,r),n.borderBrush=new StiEmptyBrush,n.brush=new StiEmptyBrush,await StiGaugeElementBuilder.addLinearRanges(i,e,r,n),i.labels.visible){let t=new StiLinearTickLabelMajor,e=(t.formatService=i.valueFormat,t.textBrush=StiGaugeElementBuilder.getTickLabelBrush(i),t.font=StiGaugeElementBuilder.getSmallElementFont(i),null!=l&&(t.skipValuesObj=[StiNumber.getValueOrDefault(l)]),new StiLinearTickMarkMajor);e.relativeHeight=.03,e.relativeWidth=.003,e.borderBrush=new StiEmptyBrush,e.borderWidth=0,e.brush=StiGaugeElementBuilder.getTickMarkBrush(i),i.labels.placement==StiLabelPlacement.Inside?(t.placement=StiPlacement.Inside,t.offset=.2,e.placement=StiPlacement.Inside):(t.placement=StiPlacement.Outside,t.offset=.2,e.placement=StiPlacement.Outside),e.offset=.15,n.items.add(e),n.items.add(t)}if(null!=l){let t=new StiLinearTickMarkCustom;if(t.placement=StiPlacement.Overlay,t.relativeWidth=.008,t.relativeHeight=.1,t.borderWidth=0,t.brush=StiGaugeElementBuilder.getTargetBrush(i),t.valueObj=l[Stimulsoft.System.StiObject.stimulsoft]().toNumber(),n.items.add(t),i.targetSettings.showLabel){let t=new StiLinearTickLabelCustom;t.allowApplyStyle=!1,t.formatService=i.valueFormat,t.textBrush=StiGaugeElementBuilder.getTargetBrush(i),t.placement=i.targetSettings.placement,t.offset=.25,t.valueObj=StiNumber.getValueOrDefault(l),t.textObj=StiNumber.getValueOrDefault(l).toString(),n.items.add(t)}}let s=new StiLinearBar;return s.valueObj=60,s.startWidth=.15,s.endWidth=.15,s.brush=new StiSolidBrush(Color.fromArgb2(205,220,57)),n.items.add(s),n}static async addLinearRanges(a,u,S,t,m=!1){if(0<a.ranges.length&&a.rangeType==StiGaugeRangeType.Color){let s=new StiLinearRangeList,o=a.type==StiGaugeType.Bullet?.3:.05;if(a.rangeMode==StiGaugeRangeMode.Percentage)for(let n of a.ranges){let t=StiValueHelper.parseNumber(await StiReportParser.parseAsync(n.startExpression,a)),e=StiValueHelper.parseNumber(await StiReportParser.parseAsync(n.endExpression,a)),i=u+(S-u)/100*t,r=u+(S-u)/100*e,l=new StiLinearRange;l.placement=StiPlacement.Overlay,l.startValue=i,l.endValue=r,l.startWidth=o,l.endWidth=o,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(n.color),m&&(l.borderBrush=new StiSolidBrush(Color.fromArgb(150,139,138,135))),s.ranges.add(l)}else for(let r of a.ranges){let t=StiValueHelper.parseNumber(await StiReportParser.parseAsync(r.startExpression,a)),e=StiValueHelper.parseNumber(await StiReportParser.parseAsync(r.endExpression,a)),i=new StiLinearRange;i.placement=StiPlacement.Overlay,i.startValue=t,i.endValue=e,i.startWidth=o,i.endWidth=o,i.borderBrush=new StiEmptyBrush,i.brush=new StiSolidBrush(r.color),m&&(i.borderBrush=new StiSolidBrush(Color.fromArgb(150,139,138,135))),s.ranges.add(i)}t.items.add(s)}}getMinValue(e,t,i,r){if(-1==r)return t?e.minimumDateTime.ticks:e.getMinimumValue();if(t){let t;return null==(t=e.calculationMode==StiGaugeCalculationMode.Auto?i.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableDateTime():e.minimumDateTime)?e.minimumDateTime.ticks:t?.ticks}{let t=e.calculationMode==StiGaugeCalculationMode.Auto?i.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableNumber():e.getMinimumValue();return null!=t?t:e.getMinimumValue()}}getMaxValue(e,t,i,r){if(-1==r)return t?e.maximumDateTime.ticks:e.getMaximumValue();if(t){let t;return null==(t=e.calculationMode==StiGaugeCalculationMode.Auto?i.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableDateTime():e.maximumDateTime)?e.maximumDateTime.ticks:t?.ticks}{let t=e.calculationMode==StiGaugeCalculationMode.Auto?i.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableNumber():e.getMaximumValue();return null!=t?t:e.getMaximumValue()}}getValueMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiValueGaugeMeter));return null!=e?t.meters.indexOf(e):-1}getMinMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiMinGaugeMeter));
|
|
8
8
|
return null!=e?t.meters.indexOf(e):-1}getMaxMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiMaxGaugeMeter));return null!=e?t.meters.indexOf(e):-1}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesGaugeMeter));return null!=e?t.meters.indexOf(e):-1}getTargetMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiTargetGaugeMeter));return null!=e?t.meters.indexOf(e):-1}static getSmallElementFont(t){let e=StiDashboardStyleHelper.getElementFontFromStyle(t);if(null==e)return t.font;let i=StiDashboardStyleHelper.getElementFontFromStyle(t),r=8*i.size/13,l=t.cachedSmallFont;if(null!=l&&l.name==i.name&&l.style==i.style&&l.size==r)return l;return t.cachedSmallFont=StiFontUtils.changeFontSize(i,r),t.cachedSmallFont}}__.i.StiGaugeElementBuilder=StiGaugeElementBuilder}let ImplementsIStiGaugeRange=Stimulsoft.Report.Dashboard.ImplementsIStiGaugeRange,IStiGaugeRange=Stimulsoft.Report.Dashboard.IStiGaugeRange;{class StiGaugeRange{implements(){let t=[IStiJsonReportObject,IStiGaugeRange,...ImplementsIStiGaugeRange,ICloneable];return(this.implements=()=>t)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiColorMeta("Color","",Color.red),new StiStringNullOrEmptyMeta("StartExpression"),new StiStringNullOrEmptyMeta("EndExpression")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}get start(){return StiValueHelper.tryToNumber(this.startExpression)}set start(t){this.currentCulture=CultureInfo.currentCulture;try{CultureInfo.currentCulture=CultureInfo.cultures["en-US"],this.startExpression=t.toString()}finally{CultureInfo.currentCulture=this.currentCulture}}get end(){return StiValueHelper.tryToNumber(this.endExpression)}set end(t){this.currentCulture=CultureInfo.currentCulture;try{CultureInfo.currentCulture=CultureInfo.cultures["en-US"],this.endExpression=t.toString()}finally{CultureInfo.currentCulture=this.currentCulture}}static loadFromJson(t){let e=new StiGaugeRange;return e.loadFromJsonObject(t),e}static loadFromXml(t){let e=new StiGaugeRange;return e.loadFromXml(t),e}saveToString(){return this.saveToJsonObject(StiJsonSaveMode.Report).serialize()}getStringRepresentation(){return this.start+` - `+this.end}constructor(t,e,i){this.color=Color.red,this.startExpression="0",this.endExpression="100",null!=t&&(this.color=t),null!=e&&(this.startExpression=e),null!=i&&(this.endExpression=i)}}__.U.StiGaugeRange=StiGaugeRange}__.g.StiGaugeDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiAllowUserSortingDashboardInteraction,IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("AllowUserSorting","",!0),new StiBoolMeta("AllowUserDrillDown"),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.isDefaultLayout&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)&&!this.allowUserDrillDown&&this.allowUserSorting}constructor(t,e,i,r,l,n,s){super(),this.ident=StiInteractionIdent.Gauge,this.availableOnClick=StiAvailableInteractionOnClick.None,this.availableOnHover=StiAvailableInteractionOnHover.None,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.AllowSorting,this.allowUserSorting=!0,this.allowUserDrillDown=!1,this.onClick=StiInteractionOnClick.OpenHyperlink,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.fileName=t),null!=e&&(this.headerText=e),null!=i&&(this.footerText=i),null!=r&&(this.showFullScreenButton=r),null!=l&&(this.showSaveButton=l),null!=n&&(this.allowUserSorting=n),null!=s&&(this.showViewDataButton=s)}};let IStiGaugeLabels=Stimulsoft.Report.Dashboard.IStiGaugeLabels,IStiGaugeTarget=(__.U.StiGaugeLabels=class{implements(){let t=[IStiGaugeLabels,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("Visible","",!0),new StiEnumMeta("Placement","",StiLabelPlacement,StiLabelPlacement.Inside),new StiEnumMeta("RotationMode","",StiLabelRotationMode,StiLabelRotationMode.Automatic)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(t,e,i){this.visible=!0,this.placement=StiLabelPlacement.Inside,this.rotationMode=StiLabelRotationMode.Automatic,null!=t&&(this.visible=t),null!=e&&(this.placement=e),null!=i&&(this.rotationMode=i)}},Stimulsoft.Report.Dashboard.IStiGaugeTarget),StiGaugeTarget=(__.U.StiGaugeTarget=class{implements(){let t=[IStiGaugeTarget,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("ShowLabel","",!0),new StiEnumMeta("Placement","",StiPlacement,StiPlacement.Inside)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}constructor(t,e){this.showLabel=!0,this.placement=StiPlacement.Inside,null!=t&&(this.showLabel=t),null!=e&&(this.placement=e)}},__.U.StiGaugeTarget),StiGaugeDashboardInteraction=__.g.StiGaugeDashboardInteraction,StiGaugeRange=__.U.StiGaugeRange,ImplementsIStiGaugeElement=Stimulsoft.Report.Dashboard.ImplementsIStiGaugeElement,StiGaugeElementBuilder=__.i.StiGaugeElementBuilder,IStiGaugeElement=Stimulsoft.Report.Dashboard.IStiGaugeElement,StiGaugeLabels=__.U.StiGaugeLabels,IStiNumberFormat=Stimulsoft.Report.Components.IStiNumberFormat;{StiExportToolAttribute.add("StiGaugeElement","Stimulsoft.Dashboard.Export.Tools.StiGaugeElementExportTool");class StiGaugeElement extends __.e.StiElement{implements(){let t=super.implements().concat([IStiGaugeElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiFont,IStiForeColor,IStiElementLayout,IStiElementInteraction,IStiGlobalizationProvider,...ImplementsIStiGaugeElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,...ImplementsIStiFont,...ImplementsIStiForeColor,...ImplementsIStiElementLayout,IStiJsonReportObject,IStiShowBlanks,IStiNumberFormat]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.value=null!=this.value?this.value.clone():null,e.series=null!=this.series?this.series.clone():null,e.target=null!=this.target?this.target.clone():null,e.valueFormat=null!=this.valueFormat?this.valueFormat.clone():null,e.userSorts=this.userSorts.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.dashboardInteraction=this.dashboardInteraction.clone(),e.labels=this.labels?.clone(),e.targetSettings=this.targetSettings?.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userSorts,t)).set(t=>this.userSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.userSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Ranges").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.ranges,t)).set(t=>this.ranges.push(...t.value.properties().map(t=>StiGaugeRange.loadFromJson(t.value)))).setXml(t=>this.ranges.push(...t.childNodes.map(t=>StiGaugeRange.loadFromXml(t)))),new StiNumberMeta("Minimum","",0),new StiNumberMeta("Maximum","",100),new StiStringMeta("MinimumValue","","0"),new StiStringMeta("MaximumValue","","100"),new StiStringNullOrEmptyMeta("MinimumDateTime").get(()=>this.minimumDateTime.toString()).set(t=>this.minimumDateTime=StiJson.jsonDateFormatToDate(t.value)).setXml(t=>this.minimumDateTime=DateTime.tryParse(t.textContent).result),new StiStringNullOrEmptyMeta("MaximumDateTime").get(()=>this.maximumDateTime.toString()).set(t=>this.maximumDateTime=StiJson.jsonDateFormatToDate(t.value)).setXml(t=>this.maximumDateTime=DateTime.tryParse(t.textContent).result),new StiEnumMeta("CalculationMode","",Stimulsoft.Report["Gauge"].StiGaugeCalculationMode,Stimulsoft.Report["Gauge"].StiGaugeCalculationMode.Auto),new StiEnumMeta("RangeMode","",Stimulsoft.Report["Gauge"].StiGaugeRangeMode,Stimulsoft.Report["Gauge"].StiGaugeRangeMode.Percentage),new StiEnumMeta("Type","",Stimulsoft.Report["Gauge"].StiGaugeType,Stimulsoft.Report["Gauge"].StiGaugeType.FullCircular),new StiEnumMeta("RangeType","",Stimulsoft.Report["Gauge"].StiGaugeRangeType,Stimulsoft.Report["Gauge"].StiGaugeRangeType.None),new StiBoolMeta("ShortValue","",!0),new StiBoolMeta("CrossFiltering","",!0),new StiBoolMeta("ShowBlanks"),new StiBoolMeta("DateTimeMode"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiObjectMeta("Labels").check(()=>null!=this.labels),new StiObjectMeta("TargetSettings").check(()=>null!=this.targetSettings),new StiObjectMeta("Value").check(()=>null!=this.value).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.U.StiValueGaugeMeter);null!=e&&(this.value=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.U.StiValueGaugeMeter);null!=e&&(this.value=e)}),new StiObjectMeta("Series").check(()=>null!=this.series).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiSeriesGaugeMeter);null!=e&&(this.series=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiSeriesGaugeMeter);null!=e&&(this.series=e)}),new StiObjectMeta("Target").check(()=>null!=this.target).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.U.StiTargetGaugeMeter);null!=e&&(this.target=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.U.StiTargetGaugeMeter);null!=e&&(this.target=e)}),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiEnumMeta("DataMode","",StiDataMode,StiDataMode.UsingDataFields),new StiStringNullOrEmptyMeta("ManuallyEnteredData"),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("ValueFormat").check(()=>null!=this.valueFormat).set(t=>this.valueFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.valueFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiGaugeDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiGaugeDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiGaugeDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiEventMeta("ClickEvent")]}addValue2(t){this.value=null!=t?StiMeterHelper.Gauge.getValue2(t):null}addValue(t){this.value=StiMeterHelper.Gauge.getValue(t.as(__.e.StiMeter))}removeValue(){this.value=null}getValue(){return this.value}getValue2(t){return null!=t?StiMeterHelper.Gauge.getValue(t.as(__.e.StiMeter)):null}createNewValue(){this.value=new __.U.StiValueGaugeMeter,this.value.expression="Sum()"}addSeries2(t){this.series=null!=t?StiMeterHelper.Gauge.getSeries2(t):null}addSeries(t){this.series=StiMeterHelper.Gauge.getSeries(t.as(__.e.StiMeter))}removeSeries(){this.series=null}getSeries(){return this.series}getSeries2(t){return null!=t?StiMeterHelper.Gauge.getSeries(t.as(__.e.StiMeter)):null}createNewSeries(){this.series=new StiSeriesGaugeMeter}addTarget2(t){this.target=null!=t?StiMeterHelper.Gauge.getTarget2(t):null}addTarget(t){this.target=StiMeterHelper.Gauge.getTarget(t.as(__.e.StiMeter))}removeTarget(){this.target=null}getTarget(){return this.target}getTarget2(t){return null!=t?StiMeterHelper.Gauge.getTarget(t.as(__.e.StiMeter)):null}createNewTarget(){this.target=new __.U.StiTargetGaugeMeter}getRanges(){let t=[];return t.push(...this.ranges),t}getPreferedColor(){if(this.ranges.every(t=>!Color.green.equals(t.color)))return Color.green;if(this.ranges.every(t=>!Color.yellow.equals(t.color)))return Color.yellow;if(this.ranges.every(t=>!Color.red.equals(t.color)))return Color.red;return Color.orange}addRange(){let t=new StiGaugeRange;return t.color=this.getPreferedColor(),this.ranges.push(t),t}removeRange(t){t<this.ranges.length&&this.ranges.splice(t,1)}createdDefaultRanges(){this.ranges.splice(0,this.ranges.length),this.ranges.push(new StiGaugeRange(Color.red,"0","33")),this.ranges.push(new StiGaugeRange(Color.yellow,"33","66")),this.ranges.push(new StiGaugeRange(Color.green,"66","100"))}getManuallyEnteredDataTable(){if(this.dataMode!=StiDataMode.ManuallyEnteringData)return null;return __.e.StiManuallyEnteredDataParser.getGaugeDataTable(this.manuallyEnteredData,this.dateTimeMode,this)}async getGaugeComponent(t=null){let e=await StiElementDataCache.getOrCreate(this),i=(new StiGaugeElementBuilder).render2(this,null!=t?t:this.clientRectangle.size,e),r=new Stimulsoft.Report.Components.StiGauge;return 1==(await i()).length&&((r=(await i())[0].gauge).report=this.report,r.page=this.page,r.name=this.name+`_Content`,r.clientRectangle=null!=t?new Rectangle(0,0,t.width,t.height):this.clientRectangle.clone(),r.brush=new StiSolidBrush(this.backColor)),r}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter)),r=(null!=(i=null==i?i=e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.value=null==this.value?new __.U.StiValueGaugeMeter:this.value,this.value.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiSeriesMeter))),l=(null!=(r=null==r?e.find(t=>t.is(IStiDimensionMeter)):r)&&(this.series=null==this.series?new StiSeriesGaugeMeter:this.series,this.series.loadFromJsonObject(r.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiTargetMeter)));null!=l&&(this.target=null==this.target?new __.U.StiTargetGaugeMeter:this.target,this.target.loadFromJsonObject(l.saveToJsonObject(StiJsonSaveMode.Report))),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiGaugeDashboardInteraction)}fetchAllMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.value&&t.push(this.value),null!=this.series&&t.push(this.series),null!=this.target)&&t.push(this.target),t}getMeters(){let i=[];if(this.dataMode==StiDataMode.UsingDataFields){if(null!=this.value&&(this.value.key=StiKeyHelper.getOrGeneratedKey(this.value.key),i.push(this.value),this.calculationMode==Stimulsoft.Report["Gauge"].StiGaugeCalculationMode.Auto)){let t=new __.U.StiMinGaugeMeter,e=(t.key=this.value.key,t.expression=StiExpressionHelper.replaceFunction(this.value.expression,"Min"),i.push(t),new __.U.StiMaxGaugeMeter);e.key=this.value.key,e.expression=StiExpressionHelper.replaceFunction(this.value.expression,"Max"),i.push(e)}null!=this.series&&i.push(this.series),null!=this.target&&i.push(this.target)}return i}retrieveUsedDataNames(){return this.dataMode==StiDataMode.UsingDataFields?StiUsedDataHelper.getMany(this.value,this.series,this.target):null}get isDefined(){return null!=this.value||null!=this.series||null!=this.target||this.dataMode==StiDataMode.ManuallyEnteringData}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.GaugeElement}get localizedName(){return StiLocalization.get("Components","StiGauge")}static getValueFormatDefault(){let t=new StiNumberFormatService;return t.decimalDigits=0,t.state=__.a.StiTextFormatState.DecimalDigits|__.a.StiTextFormatState.Abbreviation,t}get minimum(){return StiValueHelper.tryToNumber(this.minimumValue)}set minimum(t){let e=CultureInfo.currentCulture;CultureInfo.currentCulture=CultureInfo.getCultureInfo("en-US"),this.minimumValue=StiValueHelper.tryToString(t),CultureInfo.currentCulture=e}get maximum(){return StiValueHelper.tryToNumber(this.maximumValue)}set maximum(t){let e=CultureInfo.currentCulture;CultureInfo.currentCulture=CultureInfo.getCultureInfo("en-US"),this.maximumValue=StiValueHelper.tryToString(t),CultureInfo.currentCulture=e}getMinimumValue(){return StiReportParser.parseNumber(this.minimumValue,this.report,!0,null,!0,!0)}getMaximumValue(){return StiReportParser.parseNumber(this.maximumValue,this.report,!0,null,!0,!0)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}constructor(t=Rectangle.empty){super(t),this.dataMode=StiDataMode.UsingDataFields,this.group="",this.title=new StiTitle,this.layout=new StiElementLayout,this.crossFiltering=!0,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.showBlanks=!1,this.dateTimeMode=!1,this.font=new Font("Arial",13),this.foreColor=Color.transparent,this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.userSorts=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.helpUrl="user-manual/dashboards_gauge.htm",this.valueFormat=StiGaugeElement.getValueFormatDefault(),this.shortValue=!0,this.labels=new StiGaugeLabels,this.targetSettings=new StiGaugeTarget,this.minimumValue="0",this.maximumValue="100",this.minimumDateTime=DateTime.now,this.maximumDateTime=DateTime.now.addYears(1),this.calculationMode=Stimulsoft.Report["Gauge"].StiGaugeCalculationMode.Auto,this.rangeMode=Stimulsoft.Report["Gauge"].StiGaugeRangeMode.Percentage,this.rangeType=Stimulsoft.Report["Gauge"].StiGaugeRangeType.None,this.type=Stimulsoft.Report["Gauge"].StiGaugeType.FullCircular,this.ranges=[],this.isSampleForStyles=!1,this.title.text=this.localizedName,this.dashboardInteraction=new StiGaugeDashboardInteraction,this.previousAnimations=[]}}__.U.StiGaugeElement=StiGaugeElement}__.ad.StiGaugeRangeConverter=class{},__.W.StiTextMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Text")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.TextMeter}},__.Z.StiImageMeter=class extends __.e.StiDimensionMeter{implements(){let t=super.implements().concat([IStiValueMeter]);return(this.implements=()=>t)()}get localizedName(){return Loc.get("PropertyMain","Image")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.ImageMeter}},__._.StiWebContentMeter=class extends __.e.StiDimensionMeter{get localizedName(){return Loc.get("Components","StiWebContent")}constructor(t,e,i){super(t,e,i),this.ident=__.e.StiMeterIdent.WebContentMeter}};let StiImageMeter=__.Z.StiImageMeter,StiWebContentMeter=__._.StiWebContentMeter,StiTextMeter=__.W.StiTextMeter,StiStartValueChartMeter=__.I.StiStartValueChartMeter,StiArray=(__.H.StiMeterCreator=class{static neww(t){if(StiString.isNullOrEmpty(t))return null;let e,i=StiNumber.tryParse(t);return null!=(e=i.successfully?Enum.parse(__.e.StiMeterIdent,i.result):Enum.parse(__.e.StiMeterIdent,t))?this.neww2(e):null}static neww2(t){switch(t){case __.e.StiMeterIdent.ArgumentChartMeter:return new StiArgumentChartMeter;case __.e.StiMeterIdent.SeriesChartMeter:return new StiSeriesChartMeter;case __.e.StiMeterIdent.SortByChartMeter:return new StiSortByChartMeter;case __.e.StiMeterIdent.IndicatorValueChartMeter:return new StiIndicatorValueChartMeter;case __.e.StiMeterIdent.ValueChartMeter:return new StiValueChartMeter;case __.e.StiMeterIdent.StartValueChartMeter:return new StiStartValueChartMeter;case __.e.StiMeterIdent.EndValueChartMeter:return new StiEndValueChartMeter;case __.e.StiMeterIdent.OpenValueChartMeter:return new StiOpenValueChartMeter;case __.e.StiMeterIdent.CloseValueChartMeter:return new StiCloseValueChartMeter;case __.e.StiMeterIdent.LowValueChartMeter:return new StiLowValueChartMeter;case __.e.StiMeterIdent.HighValueChartMeter:return new StiHighValueChartMeter;case __.e.StiMeterIdent.WeightChartMeter:return new StiWeightChartMeter;case __.e.StiMeterIdent.XChartMeter:return new StiXChartMeter;case __.e.StiMeterIdent.YChartMeter:return new StiYChartMeter;case __.e.StiMeterIdent.KeyComboBoxMeter:return new StiKeyComboBoxMeter;case __.e.StiMeterIdent.NameComboBoxMeter:return new StiNameComboBoxMeter;case __.e.StiMeterIdent.MaxGaugeMeter:return new StiMaxGaugeMeter;case __.e.StiMeterIdent.MinGaugeMeter:return new StiMinGaugeMeter;case __.e.StiMeterIdent.SeriesGaugeMeter:return new StiSeriesGaugeMeter;case __.e.StiMeterIdent.ValueGaugeMeter:return new StiValueGaugeMeter;case __.e.StiMeterIdent.TargetGaugeMeter:return new StiTargetGaugeMeter;case __.e.StiMeterIdent.SeriesIndicatorMeter:return new StiSeriesIndicatorMeter;case __.e.StiMeterIdent.TargetIndicatorMeter:return new StiTargetIndicatorMeter;case __.e.StiMeterIdent.ValueIndicatorMeter:return new StiValueIndicatorMeter;case __.e.StiMeterIdent.KeyListBoxMeter:return new StiKeyListBoxMeter;case __.e.StiMeterIdent.NameListBoxMeter:return new StiNameListBoxMeter;case __.e.StiMeterIdent.LatitudeMapMeter:return new StiLatitudeMapMeter;case __.e.StiMeterIdent.LongitudeMapMeter:return new StiLongitudeMapMeter;case __.e.StiMeterIdent.LocationMapMeter:return new StiLocationMapMeter;case __.e.StiMeterIdent.LocationValueMapMeter:return new StiLocationValueMapMeter;case __.e.StiMeterIdent.LocationArgumentMapMeter:return new StiLocationArgumentMapMeter;case __.e.StiMeterIdent.LocationColorMapMeter:return new StiLocationColorMapMeter;case __.e.StiMeterIdent.KeyMapMeter:return new StiKeyMapMeter;case __.e.StiMeterIdent.NameMapMeter:return new StiNameMapMeter;case __.e.StiMeterIdent.GroupMapMeter:return new StiGroupMapMeter;case __.e.StiMeterIdent.ColorMapMeter:return new StiColorMapMeter;case __.e.StiMeterIdent.ValueMapMeter:return new StiValueMapMeter;case __.e.StiMeterIdent.PivotColumn:return new StiPivotColumn;case __.e.StiMeterIdent.PivotRow:return new StiPivotRow;case __.e.StiMeterIdent.PivotSummary:return new StiPivotSummary;case __.e.StiMeterIdent.SeriesProgressMeter:return new StiSeriesProgressMeter;case __.e.StiMeterIdent.TargetProgressMeter:return new StiTargetProgressMeter;case __.e.StiMeterIdent.ValueProgressMeter:return new StiValueProgressMeter;case __.e.StiMeterIdent.ColorScaleColumn:return new StiColorScaleColumn;case __.e.StiMeterIdent.DataBarsColumn:return new StiDataBarsColumn;case __.e.StiMeterIdent.DimensionColumn:return new StiDimensionColumn;case __.e.StiMeterIdent.IndicatorColumn:return new StiIndicatorColumn;case __.e.StiMeterIdent.MeasureColumn:return new StiMeasureColumn;case __.e.StiMeterIdent.SparklinesColumn:return new StiSparklinesColumn;case __.e.StiMeterIdent.BubbleColumn:return new StiBubbleColumn;case __.e.StiMeterIdent.ColorScaleCardsColumn:return new StiColorScaleCardsColumn;case __.e.StiMeterIdent.DataBarsCardsColumn:return new StiDataBarsCardsColumn;case __.e.StiMeterIdent.DimensionCardsColumn:return new StiDimensionCardsColumn;case __.e.StiMeterIdent.IndicatorCardsColumn:return new StiIndicatorCardsColumn;case __.e.StiMeterIdent.MeasureCardsColumn:return new StiMeasureCardsColumn;case __.e.StiMeterIdent.SparklinesCardsColumn:return new StiSparklinesCardsColumn;case __.e.StiMeterIdent.BubbleCardsColumn:return new StiBubbleCardsColumn;case __.e.StiMeterIdent.KeyTreeViewMeter:return new StiKeyTreeViewMeter;case __.e.StiMeterIdent.KeyTreeViewBoxMeter:return new StiKeyTreeViewBoxMeter;case __.e.StiMeterIdent.ValueDatePickerMeter:return new StiValueDatePickerMeter;case __.e.StiMeterIdent.ValueNumberBoxMeter:return new StiValueNumberBoxMeter;case __.e.StiMeterIdent.TextMeasureMeter:return new StiTextMeasureMeter;case __.e.StiMeterIdent.TextMeter:return new StiTextMeter;case __.e.StiMeterIdent.ImageMeter:return new StiImageMeter;case __.e.StiMeterIdent.WebContentMeter:return new StiWebContentMeter;case __.e.StiMeterIdent.ArgumentRangeSelectorMeter:return new StiArgumentRangeSelectorMeter;case __.e.StiMeterIdent.SeriesRangeSelectorMeter:return new StiSeriesRangeSelectorMeter;case __.e.StiMeterIdent.ValueRangeSelectorMeter:return new StiValueRangeSelectorMeter;default:throw new StiTypeNotRecognizedException(t)}}},__.H.StiMeterJsonConverter=class{},__.g.StiImageDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.OpenHyperlink&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.Image,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.onClick=StiInteractionOnClick.OpenHyperlink}},Stimulsoft.System.StiArray),StiHyperlinkProcessor=Stimulsoft.Report.Helpers.StiHyperlinkProcessor,StiImageDashboardInteraction=__.g.StiImageDashboardInteraction,Image=Stimulsoft.System.Drawing.Image,ImplementsIStiImageElement=Stimulsoft.Report.Dashboard.ImplementsIStiImageElement,StiImageConverter=Stimulsoft.Base.Drawing.StiImageConverter,StiDashboardImageHyperlinkCache=Stimulsoft.Report.Dashboard.Helpers.StiDashboardImageHyperlinkCache,IStiImageElement=Stimulsoft.Report.Dashboard.IStiImageElement,StiFontIconsHelper=Stimulsoft.Report.StiFontIconsHelper,StiIndicatorIconRangeMode=(StiExportToolAttribute.add("StiImageElement","Stimulsoft.Dashboard.Export.Tools.StiImageElementExportTool"),__.Z.StiImageElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiHorAlignment,IStiVertAlignment,IStiImageElement,IStiCornerRadius,IStiSimpleShadow,IStiTitleElement,IStiGlobalizationProvider,...ImplementsIStiHorAlignment,...ImplementsIStiVertAlignment,...ImplementsIStiImageElement,...ImplementsIStiCornerRadius,...ImplementsIStiSimpleShadow,...ImplementsIStiTitleElement,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.title=null!=this.title?this.title.clone():null,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiImageDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiImageDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiImageDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiBoolMeta("AspectRatio","",!0),new StiStringNullOrEmptyMeta("ImageHyperlink"),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiEnumMeta("VertAlignment","",StiVertAlignment,StiVertAlignment.Center),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("Style"),new StiBoolMeta("CrossFiltering","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(0,0,0,0)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiStringMeta("Image").check(()=>null!=this.image).get(()=>StiImageConverter.imageToString(this.image)).set(t=>this.image=StiImageConverter.stringToImage(t.value.toString())).setXml(t=>this.image=StiImageConverter.stringToImage(t.textContent)),new StiEnumMeta("Icon","",StiFontIcons).check(()=>null!=this.icon),new StiColorMeta("IconColor","",Color.fromArgb2(68,114,196)),new StiEventMeta("ClickEvent")]}get isDefined(){return this.isImageDefined||this.isImageHyperlinkDefined||this.isImageIconDefined}get isQuerable(){return this.isImageHyperlinkDataColumnDefined}fetchAllMeters(){return this.getMeters()}getMeters(){if(!this.isHyperlinkExpressionOrHyperlinkDataColumnDefined)return[];if(this.isImageHyperlinkExpressionDefined)return StiExpressionHelper.fetchBlocksFromExpression(this.imageHyperlink).map(t=>new StiImageMeter(t,t,t));{let t=StiHyperlinkProcessor.getRealDataColumnFromHyperlink(this.report,this.imageHyperlink),e=[];return e.push(new StiImageMeter(t,t,t)),e}}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.getMeters())[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get imageToDraw(){if(this.isImageDefined)return new Promise(t=>{t(this.image)});if(this.isImageIconDefined){let t=this.getPaintRectangle(!0,!1);return StiFontIconsHelper.convertFontIconToImageAsync(this.icon,this.iconColor,t.width,t.height,null,this.horAlignment)}if(this.isImageHyperlinkDefined)return new Promise(r=>{setTimeout(async()=>{if(this.isImageHyperlinkDataColumnDefined){let i=await StiElementDataCache.getOrCreate(this);if(null!=i){let t=i.rows.find(t=>!0),e=null!=t?t.find(t=>!0):null;if(StiArray.isArray(e)){let t=new Stimulsoft.System.Drawing.Image;t.bytes=e,r(t)}else if("string"==typeof e&&!StiString.isNullOrEmpty(e)){if(e[Stimulsoft.System.StiObject.stimulsoft]().isBase64String()){let t=new Stimulsoft.System.Drawing.Image;t.base64=e,r(t)}r(StiDashboardImageHyperlinkCache.get(e,this.report))}}r(null)}else if(this.isImageHyperlinkExpressionDefined){let t=await StiElementDataCache.getOrCreate(this);if(null!=t){let i=t.rows[0];if(null!=i)if(StiArray.isArray(i[0])){let t=new Stimulsoft.System.Drawing.Image;t.bytes=i,r(t)}else{let t=i.map(t=>null!=t?.toString()?t.toString():""),e=Stimulsoft.Data.Helpers.StiExpressionHelper.replaceExpressionBlocksByValues(this.imageHyperlink,t);r(StiHyperlinkProcessor.getImage(this.report,e))}}}r(StiDashboardImageHyperlinkCache.get(this.imageHyperlink,this.report))})});return new Promise(t=>{t(null)})}copyAllImageProperties(t){if(null==t)return;this.image=t.image,this.imageHyperlink=t.imageHyperlink,this.icon=t.icon,this.iconColor=t.iconColor}get style(){return this.componentStyle}set style(t){this.componentStyle=t}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.ImageElement}get localizedName(){return StiLocalization.get("Components","StiImage")}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}resetAllImageProperties(){this.image=new Image,this.imageHyperlink=null,this.icon=null}get isHyperlinkExpressionOrHyperlinkDataColumnDefined(){return this.isImageHyperlinkExpressionDefined||this.isImageHyperlinkDataColumnDefined}get isImageDefined(){return null!=this.image&&(null!=this.image.bytes||!StiString.isNullOrEmpty(this.image.url))}get isImageIconDefined(){return null!=this.icon}get isImageHyperlinkDefined(){return!StiString.isNullOrWhiteSpace(this.imageHyperlink)}get isImageHyperlinkExpressionDefined(){return this.imageHyperlink?.[Stimulsoft.System.StiObject.stimulsoft]().contains("{")&&this.imageHyperlink?.[Stimulsoft.System.StiObject.stimulsoft]().contains("}")}get isImageHyperlinkDataColumnDefined(){return!this.isImageDefined&&!this.isImageIconDefined&&this.isImageHyperlinkDefined&&!StiString.isNullOrWhiteSpace(StiHyperlinkProcessor.getRealDataColumnFromHyperlink(this.report,this.imageHyperlink))}constructor(t=Rectangle.empty){super(t),this.group="",this.title=new __.e.StiTitle,this.image=null,this.aspectRatio=!0,this.icon=null,this.iconColor=Color.fromArgb2(68,114,196),this.crossFiltering=!0,this.horAlignment=StiHorAlignment.Center,this.vertAlignment=StiVertAlignment.Center,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.defaultClientRectangle=new Rectangle(0,0,120,120),this.helpUrl="user-manual/dashboards_image.htm",this.title.text=this.localizedName,this.title.visible=!1,this.padding=StiPadding.create(0),this.dashboardInteraction=new StiImageDashboardInteraction}},__.ab.StiImageBytesConverter=class{},__.g.StiIndicatorDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiAllowUserSortingDashboardInteraction,IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("AllowUserDrillDown"),new StiBoolMeta("AllowUserSorting","",!0),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&!this.allowUserDrillDown&&null==this.footerText}isDefault(){return this.isDefaultLayout&&this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)&&!this.allowUserDrillDown&&this.allowUserSorting}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d){super(),this.ident=StiInteractionIdent.Indicator,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.AllowDrillDown|StiAvailableInteractionOnDataManipulation.AllowSorting,this.allowUserDrillDown=!1,this.allowUserSorting=!0,this.onClick=StiInteractionOnClick.None,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.onHover=t),null!=e&&(this.onClick=e),null!=i&&(this.hyperlinkDestination=i),null!=r&&(this.toolTip=r),null!=l&&(this.hyperlink=l),null!=n&&(this.drillDownPageKey=n),null!=s&&(this.drillDownParameters=s),null!=o&&(this.allowUserDrillDown=o),null!=u&&(this.fileName=u),null!=S&&(this.headerText=S),null!=m&&(this.footerText=m),null!=h&&(this.showFullScreenButton=h),null!=c&&(this.showSaveButton=c),null!=a&&(this.allowUserSorting=a),null!=d&&(this.showViewDataButton=d)}},Stimulsoft.Report.Dashboard.StiIndicatorIconRangeMode),StiIndicatorIconMode=Stimulsoft.Report.Dashboard.StiIndicatorIconMode,IStiAllowSortByVariation=Stimulsoft.Data.Engine.IStiAllowSortByVariation,StiTargetMode=Stimulsoft.Report.Dashboard.StiTargetMode,StiIndicatorDashboardInteraction=__.g.StiIndicatorDashboardInteraction,ImplementsIStiIndicatorElement=Stimulsoft.Report.Dashboard.ImplementsIStiIndicatorElement,ImplementsIStiAllowSortByVariation=Stimulsoft.Data.Engine.ImplementsIStiAllowSortByVariation,StiFontIconSet=Stimulsoft.Report.Helpers.StiFontIconSet,IStiIndicatorElement=Stimulsoft.Report.Dashboard.IStiIndicatorElement,Convert=Stimulsoft.System.Convert,StiFontSizeMode=Stimulsoft.Report.Dashboard.StiFontSizeMode,StiIndicatorValueType=Stimulsoft.Report.Dashboard.StiIndicatorValueType,IStiIndicatorElementCondition=(__.V.StiIndicatorElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTextFormat,IStiIndicatorElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiFont,IStiForeColor,IStiElementLayout,IStiElementInteraction,IStiGlobalizationProvider,IStiAllowSortByVariation,IStiShowBlanks,...ImplementsIStiTextFormat,...ImplementsIStiIndicatorElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,...ImplementsIStiFont,...ImplementsIStiForeColor,...ImplementsIStiElementLayout,...ImplementsIStiAllowSortByVariation,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.value=null!=this.value?this.value.clone():null,e.target=null!=this.target?this.target.clone():null,e.series=null!=this.series?this.series.clone():null,e.userSorts=this.userSorts.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.topN=this.topN.clone(),e.textFormat=this.textFormat.clone(),e.targetFormat=this.targetFormat.clone(),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.indicatorConditions=this.indicatorConditions.map(t=>t.clone()),e.dashboardInteraction=this.dashboardInteraction.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userSorts,t)).set(t=>this.userSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.userSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("IconRanges").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.iconRanges,t)).set(t=>this.iconRanges.push(...t.value.properties().map(t=>__.V.StiIndicatorIconRange.loadFromJson(t.value)))).setXml(t=>this.iconRanges.push(...t.childNodes.map(t=>__.V.StiIndicatorIconRange.loadFromXml(t)))),new StiBoolMeta("CrossFiltering","",!0),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("TextFormat").check(()=>null!=this.textFormat).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("TargetFormat").check(()=>null!=this.targetFormat).set(t=>this.targetFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.targetFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("Value").check(()=>null!=this.value).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiValueIndicatorMeter);null!=e&&(this.value=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiValueIndicatorMeter);null!=e&&(this.value=e)}),new StiObjectMeta("Target").check(()=>null!=this.target).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.V.StiTargetIndicatorMeter);null!=e&&(this.target=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.V.StiTargetIndicatorMeter);null!=e&&(this.target=e)}),new StiObjectMeta("Series").check(()=>null!=this.series).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.V.StiSeriesIndicatorMeter);null!=e&&(this.series=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.V.StiSeriesIndicatorMeter);null!=e&&(this.series=e)}),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiColorMeta("ForeColor","",Color.transparent),new StiColorMeta("GlyphColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial13(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiEnumMeta("DataMode","",StiDataMode,StiDataMode.UsingDataFields),new StiStringNullOrEmptyMeta("ManuallyEnteredData"),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.Rating4),new StiEnumMeta("IconSet","",StiFontIconSet,StiFontIconSet.Rating),new StiEnumMeta("IconMode","",StiIndicatorIconMode,StiIndicatorIconMode.Auto),new StiEnumMeta("IconRangeMode","",StiIndicatorIconRangeMode,StiIndicatorIconRangeMode.Percentage),new StiStringMeta("CustomIcon").check(()=>null!=this.customIcon).get(()=>Convert.toBase64String(this.customIcon)).set(t=>this.customIcon=Convert.fromBase64String(t.value.toString())).setXml(t=>this.customIcon=Convert.fromBase64String(t.textContent)),new StiEnumMeta("IconAlignment","",StiIconAlignment,StiIconAlignment.Right),new StiEnumMeta("TargetMode","",StiTargetMode,StiTargetMode.Variation),new StiEnumMeta("ValueType","",StiIndicatorValueType,StiIndicatorValueType.Value),new StiEnumMeta("FontSizeMode","",StiFontSizeMode,StiFontSizeMode.Auto),new StiObjectMeta("IndicatorConditions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.indicatorConditions,t)).set(t=>this.indicatorConditions.push(...t.value.properties().map(t=>__.V.StiIndicatorElementCondition.createFromJson(t.value)))).setXml(t=>this.indicatorConditions.push(...t.childNodes.map(t=>__.V.StiIndicatorElementCondition.createFromXml(t)))),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiIndicatorDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiIndicatorDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiIndicatorDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiBoolMeta("ShowBlanks"),new StiEventMeta("ClickEvent")]}addValue2(t){this.value=null!=t?StiMeterHelper.Indicator.getValue2(t):null}addValue(t){this.value=StiMeterHelper.Indicator.getValue(t.as(__.e.StiMeter))}removeValue(){this.value=null}getValue(){return this.value}getValue2(t){return null!=t?StiMeterHelper.Indicator.getValue(t.as(__.e.StiMeter)):null}createNewValue(){this.value=new StiValueIndicatorMeter,this.value.expression="Sum()"}addTarget2(t){this.target=null!=t?StiMeterHelper.Indicator.getTarget2(t):null}addTarget(t){this.target=StiMeterHelper.Indicator.getTarget(t.as(__.e.StiMeter))}removeTarget(){this.target=null}getTarget(){return this.target}getTarget2(t){return null!=t?StiMeterHelper.Indicator.getTarget(t.as(__.e.StiMeter)):null}createNewTarget(){this.target=new __.V.StiTargetIndicatorMeter,this.target.expression="Sum()"}addSeries2(t){this.series=null!=t?StiMeterHelper.Indicator.getSeries2(t):null}addSeries(t){this.series=StiMeterHelper.Indicator.getSeries(t.as(__.e.StiMeter))}removeSeries(){this.series=null}getSeries(){return this.series}getSeries2(t){return null!=t?StiMeterHelper.Indicator.getSeries(t.as(__.e.StiMeter)):null}createNewSeries(){this.series=new __.V.StiSeriesIndicatorMeter}getIconRanges(){let t=[];return t.push(...this.iconRanges),t}addRange(){let t=new __.V.StiIndicatorIconRange;return this.iconRanges.push(t),t}removeRange(t){t<this.iconRanges.length&&this.iconRanges.splice(t,1)}createdDefaultRanges(){this.iconRanges.splice(0,this.iconRanges.length),this.iconRanges.push(new __.V.StiIndicatorIconRange(StiFontIcons.Rating1,"0","25")),this.iconRanges.push(new __.V.StiIndicatorIconRange(StiFontIcons.Rating2,"25","50")),this.iconRanges.push(new __.V.StiIndicatorIconRange(StiFontIcons.Rating3,"50","75")),this.iconRanges.push(new __.V.StiIndicatorIconRange(StiFontIcons.Rating4,"75","100"))}getManuallyEnteredDataTable(){if(this.dataMode!=StiDataMode.ManuallyEnteringData)return null;return __.e.StiManuallyEnteredDataParser.getIndicatorDataTable(this.manuallyEnteredData,this)}addIndicatorCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c){this.indicatorConditions.push(new __.V.StiIndicatorElementCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c))}fetchIndicatorConditions(){let t=[];return null!=this.indicatorConditions&&t.push(...this.indicatorConditions),t}clearIndicatorConditions(){this.indicatorConditions.splice(0,this.indicatorConditions.length)}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter)),r=(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.value=null==this.value?new StiValueIndicatorMeter:this.value,this.value.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiTargetMeter))),l=(null!=r&&(this.target=null==this.target?new __.V.StiTargetIndicatorMeter:this.target,this.target.loadFromJsonObject(r.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiSeriesMeter)));null!=(l=null==l?e.find(t=>t.is(IStiDimensionMeter)):l)&&(this.series=null==this.series?new __.V.StiSeriesIndicatorMeter:this.series,this.series.loadFromJsonObject(l.saveToJsonObject(StiJsonSaveMode.Report))),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiIndicatorDashboardInteraction)}fetchAllMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.value&&t.push(this.value),null!=this.target&&t.push(this.target),null!=this.series)&&t.push(this.series),t}getMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.value&&t.push(this.value),null!=this.target&&t.push(this.target),null!=this.series)&&t.push(this.series),t}retrieveUsedDataNames(){return this.dataMode==StiDataMode.UsingDataFields?StiUsedDataHelper.getMany(this.value,this.target,this.series):null}get isDefined(){return null!=this.value||null!=this.target||null!=this.series||this.dataMode==StiDataMode.ManuallyEnteringData}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.IndicatorElement}get localizedName(){return Loc.get("Components","StiIndicator")}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}constructor(t=Rectangle.empty){super(t),this.group="",this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.dataMode=StiDataMode.UsingDataFields,this.textFormat=new StiGeneralFormatService,this.font=new Font("Arial",13),this.foreColor=Color.transparent,this.showBlanks=!1,this.title=new __.e.StiTitle,this.layout=new StiElementLayout,this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.topN=new StiDataTopN,this.dataTransformation={},this.dataFilters=[],this.userSorts=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.defaultClientRectangle=new Rectangle(0,0,160,160),this.helpUrl="user-manual/dashboards_indicator.htm",this.glyphColor=Color.transparent,this.targetFormat=new StiPercentageFormatService,this.icon=StiFontIcons.Rating4,this.iconSet=StiFontIconSet.Rating,this.iconAlignment=StiIconAlignment.Right,this.targetMode=StiTargetMode.Variation,this.fontSizeMode=StiFontSizeMode.Auto,this.iconMode=StiIndicatorIconMode.Auto,this.iconRangeMode=StiIndicatorIconRangeMode.Percentage,this.iconRanges=[],this.indicatorConditions=[],this.crossFiltering=!0,this.valueType=StiIndicatorValueType.Value,this.isSampleForStyles=!1,this.title.text=this.localizedName,this.dashboardInteraction=new StiIndicatorDashboardInteraction}},Stimulsoft.Report.Dashboard.IStiIndicatorElementCondition),StiIndicatorFieldCondition=Stimulsoft.Report.Dashboard.StiIndicatorFieldCondition,StiIndicatorConditionPermissions=Stimulsoft.Report.Dashboard.StiIndicatorConditionPermissions;{class xS{implements(){let t=[ICloneable,IStiIndicatorElementCondition,IStiJsonReportObject];return(this.implements=()=>t)()}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("Field","",StiIndicatorFieldCondition,StiIndicatorFieldCondition.Value),new StiStringNullOrEmptyMeta("Value"),new StiColorMeta("IconColor","",Color.fromArgb2(68,114,196)),new StiEnumMeta("Icon","",StiFontIcons,StiFontIcons.Rating4),new StiColorMeta("TargetIconColor","",Color.fromArgb2(68,114,196)),new StiEnumMeta("TargetIcon","",StiFontIcons,StiFontIcons.Rating4),new StiStringMeta("CustomIcon").check(()=>null!=this.customIcon).get(()=>Convert.toBase64String(this.customIcon)).set(t=>this.customIcon=Convert.fromBase64String(t.value.toString())).setXml(t=>this.customIcon=Convert.fromBase64String(t.textContent)),new StiEnumMeta("Permissions","",StiIndicatorConditionPermissions,StiIndicatorConditionPermissions.All),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiColorMeta("TextColor","",Color.black),new StiColorMeta("BackColor","",Color.transparent),new StiEnumMeta("IconAlignment","",StiIconAlignment,StiIconAlignment.Right),new StiEnumMeta("TargetIconAlignment","",StiIconAlignment,StiIconAlignment.Right)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new xS;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new xS;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){this.iconColor=Color.fromArgb2(68,114,196),this.icon=StiFontIcons.Rating4,this.targetIconColor=Color.fromArgb2(68,114,196),this.targetIcon=StiFontIcons.Rating4,this.condition=StiFilterCondition.EqualTo,this.field=StiIndicatorFieldCondition.Value,this.permissions=StiIndicatorConditionPermissions.All,this.textColor=Color.black,this.backColor=Color.transparent,this.font=new Font("Arial",8),this.iconAlignment=StiIconAlignment.Right,this.targetIconAlignment=StiIconAlignment.Right,null!=t&&(this.field=t),null!=e&&(this.condition=e),null!=i&&(this.value=i),null!=n&&(this.targetIcon=n),null!=s&&(this.targetIconColor=s),null!=r&&(this.icon=r),null!=l&&(this.iconColor=l),null!=o&&(this.customIcon=o),null!=a&&(this.iconAlignment=a),null!=u&&(this.targetIconAlignment=u),null!=S&&(this.permissions=S),null!=m&&(this.font=m),null!=h&&(this.textColor=h),null!=c&&(this.backColor=c)}}__.V.StiIndicatorElementCondition=xS}let ImplementsStiIndicatorIconRange=Stimulsoft.Report.Dashboard.ImplementsStiIndicatorIconRange,IStiIndicatorIconRange=Stimulsoft.Report.Dashboard.IStiIndicatorIconRange;{class YS{implements(){let t=[IStiJsonReportObject,IStiIndicatorIconRange,...ImplementsStiIndicatorIconRange,ICloneable];return(this.implements=()=>t)()}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiStringNullOrEmptyMeta("StartExpression"),new StiStringNullOrEmptyMeta("EndExpression"),new StiEnumMeta("Icon","",StiFontIcons)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static loadFromJson(t){let e=new YS;return e.loadFromJsonObject(t),e}static loadFromXml(t){let e=new YS;return e.loadFromXml(t),e}saveToString(){return this.saveToJsonObject(StiJsonSaveMode.Report).serialize()}getStringRepresentation(){return this.startExpression+` - `+this.endExpression}constructor(t,e,i){this.icon=StiFontIcons.Rating4,this.startExpression="0",this.endExpression="100",null!=t&&(this.icon=t),null!=e&&(this.startExpression=e),null!=i&&(this.endExpression=i)}}__.V.StiIndicatorIconRange=YS}let StiListBoxSelectionType=Stimulsoft.Report.Dashboard.StiListBoxSelectionType,ImplementsIStiListBoxElement=Stimulsoft.Report.Dashboard.ImplementsIStiListBoxElement,IStiListBoxElement=Stimulsoft.Report.Dashboard.IStiListBoxElement,DecimalRange=(StiExportToolAttribute.add("StiListBoxElement","Stimulsoft.Dashboard.Export.Tools.StiListBoxElementExportTool"),__.Q.StiListBoxElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiListBoxElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiGlobalizationProvider,...ImplementsIStiListBoxElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.keyMeter=null!=this.keyMeter?this.keyMeter.clone():null,e.nameMeter=null!=this.nameMeter?this.nameMeter.clone():null,e.userFilters=this.userFilters.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.textFormat=this.textFormat.clone(),e.title=null!=this.title?this.title.clone():null,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.dashboardInteraction=this.dashboardInteraction?.clone(),e}meta(){return[...super.meta(),new StiStringNullOrEmptyMeta("ParentKey"),new StiStringNullOrEmptyMeta("InitialValue"),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiBoolMeta("ShowAllValue"),new StiBoolMeta("ShowBlanks"),new StiEnumMeta("SelectionMode","",StiItemSelectionMode,StiItemSelectionMode.One).set(t=>{let e=Enum.parse(StiItemSelectionMode,t.value);null!=e&&(this.selectionMode=e)}).setXml(t=>{let e=Enum.parse(StiItemSelectionMode,t.textContent);null!=e&&(this.selectionMode=e)}),new StiEnumMeta("Orientation","",StiItemOrientation,StiItemOrientation.Vertical),new StiEnumMeta("SelectionType","",StiListBoxSelectionType,StiListBoxSelectionType.ListBox),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiObjectMeta("NameMeter").check(()=>null!=this.nameMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiNameListBoxMeter);null!=e&&(this.nameMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiNameListBoxMeter);null!=e&&(this.nameMeter=e)}),new StiObjectMeta("KeyMeter").check(()=>null!=this.keyMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.Q.StiKeyListBoxMeter);null!=e&&(this.keyMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.Q.StiKeyListBoxMeter);null!=e&&(this.keyMeter=e)}),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiFilterDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiFilterDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiNumberMeta("MaxSelectedItems")]}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return null!=this.nameMeter&&t.push(this.nameMeter),null!=this.keyMeter&&t.push(this.keyMeter),t}getMeters(){let t=[];return null!=this.nameMeter&&t.push(this.nameMeter),null!=this.keyMeter&&t.push(this.keyMeter),t}retrieveUsedDataNames(){return StiUsedDataHelper.getMany(this.nameMeter,this.keyMeter)}get isDefined(){return null!=this.nameMeter||null!=this.keyMeter}getParentKey(){return this.parentKey}setParentKey(t){this.parentKey=t}async applyDefaultFilters(){let t=await __.Q.StiListBoxHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.path=__.Q.StiListBoxHelper.getKeyMeterExpression(this),t.toList()}addKeyMeter2(t){this.keyMeter=null!=t?StiMeterHelper.ListBox.getKey2(t):null}addKeyMeter(t){this.keyMeter=null!=t?StiMeterHelper.ListBox.getKey(t.as(__.e.StiMeter)):null}getKeyMeter(){return this.keyMeter}removeKeyMeter(){this.keyMeter=null}createNewKeyMeter(){this.keyMeter=new __.Q.StiKeyListBoxMeter}addNameMeter2(t){this.nameMeter=null!=t?StiMeterHelper.ListBox.getName2(t):null}addNameMeter(t){this.nameMeter=null!=t?StiMeterHelper.ListBox.getName(t.as(__.e.StiMeter)):null}getNameMeter(){return this.nameMeter}removeNameMeter(){this.nameMeter=null}createNewNameMeter(){this.nameMeter=new StiNameListBoxMeter}createNextMeter(t){null!=this.keyMeter&&null==this.nameMeter?this.nameMeter=StiMeterHelper.ListBox.getName2(t):this.keyMeter=StiMeterHelper.ListBox.getKey2(t)}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter)),r=(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.keyMeter=null==this.keyMeter?new __.Q.StiKeyListBoxMeter:this.keyMeter,this.keyMeter.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiValueMeter)));null!=(r=null==r?e.find(t=>t.is(IStiDimensionMeter)):r)&&(this.nameMeter=null==this.nameMeter?new StiNameListBoxMeter:this.nameMeter,this.nameMeter.loadFromJsonObject(r.saveToJsonObject(StiJsonSaveMode.Report)))}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.ListBoxElement}get localizedName(){return StiLocalization.get("Components","StiListBox")}constructor(t=Rectangle.empty){super(t),this.group="",this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.showAllValue=!1,this.showBlanks=!1,this.selectionMode=StiItemSelectionMode.One,this.orientation=StiItemOrientation.Vertical,this.selectionType=StiListBoxSelectionType.ListBox,this.maxSelectedItems=0,this.title=new __.e.StiTitle,this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.userFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.font=new Font("Arial",8),this.foreColor=Color.transparent,this.textFormat=new StiGeneralFormatService,this.defaultClientRectangle=new Rectangle(0,0,200,300),this.helpUrl="user-manual/dashboards_data_filtering_list_box.htm",this.title.text=this.localizedName,this.title.visible=!1,this.dashboardInteraction=new StiFilterDashboardInteraction}},__.Q.StiListBoxHelper=class{static fetchItems(r,t,l){if(null==t||t==StiDataTable.nullTable||0==t.rows.length)return null;let n=this.getNameMeterIndex(t),s=this.getKeyMeterIndex(t);if(-1==n&&1==s)return null;-1==s&&(s=n),-1==n&&(n=s);let o=[];for(let i of t.rows){let t=i[s];if(null==t)continue;let e=i[n];!l&&this.isBlank(e)||o.push(new __.Q.StiListBoxItem(this.format(r,i[n]),i[s]))}return o}static isBlank(t){return null==t||t==DBNull.value||"string"==typeof t&&StiString.isNullOrEmpty(t)}static async fetchDefaultUserFilters(e){let t=!StiString.isNullOrEmpty(e.initialValue);if(e.showAllValue&&!t)return null;if(e.selectionMode==StiItemSelectionMode.Multi&&!t)return null;let i=this.getKeyMeterExpression(e);if(null==i)return null;let r=await StiElementDataCache.getOrCreate(e),l=this.fetchItems(e,r,e.showBlanks);if(null==l)return null;return this.fetchInitialValues(e,l).map(t=>StiDataFilterCreator.createEqualBasedOnValue(t.value,i,e))}static fetchInitialValues(i,r){if(!StiString.isNullOrEmpty(i.initialValue)){let e=this.getInitialValues(i),t=r.filter(t=>e.includes(t.value?.toString()));if(i.selectionMode==StiItemSelectionMode.One&&0<t.length)return[t[0]];return t}return[r[0]]}static getInitialValues(t){if(StiString.isNullOrEmpty(t.initialValue))return[];let e=StiReportParser.parse2(t.initialValue,t.report),i=e.split(";").map(t=>t.trim());return 0<t.maxSelectedItems&&i.length>t.maxSelectedItems&&i.splice(t.maxSelectedItems,i.length-t.maxSelectedItems),i}static getNameMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(__.Q.StiNameListBoxMeter));return null!=e?t.meters.indexOf(e):-1}static getKeyMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(__.Q.StiKeyListBoxMeter));return null!=e?t.meters.indexOf(e):-1}static getKeyMeterExpression(t){if(null!=t.keyMeter)return t.keyMeter.expression;if(null!=t.nameMeter)return t.nameMeter.expression;return null}static format(t,e){if(e instanceof DateTime&&!(t.textFormat.is2(StiDateFormatService)||t.textFormat.is2(StiTimeFormatService)||t.textFormat.is2(StiCustomFormatService)))return e.toShortDateString();let i=t?.report?.culture;if(StiExtValueConverter.isEligable(e,i))return StiExtValueConverter.convert(e,i);return t.textFormat.format(e)}},__.Q.StiListBoxItem=class{toString(){return null!=this.label?this.label:this.value.toString()}constructor(t,e=t){this.label=t,this.value=e}},Stimulsoft.Report.DecimalRange),StiNumberSelectionMode=Stimulsoft.Report.Dashboard.StiNumberSelectionMode,StiNumberCondition=Stimulsoft.Report.Dashboard.StiNumberCondition,StiNumberMinMaxMode=Stimulsoft.Report.Dashboard.StiNumberMinMaxMode,StiNumberBoxHelper=(__.S.StiNumberBoxHelper=class{static async getInitialValue(t){return this.isRange(t)?this.getRangeInitialValue(t):this.getSingleInitialValue(t)}static async getRangeInitialValue(t){let e=StiValueHelper.tryToNumber(StiReportParser.parse2(t.initialValue,t.report)),i=StiValueHelper.tryToNumber(StiReportParser.parse2(t.initialToValue,t.report)),r=await this.getMinMaxRange(t);return e=Math.max(e,r.from),e=Math.min(e,r.to),i=Math.max(i,r.from),i=Math.min(i,r.to),new DecimalRange(e,i)}static async getSingleInitialValue(e){let i=null,r=this.getVariableSpecifiedAsValue(e)?.as(StiVariable);if(null!=r){let t=e.report.dictionary.getVariableValueByName(r.name);r.initBy!=StiVariableInitBy.Expression||StiString.isNullOrEmpty(t)||(t=StiParser.parseTextValue(`{${t}}`,e)),Stimulsoft.System.Type.isNumericType(r.type)&&(i=StiValueHelper.tryToNullableNumber(t))}else StiString.isNullOrEmpty(e.initialValue)||(i=StiValueHelper.tryToNullableNumber(StiReportParser.parse2(e.initialValue,e.report,!0)));let t=await this.getMinMaxRange(e);return i=null!=i?(i=Math.max(StiNumber.getValueOrDefault(i),t.from),Math.min(StiNumber.getValueOrDefault(i),t.to)):t.from,StiNumber.getValueOrDefault(i)}static async fetchDefaultUserFilters(t){let e=this.getValueMeterExpression(t);return t.selectionMode==StiNumberSelectionMode.Single?this.getSingleDefaultUserFilters(t,e):this.getRangeDefaultUserFilters(t,e)}static async getSingleDefaultUserFilters(t,e){let i=await this.getSingleInitialValue(t);return[new StiDataFilterRule("",e,this.getCondition(t),t.textFormat.format(i))]}static async getRangeDefaultUserFilters(t,e){let i=await this.getRangeInitialValue(t);return[new StiDataFilterRule("",e,StiDataFilterCondition.Between,t.textFormat.format(i.from),t.textFormat.format(i.to),!0,!1)]}static async getAutoRange(t){let e=this.getValueMeterExpression(t);if(!StiString.isNullOrEmpty(e)){let e=await StiElementDataCache.getOrCreate(t);if(null!=e){let t=e.rows.map(t=>t[0]).filter(t=>null!=t&&Stimulsoft.System.Type.isNumericType(Stimulsoft.System.Type.getType(t))).map(t=>StiValueHelper.tryToNumber(t));if(null!=t&&0<t.length)return new DecimalRange(t[Stimulsoft.System.StiObject.stimulsoft]().min(),t[Stimulsoft.System.StiObject.stimulsoft]().max())}}return new DecimalRange(0,65535)}static getValueMeterExpression(t){return t.valueMeter?.expression}static getCondition(t){switch(t.condition){case StiNumberCondition.EqualTo:return StiDataFilterCondition.EqualTo;case StiNumberCondition.NotEqualTo:return StiDataFilterCondition.NotEqualTo;case StiNumberCondition.GreaterThan:return StiDataFilterCondition.GreaterThan;case StiNumberCondition.GreaterThanOrEqualTo:return StiDataFilterCondition.GreaterThanOrEqualTo;case StiNumberCondition.LessThan:return StiDataFilterCondition.LessThan;case StiNumberCondition.LessThanOrEqualTo:return StiDataFilterCondition.LessThanOrEqualTo;default:return StiDataFilterCondition.EqualTo}}static getVariableSpecifiedAsValue(t){return StiVariableExpressionHelper.getVariableSpecifiedAsExpression(t,t.getValueMeter()?.expression)}static isRange(e){if(this.isVariableSpecifiedAsValue(e)){let t=this.getVariableSpecifiedAsValue(e).as(StiVariable);return null!=t&&Range.isNumericRangeType(t.type)}return e.selectionMode==StiNumberSelectionMode.Range}static isVariableSpecifiedAsValue(t){return StiVariableExpressionHelper.isVariableSpecifiedAsExpression(t,t.getValueMeter()?.expression)}static async getMinMaxRange(i){if(i.minMaxMode==StiNumberMinMaxMode.Auto)return this.getAutoRange(i);{let t=0,e=(StiString.isNullOrWhiteSpace(i.min)||(t=StiReportParser.parseNumber(i.min,i.report,!0,null,!0,!0)),65535);return StiString.isNullOrWhiteSpace(i.max)||(e=StiReportParser.parseNumber(i.max,i.report,!0,null,!0,!0)),new DecimalRange(t,e)}}},__.S.StiNumberBoxHelper),IStiNumberBoxElement=Stimulsoft.Report.Dashboard.IStiNumberBoxElement,ImplementsIStiNumberBoxElement=Stimulsoft.Report.Dashboard.ImplementsIStiNumberBoxElement,StiNumberViewMode=Stimulsoft.Report.Dashboard.StiNumberViewMode,StiGeoMapProviderType=(StiExportToolAttribute.add("StiNumberBoxElement","Stimulsoft.Dashboard.Export.Tools.StiNumberBoxElementExportTool"),__.S.StiNumberBoxElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiNumberBoxElement,IStiSimpleShadow,IStiCornerRadius,IStiFixedHeightElement,IStiGroupElement,IStiHorAlignment,...ImplementsIStiNumberBoxElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiFixedHeightElement,...ImplementsIStiGroupElement,...ImplementsIStiHorAlignment,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiEnumMeta("Condition","",StiNumberCondition,StiNumberCondition.GreaterThanOrEqualTo),new StiEnumMeta("MinMaxMode","",StiNumberMinMaxMode,StiNumberMinMaxMode.Auto),new StiEnumMeta("SelectionMode","",StiNumberSelectionMode,StiNumberSelectionMode.Single).set(t=>{let e=Enum.parse(StiNumberSelectionMode,t.value);null!=e&&(this.selectionMode=e)}).setXml(t=>{let e=Enum.parse(StiNumberSelectionMode,t.textContent);null!=e&&(this.selectionMode=e)}),new StiStringNullOrEmptyMeta("InitialValue"),new StiStringNullOrEmptyMeta("InitialToValue"),new StiStringNullOrEmptyMeta("Min"),new StiStringNullOrEmptyMeta("Max"),new StiNumberMeta("DecimalDigits","",0),new StiEnumMeta("HorAlignment","",StiHorAlignment,StiHorAlignment.Center),new StiObjectMeta("ValueMeter").check(()=>null!=this.valueMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiValueNumberBoxMeter);null!=e&&(this.valueMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiValueNumberBoxMeter);null!=e&&(this.valueMeter=e)}),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiRemoveMeta("MinSize"),new StiRemoveMeta("MaxSize"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiEnumMeta("ViewMode","",StiNumberViewMode,StiNumberViewMode.NumberBox)]}clone(t){let e=super.clone(t);return e.valueMeter=null!=this.valueMeter?this.valueMeter.clone():null,e.userFilters=this.userFilters.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}getParentKey(){return null}setParentKey(t){}async applyDefaultFilters(){let r=StiNumberBoxHelper.getVariableSpecifiedAsValue(this)?.as(StiVariable);if(null==r){let t=await StiNumberBoxHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}else if(Range.isRangeType(r.type)){let t=0,e=0,i=new Stimulsoft.Report.DecimalRange(t,e);StiVariableHelper.setVariableValue(this.report,r,i),r.initBy==StiVariableInitBy.Value&&(r.valueObject=i)}}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.path=StiNumberBoxHelper.getValueMeterExpression(this),t.toList()}getPadding(){if(this.viewMode==StiNumberViewMode.Slider)return StiPadding.create(0);return super.getPadding()}setPadding(t){super.setPadding(t)}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return null!=this.valueMeter&&t.push(this.valueMeter),t}getMeters(){let t=[];return null!=this.valueMeter&&t.push(this.valueMeter),t}retrieveUsedDataNames(){return StiUsedDataHelper.getMany(this.valueMeter)}get isDefined(){return null!=this.valueMeter}addValueMeter2(t){this.valueMeter=null!=t?StiMeterHelper.NumberBox.getValue2(t):null}addValueMeter(t){this.valueMeter=null!=t?StiMeterHelper.NumberBox.getValue(t.as(__.e.StiMeter)):null}getValueMeter(){return this.valueMeter}removeValueMeter(){this.valueMeter=null}createNewValueMeter(){this.valueMeter=new StiValueNumberBoxMeter}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter));null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.valueMeter=null==this.valueMeter?new StiValueNumberBoxMeter:this.valueMeter,this.valueMeter.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report)))}get textFormat(){let t=new StiNumberFormatService;return t.decimalDigits=this.decimalDigits,t.state=Stimulsoft.Report.Components.StiTextFormatState.DecimalDigits,t}getFonts(){return StiFont.get(...super.getFonts(),this.font)}get toolboxPosition(){return StiComponentToolboxPosition.NumberBoxElement}get localizedName(){return StiLocalization.get("Components","StiNumberBox")}getMinSize(){let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMinSize(t){}getMaxSize(){let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMaxSize(t){}constructor(t=Rectangle.empty){super(t),this.group="",this.isFixedHeight=!0,this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.userFilters=[],this.dataFilters=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.font=new Font("Arial",8),this.foreColor=Color.transparent,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.horAlignment=StiHorAlignment.Center,this.defaultClientRectangle=new Rectangle(0,0,200,40),this.helpUrl="user-manual/dashboards_data_filtering_number_box.htm",this.decimalDigits=0,this.condition=StiNumberCondition.GreaterThanOrEqualTo,this.selectionMode=StiNumberSelectionMode.Single,this.viewMode=StiNumberViewMode.NumberBox,this.minMaxMode=StiNumberMinMaxMode.Auto,this.initialValue="",this.initialToValue="",this.min="",this.max=""}},__.g.StiOnlineMapDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.isDefaultLayout}constructor(t,e,i,r,l,n){super(),this.ident=StiInteractionIdent.OnlineMap,this.availableOnClick=StiAvailableInteractionOnClick.None,this.availableOnHover=StiAvailableInteractionOnHover.None,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.None,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.fileName=t),null!=e&&(this.headerText=e),null!=i&&(this.footerText=i),null!=r&&(this.showFullScreenButton=r),null!=l&&(this.showSaveButton=l),null!=n&&(this.showViewDataButton=n)}},Stimulsoft.Report.Dashboard.StiGeoMapProviderType),StiOnlineMapDashboardInteraction=__.g.StiOnlineMapDashboardInteraction,ImplementsIStiOnlineMapElement=Stimulsoft.Report.Dashboard.ImplementsIStiOnlineMapElement,IStiOnlineMapElement=Stimulsoft.Report.Dashboard.IStiOnlineMapElement,StiOnlineMapLocationType=Stimulsoft.Report.Dashboard.StiOnlineMapLocationType,StiOnlineMapCulture=Stimulsoft.Report.Dashboard.StiOnlineMapCulture,StiOnlineMapLocationColorType=Stimulsoft.Report.Dashboard.StiOnlineMapLocationColorType,StiOnlineMapValueViewMode=Stimulsoft.Report.Dashboard.StiOnlineMapValueViewMode,IStiTableCells=(StiExportToolAttribute.add("StiOnlineMapElement","Stimulsoft.Dashboard.Export.Tools.StiOnlineMapElementExportTool"),__.P.StiOnlineMapElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiOnlineMapElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiElementLayout,IStiElementInteraction,IStiGlobalizationProvider,...ImplementsIStiOnlineMapElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.latitude=null!=this.latitude?this.latitude.clone():null,e.longitude=null!=this.longitude?this.longitude.clone():null,e.location=null!=this.location?this.location.clone():null,e.locationColorMeter=null!=this.locationColorMeter?this.locationColorMeter.clone():null,e.locationValue=null!=this.locationValue?this.locationValue.clone():null,e.locationArgument=null!=this.locationArgument?this.locationArgument.clone():null,e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.locationType=this.locationType,e.culture=this.culture,e.locationColorType=this.locationColorType,e.locationColor=this.locationColor,e.iconColor=this.iconColor,e.icon=this.icon,e.customIcon=null!=this.customIcon?Convert.fromBase64String(Convert.toBase64String(this.customIcon)):null,e.dashboardInteraction=this.dashboardInteraction.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.onePointZoom=this.onePointZoom,e.userBingKey=this.userBingKey,e.provider=this.provider,e}meta(){return[...super.meta(),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiObjectMeta("Latitude").check(()=>null!=this.latitude).set(t=>this.latitude=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLatitudeMapMeter)).setXml(t=>this.latitude=StiMeterLoader.loadFromXml(t).as(__.P.StiLatitudeMapMeter)),new StiObjectMeta("Longitude").check(()=>null!=this.longitude).set(t=>this.longitude=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLongitudeMapMeter)).setXml(t=>this.longitude=StiMeterLoader.loadFromXml(t).as(__.P.StiLongitudeMapMeter)),new StiObjectMeta("Location").check(()=>null!=this.location).set(t=>this.location=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLocationMapMeter)).setXml(t=>this.location=StiMeterLoader.loadFromXml(t).as(__.P.StiLocationMapMeter)),new StiObjectMeta("LocationColorMeter").check(()=>null!=this.locationColorMeter).set(t=>this.locationColorMeter=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLocationColorMapMeter)).setXml(t=>this.locationColorMeter=StiMeterLoader.loadFromXml(t).as(__.P.StiLocationColorMapMeter)),new StiObjectMeta("LocationArgument").check(()=>null!=this.locationArgument).set(t=>this.locationArgument=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLocationArgumentMapMeter)).setXml(t=>this.locationArgument=StiMeterLoader.loadFromXml(t).as(__.P.StiLocationArgumentMapMeter)),new StiObjectMeta("LocationValue").check(()=>null!=this.locationValue).set(t=>this.locationValue=StiMeterLoader.loadFromJson(t.value).as(__.P.StiLocationValueMapMeter)).setXml(t=>this.locationValue=StiMeterLoader.loadFromXml(t).as(__.P.StiLocationValueMapMeter)),new StiStringNullOrEmptyMeta("Group"),new StiEnumMeta("Culture","",StiOnlineMapCulture).set(t=>this.culture=Enum.parse(StiOnlineMapCulture,t.value,!1)).setXml(t=>this.culture=Enum.parse(StiOnlineMapCulture,t.textContent,!1)),new StiEnumMeta("LocationType","",StiOnlineMapLocationType),new StiColorMeta("LocationColor","",Color.limeGreen),new StiEnumMeta("LocationColorType","",StiOnlineMapLocationColorType),new StiEnumMeta("ValueViewMode","",StiOnlineMapValueViewMode),new StiEnumMeta("Provider","",StiGeoMapProviderType),new StiEnumMeta("Icon","",StiFontIcons),new StiColorMeta("IconColor","",Color.limeGreen),new StiBoolMeta("CrossFiltering","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiStringMeta("CustomIcon").check(()=>null!=this.customIcon).get(()=>Convert.toBase64String(this.customIcon)).set(t=>this.customIcon=Convert.fromBase64String(t.value.toString())).setXml(t=>this.customIcon=Convert.fromBase64String(t.textContent)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiOnlineMapDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiOnlineMapDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiOnlineMapDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiNumberMeta("OnePointZoom","",1),new StiStringMeta("UserBingKey","")]}fetchAllMeters(){let t=[];return null!=this.latitude&&t.push(this.latitude),null!=this.longitude&&t.push(this.longitude),null!=this.location&&t.push(this.location),null!=this.locationColorMeter&&t.push(this.locationColorMeter),null!=this.locationValue&&t.push(this.locationValue),null!=this.locationArgument&&t.push(this.locationArgument),t}getMeters(){let t=[];return this.isDefined&&(null!=this.latitude&&t.push(this.latitude),null!=this.longitude&&t.push(this.longitude),null!=this.location&&t.push(this.location),null!=this.locationColorMeter&&t.push(this.locationColorMeter),null!=this.locationValue&&t.push(this.locationValue),null!=this.locationArgument)&&t.push(this.locationArgument),t}retrieveUsedDataNames(){let t=[];return t.push(...StiUsedDataHelper.getMany(this.latitude)),t.push(...StiUsedDataHelper.getMany(this.longitude)),t.push(...StiUsedDataHelper.getMany(this.location)),t.push(...StiUsedDataHelper.getMany(this.locationColorMeter)),t.push(...StiUsedDataHelper.getMany(this.locationValue)),t.push(...StiUsedDataHelper.getMany(this.locationArgument)),t[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get isDefined(){return null!=this.latitude||null!=this.longitude||null!=Location||null!=this.locationValue||null!=this.locationColorMeter||null!=this.locationArgument}createNextMeter(t){this.location=StiMeterHelper.OnlineMap.getLocation2(t)}addLatitudeMeter2(t){this.latitude=null!=t?StiMeterHelper.OnlineMap.getLatitude2(t):null}addLatitudeMeter(t){this.latitude=null!=t?StiMeterHelper.OnlineMap.getLatitude(t.as(__.e.StiMeter)):null}getLatitudeMeter(){return this.latitude}removeLatitudeMeter(){this.latitude=null}createNewLatitudeMeter(){this.latitude=new __.P.StiLatitudeMapMeter}addLongitudeMeter2(t){this.longitude=null!=t?StiMeterHelper.OnlineMap.getLongitude2(t):null}addLongitudeMeter(t){this.longitude=null!=t?StiMeterHelper.OnlineMap.getLongitude(t.as(__.e.StiMeter)):null}getLongitudeMeter(){return this.longitude}removeLongitudeMeter(){this.longitude=null}createNewLongitudeMeter(){this.longitude=new __.P.StiLongitudeMapMeter}addLocationMeter2(t){this.location=null!=t?StiMeterHelper.OnlineMap.getLocation2(t):null}addLocationMeter(t){this.location=null!=t?StiMeterHelper.OnlineMap.getLocation(t):null}getLocationMeter(){return this.location}removeLocationMeter(){this.location=null}createNewLocationMeter(){this.location=new __.P.StiLocationMapMeter}addLocationColorMeter2(t){this.locationColorMeter=null!=t?StiMeterHelper.OnlineMap.getLocationColor2(t):null}addLocationColorMeter(t){this.locationColorMeter=null!=t?StiMeterHelper.OnlineMap.getLocationColor(t.as(__.e.StiMeter)):null}getLocationColorMeter(){return this.locationColorMeter}removeLocationColorMeter(){this.locationColor=null}createNewLocationColorMeter(){this.locationColorMeter=new __.P.StiLocationColorMapMeter}addLocationValueMeter2(t){this.locationValue=null!=t?StiMeterHelper.OnlineMap.getLocationValue2(t):null}addLocationValueMeter(t){this.locationValue=null!=t?StiMeterHelper.OnlineMap.getLocationValue(t.as(__.e.StiMeter)):null}getLocationValueMeter(){return this.locationValue}removeLocationValueMeter(){this.locationValue=null}createNewLocationValueMeter(){this.locationValue=new __.P.StiLocationValueMapMeter}addLocationArgumentMeter(t){this.locationArgument=null!=t?StiMeterHelper.OnlineMap.getLocationArgument2(t):null}addLocationArgumentMeter2(t){this.locationArgument=null!=t?StiMeterHelper.OnlineMap.getLocationArgument(t):null}getLocationArgumentMeter(){return this.locationArgument}removeLocationArgumentMeter(){this.locationArgument=null}createNewLocationArgumentMeter(){this.locationArgument=new __.P.StiLocationArgumentMapMeter}convertFrom(t){let e=t.as(__.M.StiRegionMapElement);null==e||null==e.keyMeter||e.keyMeter.isDefault()||(this.location=new __.P.StiLocationMapMeter,this.location.label=e.keyMeter.label,this.location.expression=e.keyMeter.expression),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiOnlineMapDashboardInteraction)}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.OnlineMapElement}get localizedName(){return StiLocalization.get("Components","StiOnlineMap")}get onePointZoom(){return this._onePointZoom}set onePointZoom(t){this._onePointZoom=Math.max(Math.min(t,20),1)}constructor(t=Rectangle.empty){super(t),this.group="",this.title=new __.e.StiTitle,this.layout=new StiElementLayout,this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.helpUrl="user-manual/dashboards_maps_online_map.htm",this._onePointZoom=1,this.userBingKey="",this.locationType=StiOnlineMapLocationType.Auto,this.culture=StiOnlineMapCulture.en_US,this.locationColorType=StiOnlineMapLocationColorType.Single,this.valueViewMode=StiOnlineMapValueViewMode.Bubble,this.locationColor=Color.limeGreen,this.icon=StiFontIcons.MapMarker,this.iconColor=Color.maroon,this.crossFiltering=!0,this.provider=StiGeoMapProviderType.OpenStreetMap,this.title.text=this.localizedName,this.dashboardInteraction=new StiOnlineMapDashboardInteraction}},Stimulsoft.Report.Dashboard.IStiTableCells);{class StiTableCells{implements(){let t=[IStiTableCells,ICloneable,IStiJsonReportObject,IStiGetFonts];return(this.implements=()=>t)()}meta(){return[new StiObjectMeta("Columns").check(()=>null!=this.columns&&!this.columns.isDefault()).get(()=>this.columns.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.columns=__.L.StiTableSection.createFromJsonObject(t.value)).setXml(t=>this.columns=__.L.StiTableSection.createFromXml(t)),new StiObjectMeta("Data").check(()=>null!=this.data&&!this.data.isDefault()).get(()=>this.data.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.data=__.L.StiTableSection.createFromJsonObject(t.value)).setXml(t=>this.data=__.L.StiTableSection.createFromXml(t)),new StiObjectMeta("Totals").check(()=>null!=this.totals&&!this.totals.isDefault()).get(()=>this.totals.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.totals=__.L.StiTableSection.createFromJsonObject(t.value)).setXml(t=>this.totals=__.L.StiTableSection.createFromXml(t))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new StiTableCells;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiTableCells;return e.loadFromXml(t),e}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.columns=this.columns?.clone(),t.data=this.data?.clone(),t.totals=this.totals?.clone(),t}isDefault(){return!this.shouldSerializeColumns()&&!this.shouldSerializeData()&&!this.shouldSerializeTotals()}getFonts(){return StiFont.get(this.columns.font,this.data.font,this.totals.font)}getColumns(){return this.columns}getData(){return this.data}getTotals(){return this.totals}get columns(){return this._columns}set columns(t){this._columns!=t&&null!=(this._columns=t)&&(t.element=this.element)}shouldSerializeColumns(){return null==this.columns||!this.columns.isDefault()}get data(){return this._data}set data(t){this._data!=t&&null!=(this._data=t)&&(t.element=this.element)}shouldSerializeData(){return null==this.data||!this.data.isDefault()}get totals(){return this._totals}set totals(t){this._totals!=t&&null!=(this._totals=t)&&(t.element=this.element)}shouldSerializeTotals(){return null==this.totals||!this.totals.isDefault()}get element(){return this.getElement()}set element(t){this.setElement(t)}getElement(){return this._element}setElement(t){this._element!=t&&(this._element=t,this.columns.element=t,this.totals.element=t,this.data.element=t)}constructor(){this.columns=new __.L.StiTableSection,this.data=new __.L.StiTableSection,this.totals=new __.L.StiTableSection}}__.L.StiTableCells=StiTableCells}let IStiPivotTableCells=Stimulsoft.Report.Dashboard.IStiPivotTableCells;{class StiPivotTableCells extends __.L.StiTableCells{implements(){let t=[IStiPivotTableCells,ICloneable,IStiJsonReportObject,IStiGetFonts];return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiObjectMeta("Rows").check(()=>null!=this.rows&&!this.rows.isDefault()).get(()=>this.rows.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.rows=__.L.StiTableSection.createFromJsonObject(t.value)).setXml(t=>this.rows=__.L.StiTableSection.createFromXml(t))]}saveToJsonObject(t){let e=super.saveToJsonObject(t);return StiMetaHelper.saveToJsonObject(t,this,e)}loadFromJsonObject(t){super.loadFromJsonObject(t),StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){super.loadFromXml(t),StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new StiPivotTableCells;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiPivotTableCells;return e.loadFromXml(t),e}clone(){let t=super.clone();return t.rows=this.rows?.clone(),t}isDefault(){return super.isDefault()&&!this.shouldSerializeRows()}getFonts(){return StiFont.get(...super.getFonts(),this.rows.font)}getRows(){return this.rows}get rows(){return this._rows}set rows(t){this._rows!=t&&null!=(this._rows=t)&&(t.element=this.element)}shouldSerializeRows(){return null==this.rows||!this.rows.isDefault()}setElement(t){super.getElement()!=t&&(super.setElement(t),this.rows.element=t)}constructor(){super(),this.rows=new __.L.StiTableSection}}__.L.StiPivotTableCells=StiPivotTableCells}__.O.StiPivotTableColumnVisibilityHelper=class{static getVisible(t,e){if(t.visibility==StiTableColumnVisibility.True)return!0;if(t.visibility==StiTableColumnVisibility.False)return!1;if(StiString.isNullOrWhiteSpace(t.visibilityExpression))return!1;let i=StiReportParser.parse2(t.visibilityExpression,e);return StiValueHelper.tryToBool(i)}};let Hashtable=Stimulsoft.System.Collections.Hashtable;{class StiPivotTableElementSelection{static getSelected(t){let e=this.hash.get(t.key);if(null==e)return null;return e.keys.toList()}static getSelectedObjects(t){let e=this.getSelected(t);return null!=e?e:null}static isSelected(t,e){let i=this.hash.get(t.key);return null==i&&(i=new Hashtable,this.hash.set(t.key,i)),null!=i.get(e)}static select(t,e){let i=this.hash.get(t.key);null==i&&(i=new Hashtable,this.hash.set(t.key,i)),i.set(e,e)}static resetSelection(t){this.hash.containsKey(t.key)&&this.hash.remove(t.key)}}StiPivotTableElementSelection.hash=new Hashtable,__.h.StiPivotTableElementSelection=StiPivotTableElementSelection}let IStiInteractionPivotLayout=Stimulsoft.Report.Dashboard.IStiInteractionPivotLayout,StiPivotTableCells=(__.g.StiPivotTableDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiJsonReportObject,IStiInteractionLayout,IStiInteractionPivotLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiBoolMeta("ShowExpandAllButton","",!0),new StiBoolMeta("ShowCollapseAllButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&this.showExpandAllButton&&this.showCollapseAllButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.isDefaultLayout}constructor(t,e,i,r,l,n,s,o){super(),this.ident=StiInteractionIdent.PivotTable,this.availableOnClick=StiAvailableInteractionOnClick.None,this.availableOnHover=StiAvailableInteractionOnHover.None,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.None,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.showExpandAllButton=!0,this.showCollapseAllButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.fileName=t),null!=e&&(this.headerText=e),null!=i&&(this.footerText=i),null!=r&&(this.showFullScreenButton=r),null!=l&&(this.showSaveButton=l),null!=n&&(this.showViewDataButton=n),null!=s&&(this.showExpandAllButton=s),null!=o&&(this.showCollapseAllButton=o)}},__.L.StiPivotTableCells),StiSummaryDirection=Stimulsoft.Report.CrossTab.Core.StiSummaryDirection,StiPivotTableDashboardInteraction=__.g.StiPivotTableDashboardInteraction,ImplementsIStiPivotTableElement=Stimulsoft.Report.Dashboard.ImplementsIStiPivotTableElement,StiPivotTableElementSelection=__.h.StiPivotTableElementSelection,IStiPivotTableElement=Stimulsoft.Report.Dashboard.IStiPivotTableElement,StiParserParameters=Stimulsoft.Report.Engine.StiParserParameters,StiText=Stimulsoft.Report.Components.StiText,StiAsmCommandType=Stimulsoft.Report.Engine.StiAsmCommandType,StiPivotTableConditionType=(StiExportToolAttribute.add("StiPivotTableElement","Stimulsoft.Dashboard.Export.Tools.StiPivotTableElementExportTool"),__.O.StiPivotTableElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiPivotTableElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiElementLayout,IStiElementInteraction,IStiGlobalizationProvider,...ImplementsIStiPivotTableElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t),i={};return e.columns=this.columns.map(t=>this.cloneMeter(t,i)),e.rows=this.rows.map(t=>this.cloneMeter(t,i)),e.summaries=this.summaries.map(t=>this.cloneMeter(t,i)),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.cells=this.cells.clone(),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.dashboardInteraction=this.dashboardInteraction.clone(),e.pivotTableConditions=this.pivotTableConditions.map(t=>t.clone()),e.totalLabel=this.totalLabel,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.pivotTableConditions.forEach(t=>{t.destinationValueMeter=this.findKey(t.destinationValueMeter,i),t.keyValueMeter=this.findKey(t.keyValueMeter,i),t.measureField=this.findKey(t.measureField,i)}),e}meta(){return[...super.meta(),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Cells").check(()=>null!=this.cells&&!this.cells.isDefault()).get(()=>this.cells.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.cells=StiPivotTableCells.createFromJsonObject(t.value)).setXml(t=>this.cells=StiPivotTableCells.createFromXml(t)),new StiObjectMeta("Columns").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.columns,t)).set(t=>this.columns.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(StiPivotColumn)).filter(t=>null!=t))).setXml(t=>this.columns.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("Rows").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.rows,t)).set(t=>this.rows.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(__.O.StiPivotRow)).filter(t=>null!=t))).setXml(t=>this.rows.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("Summaries").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.summaries,t)).set(t=>this.summaries.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(StiPivotSummary)).filter(t=>null!=t))).setXml(t=>this.summaries.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiBoolMeta("CrossFiltering","",!0),new StiColorMeta("ForeColor","",Color.transparent),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("TotalLabel"),new StiObjectMeta("PivotTableConditions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.pivotTableConditions,t)).set(t=>this.pivotTableConditions.push(...t.value.properties().map(t=>__.O.StiPivotTableElementCondition.loadFromJson(t.value).as(__.O.StiPivotTableElementCondition)).filter(t=>null!=t))).setXml(t=>this.pivotTableConditions.push(...t.childNodes.map(t=>__.O.StiPivotTableElementCondition.loadFromXml(t)))),new StiEnumMeta("SummaryDirection","",StiSummaryDirection,StiSummaryDirection.UpToDown),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiPivotTableDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiPivotTableDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiPivotTableDashboardInteraction);null!=e&&(this.dashboardInteraction=e)})]}retrieveUsedDataNames(){let t=StiUsedDataHelper.getMany2(this.columns);return t.push(...StiUsedDataHelper.getMany2(this.rows)),t.push(...StiUsedDataHelper.getMany2(this.summaries)),t}fetchAllMeters(){let t=this.columns.slice();return t.push(...this.rows),t.push(...this.summaries),t}getMeters(){let t=this.columns.slice();return t.push(...this.rows),t.push(...this.summaries),t}getUsedMeters(){let i=this.getMeters();try{this.summaries.forEach(t=>{let e=this.getPushCommands(t.expression);1<e.length&&e.forEach(t=>{let e=new StiPivotSummary(StiKeyHelper.generateKey(),t,"label");i.push(e)})})}catch{}return i}get isDefined(){return null!=this.columns&&0<this.columns.length||null!=this.rows&&0<this.rows.length||null!=this.summaries&&0<this.summaries.length}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}createNextMeter(t){0==this.columns.length?this.columns.push(StiMeterHelper.Pivot.getColumn2(t)):0==this.rows.length?this.rows.push(StiMeterHelper.Pivot.getRow2(t)):0==this.summaries.length?this.summaries.push(StiMeterHelper.Pivot.getSummary2(t)):this.columns.push(StiMeterHelper.Pivot.getColumn2(t))}createNewColumn(){this.columns.push(new StiPivotColumn)}getColumn2(t){return null!=t?StiMeterHelper.Pivot.getColumn2(t):null}getColumn(t){return null!=t?StiMeterHelper.Pivot.getColumn(t.as(__.e.StiMeter)):null}getColumnByIndex(t){return t<this.columns.length?this.columns[t]:null}insertColumn(t,e){let i=e.as(StiPivotColumn);null!=i&&(0<=t&&t<this.columns.length?this.columns.splice(t,0,i):this.columns.push(i))}removeColumn(t){t<this.columns.length&&this.columns.splice(t,1)}removeAllColumns(){this.columns.splice(0,this.columns.length)}createNewRow(){this.rows.push(new __.O.StiPivotRow)}getRow2(t){return null!=t?StiMeterHelper.Pivot.getRow2(t):null}getRow(t){return null!=t?StiMeterHelper.Pivot.getRow(t.as(__.e.StiMeter)):null}getRowByIndex(t){return t<this.rows.length?this.rows[t]:null}insertRow(t,e){let i=e.as(__.O.StiPivotRow);null!=i&&(0<=t&&t<this.rows.length?this.rows.splice(t,0,i):this.rows.push(i))}removeRow(t){t<this.rows.length&&this.rows.splice(t,1)}removeAllRows(){this.rows.splice(0,this.rows.length)}createNewSummary(){let t=new StiPivotSummary;t.expression="Sum()",this.summaries.push(t)}getSummary2(t){return null!=t?StiMeterHelper.Pivot.getSummary2(t):null}getSummary(t){return null!=t?StiMeterHelper.Pivot.getSummary(t.as(__.e.StiMeter)):null}getSummaryByIndex(t){return t<this.summaries.length?this.summaries[t]:null}insertSummary(t,e){let i=e.as(StiPivotSummary);null!=i&&(0<=t&&t<this.summaries.length?this.summaries.splice(t,0,i):this.summaries.push(i))}removeSummary(t){t<this.summaries.length&&this.summaries.splice(t,1)}removeAllSummaries(){this.summaries.splice(0,this.summaries.length)}addPivotTableCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g,b,C,f){this.pivotTableConditions.push(new __.O.StiPivotTableElementCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g,b,C,f))}getAllMeters(){let t=[];return t.push(...this.columns),t.push(...this.rows),t.push(...this.summaries),t}fetchPivotTableConditions(){let t=[];return null!=this.pivotTableConditions&&t.push(...this.pivotTableConditions),t}clearPivotTableConditions(){this.pivotTableConditions.splice(0,this.pivotTableConditions.length)}getFonts(){return StiFont.get(...super.getFonts(),this.title.font,...this.cells.getFonts())}convertFrom(t){let e=t.fetchAllMeters();if(this.columns.splice(0,this.columns.length),this.rows.splice(0,this.rows.length),this.summaries.splice(0,this.summaries.length),null==e)return;let i=0;e.forEach(t=>{let e=t;if(e.is2(IStiDimensionMeter))if(0==(1&i)){let t=new StiPivotColumn;t.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.columns.push(t)}else{let t=new __.O.StiPivotRow;t.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.rows.push(t)}else if(e.is2(IStiMeasureMeter)){let t=new StiPivotSummary;t.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.summaries.push(t)}},this),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiPivotTableDashboardInteraction)}setString(i,r){switch(i){case"Title.Text":this.title.text=r;break;case"TotalLabel":this.totalLabel=r;break}let l=0;for(let e of this.columns){let t=`Column${l++}.Label`;i==t&&(e.label=r)}l=0;for(let e of this.rows){let t=`Row${l++}.Label`;i==t&&(e.label=r)}}cloneMeter(t,e){let i=t.clone();return e[t.key]=i.key,i}findKey(t,e){return!StiString.isNullOrEmpty(t)&&t in e?e[t]:t}getString(i){switch(i){case"Title.Text":return this.title.text;case"TotalLabel":return this.totalLabel}let r=0;for(let e of this.columns){let t=`Column${r++}.Label`;if(i==t)return e.label}r=0;for(let e of this.rows){let t=`Row${r++}.Label`;if(i==t)return e.label}throw new Error(`Property with name `+i)}getAllStrings(){let e=["Title.Text","TotalLabel"],i=0;return this.columns.forEach(t=>e.push(`Column${i++}.Label`)),i=0,this.rows.forEach(t=>e.push(`Row${i++}.Label`)),e}getCells(){return this.cells}get toolboxPosition(){return StiComponentToolboxPosition.PivotTableElement}get localizedName(){return Loc.get("Components","StiPivotTable")}get foreColor(){return this.cells.data.foreColor}set foreColor(t){this.cells.data.foreColor=t}get cells(){return this._cells}set cells(t){null!=t&&(t.element=this),this._cells=t}shouldSerializeCells(){return null==this.cells||!this.cells.isDefault()}getColumnFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.columns.font)}getRowFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.rows.font)}getDataFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.data.font)}getTotalFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.totals.font)}getFormatObjects(){return StiPivotTableElementSelection.getSelectedObjects(this)}getNestedPages(){let r=[],t=[this,...this.columns,...this.rows,...this.summaries];for(let i of t)if(null!=i?.dashboardInteraction&&i.dashboardInteraction.onClick==StiInteractionOnClick.ShowDashboard&&StiKeyHelper.isKey(i.dashboardInteraction?.drillDownPageKey)){let e=i.dashboardInteraction?.drillDownPageKey,t=this.report.pages.list.find(t=>t.guid==e);null!=t&&r.push(t)}return 0==r.length?null:r[Stimulsoft.System.StiObject.stimulsoft]().distinct()}getPushCommands(t){let e=new StiPage,i=(e.report=this.report,new StiParserParameters),r=(i.returnAsmList=!0,new StiText),l=(r.report=this.report,r.page=e,[]),n=[];try{n=StiParser.parseTextValue2(`{${t}}`,r,null,i)}catch{}let s=0;while(s<n.length){try{n[s].type==StiAsmCommandType.PushValue&&s+1<n.length&&n[s+1].type==StiAsmCommandType.PushFunction?l.push(`${Enum.getName(Stimulsoft.Report.Engine.StiFunctionType,n[s+1].parameter1)}(${n[s].parameter1[0].parameter1})`):n[s].type==StiAsmCommandType.PushDataSourceField&&s+1<n.length&&n[s+1].type==StiAsmCommandType.PushFunction&&l.push(`${Enum.getName(Stimulsoft.Report.Engine.StiFunctionType,n[s+1].parameter1)}(${n[s].parameter1})`)}catch{}s++}return l}constructor(t=Rectangle.empty){super(t),this.maxIconSize=50,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.group="",this.title=new __.e.StiTitle,this.layout=new StiElementLayout,this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.crossFiltering=!0,this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.summaryDirection=StiSummaryDirection.UpToDown,this.helpUrl="user-manual/dashboards_pivot_table.htm",this.columns=[],this.rows=[],this.summaries=[],this.totalLabel="",this.pivotTableConditions=[],this.cells=new StiPivotTableCells,this.title.text=this.localizedName,this.dashboardInteraction=new StiPivotTableDashboardInteraction}},Stimulsoft.Report.Dashboard.StiPivotTableConditionType),StiDataTopNMode=Stimulsoft.Data.Engine.StiDataTopNMode,StiConditionPermissions=Stimulsoft.Report.Components.StiConditionPermissions,StiScale=Stimulsoft.Base.StiScale,IStiPivotTableElementCondition=Stimulsoft.Report.Dashboard.IStiPivotTableElementCondition;{let y=__.a.StiFilterDataType,w=__.a.StiFilterCondition;class Paa{implements(){let t=[IStiPivotTableElementCondition,IStiJsonReportObject];return(this.implements=()=>t)()}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}clone(){let t=this.saveToJsonObject(null),e=new Paa;return e.loadFromJsonObject(t),e}meta(){return[new StiStringMeta("Ident").get(()=>"StiPivotTableElementCondition"),new StiStringNullOrEmptyMeta("KeyValueMeter"),new StiStringNullOrEmptyMeta("DestinationValueMeter"),new StiEnumMeta("Condition","",w),new StiEnumMeta("DataType","",y),new StiStringNullOrEmptyMeta("Value"),new StiColorMeta("TextColor","",Color.black),new StiColorMeta("BackColor","",Color.transparent),new StiFontMeta("Font"),new StiEnumMeta("Permissions","",StiConditionPermissions),new StiEnumMeta("IconAlignment","",StiIconAlignment),new StiColorMeta("IconColor","",Color.maroon),new StiEnumMeta("Icon","",StiFontIcons),new StiStringMeta("CustomIcon").check(()=>null!=this.customIcon).get(()=>Convert.toBase64String(this.customIcon)).set(t=>this.customIcon=Convert.fromBase64String(t.value.toString())).setXml(t=>this.customIcon=Convert.fromBase64String(t.textContent)),new StiEnumMeta("ConditionType","",StiPivotTableConditionType),new StiEnumMeta("TopNMode","",StiDataTopNMode),new StiNumberMeta("TopNCount"),new StiStringNullOrEmptyMeta("MeasureField"),new StiBoolMeta("TopNConditionCell"),new StiBoolMeta("TopNConditionHeader"),new StiBoolMeta("TopNConditionTotal","",!0)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static loadFromJson(t){let e=new Paa;return e.loadFromJsonObject(t),e}static loadFromXml(t){let e=new Paa;return e.loadFromXml(t),e}get iconFontSize(){return 18*StiScale.factor}get customIcon(){return this._customIcon}set customIcon(t){this._customIcon=t,this._iconSize=null}get destinationValueMeter(){return StiString.isNullOrEmpty(this._destinationValueMeter)?this.keyValueMeter:this._destinationValueMeter}set destinationValueMeter(t){this._destinationValueMeter=t}get iconSize(){try{if(null==this._iconSize&&null!=this.customIcon){let t=new Image;t.bytes=this.customIcon,this._iconSize=new Size(t.width,t.height)}else null==this._iconSize&&(this._iconSize=new Size(this.iconFontSize,this.iconFontSize))}catch(t){}return this._iconSize}async getIcon(){if(null!=this.customIcon)return this.customIcon;{let t=await StiFontIconsHelper.convertFontIconToImageAsync(this.icon,this.iconColor,this.iconFontSize,this.iconFontSize,"0.9em");return t.bytes}}getUniqueCode(){return 0}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g,b,C,f){this.textColor=Color.black,this.backColor=Color.transparent,this.font=new Font("Arial",8),this.permissions=StiConditionPermissions.All,this.icon=StiFontIcons.Adjust,this.iconAlignment=StiIconAlignment.None,this.condition=w.EqualTo,this.dataType=y.Numeric,this._destinationValueMeter="",this.iconColor=Color.maroon,this.conditionType=StiPivotTableConditionType.Condition,this.topNMode=StiDataTopNMode.Top,this.topNCount=5,this.topNConditionCell=!1,this.topNConditionHeader=!1,this.topNConditionTotal=!0,null!=t&&(this.keyValueMeter=t),null!=e&&(this.destinationValueMeter=e),null!=i&&(this.dataType=i),null!=r&&(this.condition=r),null!=l&&(this.value=l),null!=n&&(this.font=n),null!=s&&(this.textColor=s),null!=o&&(this.backColor=o),null!=a&&(this.permissions=a),null!=u&&(this.icon=u),null!=S&&(this.iconAlignment=S),null!=m&&(this.customIcon=m),null!=h&&(this.iconColor=h),null!=c&&(this.conditionType=c),null!=d&&(this.topNMode=d),null!=p&&(this.topNCount=p),null!=g&&(this.measureField=g),null!=b&&(this.topNConditionCell=b),null!=C&&(this.topNConditionHeader=C),null!=f&&(this.topNConditionTotal=f)}}__.O.StiPivotTableElementCondition=Paa}__.ae.StiPivotColumnConverter=class extends StiMeterConverter{},__.ae.StiPivotRowConverter=class extends StiMeterConverter{},__.ae.StiPivotSummaryConverter=class extends StiMeterConverter{},__.g.StiProgressDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiAllowUserDrillDownDashboardInteraction,IStiAllowUserSortingDashboardInteraction,IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("AllowUserDrillDown"),new StiBoolMeta("AllowUserSorting","",!0),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&!this.allowUserDrillDown&&null==this.footerText}isDefault(){return this.isDefaultLayout&&this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.None&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)&&!this.allowUserDrillDown&&this.allowUserSorting}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d){super(),this.ident=StiInteractionIdent.Progress,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.AllowDrillDown|StiAvailableInteractionOnDataManipulation.AllowSorting,this.allowUserDrillDown=!1,this.allowUserSorting=!0,this.onClick=StiInteractionOnClick.None,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=t&&(this.onHover=t),null!=e&&(this.onClick=e),null!=i&&(this.hyperlinkDestination=i),null!=r&&(this.toolTip=r),null!=l&&(this.hyperlink=l),null!=n&&(this.drillDownPageKey=n),null!=s&&(this.drillDownParameters=s),null!=o&&(this.allowUserDrillDown=o),null!=u&&(this.fileName=u),null!=S&&(this.headerText=S),null!=m&&(this.footerText=m),null!=h&&(this.showFullScreenButton=h),null!=c&&(this.showSaveButton=c),null!=a&&(this.allowUserSorting=a),null!=d&&(this.showViewDataButton=d)}};let StiProgressDashboardInteraction=__.g.StiProgressDashboardInteraction,ImplementsIStiProgressElement=Stimulsoft.Report.Dashboard.ImplementsIStiProgressElement,StiProgressElementMode=Stimulsoft.Report.Dashboard.StiProgressElementMode,IStiProgressElement=Stimulsoft.Report.Dashboard.IStiProgressElement,StiProgressValueType=Stimulsoft.Report.Dashboard.StiProgressValueType,IStiProgressElementCondition=(__.N.StiProgressElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTextFormat,IStiSimpleShadow,IStiCornerRadius,IStiProgressElement,IStiTitleElement,IStiFont,IStiForeColor,IStiElementLayout,IStiElementInteraction,IStiGlobalizationProvider,IStiSeriesColors,IStiAllowSortByVariation,IStiShowBlanks,...ImplementsIStiTextFormat,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiProgressElement,...ImplementsIStiTitleElement,...ImplementsIStiFont,...ImplementsIStiForeColor,...ImplementsIStiElementLayout,...ImplementsIStiSeriesColors,...ImplementsIStiAllowSortByVariation,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.value=null!=this.value?this.value.clone():null,e.target=null!=this.target?this.target.clone():null,e.series=null!=this.series?this.series.clone():null,e.userSorts=this.userSorts.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.topN=this.topN.clone(),e.textFormat=this.textFormat.clone(),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.seriesColors=null!=this.seriesColors?this.seriesColors.slice():null,e.progressConditions=this.progressConditions.map(t=>t.clone()),e.dashboardInteraction=this.dashboardInteraction.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userSorts,t)).set(t=>this.userSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.userSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TopN").check(()=>null!=this.topN).set(t=>this.topN=StiDataTopN.createFromJsonObject(t.value)).setXml(t=>this.topN=StiDataTopN.createFromXml(t)),new StiObjectMeta("TextFormat").check(()=>null!=this.textFormat).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiObjectMeta("Value").check(()=>null!=this.value).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.N.StiValueProgressMeter);null!=e&&(this.value=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.N.StiValueProgressMeter);null!=e&&(this.value=e)}),new StiObjectMeta("Target").check(()=>null!=this.target).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiTargetProgressMeter);null!=e&&(this.target=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiTargetProgressMeter);null!=e&&(this.target=e)}),new StiObjectMeta("Series").check(()=>null!=this.series).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.N.StiSeriesProgressMeter);null!=e&&(this.series=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.N.StiSeriesProgressMeter);null!=e&&(this.series=e)}),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiEnumMeta("DataMode","",StiDataMode,StiDataMode.UsingDataFields),new StiStringNullOrEmptyMeta("ManuallyEnteredData"),new StiObjectMeta("SeriesColors").get(t=>StiJsonReportObjectHelper.Serialize.colorArray(this.seriesColors)).set(t=>this.seriesColors=StiJsonReportObjectHelper.Deserialize.colorArray(t)).setXml(t=>this.seriesColors=StiReportObjectStringConverter.convertStringToColorArray(t.textContent)),new StiEnumMeta("Mode","",StiProgressElementMode,StiProgressElementMode.Circle),new StiEnumMeta("ValueType","",StiProgressValueType,StiProgressValueType.Percentage),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("Group"),new StiBoolMeta("ColorEach","",!0),new StiObjectMeta("ProgressConditions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.progressConditions,t)).set(t=>this.progressConditions.push(...t.value.properties().map(t=>__.N.StiProgressElementCondition.createFromJson(t.value)))).setXml(t=>this.progressConditions.push(...t.childNodes.map(t=>__.N.StiProgressElementCondition.createFromXml(t)))),new StiBoolMeta("CrossFiltering","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiProgressDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiProgressDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiProgressDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiBoolMeta("ShowBlanks"),new StiEventMeta("ClickEvent")]}addValue2(t){this.value=null!=t?StiMeterHelper.Progress.getValue2(t):null}addValue(t){this.value=StiMeterHelper.Progress.getValue(t.as(__.e.StiMeter))}removeValue(){this.value=null}getValue(){return this.value}getValue2(t){return null!=t?StiMeterHelper.Progress.getValue(t.as(__.e.StiMeter)):null}createNewValue(){this.value=new __.N.StiValueProgressMeter,this.value.expression="Sum()"}addTarget2(t){this.target=null!=t?StiMeterHelper.Progress.getTarget2(t):null}addTarget(t){this.target=StiMeterHelper.Progress.getTarget(t.as(__.e.StiMeter))}removeTarget(){this.target=null}getTarget(){return this.target}getTarget2(t){return null!=t?StiMeterHelper.Progress.getTarget(t.as(__.e.StiMeter)):null}createNewTarget(){this.target=new StiTargetProgressMeter,this.target.expression="Sum()"}addSeries2(t){this.series=null!=t?StiMeterHelper.Progress.getSeries2(t):null}addSeries(t){this.series=StiMeterHelper.Progress.getSeries(t.as(__.e.StiMeter))}removeSeries(){this.series=null}getSeries(){return this.series}getSeries2(t){return null!=t?StiMeterHelper.Progress.getSeries(t.as(__.e.StiMeter)):null}createNewSeries(){this.series=new __.N.StiSeriesProgressMeter}getManuallyEnteredDataTable(){if(this.dataMode!=StiDataMode.ManuallyEnteringData)return null;return __.e.StiManuallyEnteredDataParser.getProgressDataTable(this.manuallyEnteredData,this)}convertFrom(t){let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter)),r=(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)&&(this.value=null==this.value?new __.N.StiValueProgressMeter:this.value,this.value.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiTargetMeter))),l=(null!=r&&(this.target=null==this.target?new StiTargetProgressMeter:this.target,this.target.loadFromJsonObject(r.saveToJsonObject(StiJsonSaveMode.Report))),e.find(t=>t.is(IStiSeriesMeter)));null!=(l=null==l?e.find(t=>t.is(IStiDimensionMeter)):l)&&(this.series=null==this.series?new __.N.StiSeriesProgressMeter:this.series,this.series.loadFromJsonObject(l.saveToJsonObject(StiJsonSaveMode.Report))),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiProgressDashboardInteraction)}fetchAllMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.value&&t.push(this.value),null!=this.target&&t.push(this.target),null!=this.series)&&t.push(this.series),t}getMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.value&&t.push(this.value),null!=this.target&&t.push(this.target),null!=this.series)&&t.push(this.series),t}retrieveUsedDataNames(){return this.dataMode==StiDataMode.UsingDataFields?StiUsedDataHelper.getMany(this.value,this.target,this.series):null}get isDefined(){return null!=this.value||null!=this.target||null!=this.series||this.dataMode==StiDataMode.ManuallyEnteringData}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.ProgressElement}get localizedName(){return StiLocalization.get("Components","StiProgress")}addProgressCondition(t,e,i,r,l,n,s,o){this.progressConditions.push(new __.N.StiProgressElementCondition(t,e,i,r,l,n,s,o))}fetchProgressConditions(){let t=[];return null!=this.progressConditions&&t.push(...this.progressConditions),t}clearProgressConditions(){this.progressConditions.splice(0,this.progressConditions.length)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}constructor(t=Rectangle.empty){super(t),this.group="",this.dataMode=StiDataMode.UsingDataFields,this.textFormat=new StiGeneralFormatService,this.font=new Font("Arial",13),this.foreColor=Color.transparent,this.title=new __.e.StiTitle,this.layout=new StiElementLayout,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.showBlanks=!1,this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.topN=new StiDataTopN,this.dataTransformation={},this.crossFiltering=!0,this.dataFilters=[],this.userSorts=[],this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.seriesColors=[],this.defaultClientRectangle=new Rectangle(0,0,160,160),this.helpUrl="user-manual/dashboards_progress.htm",this.colorEach=!0,this.mode=StiProgressElementMode.Circle,this.progressConditions=[],this.valueType=StiProgressValueType.Percentage,this.isSampleForStyles=!1,this.title.text=this.localizedName,this.dashboardInteraction=new StiProgressDashboardInteraction}},Stimulsoft.Report.Dashboard.IStiProgressElementCondition),StiProgressFieldCondition=Stimulsoft.Report.Dashboard.StiProgressFieldCondition,StiProgressConditionPermissions=Stimulsoft.Report.Dashboard.StiProgressConditionPermissions;{class U1a{implements(){let t=[ICloneable,IStiJsonReportObject,IStiProgressElementCondition];return(this.implements=()=>t)()}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("Field","",StiProgressFieldCondition,StiProgressFieldCondition.Value),new StiStringNullOrEmptyMeta("Value"),new StiColorMeta("Color","",Color.transparent),new StiEnumMeta("Permissions","",StiProgressConditionPermissions,StiProgressConditionPermissions.All),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiColorMeta("TextColor","",Color.black),new StiColorMeta("TrackColor","",Color.transparent)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}static createFromJson(t){let e=new U1a;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new U1a;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n,s,o){this.condition=StiFilterCondition.EqualTo,this.field=StiProgressFieldCondition.Value,this.permissions=StiProgressConditionPermissions.All,this.textColor=Color.black,this.color=Color.transparent,this.trackColor=Color.transparent,this.font=new Font("Arial",8),null!=t&&(this.field=t),null!=e&&(this.condition=e),null!=i&&(this.value=i),null!=r&&(this.permissions=r),null!=l&&(this.font=l),null!=n&&(this.textColor=n),null!=s&&(this.color=s),null!=o&&(this.trackColor=o)}}__.N.StiProgressElementCondition=U1a}let StiRangeSelectorSnapMode=Stimulsoft.Report.Dashboard.StiRangeSelectorSnapMode,StiRangeSelectorDateTimeStep=Stimulsoft.Report.Dashboard.StiRangeSelectorDateTimeStep,StiRangeSelectorSeriesType=Stimulsoft.Report.Dashboard.StiRangeSelectorSeriesType,IStiRangeSelectorElement=Stimulsoft.Report.Dashboard.IStiRangeSelectorElement,ImplementsIStiRangeSelectorElement=Stimulsoft.Report.Dashboard.ImplementsIStiRangeSelectorElement;StiExportToolAttribute.add("StiRangeSelectorElement","Stimulsoft.Dashboard.Export.Tools.StiRangeSelectorElementExportTool"),__.X.StiRangeSelectorElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiRangeSelectorElement,IStiSimpleShadow,IStiCornerRadius,IStiGlobalizationProvider,IStiJsonReportObject,...ImplementsIStiRangeSelectorElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.values=this.values?.map(t=>t?.clone()).filter(t=>null!=t),e.arguments=this.arguments?.clone(),e.series=this.series?.clone(),e.userFilters=this.userFilters.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.textFormat=this.textFormat.clone(),e.title=null!=this.title?this.title.clone():null,e}meta(){return[...super.meta(),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.black),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiObjectMeta("Values").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.values,t)).set(t=>this.values.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.values.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))).check(()=>null!=this.values&&0<this.values.length),new StiObjectMeta("Arguments").check(()=>null!=this.arguments).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.X.StiArgumentRangeSelectorMeter);null!=e&&(this.arguments=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.X.StiArgumentRangeSelectorMeter);null!=e&&(this.arguments=e)}),new StiObjectMeta("Series").check(()=>null!=this.series).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.X.StiSeriesRangeSelectorMeter);null!=e&&(this.series=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.X.StiSeriesRangeSelectorMeter);null!=e&&(this.series=e)}),new StiStringNullOrEmptyMeta("Min"),new StiStringNullOrEmptyMeta("Max"),new StiStringNullOrEmptyMeta("InitialValue"),new StiStringNullOrEmptyMeta("InitialToValue"),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiEnumMeta("SnapMode","",StiRangeSelectorSnapMode,StiRangeSelectorSnapMode.None),new StiEnumMeta("DateTimeStep","",StiRangeSelectorDateTimeStep,StiRangeSelectorDateTimeStep.None),new StiStringNullOrEmptyMeta("NumericStep"),new StiEnumMeta("DataMode","",StiDataMode,StiDataMode.UsingDataFields),new StiEnumMeta("SeriesType","",StiRangeSelectorSeriesType,StiRangeSelectorSeriesType.Line),new StiObjectMeta("TextFormat").check(()=>!(this.textFormat.is(StiGeneralFormatService)||null==this.textFormat)).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report))]}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}addValueMeter2(t){this.values=[],null!=t&&this.values.push(StiMeterHelper.RangeSelector.getValue2(t))}addValueMeter(t){this.values=[],null!=t&&this.values.push(StiMeterHelper.RangeSelector.getValue(t.as(__.e.StiMeter)))}getValueMeter(){return this.values[0]}removeValueMeter(){this.values=[]}createNewValueMeter(){this.values=[],this.values.push(new __.X.StiValueRangeSelectorMeter)}addArgumentMeter2(t){this.arguments=null!=t?StiMeterHelper.RangeSelector.getArgument2(t):null}addArgumentMeter(t){this.arguments=null!=t?StiMeterHelper.RangeSelector.getArgument(t.as(__.e.StiMeter)):null}getArgumentMeter(){return this.arguments}removeArgumentMeter(){this.arguments=null}createNewArgumentMeter(){this.arguments=new __.X.StiArgumentRangeSelectorMeter}addSeriesMeter2(t){this.series=null!=t?StiMeterHelper.RangeSelector.getSeries2(t):null}addSeriesMeter(t){this.series=null!=t?StiMeterHelper.RangeSelector.getSeries(t.as(__.e.StiMeter)):null}getSeriesMeter(){return this.series}removeSeriesMeter(){this.series=null}createNewSeriesMeter(){this.series=new __.X.StiSeriesRangeSelectorMeter}getParentKey(){return null}setParentKey(t){}async applyDefaultFilters(){}getIdentityFilters(){let t=new StiDataFilterRule;return t.condition=StiDataFilterCondition.Any,t.elementKey=this.key,t.toList()}get userFilters(){return this._userFilters}set userFilters(t){this._userFilters!=t&&(this._userFilters=t)}convertFrom(t){let e=t.fetchAllMeters();this.values.splice(0,this.values.length),e?.filter(t=>(t.is2(IStiValueMeter)||t.is2(IStiMeasureMeter))&&!t.is2(IStiSeriesMeter)).forEach(t=>{let e=t,i=new __.X.StiValueRangeSelectorMeter;i.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),i.expression=StiExpressionHelper.removeFunction(i.expression),this.values.push(i)})}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}fetchAllMeters(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(null!=this.values&&0<this.values.length&&t.push(...this.values),null!=this.arguments&&t.push(this.arguments),null!=this.series)&&t.push(this.series),t}getMeters(){let e=[];if(this.dataMode==StiDataMode.UsingDataFields){if(null!=this.values&&0<this.values.length)for(let t of this.values)t.key=StiKeyHelper.getOrGeneratedKey(t.key),e.push(t);null!=this.arguments&&e.push(this.arguments),null!=this.series&&e.push(this.series)}return e}retrieveUsedDataNames(){let t=[];return this.dataMode==StiDataMode.UsingDataFields&&(t.push(...StiUsedDataHelper.getMany2(this.values)),t.push(...StiUsedDataHelper.getMany(this.arguments)),t.push(...StiUsedDataHelper.getMany(this.series))),t[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get isDefined(){return null!=this.values&&0<this.values.length||null!=this.arguments||null!=this.series||this.dataMode==StiDataMode.ManuallyEnteringData}createNextMeter(e){if(null!=e&&e.is(StiDataColumn)&&Type.isDateType(e.as(StiDataColumn).type))this.arguments=StiMeterHelper.RangeSelector.getArgument2(e);else if(0==this.values.length){let t=StiMeterHelper.RangeSelector.getValue2(e);this.values.push(t)}else if(null==this.series)this.series=StiMeterHelper.RangeSelector.getSeries2(e);else{let t=StiMeterHelper.RangeSelector.getValue2(e);this.values.push(t)}}get toolboxPosition(){return StiComponentToolboxPosition.RangeSelectorElement}get localizedName(){return StiLocalization.get("Components","StiRangeSelector")}getNumericStep(){let t=null;return t=StiString.isNullOrEmpty(this.numericStep)?t:StiValueHelper.tryToNullableNumber(StiReportParser.parse2(this.numericStep,this.report,!0))}constructor(t=Rectangle.empty){super(t),this.group="",this.values=[],this.min="",this.max="",this.initialValue="",this.initialToValue="",this.dataFilters=[],this.snapMode=StiRangeSelectorSnapMode.None,this.dateTimeStep=StiRangeSelectorDateTimeStep.None,this.seriesType=StiRangeSelectorSeriesType.Line,this.dataMode=StiDataMode.UsingDataFields,this.manuallyEnteredData="",this.foreColor=Color.transparent,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.font=new Font("Arial",8),this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.title=new __.e.StiTitle,this._userFilters=[],this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.textFormat=new StiGeneralFormatService,this.helpUrl="user-manual/dashboards_data_filtering_range_selector.htm"}};{class StiRangeSelectorHelper{static getValueMeterExpression(t){return t.arguments?.expression}static async getRangeInitialValue(t){let e=StiValueHelper.tryToNumber(StiReportParser.parse2(t.initialValue,t.report)),i=StiValueHelper.tryToNumber(StiReportParser.parse2(t.initialToValue,t.report)),r=await this.getAutoRange(t);return e=Math.min(e,r.from),i=Math.max(i,r.to),new DecimalRange(e,i)}static async getAutoRange(i){let t=i.arguments;if(null==t||StiString.isNullOrEmpty(t.expression))return new DecimalRange(0,100);let r=await StiElementDataCache.getOrCreate(i);if(null!=r&&0<r.rows.length){let e=r.meters.indexOf(t);if(0<=e){let t=r.rows.map(t=>t[e]).filter(t=>null!=t).map(t=>StiRangeSelectorHelper.tryToNullableNumber(i,t)).filter(t=>null!=t);if(0<t.length)return new DecimalRange(Math.min(...t),Math.max(...t))}}return new DecimalRange(0,100)}static tryToNullableNumber(t,e){return this.isArgumentDateTime(t)?StiValueHelper.tryToNullableNumber(e?.ticks):StiValueHelper.tryToNullableNumber(e)}static calculateNiceTicks(h,c,n,d=29){if(n){let r=new DateTime(h),l=new DateTime(c),t=l.subtract(r).totalMilliseconds,e=t/1e3,i=e/60,n=i/60,s=n/24,o=12*(l.year-r.year)+l.month-r.month,a=l.year-r.year,u=TimeSpan.fromDays(1);if(t<d)u=TimeSpan.fromMilliseconds(Math.max(1,t/d));else if(e<d)u=TimeSpan.fromSeconds(Math.max(1,e/d));else if(i<d)u=TimeSpan.fromMinutes(Math.max(1,i/d));else if(n<d)u=TimeSpan.fromHours(Math.max(1,n/d));else{if(!(s<d)){if(o<d){let t=Math.max(1,Math.floor(o/d)),e=[],i=r;while(i.ticks<=l.ticks)e.push(i.ticks),i=i.addMonths(t);return 0!=e.length&&e[e.length-1]==c||e.push(c),e}{let t=Math.max(1,a/d),e=[],i=r;while(i.ticks<=l.ticks)e.push(i.ticks),i=i.addYears(t);return 0!=e.length&&e[e.length-1]==c||e.push(c),e}}u=TimeSpan.fromDays(Math.max(1,s/d))}let S=[],m=r;while(m.ticks<=l.ticks)S.push(m.ticks),m=new DateTime(m.ticks+u.ticks);return 0!=S.length&&S[S.length-1]==c||S.push(c),S}{let t=c-h;if(t<=0||d<2)return[h,c];let e=this.calculateAutoStep(h,c,n,d),i=Math.floor(h/e)*e,r=Math.ceil(c/e)*e,l=[];for(let t=i;t<=r;t+=e)l.push(t);return l}}static calculateAutoStep(u,S,t,m=29){if(t){let i=new DateTime(u),t=new DateTime(S),e=t.subtract(i).totalMilliseconds,r=t.subtract(i).totalSeconds,l=t.subtract(i).totalMinutes,n=t.subtract(i).totalHours,s=t.subtract(i).totalDays,o=12*(t.year-i.year)+t.month-i.month,a=t.year-i.year;if(e<m){let t=Math.max(1,e/m);return TimeSpan.fromMilliseconds(t).ticks}if(r<m){let t=Math.max(1,r/m);return TimeSpan.fromSeconds(t).ticks}if(l<m){let t=Math.max(1,l/m);return TimeSpan.fromMinutes(t).ticks}if(n<m){let t=Math.max(1,n/m);return TimeSpan.fromHours(t).ticks}if(s<m){let t=Math.max(1,s/m);return TimeSpan.fromDays(t).ticks}if(o<m){let t=Math.max(1,o/m),e=i.addMonths(t);return e.subtract(i).ticks}{let t=Math.max(1,a/m),e=i.addYears(t);return e.subtract(i).ticks}}{let t=S-u;if(t<=0||m<2)return 1;let e=t/(m-1),i=Math.pow(10,Math.floor(Math.log10(e))),r=e/i,l;return l=r<1.5?1*i:r<3?2*i:r<7?5*i:10*i}}static formatValue(e,i){if(this.isArgumentDateTime(e)){let t=new DateTime(i);return this.formatValue2(e,t)}if(null!=e?.textFormat)return e.textFormat.format(i);return i.toString()}static formatValue2(t,e){if(null!=t?.textFormat)return t.textFormat.format(e);return this.getFormatedDate(e)}static formatValue3(e,i){if(this.isArgumentDateTime(e)){let t=StiValueHelper.tryToDateTime(i);return this.formatValue2(e,t)}{let t=StiValueHelper.tryToNumber(i);return this.formatValue(e,t)}}static getFormatedDate(t){return t.toString("MM'/'dd'/'yyyy")}static isArgumentDateTime(t){return StiDataExpressionHelper.isDateDataColumnInExpression(t,t?.arguments?.expression)}}__.X.StiRangeSelectorHelper=StiRangeSelectorHelper}__.g.StiRegionMapDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.ApplyFilter&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)&&this.isDefaultLayout}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.RegionMap,this.availableOnClick=StiAvailableInteractionOnClick.ApplyFilter|StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=o&&(this.fileName=o),null!=a&&(this.headerText=a),null!=u&&(this.footerText=u),null!=S&&(this.showFullScreenButton=S),null!=m&&(this.showSaveButton=m),null!=h&&(this.showViewDataButton=h)}};let StiMapLabels=Stimulsoft.Report.Maps.StiMapLabels,StiRegionMapDashboardInteraction=__.g.StiRegionMapDashboardInteraction,ImplementsIStiRegionMapElement=Stimulsoft.Report.Dashboard.ImplementsIStiRegionMapElement,StiMap=Stimulsoft.Report.Maps.StiMap,StiDisplayNameType=Stimulsoft.Report.Maps.StiDisplayNameType,StiMapType=Stimulsoft.Report.Maps.StiMapType,StiMapSource=Stimulsoft.Report.Maps.StiMapSource,IStiRegionMapElement=Stimulsoft.Report.Dashboard.IStiRegionMapElement;{StiExportToolAttribute.add("StiRegionMapElement","Stimulsoft.Dashboard.Export.Tools.StiRegionMapElementExportTool");class StiRegionMapElement extends __.e.StiElement{implements(){let t=super.implements().concat([IStiRegionMapElement,IStiSimpleShadow,IStiCornerRadius,IStiSkipOwnFilter,IStiTitleElement,IStiElementLayout,IStiFont,IStiGlobalizationProvider,...ImplementsIStiRegionMapElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiSkipOwnFilter,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,...ImplementsIStiFont,IStiJsonReportObject,IStiElementInteraction,IStiNumberFormat]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.keyMeter=null!=this.keyMeter?this.keyMeter.clone():null,e.nameMeter=null!=this.nameMeter?this.nameMeter.clone():null,e.valueMeter=null!=this.valueMeter?this.valueMeter.clone():null,e.groupMeter=null!=this.groupMeter?this.groupMeter.clone():null,e.colorMeter=null!=this.colorMeter?this.colorMeter.clone():null,e.userFilters=this.userFilters.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.valueFormat=this.valueFormat?.clone(),e.labels=this.labels?.clone(),e.title=null!=this.title?this.title.clone():null,e.layout=null!=this.layout?this.layout.clone():null,e.dashboardInteraction=this.dashboardInteraction.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiRegionMapDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiRegionMapDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiRegionMapDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiObjectMeta("Labels").check(()=>null!=this.labels).set(t=>this.labels=StiMapLabels.createFromJsonObject(t.value)).setXml(t=>this.labels=StiMapLabels.createFromXml(t)),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiObjectMeta("Layout").check(()=>null!=this.layout).set(t=>this.layout=StiElementLayout.createFromJsonObject(t.value)).setXml(t=>this.layout=StiElementLayout.createFromXml(t)),new StiObjectMeta("KeyMeter").check(()=>null!=this.keyMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(StiKeyMapMeter);null!=e&&(this.keyMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(StiKeyMapMeter);null!=e&&(this.keyMeter=e)}),new StiObjectMeta("NameMeter").check(()=>null!=this.nameMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.M.StiNameMapMeter);null!=e&&(this.nameMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.M.StiNameMapMeter);null!=e&&(this.nameMeter=e)}),new StiObjectMeta("ValueMeter").check(()=>null!=this.valueMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.M.StiValueMapMeter);null!=e&&(this.valueMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.M.StiValueMapMeter);null!=e&&(this.valueMeter=e)}),new StiObjectMeta("GroupMeter").check(()=>null!=this.groupMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.M.StiGroupMapMeter);null!=e&&(this.groupMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.M.StiGroupMapMeter);null!=e&&(this.groupMeter=e)}),new StiObjectMeta("ColorMeter").check(()=>null!=this.colorMeter).set(t=>{let e=StiMeterLoader.loadFromJson(t.value).as(__.M.StiColorMapMeter);null!=e&&(this.colorMeter=e)}).setXml(t=>{let e=StiMeterLoader.loadFromXml(t).as(__.M.StiColorMapMeter);null!=e&&(this.colorMeter=e)}),new StiEnumMeta("DataFrom","",StiMapSource,StiMapSource.Manual),new StiEnumMeta("MapType","",StiMapType,StiMapType.Individual),new StiStringNullOrEmptyMeta("MapData"),new StiBoolMeta("ShowValue","",!0),new StiBoolMeta("ShortValue","",!0),new StiBoolMeta("ShowZeros","",!0),new StiBoolMeta("ColorEach"),new StiBoolMeta("ShowBubble"),new StiBoolMeta("Show3D"),new StiEnumMeta("ShowName","",StiDisplayNameType,StiDisplayNameType.Full),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("Language"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta(["MapIdent","MapID"]),new StiBoolMeta("CrossFiltering","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiStringNullOrEmptyMeta("ManuallyEnteredData"),new StiObjectMeta("ValueFormat").check(()=>null!=this.valueFormat).set(t=>this.valueFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.valueFormat=StiFormatService.loadFormatFromXml(t))]}get allowSkipOwnFilter(){return!0}fetchAllMeters(){let t=[];return null!=this.keyMeter&&t.push(this.keyMeter),null!=this.nameMeter&&t.push(this.nameMeter),null!=this.valueMeter&&t.push(this.valueMeter),null!=this.groupMeter&&t.push(this.groupMeter),null!=this.colorMeter&&t.push(this.colorMeter),t}getMeters(){let t=[];return this.isDefined&&this.dataFrom==StiMapSource.DataColumns&&(null!=this.keyMeter&&t.push(this.keyMeter),null!=this.nameMeter&&t.push(this.nameMeter),null!=this.valueMeter&&(StiExpressionHelper.isAggregationFunctionPresent(this.valueMeter.expression)?t.push(this.valueMeter):t.push(new __.M.StiValueMapMeter(this.valueMeter.key,`First(${this.valueMeter.expression})`))),null!=this.groupMeter&&t.push(this.groupMeter),null!=this.colorMeter)&&t.push(this.colorMeter),t}retrieveUsedDataNames(){let t=[];return this.dataFrom==StiMapSource.DataColumns&&(t.push(...StiUsedDataHelper.getMany(this.keyMeter)),t.push(...StiUsedDataHelper.getMany(this.nameMeter)),t.push(...StiUsedDataHelper.getMany(this.valueMeter)),t.push(...StiUsedDataHelper.getMany(this.groupMeter)),t.push(...StiUsedDataHelper.getMany(this.colorMeter))),t[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get isDefined(){return this.dataFrom!=StiMapSource.DataColumns||null!=this.keyMeter||null!=this.nameMeter||null!=this.valueMeter||null!=this.groupMeter||null!=this.colorMeter}get isQuerable(){return this.dataFrom==StiMapSource.DataColumns}get font(){return this.labels.font}set font(t){this.labels.font=t}static getValueFormatDefault(){let t=new StiNumberFormatService;return t.decimalDigits=1,t.state=__.a.StiTextFormatState.DecimalDigits|__.a.StiTextFormatState.Abbreviation,t}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}createNextMeter(t){null==this.keyMeter?this.keyMeter=StiMeterHelper.RegionMap.getKey2(t):null==this.nameMeter?this.nameMeter=StiMeterHelper.RegionMap.getName2(t):null==this.valueMeter?this.valueMeter=StiMeterHelper.RegionMap.getValue2(t):null==this.groupMeter?this.groupMeter=StiMeterHelper.RegionMap.getGroup2(t):null==this.colorMeter?this.colorMeter=StiMeterHelper.RegionMap.getColor2(t):this.keyMeter=StiMeterHelper.RegionMap.getKey2(t)}addKeyMeter2(t){this.keyMeter=null!=t?StiMeterHelper.RegionMap.getKey2(t):null}addKeyMeter(t){this.keyMeter=null!=t?StiMeterHelper.RegionMap.getKey(t.as(__.e.StiMeter)):null}getKeyMeter(){return this.keyMeter}removeKeyMeter(){this.keyMeter=null}createNewKeyMeter(){this.keyMeter=new StiKeyMapMeter}addNameMeter2(t){this.nameMeter=null!=t?StiMeterHelper.RegionMap.getName2(t):null}addNameMeter(t){this.nameMeter=null!=t?StiMeterHelper.RegionMap.getName(t.as(__.e.StiMeter)):null}getNameMeter(){return this.nameMeter}removeNameMeter(){this.nameMeter=null}createNewNameMeter(){this.nameMeter=new __.M.StiNameMapMeter}addValueMeter2(t){this.valueMeter=null!=t?StiMeterHelper.RegionMap.getValue2(t):null}addValueMeter(t){this.valueMeter=null!=t?StiMeterHelper.RegionMap.getValue(t.as(__.e.StiMeter),this.dashboard):null}getValueMeter(){return this.valueMeter}removeValueMeter(){this.valueMeter=null}createNewValueMeter(){this.valueMeter=new __.M.StiValueMapMeter}addGroupMeter2(t){this.groupMeter=null!=t?StiMeterHelper.RegionMap.getGroup2(t):null}addGroupMeter(t){this.groupMeter=null!=t?StiMeterHelper.RegionMap.getGroup(t.as(__.e.StiMeter)):null}getGroupMeter(){return this.groupMeter}removeGroupMeter(){this.groupMeter=null}createNewGroupMeter(){this.groupMeter=new __.M.StiGroupMapMeter}addColorMeter2(t){this.colorMeter=null!=t?StiMeterHelper.RegionMap.getColor2(t):null}addColorMeter(t){this.colorMeter=null!=t?StiMeterHelper.RegionMap.getColor(t.as(__.e.StiMeter)):null}getColorMeter(){return this.colorMeter}removeColorMeter(){this.colorMeter=null}createNewColorMeter(){this.colorMeter=new __.M.StiColorMapMeter}convertFrom(t){let e=t.as(__.P.StiOnlineMapElement);null==e||null==e.location||e.location.isDefault()||(this.keyMeter=new StiKeyMapMeter,this.keyMeter.label=e.location.label,this.keyMeter.expression=e.location.expression),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiRegionMapDashboardInteraction)}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.RegionMapElement}get localizedName(){return StiLocalization.get("Components","StiRegionMap")}get dashboardInteraction(){return this._dashboardInteraction}set dashboardInteraction(t){this._dashboardInteraction=t}getManuallyEnteredDataTable(){if(this.dataFrom==StiMapSource.Manual){let t=this.getMapData()[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>t.key),i=new StiDataTable;i.meters.push(new StiKeyMapMeter("Key","Key")),i.meters.push(new __.M.StiNameMapMeter("Name","Name")),i.meters.push(new __.M.StiValueMapMeter("Value","Value"));for(let e of t){let t=[];t[0]=e.key,t[1]=e.name,t[2]=e.value,i.rows.push(t)}return i}return null}get language(){return this._language}set language(t){this._language!=t&&(this._language="EN"!=t?t:null)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}getMapData(){let t=new StiMap;return t.mapData=this.mapData,t.mapIdent=this.mapIdent,t.language=this.language,t.page=this.page,t.getMapData()}constructor(t=Rectangle.empty){super(t),this.group="",this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.title=new __.e.StiTitle,this.valueFormat=StiRegionMapElement.getValueFormatDefault(),this.layout=new StiElementLayout,this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.userFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.helpUrl="user-manual/dashboards_maps_region_map.htm",this.dataMode=StiDataMode.UsingDataFields,this.labels=new StiMapLabels,this.mapIdent="USA",this.dataFrom=StiMapSource.Manual,this.mapType=StiMapType.Individual,this.showValue=!0,this.showZeros=!0,this.shortValue=!0,this.colorEach=!1,this.showBubble=!1,this.show3D=!1,this.showName=StiDisplayNameType.Full,this.crossFiltering=!0,this.title.text=this.localizedName,this.dashboardInteraction=new StiRegionMapDashboardInteraction}}__.M.StiRegionMapElement=StiRegionMapElement}__.g.StiShapeDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.OpenHyperlink&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.Shape,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.onClick=StiInteractionOnClick.OpenHyperlink}};let StiShapeTypeService=Stimulsoft.Report.Components.StiShapeTypeService,ImplementsIStiShapeElement=Stimulsoft.Report.Dashboard.ImplementsIStiShapeElement,StiRectangleShapeType=Stimulsoft.Report.Components.StiRectangleShapeType,IStiShapeElement=Stimulsoft.Report.Dashboard.IStiShapeElement,StiShapeDashboardInteraction=__.g.StiShapeDashboardInteraction;StiExportToolAttribute.add("StiShapeElement","Stimulsoft.Dashboard.Export.Tools.StiShapeElementExportTool"),__.aa.StiShapeElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiShapeElement,IStiTitleElement,IStiElementInteraction,IStiGlobalizationProvider,...ImplementsIStiShapeElement,...ImplementsIStiTitleElement,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.title=null!=this.title?this.title.clone():null,e.shapeType=this.shapeType?.clone(),e.dashboardInteraction=this.dashboardInteraction?.clone(),e}meta(){return[...super.meta(),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>{this.title=new StiTitle,this.title.loadFromJsonObject(t)}).setXml(t=>{this.title=new StiTitle,this.title.loadFromXml(t)}),new StiBrushMeta("Fill"),new StiColorMeta("Stroke","",Color.black),new StiNumberMeta("Size","",1),new StiObjectMeta("ShapeType").set(t=>this.shapeType=StiShapeTypeService.createFromJsonObject(t.value)).setXml(t=>{this.shapeType=StiShapeTypeService.convertFromXml(t),this.shapeType.loadFromXml(t)}),new StiObjectMeta("Padding").get(t=>this.padding.saveToJsonObject(0,0,0,0)),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiShapeDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiShapeDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiShapeDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiEventMeta("ClickEvent")]}get toolboxPosition(){return StiComponentToolboxPosition.ShapeElement}get localizedName(){return StiLocalization.get("Components","StiShape")}get isDefined(){return!0}get isQuerable(){return!1}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get size(){return this._size}set size(t){t!=this._size&&(this._size=t<1?1:t)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction?.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}constructor(t=Rectangle.empty){super(t),this.helpUrl="user-manual/dashboards_shape.htm",this.title=new StiTitle,this.shapeType=new StiRectangleShapeType,this._size=1,this.fill=new StiSolidBrush,this.stroke=Color.black,this.title.text=this.localizedName,this.title.visible=!1,this.padding=StiPadding.create(0),this.dashboardInteraction=new StiShapeDashboardInteraction}};{let t;(t=>{t[t["LeftToRight"]=0]="LeftToRight",t[t["RighToLeft"]=1]="RighToLeft"})(t=__.L.StiDataBarsDirection||(__.L.StiDataBarsDirection={}));let e;(t=>{t[t["Solid"]=0]="Solid",t[t["Gradient"]=1]="Gradient"})(e=__.L.StiDataBarsBrushType||(__.L.StiDataBarsBrushType={}));let i;(t=>{t[t["Line"]=0]="Line",t[t["Area"]=1]="Area",t[t["Column"]=2]="Column",t[t["WinLoss"]=3]="WinLoss"})(i=__.L.StiSparklinesType||(__.L.StiSparklinesType={}))}{class StiTableElementSelection{static getSelected(t){let e=this.hash.get(t.key);if(null==e)return null;return e.keys.toList()}static getSelectedObjects(t){let e=this.getSelected(t);return null!=e?e:null}static isSelected(t,e){let i=this.hash.get(t.key);return null==i&&(i=new Hashtable,this.hash.set(t.key,i)),null!=i.get(e)}static select(t,e){let i=this.hash.get(t.key);null==i&&(i=new Hashtable,this.hash.set(t.key,i)),i.set(e,e)}static resetSelection(t){this.hash.containsKey(t.key)&&this.hash.remove(t.key)}}StiTableElementSelection.hash=new Hashtable,__.h.StiTableElementSelection=StiTableElementSelection}let IStiAllowUserColumnSelectionDashboardInteraction=Stimulsoft.Report.Dashboard.IStiAllowUserColumnSelectionDashboardInteraction,IStiTableDashboardInteraction=Stimulsoft.Report.Dashboard.IStiTableDashboardInteraction,IStiAllowUserFilteringDashboardInteraction=Stimulsoft.Report.Dashboard.IStiAllowUserFilteringDashboardInteraction,IStiTableElementCondition=(__.g.StiTableDashboardInteraction=class extends __.g.StiDashboardInteraction{implements(){let t=super.implements().concat([IStiTableDashboardInteraction,IStiAllowUserSortingDashboardInteraction,IStiAllowUserColumnSelectionDashboardInteraction,IStiAllowUserFilteringDashboardInteraction,IStiJsonReportObject,IStiInteractionLayout]);return(this.implements=()=>t)()}meta(){return[...super.meta(),new StiBoolMeta("AllowUserColumnSelection","",!0),new StiBoolMeta("AllowUserSorting","",!0),new StiBoolMeta("AllowUserFiltering","",!0),new StiBoolMeta("DrillDownFiltered","",!0),new StiBoolMeta("FullRowSelect"),new StiBoolMeta("ShowFullScreenButton","",!0),new StiBoolMeta("ShowSaveButton","",!0),new StiBoolMeta("ShowViewDataButton","",!0),new StiStringNullOrEmptyMeta("FileName"),new StiStringNullOrEmptyMeta("HeaderText"),new StiStringNullOrEmptyMeta("FooterText")]}get isDefaultLayout(){return this.showFullScreenButton&&this.showSaveButton&&this.showViewDataButton&&null==this.fileName&&null==this.headerText&&null==this.footerText}isDefault(){return this.isDefaultLayout&&this.allowUserColumnSelection&&this.allowUserFiltering&&this.allowUserSorting&&this.drillDownFiltered&&!this.fullRowSelect&&super.isDefault()}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c,d,p,g,b){super(t,e,i,r,l,n,s),this.allowUserColumnSelection=!0,this.allowUserSorting=!0,this.allowUserFiltering=!0,this.drillDownFiltered=!0,this.fullRowSelect=!1,this.ident=StiInteractionIdent.Table,this.availableOnClick=StiAvailableInteractionOnClick.None,this.availableOnHover=StiAvailableInteractionOnHover.None,this.availableOnDataManipulation=StiAvailableInteractionOnDataManipulation.AllowFiltering|StiAvailableInteractionOnDataManipulation.AllowSorting,this.showFullScreenButton=!0,this.showSaveButton=!0,this.showViewDataButton=!0,this.fileName=null,this.headerText=null,this.footerText=null,null!=u&&(this.allowUserColumnSelection=u),null!=o&&(this.allowUserFiltering=o),null!=a&&(this.allowUserSorting=a),null!=S&&(this.drillDownFiltered=S),null!=m&&(this.fullRowSelect=m),null!=h&&(this.fileName=h),null!=c&&(this.headerText=c),null!=d&&(this.footerText=d),null!=p&&(this.showFullScreenButton=p),null!=g&&(this.showSaveButton=g),null!=b&&(this.showViewDataButton=b)}},Stimulsoft.Report.Dashboard.IStiTableElementCondition),StiTableConditionPermissions=Stimulsoft.Report.Dashboard.StiTableConditionPermissions;{class StiTableElementCondition{implements(){let t=[ICloneable,IStiTableElementCondition,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiStringMeta("Ident").get(()=>this[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),new StiObjectMeta("KeyValueMeters").get(()=>StiJsonReportObjectHelper.Serialize.stringArray(this.keyValueMeters)).set(t=>this.keyValueMeters=StiJsonReportObjectHelper.Deserialize.stringArray(t.value)).setXml(t=>this.keyValueMeters=this.parseStringArray(t)),new StiObjectMeta("KeyDataFieldMeters").get(()=>StiJsonReportObjectHelper.Serialize.stringArray(this.keyDataFieldMeters)).set(t=>this.keyValueMeters=StiJsonReportObjectHelper.Deserialize.stringArray(t.value)).setXml(t=>this.keyValueMeters=this.parseStringArray(t)),new StiObjectMeta("KeyDestinationMeters").get(()=>StiJsonReportObjectHelper.Serialize.stringArray(this.keyDestinationMeters)).set(t=>this.keyDestinationMeters=StiJsonReportObjectHelper.Deserialize.stringArray(t.value)).setXml(t=>this.keyDestinationMeters=this.parseStringArray(t)),new StiEnumMeta("DataType","",__.a.StiFilterDataType,__.a.StiFilterDataType.Numeric),new StiEnumMeta("Condition","",StiFilterCondition,StiFilterCondition.EqualTo),new StiStringNullOrEmptyMeta("Value"),new StiBoolMeta("IsExpression"),new StiEnumMeta("Permissions","",StiTableConditionPermissions,StiTableConditionPermissions.All),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiColorMeta("ForeColor","",Color.black),new StiColorMeta("BackColor","",Color.transparent),new StiEnumMeta("IconAlignment","",StiIconAlignment),new StiColorMeta("IconColor","",Color.maroon),new StiEnumMeta("Icon","",StiFontIcons),new StiStringMeta("CustomIcon").check(()=>null!=this.customIcon).get(()=>Convert.toBase64String(this.customIcon)).set(t=>this.customIcon=Convert.fromBase64String(t.value.toString())).setXml(t=>this.customIcon=Convert.fromBase64String(t.textContent))]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}parseStringArray(i){let r=[];for(let e=0;e<i.childNodes.length;e++){let t=i.childNodes[e];"value"==t.nodeName&&(r[e]=t.textContent)}return r}clone(){let t=this.saveToJsonObject(null),e=new StiTableElementCondition;return e.loadFromJsonObject(t),e}get keyValueMeters(){return this.keyDataFieldMeters}set keyValueMeters(t){this.keyDataFieldMeters=t,this.keyDestinationMeters=t}static createFromJson(t){let e=new StiTableElementCondition;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new StiTableElementCondition;return e.loadFromXml(t),e}constructor(t,e,i,r,l,n,s,o,a,u,S,m,h,c){this.keyDataFieldMeters=[],this.keyDestinationMeters=[],this.dataType=Stimulsoft.Report.Components.StiFilterDataType.Numeric,this.condition=Stimulsoft.Report.Components.StiFilterCondition.EqualTo,this.permissions=StiTableConditionPermissions.All,this.font=new Font("Arial",8),this.foreColor=Color.black,this.backColor=Color.transparent,this.isExpression=!1,this.icon=StiFontIcons.Adjust,this.iconAlignment=StiIconAlignment.None,this.iconColor=Color.maroon,null!=t&&(this.keyDataFieldMeters=t),null!=e&&(this.keyDestinationMeters=e),null!=i&&(this.dataType=i),null!=r&&(this.condition=r),null!=l&&(this.value=l),null!=n&&(this.permissions=n),null!=s&&(this.font=s),null!=o&&(this.foreColor=o),null!=a&&(this.backColor=a),null!=u&&(this.isExpression=u),null!=S&&(this.icon=S),null!=m&&(this.iconAlignment=m),null!=h&&(this.customIcon=h),null!=c&&(this.iconColor=c)}}__.L.StiTableElementCondition=StiTableElementCondition}let StiTableCells=__.L.StiTableCells,StiTableDashboardInteraction=__.g.StiTableDashboardInteraction,StiTableSizeMode=Stimulsoft.Report.Dashboard.StiTableSizeMode,ImplementsIStiTableElement=Stimulsoft.Report.Dashboard.ImplementsIStiTableElement,StiTableElementSelection=__.h.StiTableElementSelection,IStiTableElement=Stimulsoft.Report.Dashboard.IStiTableElement,StiTableElementCondition=__.L.StiTableElementCondition;{StiExportToolAttribute.add("StiTableElement","Stimulsoft.Dashboard.Export.Tools.StiTableElementExportTool");class StiTableElement extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTableElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiElementLayout,IStiGlobalizationProvider,...ImplementsIStiTableElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,...ImplementsIStiElementLayout,IStiJsonReportObject,IStiElementInteraction,IStiSkipOwnFilter]);return(this.implements=()=>t)()}clone(t){let r=super.clone(t),l=(r.columns=this.columns.map(t=>t.clone()),r.userFilters=this.userFilters.map(t=>t.clone()),r.userSorts=this.userSorts.map(t=>t.clone()),r.transformActions=this.transformActions.map(t=>t.clone()),r.transformFilters=this.transformFilters.map(t=>t.clone()),r.transformSorts=this.transformSorts.map(t=>t.clone()),r.dataFilters=this.dataFilters.map(t=>t.clone()),r.cells=this.cells.clone(),r.title=null!=this.title?this.title.clone():null,r.layout=null!=this.layout?this.layout.clone():null,r.tableConditions=this.tableConditions.map(t=>t.clone()),new Dictionary);for(let i=0;i<this.columns.length;i++){let t=this.columns[i].key,e=r.columns[i].key;l.set(t,e)}for(let i of r.tableConditions){for(let e=0;e<i.keyDataFieldMeters.length;e++){let t={ref:""};l.tryGetValue(i.keyDataFieldMeters[e],t)&&(i.keyDataFieldMeters[e]=t.ref)}for(let e=0;e<i.keyDestinationMeters.length;e++){let t={ref:""};l.tryGetValue(i.keyDestinationMeters[e],t)&&(i.keyDestinationMeters[e]=t.ref)}}return r.dashboardInteraction=this.dashboardInteraction.clone(),r.shadow=this.shadow?.clone(),r.cornerRadius=this.cornerRadius?.clone(),r}meta(){return[...super.meta(),new StiObjectMeta("Columns").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.columns,t)).set(t=>this.columns.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(StiTableColumn)).filter(t=>null!=t))).setXml(t=>this.columns.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)).filter(t=>null!=t))),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("UserSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userSorts,t)).set(t=>this.userSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.userSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("Cells").check(()=>null!=this.cells&&!this.cells.isDefault()).get(()=>this.cells.saveToJsonObject(StiJsonSaveMode.Report)).set(t=>this.cells=StiTableCells.createFromJsonObject(t.value)).setXml(t=>this.cells=StiTableCells.createFromXml(t)),new StiColorMeta("HeaderForeColor","",Color.transparent),new StiColorMeta("FooterForeColor","",Color.transparent),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("HeaderFont").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.headerFont)).set(t=>this.headerFont=StiJsonReportObjectHelper.Deserialize.font(t.value,this.headerFont)).setXml(t=>this.headerFont=Stimulsoft.System.Convert.toFont(t.textContent)),new StiStringNullOrEmptyMeta("FooterFont").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.footerFont)).set(t=>this.footerFont=StiJsonReportObjectHelper.Deserialize.font(t.value,this.footerFont)).setXml(t=>this.footerFont=Stimulsoft.System.Convert.toFont(t.textContent)),new StiFontMeta("Font","","Arial",10),new StiBoolMeta("CrossFiltering","",!0),new StiObjectMeta("TableConditions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.tableConditions.map(t=>t[Stimulsoft.System.StiObject.stimulsoft]().as(StiTableElementCondition)),t)).set(t=>this.tableConditions.push(...t.value.properties().map(t=>StiTableElementCondition.createFromJson(t.value)))).setXml(t=>this.tableConditions.push(...t.childNodes.map(t=>StiTableElementCondition.createFromXml(t)))),new StiObjectMeta("Title").check(()=>null!=this.title),new StiObjectMeta("Layout").check(()=>null!=this.layout),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction.as(StiTableDashboardInteraction)).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiTableDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiTableDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiEnumMeta("SizeMode","",StiTableSizeMode,StiTableSizeMode.AutoSize),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiNumberMeta("RowsPerPage","",0),new StiNumberMeta("PageTurnTime","",0)]}createMeters(t){let e=t.as(StiTableElement);this.columns.splice(0,this.columns.length);for(let t of e.columns)this.columns.push(t)}createMeters2(e){this.columns.splice(0,this.columns.length);for(let t of e.columns.list)null!=t&&null!=t.type&&Type.isNumericType(t.type)?this.columns.push(StiMeterHelper.Table.getMeasure2(t)):this.columns.push(StiMeterHelper.Table.getDimension2(t))}createMeter3(t){let e=t.as(StiDataColumn),i=t.as(StiVariable),r=null!=e?e.type:i?.type;if(null!=r&&Type.isNumericType(r)){let t=StiMeterHelper.Table.getMeasure2(e);t.showTotalSummary=!0,t.summaryType=StiSummaryColumnType.Sum,this.columns.push(t)}else this.columns.push(StiMeterHelper.Table.getDimension2(t))}removeMeter(t){t<this.columns.length&&this.columns.splice(t,1)}removeAllMeters(){this.columns.splice(0,this.columns.length)}insertMeter(t,e){let i=e.as(StiTableColumn);if(null==i)return;0<=t&&t<this.columns.length?this.columns.splice(t,0,i):this.columns.push(i)}insertNewDimension(t){let e=new __.L.StiDimensionColumn;e.horAlignment=StiHorAlignment.Left,this.insertMeter(t,e)}insertNewMeasure(t){let e=new __.L.StiMeasureColumn;e.expression="Sum()",e.horAlignment=StiHorAlignment.Right,this.insertMeter(t,e)}getMeasure(t){return StiMeterHelper.Table.getMeasure2(t)}getDimension(t){return StiMeterHelper.Table.getDimension2(t)}getFonts(){return StiFont.get(...super.getFonts(),this.font,...this.cells.getFonts())}getCells(){return this.cells}convertFrom(t){let e=t.fetchAllMeters();if(this.columns.splice(0,this.columns.length),null==e)return;e.forEach(t=>{let e=t,i=null;e.is2(IStiDimensionMeter)?i=new __.L.StiDimensionColumn:e.is2(IStiSparklinesColumn)?i=new __.L.StiSparklinesColumn:e.is2(IStiDataBarsColumn)?i=new __.L.StiDataBarsColumn:e.is2(IStiIndicatorColumn)?i=new __.L.StiIndicatorColumn:e.is2(IStiColorScaleColumn)?i=new __.L.StiColorScaleColumn:e.is2(IStiBubbleColumn)?i=new __.L.StiBubbleColumn:e.is2(IStiMeasureMeter)&&((i=new __.L.StiMeasureColumn).horAlignment=StiHorAlignment.Right),null!=i&&(i.loadFromJsonObject(e.saveToJsonObject(StiJsonSaveMode.Report)),this.columns.push(i))},this),null==this.dashboardInteraction&&(this.dashboardInteraction=new StiTableDashboardInteraction)}fetchAllMeters(){return this.columns.slice()}getMeters(){return this.columns.slice()}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.columns)}get isDefined(){return null!=this.columns&&0<this.columns.length}get allowSkipOwnFilter(){return!this.dashboardInteraction.drillDownFiltered}get foreColor(){return this.cells.data.foreColor}set foreColor(t){this.cells.data.foreColor=t}get font(){return this.cells.data.font}set font(t){this.cells.data.font=t}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}get cells(){return this._cells}set cells(t){null!=t&&(t.element=this),this._cells=t}shouldSerializeCells(){return null==this.cells||!this.cells.isDefault()}setString(i,r){switch(i){case"Title.Text":this.title.text=r;break}let l=0;for(let e of this.columns){let t=`Column${l++}.Label`;i==t&&(e.label=r)}}getString(i){switch(i){case"Title.Text":return this.title.text}let r=0;for(let e of this.columns){let t=`Column${r++}.Label`;if(i==t)return e.label}throw new Error(`Property with name `+i)}getAllStrings(){let e=["Title.Text"],i=0;return this.columns.forEach(t=>e.push(`Column${i++}.Label`)),e}addTableCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c){null==this.tableConditions&&(this.tableConditions=[]),this.tableConditions.push(new StiTableElementCondition(t,e,i,r,l,n,s,o,a,u,S,m,h,c))}get toolboxPosition(){return StiComponentToolboxPosition.TableElement}get localizedName(){return StiLocalization.get("Components","StiTable")}get headerForeColor(){return this.cells.columns.foreColor}set headerForeColor(t){this.cells.columns.foreColor=t}get headerFont(){return this.cells.columns.font}set headerFont(t){this.cells.columns.font=t}get footerForeColor(){return this.cells.totals.foreColor}set footerForeColor(t){this.cells.totals.foreColor=t}get footerFont(){return this.cells.totals.font}set footerFont(t){this.cells.totals.font=t}getColumnFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.columns.font)}getDataFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.data.font)}getTotalFont(){return StiDashboardStyleHelper.getElementFontFromStyle(this,this.cells.totals.font)}getNestedPages(){let e=[],i="";if(null!=this.dashboardInteraction&&this.dashboardInteraction.onClick==StiInteractionOnClick.ShowDashboard&&(i=this.dashboardInteraction?.drillDownPageKey,StiKeyHelper.isKey(i))){let t=this.report.pages.list.find(t=>t.guid==i);null!=t&&e.push(t)}for(let t of this.columns)if(null!=t?.dashboardInteraction&&t.dashboardInteraction.onClick==StiInteractionOnClick.ShowDashboard&&(i=t?.dashboardInteraction?.drillDownPageKey,StiKeyHelper.isKey(i))){let t=this.report.pages.list.find(t=>t.guid==i);null!=t&&e.push(t)}return 0==e.length?null:e[Stimulsoft.System.StiObject.stimulsoft]().distinct()}getFormatObjects(){return StiTableElementSelection.getSelectedObjects(this)}constructor(t=Rectangle.empty){super(t),this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.title=new __.e.StiTitle,this.layout=new StiElementLayout,this.group="",this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.userFilters=[],this.userSorts=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.tableConditions=[],this.crossFiltering=!0,this.helpUrl="user-manual/dashboards_table.htm",this.columns=[],this.sizeMode=StiTableSizeMode.AutoSize,this.rowsPerPage=0,this.pageTurnTime=0,this.currentPageIndex=-1,this.cells=new StiTableCells,this.title.text=this.localizedName,this.dashboardInteraction=new StiTableDashboardInteraction}}__.L.StiTableElement=StiTableElement}let Exception=Stimulsoft.System.Exception,IStiTableSection=(__.L.StiTableElementConditionHelper=class{static async getConditionResult(r,e,l){let t=!1;if(null!=r){try{if(e.dataType==__.a.StiFilterDataType.Numeric){let t=StiNumber.tryParse(r);t.successfully&&(r=t.result)}else if(e.dataType==__.a.StiFilterDataType.DateTime){let t=DateTime.fromString(r.toString(),!1);r=null!=t?t:DateTime.fromOADate(r[Stimulsoft.System.StiObject.stimulsoft]().toNumber())}}catch{}let i=await this.getConditionValue(e,l),t=r;if(null!=t&&null!=i){r[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(r=r.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=r);try{switch(e.condition){case __.a.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case __.a.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case __.a.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case __.a.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case __.a.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case __.a.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case __.a.StiFilterCondition.Containing:{let t=r.toString(),e=i.toString();return-1!=t.indexOf(e)}case __.a.StiFilterCondition.NotContaining:{let t=r.toString(),e=i.toString();return-1==t.indexOf(e)}case __.a.StiFilterCondition.BeginningWith:{let t=r.toString(),e=i.toString();return t.startsWith(e)}case __.a.StiFilterCondition.EndingWith:{let t=r.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}static async getConditionValue(i,r){try{let e=i.isExpression?await StiReportParser.parseAsync(`{${i.value}}`,r):i.value;switch(i.dataType){case __.a.StiFilterDataType.String:return e;case __.a.StiFilterDataType.Numeric:return null!=e?e[Stimulsoft.System.StiObject.stimulsoft]().toNumber():0;case __.a.StiFilterDataType.DateTime:{let t=DateTime.fromString(e,!1);if(null!=t)return t;break}case __.a.StiFilterDataType.Boolean:return"true"==e.toLowerCase()}}catch(t){let e=`Problem when parsing Table Element ${i} value
|
|
9
9
|
`;throw Exception.log(t,r,e),t}return null}static async processBackColor(t,e,r,l,n){for(let i of r.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let e=0;e<n.length;e++){let t=n[e];if(0<=i.keyDataFieldMeters.indexOf(t)&&0<(i.permissions&StiTableConditionPermissions.BackColor)){let t=l[e];if(await this.getConditionResult(t,i,r))return i.backColor}}return t}static async processForeColor(t,e,r,l,n){for(let i of r.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let e=0;e<n.length;e++){let t=n[e];if(i.keyDataFieldMeters.includes(t)&&0<(i.permissions&StiTableConditionPermissions.ForeColor)){let t=l[e];if(await this.getConditionResult(t,i,r))return i.foreColor}}return t}static async processForeAndBackColor(t,e,i,l,n,s){let o={foreColor:null,backColor:null};for(let r of l.tableConditions.filter(t=>0<=t.keyDestinationMeters.indexOf(i)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if((null==o.foreColor||null==o.backColor)&&0<=r.keyDataFieldMeters.indexOf(t)&&await this.getConditionResult(e,r,l)&&(0<(r.permissions&StiTableConditionPermissions.ForeColor)&&(o.foreColor=r.foreColor),0<(r.permissions&StiTableConditionPermissions.BackColor))&&(o.backColor=r.backColor),null!=o.backColor&&null!=o.foreColor)return o}return null==o.foreColor&&(o.foreColor=t),null==o.backColor&&(o.backColor=e),o}static async processFontStyle(t,e,i,r,l){let n=0<i.tableConditions.length?await this.processFontBold(t.bold,e,i,r,l):t.bold,s=0<i.tableConditions.length?await this.processFontItalic(t.italic,e,i,r,l):t.italic,o=0<i.tableConditions.length?await this.processFontUnderline(t.underline,e,i,r,l):t.underline,a=0<i.tableConditions.length?await this.processFontStrikeout(t.strikeout,e,i,r,l):t.strikeout,u=FontStyle.Regular;return n&&(u^=FontStyle.Bold),s&&(u^=FontStyle.Italic),o&&(u^=FontStyle.Underline),a&&(u^=FontStyle.Strikeout),u}static async processFontStrikeout(t,e,l,n,s){for(let r of l.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if(r.keyDataFieldMeters.includes(t)&&0<(r.permissions&StiTableConditionPermissions.FontStyleStrikeout)&&await this.getConditionResult(e,r,l))return r.font.strikeout}return t}static async processFontUnderline(t,e,l,n,s){for(let r of l.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if(r.keyDataFieldMeters.includes(t)&&0<(r.permissions&StiTableConditionPermissions.FontStyleUnderline)&&await this.getConditionResult(e,r,l))return r.font.underline}return t}static async processFontItalic(t,e,l,n,s){for(let r of l.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if(r.keyDataFieldMeters.includes(t)&&0<(r.permissions&StiTableConditionPermissions.FontStyleItalic)&&await this.getConditionResult(e,r,l))return r.font.italic}return t}static async processFontBold(t,e,l,n,s){for(let r of l.tableConditions.filter(t=>t.keyDestinationMeters.includes(e)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if(r.keyDataFieldMeters.includes(t)&&0<(r.permissions&StiTableConditionPermissions.FontStyleBold)&&await this.getConditionResult(e,r,l))return r.font.bold}return t}static async getIconCondition(e,l,n,s){for(let r of l.tableConditions.filter(t=>t.keyDestinationMeters&&0<=t.keyDestinationMeters.indexOf(e)))for(let i=0;i<s.length;i++){let t=s[i],e=n[i];if(0<=r.keyDataFieldMeters.indexOf(t)&&await this.getConditionResult(e,r,l))return r}return null}},Stimulsoft.Report.Dashboard.IStiTableSection),StiPivotTableElement=__.O.StiPivotTableElement,StiPivotToContainerCache=Stimulsoft.Report.Dashboard.StiPivotToContainerCache;{class K7a{implements(){let t=[IStiTableSection,IStiJsonReportObject];return(this.implements=()=>t)()}meta(){return[new StiColorMeta("BackColor","",Color.transparent),new StiColorMeta("ForeColor","",Color.transparent),new StiFontMeta("Font","","Arial",10)]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static createFromJsonObject(t){let e=new K7a;return e.loadFromJsonObject(t),e}static createFromXml(t){let e=new K7a;return e.loadFromXml(t),e}clone(){let t=this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone();return t.font=this.font.clone(),t}isDefault(){return!this.shouldSerializeBackColor()&&!this.shouldSerializeForeColor()&&!this.shouldSerializeFont()}get backColor(){return this._backColor}set backColor(t){t.equals(this._backColor)||(this._backColor=t,this.clearElementCache())}shouldSerializeBackColor(){return!this.backColor.equals(Color.transparent)}get foreColor(){return this._foreColor}set foreColor(t){t.equals(this._foreColor)||(this._foreColor=t,this.clearElementCache())}shouldSerializeForeColor(){return!this.foreColor.equals(Color.transparent)}get font(){return this._font}set font(t){this._font!=t&&(this._font=t,this.clearElementCache())}shouldSerializeFont(){return!(null!=this.font&&"Arial"==this.font.name&&10==this.font.sizeInPoints&&this.font.style==FontStyle.Regular)}clearElementCache(){this.element?.is(StiPivotTableElement)&&this.element.isDesigning&&StiPivotToContainerCache.remove(this.element.as(StiPivotTableElement))}constructor(t,e,i){this._backColor=Color.transparent,this._foreColor=Color.transparent,this._font=new Font("Arial",10),null!=t&&(this.font=t),null!=e&&(this.foreColor=e),null!=i&&(this.backColor=i)}}__.L.StiTableSection=K7a}__.af.StiDataBarsColumnConverter=class extends StiMeterConverter{},__.af.StiDimensionColumnConverter=class extends StiMeterConverter{},__.af.StiSparklinesColumnConverter=class extends StiMeterConverter{},__.af.StiTableColumnConverter=class extends StiMeterConverter{},__.g.StiTextDashboardInteraction=class extends __.g.StiDashboardInteraction{isDefault(){return this.onHover==StiInteractionOnHover.ShowToolTip&&this.onClick==StiInteractionOnClick.OpenHyperlink&&this.hyperlinkDestination==StiInteractionOpenHyperlinkDestination.NewTab&&StiString.isNullOrEmpty(this.hyperlink)&&StiString.isNullOrEmpty(this.drillDownPageKey)&&null!=this.drillDownParameters&&0==this.drillDownParameters.length&&StiString.isNullOrEmpty(this.toolTip)}constructor(t,e,i,r,l,n,s){super(t,e,i,r,l,n,s),this.ident=StiInteractionIdent.Text,this.availableOnClick=StiAvailableInteractionOnClick.OpenHyperlink|StiAvailableInteractionOnClick.ShowDashboard,this.onClick=StiInteractionOnClick.OpenHyperlink}};let StiParserType=Stimulsoft.Report.StiParserType,StiTextDashboardInteraction=__.g.StiTextDashboardInteraction,StiDashboardDesignAssembly=Stimulsoft.Report.Dashboard.StiDashboardDesignAssembly,ImplementsIStiTextElement=Stimulsoft.Report.Dashboard.ImplementsIStiTextElement,IStiTextElement=Stimulsoft.Report.Dashboard.IStiTextElement,IStiTextFont=Stimulsoft.Report.Components.IStiTextFont,ImplementsIStiTreeViewElement=(StiExportToolAttribute.add("StiTextElement","Stimulsoft.Dashboard.Export.Tools.StiTextElementExportTool"),__.W.StiTextElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTextFont,IStiSimpleShadow,IStiCornerRadius,IStiForeColor,IStiTextHorAlignment,IStiVertAlignment,IStiTextElement,IStiTitleElement,IStiGlobalizationProvider,...ImplementsIStiTextFormat,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiForeColor,...ImplementsIStiTextHorAlignment,...ImplementsIStiVertAlignment,...ImplementsIStiTextElement,...ImplementsIStiTitleElement,IStiJsonReportObject,IStiElementInteraction]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.title=null!=this.title?this.title.clone():null,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e.dashboardInteraction=this.dashboardInteraction?.clone(),e.measures=this.measures.map(t=>t.clone()),e}meta(){return[...super.meta(),new StiRemoveMeta("HorAlignment"),new StiRemoveMeta("Padding"),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("Style"),new StiObjectMeta("DashboardInteraction").check(()=>null!=this.dashboardInteraction).set(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromJsonObject(t.value)?.as(StiTextDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}).setXml(t=>{let e=StiDashboardInteractionLoader.loadInteractionFromXml(t)?.as(StiTextDashboardInteraction);null!=e&&(this.dashboardInteraction=e)}),new StiObjectMeta("Padding").get(()=>this.padding.saveToJsonObject(0,0,0,0)),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Text"),new StiEnumMeta("VertAlignment","",StiVertAlignment,StiVertAlignment.Center),new StiEnumMeta("SizeMode","",StiTextSizeMode,StiTextSizeMode.Fit),new StiBoolMeta("CrossFiltering","",!0),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiBoolMeta("RightToLeft","",!1),new StiObjectMeta("Measures").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.measures,t)).set(t=>this.measures.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value).as(StiTextMeasureMeter)).filter(t=>null!=t))).setXml(t=>this.measures.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)).filter(t=>null!=t))),new StiEventMeta("ClickEvent")]}get isDefined(){return!StiString.isNullOrWhiteSpace(this.text)}get isQuerable(){return!this.isReportParserExpression&&!StiString.isNullOrEmpty(this.text)&&this.text.includes("{")}fetchAllMeters(){return this.getMeters()}getMeters(){if(this.isReportParserExpression)return[];{if(StiString.isNullOrEmpty(this.text))return[];let e=[],i=StiExpressionHelper.fetchBlocksFromExpression(this.text),r=StiTextMeasureMeter.getUniqueNames(this.measures);for(let t of i)r.containsKey(t)?e.push(r.get(t)):e.push(new __.W.StiTextMeter(t,t,t));return e}}retrieveUsedDataNames(){return this.isReportParserExpression?super.retrieveUsedDataNames():StiUsedDataHelper.getMany2(this.getMeters())[Stimulsoft.System.StiObject.stimulsoft]().distinct()}getSimpleText(){return this.getHtmlTextHelper().getSimpleText(this.text,StiDashboardStyleHelper.getForeColor(this))}getMeasures(){return this.measures.slice()}addMeasure(){let t=new StiTextMeasureMeter;t.expression="Sum(DataSource.Field)",this.measures.push(t)}getMeasure(t){return StiMeterHelper.Text.getMeter2(t)}removeMeasure(t){t<this.measures.length&&this.measures.splice(t,1)}removeAllMeasures(){this.measures.splice(0,this.measures.length)}insertMeasure(t,e){let i=e.as(StiTextMeasureMeter);0<=t&&t<this.measures.length?this.measures.splice(t,0,i):this.measures.push(i)}getFont(){let t=this.getHtmlTextHelper();if(null==t)return null;return t.getFont(this,this.text,StiDashboardStyleHelper.getForeColor(this))}setFontName(t){let e=this.getHtmlTextHelper();null!=e&&(this.text=e.setFontName(this,this.text,t,StiDashboardStyleHelper.getForeColor(this)))}setFontSize(t){let e=this.getHtmlTextHelper();null!=e&&(this.text=e.setFontSize(this,this.text,t,StiDashboardStyleHelper.getForeColor(this)))}growFontSize(){let t=this.getHtmlTextHelper();null!=t&&(this.text=t.growFontSize(this,this.text,StiDashboardStyleHelper.getForeColor(this)))}shrinkFontSize(){let t=this.getHtmlTextHelper();null!=t&&(this.text=t.shrinkFontSize(this,this.text,StiDashboardStyleHelper.getForeColor(this)))}setFontBoldStyle(t){let e=this.getHtmlTextHelper();null!=e&&(this.text=e.setFontBoldStyle(this,this.text,t,StiDashboardStyleHelper.getForeColor(this)))}setFontItalicStyle(t){let e=this.getHtmlTextHelper();null!=e&&(this.text=e.setFontItalicStyle(this,this.text,t,StiDashboardStyleHelper.getForeColor(this)))}setFontUnderlineStyle(t){let e=this.getHtmlTextHelper();null!=e&&(this.text=e.setFontUnderlineStyle(this,this.text,t,StiDashboardStyleHelper.getForeColor(this)))}get horAlignment(){let t=this.getHtmlTextHelper();return t.getHorAlign(this,this.text,StiDashboardStyleHelper.getForeColor(this))}set horAlignment(t){this.text=this.getHtmlTextHelper().setHorAlignment(this,this.text,t,StiDashboardStyleHelper.getForeColor(this))}get style(){return this.componentStyle}set style(t){this.componentStyle=t}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break;case"Text":this.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text;case"Text":return this.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text","Text"]}get toolboxPosition(){return StiComponentToolboxPosition.TextElement}get localizedName(){return StiLocalization.get("Components","StiText")}get isReportParserExpression(){return Stimulsoft.StiOptions.Engine.dashboardTextElementExpressionParser==StiParserType.ReportParser||StiExpressionHelper.isThisExpression(this.text)}getNestedPages(){if(null==this.dashboardInteraction||this.dashboardInteraction.onClick!=StiInteractionOnClick.ShowDashboard)return null;let e=this.dashboardInteraction.drillDownPageKey;if(StiKeyHelper.isEmptyKey(e))return null;let t=this.report.pages.list.find(t=>t.guid==e);if(null==t)return null;return[t]}getHtmlTextHelper(){return StiDashboardDesignAssembly.getHtmlTextHelper()}constructor(t=Rectangle.empty){super(t),this.title=new __.e.StiTitle,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.text="",this.rightToLeft=!1,this.group="",this.foreColor=Color.transparent,this.crossFiltering=!0,this.vertAlignment=StiVertAlignment.Center,this.defaultClientRectangle=new Rectangle(0,0,100,40),this.helpUrl="user-manual/dashboards_text.htm",this.sizeMode=StiTextSizeMode.Fit,this.measures=[],this.title.text=this.localizedName,this.title.visible=!1,this.padding=StiPadding.create(0),this.dashboardInteraction=new StiTextDashboardInteraction}},__.ac.StiTextConverter=class{},__.K.StiTreeItem=class{toString(){return null==this.key?"":this.key.toString()}constructor(t,e){this.key=t,this.meter=e}},Stimulsoft.Report.Dashboard.ImplementsIStiTreeViewElement),IStiTreeViewElement=Stimulsoft.Report.Dashboard.IStiTreeViewElement,StiItemFilterMode=Stimulsoft.Report.Dashboard.StiItemFilterMode,StiTreeItem=(StiExportToolAttribute.add("StiTreeViewElement","Stimulsoft.Dashboard.Export.Tools.StiTreeViewElementExportTool"),__.K.StiTreeViewElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTreeViewElement,IStiSimpleShadow,IStiCornerRadius,IStiTitleElement,IStiGlobalizationProvider,...ImplementsIStiTreeViewElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiTitleElement,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.keyMeters=this.keyMeters.map(t=>t.clone()),e.userFilters=this.userFilters.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.textFormat=this.textFormat.clone(),e.title=null!=this.title?this.title.clone():null,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiStringNullOrEmptyMeta("ParentKey"),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiBoolMeta("ShowAllValue"),new StiBoolMeta("ShowBlanks"),new StiObjectMeta("KeyMeters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.keyMeters,t)).set(t=>this.keyMeters.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.keyMeters.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t)),new StiEnumMeta("SelectionMode","",StiItemSelectionMode,StiItemSelectionMode.Multi),new StiEnumMeta("FilterMode","",StiItemFilterMode,StiItemFilterMode.SelectedOnly),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("TextFormat").check(()=>null!=this.textFormat).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report))]}getParentKey(){return this.parentKey}setParentKey(t){this.parentKey=t}async applyDefaultFilters(){let t=await __.K.StiTreeViewHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}getIdentityFilters(){return __.K.StiTreeViewHelper.getValueMeterExpressions(this).map(t=>{let e=new StiDataFilterRule;return e.condition=StiDataFilterCondition.Any,e.elementKey=this.key,e.path=t,e})}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return t.push(...this.keyMeters),t}getMeters(){let t=[];return t.push(...this.keyMeters),t}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.keyMeters)}get isDefined(){return null!=this.keyMeters&&0<this.keyMeters.length}getKeyMeter(t){return null!=t?StiMeterHelper.TreeView.getKey2(t):null}getKeyMeterByIndex(t){return t<this.keyMeters.length?this.keyMeters[t]:null}insertKeyMeter(t,e){let i=e.as(__.K.StiKeyTreeViewMeter);null!=i&&(0<=t&&t<this.keyMeters.length?this.keyMeters.splice(t,0,i):this.keyMeters.push(i))}removeKeyMeter(t){t<this.keyMeters.length&&this.keyMeters.splice(t,1)}removeAllKeyMeters(){this.keyMeters.splice(0,this.keyMeters.length)}addNewKeyMeter(){let t=new __.K.StiKeyTreeViewMeter;return this.keyMeters.push(t),t}addKey(t){null==this.keyMeters&&(this.keyMeters=[]),this.keyMeters.push(StiMeterHelper.TreeView.getKey2(t))}convertFrom(t){if(t.is(__.J.StiTreeViewBoxElement))return this.keyMeters.splice(0,this.keyMeters.length),void t.keyMeters.forEach(t=>{let e=new __.K.StiKeyTreeViewMeter;e.loadFromJsonObject(t.saveToJsonObject(StiJsonSaveMode.Report)),this.keyMeters.push(e)});let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter));if(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)){let t=new __.K.StiKeyTreeViewMeter;t.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report)),this.keyMeters.splice(0,this.keyMeters.length),this.keyMeters.push(t)}}setString(t,e){switch(t){case"Title.Text":this.title.text=e;break}}getString(t){switch(t){case"Title.Text":return this.title.text}throw new Error(`Property with name `+t)}getAllStrings(){return["Title.Text"]}get toolboxPosition(){return StiComponentToolboxPosition.TreeViewElement}get localizedName(){return StiLocalization.get("Components","StiTreeView")}constructor(t=Rectangle.empty){super(t),this.group="",this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.title=new __.e.StiTitle,this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.userFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.font=new Font("Arial",8),this.foreColor=Color.transparent,this.showAllValue=!1,this.showBlanks=!1,this.selectionMode=StiItemSelectionMode.Multi,this.filterMode=StiItemFilterMode.SelectedOnly,this.textFormat=new StiGeneralFormatService,this.defaultClientRectangle=new Rectangle(0,0,200,300),this.helpUrl="user-manual/dashboards_data_filtering_tree_view.htm",this.keyMeters=[],this.title.text=this.localizedName,this.title.visible=!1}},__.K.StiTreeItem),ImplementsIStiTreeViewBoxElement=(__.K.StiTreeViewHelper=class{static fetchItems(s,o){let e=new StiTreeItem;for(let t of s.rows){let l=0,n=e;for(let r of t){let t=null==r,e="string"==typeof r?StiString.isNullOrEmpty(r):null==r,i=t||e;if(o||!i){let t=null!=n.items?n.items.find(t=>t.key==r):null;null==t&&(t=new StiTreeItem(r,s.meters[l]),null==n.items&&(n.items=[]),n.items.push(t)),n=t}l++}}return e.items}static async fetchDefaultUserFilters(t){if(t.showAllValue)return null;if(t.selectionMode==StiItemSelectionMode.Multi)return null;let e=await StiElementDataCache.getOrCreate(t),i=this.fetchItems(e,t.showBlanks);if(null==i)return null;let r=i[0];if(null==r)return null;let l=r.meter,n=l.expression;return[StiDataFilterCreator.createEqualBasedOnValue(r.key,n,t)]}static format(t,e){if(e instanceof DateTime&&!(t.textFormat.is2(StiDateFormatService)||t.textFormat.is2(StiTimeFormatService)||t.textFormat.is2(StiCustomFormatService)))return e.toShortDateString();let i=t?.report?.getParsedCulture();if(StiExtValueConverter.isEligable(e,i))return StiExtValueConverter.convert(e,i);return t.textFormat.format(e)}static getValueMeterExpressions(t){return t.keyMeters?.map(t=>t.expression)}},Stimulsoft.Report.Dashboard.ImplementsIStiTreeViewBoxElement),IStiTreeViewBoxElement=Stimulsoft.Report.Dashboard.IStiTreeViewBoxElement,StiTreeViewHelper=(StiExportToolAttribute.add("StiTreeViewBoxElement","Stimulsoft.Dashboard.Export.Tools.StiTreeViewBoxElementExportTool"),__.J.StiTreeViewBoxElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiTreeViewBoxElement,IStiSimpleShadow,IStiCornerRadius,IStiFixedHeightElement,...ImplementsIStiTreeViewBoxElement,...ImplementsIStiSimpleShadow,...ImplementsIStiCornerRadius,...ImplementsIStiFixedHeightElement,IStiJsonReportObject]);return(this.implements=()=>t)()}meta(){return[new StiBoolMeta("FixedHeight","",!0),...super.meta(),new StiStringNullOrEmptyMeta("ParentKey"),new StiObjectMeta("UserFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.userFilters,t)).set(t=>this.userFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.userFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformActions").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformActions,t)).set(t=>this.transformActions.push(...t.value.properties().map(t=>StiDataActionRule.loadFromJson(t.value)))).setXml(t=>this.transformActions.push(...t.childNodes.map(t=>StiDataActionRule.loadFromXml(t)))),new StiObjectMeta("TransformFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformFilters,t)).set(t=>this.transformFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.transformFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiObjectMeta("TransformSorts").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.transformSorts,t)).set(t=>this.transformSorts.push(...t.value.properties().map(t=>StiDataSortRule.loadFromJson(t.value)))).setXml(t=>this.transformSorts.push(...t.childNodes.map(t=>StiDataSortRule.loadFromXml(t)))),new StiObjectMeta("DataFilters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.dataFilters,t)).set(t=>this.dataFilters.push(...t.value.properties().map(t=>StiDataFilterRule.loadFromJson(t.value)))).setXml(t=>this.dataFilters.push(...t.childNodes.map(t=>StiDataFilterRule.loadFromXml(t)))),new StiColorMeta("ForeColor","",Color.transparent),new StiStringNullOrEmptyMeta("Font").get(()=>StiJsonReportObjectHelper.Serialize.fontArial8(this.font)).set(t=>this.font=StiJsonReportObjectHelper.Deserialize.font(t.value,this.font)).setXml(t=>this.font=Stimulsoft.System.Convert.toFont(t.textContent)),new StiBoolMeta("ShowAllValue"),new StiBoolMeta("ShowBlanks"),new StiEnumMeta("SelectionMode","",StiItemSelectionMode,StiItemSelectionMode.Multi),new StiEnumMeta("FilterMode","",StiItemFilterMode,StiItemFilterMode.SelectedOnly),new StiObjectMeta("KeyMeters").get(t=>StiJsonReportObjectHelper.Serialize.objectArray(this.keyMeters,t)).set(t=>this.keyMeters.push(...t.value.properties().map(t=>StiMeterLoader.loadFromJson(t.value)))).setXml(t=>this.keyMeters.push(...t.childNodes.map(t=>StiMeterLoader.loadFromXml(t)))),new StiEnumMeta("Style","",StiElementStyleIdent,StiElementStyleIdent.Auto),new StiStringNullOrEmptyMeta("Group"),new StiStringNullOrEmptyMeta("CustomStyleName"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("TextFormat").check(()=>null!=this.textFormat).set(t=>this.textFormat=StiFormatService.createFromJsonObject(t.value)).setXml(t=>this.textFormat=StiFormatService.loadFormatFromXml(t,this.report)),new StiRemoveMeta("MinSize"),new StiRemoveMeta("MaxSize"),new StiEnumMeta("InclusionMode","",StiFilterInclusionMode,StiFilterInclusionMode.SelectionOnly)]}clone(t){let e=super.clone(t);return e.keyMeters=this.keyMeters.map(t=>t.clone()),e.userFilters=this.userFilters.map(t=>t.clone()),e.transformActions=this.transformActions.map(t=>t.clone()),e.transformFilters=this.transformFilters.map(t=>t.clone()),e.transformSorts=this.transformSorts.map(t=>t.clone()),e.dataFilters=this.dataFilters.map(t=>t.clone()),e.textFormat=this.textFormat.clone(),e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}get isFixedHeight(){return this.fixedHeight}getParentKey(){return this.parentKey}setParentKey(t){this.parentKey=t}async applyDefaultFilters(){let t=await __.J.StiTreeViewBoxHelper.fetchDefaultUserFilters(this);null!=t&&(this.userFilters=t)}getIdentityFilters(){return __.J.StiTreeViewBoxHelper.getValueMeterExpressions(this).map(t=>{let e=new StiDataFilterRule;return e.condition=StiDataFilterCondition.Any,e.elementKey=this.key,e.path=t,e})}get style(){return this._style}set style(t){(this._style=t)!=StiElementStyleIdent.Custom&&(this.customStyleName="")}fetchAllMeters(){let t=[];return t.push(...this.keyMeters),t}getMeters(){let t=[];return t.push(...this.keyMeters),t}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.keyMeters)}get isDefined(){return null!=this.keyMeters&&0<this.keyMeters.length}getKeyMeter(t){return null!=t?StiMeterHelper.TreeViewBox.getKey2(t):null}getKeyMeterByIndex(t){return t<this.keyMeters.length?this.keyMeters[t]:null}insertKeyMeter(t,e){let i=e.as(__.J.StiKeyTreeViewBoxMeter);null!=i&&(0<=t&&t<this.keyMeters.length?this.keyMeters.splice(t,0,i):this.keyMeters.push(i))}removeKeyMeter(t){t<this.keyMeters.length&&this.keyMeters.splice(t,1)}removeAllKeyMeters(){this.keyMeters.splice(0,this.keyMeters.length)}addNewKeyMeter(){let t=new __.J.StiKeyTreeViewBoxMeter;return this.keyMeters.push(t),t}addKey(t){null==this.keyMeters&&(this.keyMeters=[]),this.keyMeters.push(StiMeterHelper.TreeViewBox.getKey2(t))}convertFrom(t){if(t.is(__.K.StiTreeViewElement))return this.keyMeters.splice(0,this.keyMeters.length),void t.keyMeters.forEach(t=>{let e=new __.J.StiKeyTreeViewBoxMeter;e.loadFromJsonObject(t.saveToJsonObject(StiJsonSaveMode.Report)),this.keyMeters.push(e)});let e=t.fetchAllMeters();if(null==e)return;let i=e.find(t=>t.is(IStiValueMeter));if(null!=(i=null==i?e.find(t=>t.is(IStiMeasureMeter)):i)){let t=new __.J.StiKeyTreeViewBoxMeter;t.loadFromJsonObject(i.saveToJsonObject(StiJsonSaveMode.Report)),this.keyMeters.splice(0,this.keyMeters.length),this.keyMeters.push(t)}}get toolboxPosition(){return StiComponentToolboxPosition.TreeViewBoxElement}get localizedName(){return StiLocalization.get("Components","StiTreeViewBox")}getMinSize(){let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMinSize(t){}getMaxSize(){if(!this.fixedHeight)return super.getMaxSize();let t=null!=this.report?this.report.getCurrentPage():null;if(null==t)return Size.empty;let e=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,t.gridSize,!0);return new Size(0,e)}setMaxSize(t){this.fixedHeight||super.setMaxSize(t)}get fixedHeight(){return this._fixedHeight}set fixedHeight(t){this._fixedHeight!=t&&(this._fixedHeight=t)&&(this.height=StiAlignValue.alignToMaxGrid(this.defaultClientRectangle.height,this.page?.gridSize,!0))}constructor(t=Rectangle.empty){super(t),this.group="",this.inclusionMode=StiFilterInclusionMode.SelectionOnly,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this._style=StiElementStyleIdent.Auto,this.customStyleName="",this.userFilters=[],this.transformActions=[],this.transformFilters=[],this.transformSorts=[],this.dataTransformation={},this.dataFilters=[],this.font=new Font("Arial",8),this.foreColor=Color.transparent,this.showAllValue=!1,this.showBlanks=!1,this.selectionMode=StiItemSelectionMode.Multi,this.filterMode=StiItemFilterMode.SelectedOnly,this.textFormat=new StiGeneralFormatService,this.defaultClientRectangle=new Rectangle(0,0,200,40),this.helpUrl="user-manual/dashboards_data_filtering_tree_view_box.htm",this._fixedHeight=!0,this.keyMeters=[]}},__.K.StiTreeViewHelper),ImplementsIStiWebContentElement=(__.J.StiTreeViewBoxHelper=class{static async fetchDefaultUserFilters(t){if(t.showAllValue)return null;if(t.selectionMode==StiItemSelectionMode.Multi)return null;let e=await StiElementDataCache.getOrCreate(t),i=StiTreeViewHelper.fetchItems(e,t.showBlanks);if(null==i)return null;let r=i[0];if(null==r)return null;let l=r.meter,n=l.expression;return[StiDataFilterCreator.createEqualBasedOnValue(r.key,n,t)]}static format(t,e){return e instanceof DateTime&&!(t.textFormat.is2(StiDateFormatService)||t.textFormat.is2(StiTimeFormatService)||t.textFormat.is2(StiCustomFormatService))?e.toShortDateString():StiExtValueConverter.isEligable(e,t?.report?.culture)?StiExtValueConverter.convert(e,t?.report?.culture):t.textFormat.format(e)}static getValueMeterExpressions(t){return t.keyMeters?.map(t=>t.expression)}},Stimulsoft.Report.Dashboard.ImplementsIStiWebContentElement),IStiWebContentElement=Stimulsoft.Report.Dashboard.IStiWebContentElement;StiExportToolAttribute.add("StiWebContentElement","Stimulsoft.Dashboard.Export.Tools.StiWebContentElementExportTool"),__._.StiWebContentElement=class extends __.e.StiElement{implements(){let t=super.implements().concat([IStiWebContentElement,IStiCornerRadius,IStiSimpleShadow,IStiTitleElement,...ImplementsIStiWebContentElement,...ImplementsIStiCornerRadius,...ImplementsIStiSimpleShadow,...ImplementsIStiTitleElement,IStiJsonReportObject]);return(this.implements=()=>t)()}clone(t){let e=super.clone(t);return e.title=null!=this.title?this.title.clone():null,e.shadow=this.shadow?.clone(),e.cornerRadius=this.cornerRadius?.clone(),e}meta(){return[...super.meta(),new StiStringNullOrEmptyMeta("URL","url"),new StiStringNullOrEmptyMeta("EmbedCode"),new StiStringNullOrEmptyMeta("CornerRadius").get(()=>this.cornerRadius.toString()).set(t=>this.cornerRadius=StiCornerRadius.tryParse(t.value.toString())).setXml(t=>this.cornerRadius=StiCornerRadius.tryParse(t.textContent)),new StiStringNullOrEmptyMeta("Shadow").get(()=>StiJsonReportObjectHelper.Serialize.jShadow(this.shadow)).set(t=>this.shadow=StiJsonReportObjectHelper.Deserialize.simpleSahdow(t.value)).setXml(t=>this.shadow=StiSimpleShadow.loadFromXml(t.textContent)),new StiObjectMeta("Title").check(()=>null!=this.title).set(t=>this.title=__.e.StiTitle.createFromJsonObject(t.value)).setXml(t=>this.title=__.e.StiTitle.createFromXml(t))]}get isDefined(){return!StiString.isNullOrWhiteSpace(this.url)||!StiString.isNullOrWhiteSpace(this.embedCode)}get isQuerable(){return this.isDefined}fetchAllMeters(){return null}getMeters(){if(!this.isURLExpressionOrHyperlinkDataColumnDefined)return[];if(this.isURLExpressionDefined)return StiExpressionHelper.fetchBlocksFromExpression(this.url).map(t=>new StiWebContentMeter(t,t,t));{let t=StiHyperlinkProcessor.getRealDataColumnFromHyperlink(this.report,this.url),e=[];return e.push(new StiWebContentMeter(t,t,t)),e}}retrieveUsedDataNames(){return StiUsedDataHelper.getMany2(this.getMeters())[Stimulsoft.System.StiObject.stimulsoft]().distinct()}get toolboxPosition(){return StiComponentToolboxPosition.WebContentElement}get localizedName(){return StiLocalization.get("Components","StiWebContent")}get isURLExpressionOrHyperlinkDataColumnDefined(){return this.isURLExpressionDefined||this.isHyperlinkDataColumnDefined}get isURLExpressionDefined(){return this.url?.[Stimulsoft.System.StiObject.stimulsoft]().contains("{")&&this.url?.[Stimulsoft.System.StiObject.stimulsoft]().contains("}")}get isHyperlinkDataColumnDefined(){return!StiString.isNullOrWhiteSpace(StiHyperlinkProcessor.getRealDataColumnFromHyperlink(this.report,this.url))}constructor(t=Rectangle.empty){super(t),this.title=new __.e.StiTitle,this.shadow=new StiSimpleShadow,this.cornerRadius=new StiCornerRadius(0),this.defaultClientRectangle=new Rectangle(0,0,120,120),this.helpUrl="user-manual/dashboards_image.htm",this.title.text=this.localizedName,this.title.visible=!1,this.padding=StiPadding.create(0)}},__.k.StiInplaceDesigner=class{};{let t;(t=>{t[t["Left"]=1]="Left",t[t["Right"]=2]="Right",t[t["Center"]=3]="Center",t[t["Justify"]=4]="Justify"})(t=__.r.StiRichTextAlignment||(__.r.StiRichTextAlignment={}))}__.r.StiRichBoxControl=class{selectAll(){this.selectedText=this.text}select(t,e){!StiString.isNullOrEmpty(this.text)&&t<this.text.length&&(this.selectedText=this.text.substr(t,e))}beginUpdate(){}endUpdate(){}setSelectionFont(t){return this.selectionFont=StiFontUtils.changeFontName(this.selectionFont,t),!0}setSelectionSize(t){return this.selectionFont=StiFontUtils.changeFontSize(this.selectionFont,t),!0}setSelectionBold(t){return this.selectionFont=StiFontUtils.changeFontStyleBold(this.selectionFont,t),!0}setSelectionItalic(t){return this.selectionFont=StiFontUtils.changeFontStyleItalic(this.selectionFont,t),!0}setSelectionUnderlined(t){return this.selectionFont=StiFontUtils.changeFontStyleUnderline(this.selectionFont,t),!0}constructor(){this.selectionFont=new Font("Arial",12),this.selectionColor=Color.black,this.font=new Font("Arial",12),this.text="",this.selectedText=""}};let StiTextRenderer=Stimulsoft.Base.Drawing.StiTextRenderer,StiRichTextAlignment=__.r.StiRichTextAlignment,ColorTranslator=Stimulsoft.System.Drawing.ColorTranslator,StiHtmlState=Stimulsoft.Base.Drawing.StiHtmlState,StiHtmlTagsState=Stimulsoft.Base.Drawing.StiHtmlTagsState,StiRichBoxControl=__.r.StiRichBoxControl,StiHtmlTextRender=(__.r.StiHtmlTextHelper=class{setFontName(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.setSelectionFont(i),this.getHtmlText(l,r)}setFontSize(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.setSelectionSize(Math.round(i)),this.getHtmlText(l,r)}growFontSize(t,e,i){let r=new StiRichBoxControl;return this.setHtmlText(e,t,r,i),r.selectAll(),r.setSelectionSize(Math.round(r.selectionFont.size+1)),this.getHtmlText(r,i)}shrinkFontSize(t,e,i){let r=new StiRichBoxControl;return this.setHtmlText(e,t,r,i),r.selectAll(),0<r.selectionFont.size-1&&r.setSelectionSize(Math.round(r.selectionFont.size-1)),this.getHtmlText(r,i)}setFontBoldStyle(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.setSelectionBold(i),this.getHtmlText(l,r)}setFontItalicStyle(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.setSelectionItalic(i),this.getHtmlText(l,r)}setFontUnderlineStyle(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.setSelectionUnderlined(i),this.getHtmlText(l,r)}setColor(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.selectionColor=i,this.getHtmlText(l,r)}setHorAlignment(t,e,i,r){let l=new StiRichBoxControl;return this.setHtmlText(e,t,l,r),l.selectAll(),l.selectionAlignment=this.getAlignment(i),this.getHtmlText(l,r)}getFont(t,e,i){let r=new StiRichBoxControl;return this.setHtmlText(e,t,r,i),r.selectAll(),r.selectionFont}getColor(t,e,i){let r=new StiRichBoxControl;return this.setHtmlText(e,t,r,i),r.selectAll(),r.selectionColor}getHorAlign(t,e,i){let r=new StiRichBoxControl;return this.setHtmlText(e,t,r,i),r.selectAll(),this.getAlignment2(r.selectionAlignment)}setHtmlText(t,e,s,i){let r="Arial",l=12,n=(s.selectAll(),s.setSelectionFont(r),s.setSelectionSize(l),new StiHtmlTagsState(!1,!1,!1,!1,l,r,i,Color.white,!1,!1,0,0,0,StiTextHorAlignment.Center)),o=null,a=new StiHtmlState(n,0),u=StiTextRenderer.parseHtmlToStates(t,a,!1);for(let n of u){let t=s.text.length,e=(s.select(t,0),null),i=(e=StiString.isNullOrEmpty(n.ts.href)?n.text.toString():`<a href="${n.ts.href}">${n.text.toString()}</a>`,s.text+=e,s.select(t,n.text.length),FontStyle.Regular),r=(n.ts.bold&&(i|=FontStyle.Bold),n.ts.italic&&(i|=FontStyle.Italic),n.ts.underline&&(i|=FontStyle.Underline),n.ts.fontName),l=n.ts.fontSize;null==o&&(o=s.font=new Font(r,l)),s.selectionFont=StiFontUtils.changeFontStyle2(r,l,i),s.selectionColor=n.ts.fontColor,s.selectionAlignment=this.getAlignment(n.ts.textAlign)}s.select(0,0)}getHtmlText(o,a){let u=!1,S=!1,m=!1,h=a,c="",t=(o.selectAll(),null!=o.selectionFont?o.selectionFont.name:"Arial"),e=null!=o.selectionFont?o.selectionFont.sizeInPoints:12,i=Enum.getName(StiRichTextAlignment,o.selectionAlignment);c=c+`<font face="${t}" size="${e}">`+`<text-align="${i}">`;for(let s=0;s<o.text.length;s++){o.select(s,1);let t=o.selectionFont,e=null!=t&&t.style&FontStyle.Bold,i=null!=t&&t.style&FontStyle.Italic,r=null!=t&&t.style&FontStyle.Underline,l=o.selectionColor,n="\n"==o.text[s];n&&(c+="<br />"),e&&!u&&(u=!0,c+="<b>"),!e&&u&&(u=!1,c+="</b>"),i&&!S&&(S=!0,c+="<i>"),!i&&S&&(S=!1,c+="</i>"),r&&!m&&(m=!0,c+="<u>"),!r&&m&&(m=!1,c+="</u>"),h.equals(l)||(h=(h.equals(a)?c+=`<font-color="${ColorTranslator.toHtml(l)}">`:l.equals(a)?c+="</font-color>":c=(c+="</font-color>")+`<font-color="${ColorTranslator.toHtml(l)}">`,l)),c+=o.text[s]}return h.equals(a)||(c+="</font-color>"),m&&(c+="</u>"),S&&(c+="</i>"),u&&(c+="</b>"),(c=c+"</text-align>"+"</font>").toString()}getAlignment(t){switch(t){case StiTextHorAlignment.Left:return StiRichTextAlignment.Left;case StiTextHorAlignment.Center:return StiRichTextAlignment.Center;case StiTextHorAlignment.Right:return StiRichTextAlignment.Right;case StiTextHorAlignment.Width:return StiRichTextAlignment.Justify;default:throw new Error("NotSupportedException")}}getAlignment2(t){switch(t){case StiRichTextAlignment.Left:return StiTextHorAlignment.Left;case StiRichTextAlignment.Center:return StiTextHorAlignment.Center;case StiRichTextAlignment.Right:return StiTextHorAlignment.Right;case StiRichTextAlignment.Justify:return StiTextHorAlignment.Width;default:throw new Error("NotSupportedException")}}getSimpleText(t,e){let i=new StiRichBoxControl;return this.setHtmlText(t,null,i,e),i.text}},Stimulsoft.Report.Components.StiHtmlTextRender),StringTrimming=Stimulsoft.System.Drawing.StringTrimming,HotkeyPrefix=Stimulsoft.System.Drawing.Text.HotkeyPrefix,StiTextElement=__.W.StiTextElement,StiTextOptions=Stimulsoft.Base.Drawing.StiTextOptions,StiTextDrawing=(__.h.StiAutoSizeHtmlTextHelper=class{static measure(t,e,i,r,l=null){let n=this.getTextScale(l,r),s=(e.height=1e3,new Font("Arial",12)),o=new StiText,a=(o.font=s,o.clientRectangle=e.clone(),o.text=i,r.as(StiTextElement)),u=(null==a||a.sizeMode!=StiTextSizeMode.WordWrap&&a.sizeMode!=StiTextSizeMode.FitAndWordWrap||(o.wordWrap=!0),StiHtmlTextRender.measureString(o));return new Size(u.width*n,u.height*n)}static getDefaultTextOptions(){return new StiTextOptions(!1,!1,!1,0,HotkeyPrefix.None,StringTrimming.None)}static getTextScale(t,e){if(null!=t)return t;let i=e[Stimulsoft.System.StiObject.stimulsoft]().as(IStiElement);return null!=i&&i.isDesigning?e.zoom:1}},Stimulsoft.Base.Drawing.StiTextDrawing);__.h.StiAutoSizeTextHelper=class{static toAlignment(t){switch(t){case StiHorAlignment.Left:return StiTextHorAlignment.Left;case StiHorAlignment.Center:return StiTextHorAlignment.Center;case StiHorAlignment.Right:return StiTextHorAlignment.Right;default:throw new StiTypeNotRecognizedException(t)}}static measure(t,e,i){let r=StiTextDrawing.measureString(t,e,i);return new Size(r.width,r.height)}static measure2(t,e,i,r){let l=new StiTextOptions,n=(l.angle=0,l.wordWrap=!0,StiTextDrawing.measureString(t,e,i,r,l));return new Size(n.width,n.height)}static measureFontSize(t,e,i,r){let l=this.measure(t,e,r),n=l.width>i.width?i.width/l.width:1,s=i.height<l.height?i.height/l.height:1,o=Math.min(Math.abs(n),Math.abs(s));return r.size*o}};{class StiBingMapHelper{static getContent(){let t=Stimulsoft.System.compactBase64("ba\frT4>*qvsmN/~Unև=O%Y=6%8;)mֲ%:bc+{DvZ+R)OƊ:I,UMN5o?/@d,@Èlr;E16Nҋ>@5i#]|'gkUt{4~YMOg0Jy_y\vVx?vLBˬjX)dVƳKQcWERQ}cun~;'3o/,hM\vG>k~/A~d?5_FpsʳϥphCsOcο2JsyxvaQI\vκt^Xvr)=R?:{Q5Y`~r].-.ZVU{F\tB>t~:o]ïs\v?T#F(~1>|CQy/c[kS$[~=Zl<ʿO#/`/^><FCAc|;8~]Nk|2/.qnF63\f+Ͻ lb%5DҾzX,$j+ˋ|wpi\bs#֚Qm_>\vJVg<>F$ʩkUλQK>l9qaw%HODBI\v}\b<D#|joz]S7{jf\v~Ϭ`6:?d74;/F|4S]azw;ӭÏS4=*~y3ҴM\tptrb3Ɖ\vO.Ljˊo4KS0y\b^--m\v16>%ưTJ2o[ˣ`h/Aʒ|<.#5S/i.,O҈nXU$`˦#rAP)q8OGS/7kGks|z8^nWQA!_-RVƗ(y%f7#}oBi,rʎ>'u|jחG%n:'Ҧu\vqfCB=T|r\va~|<ҥ?F,Iʳ9Zî]JkgIwoҨ9?T}UjaYTQE˞c7E\vjgZT/\tE^~oU>/;bFFǛWiY+e< e%#.!-(Y-!,¤[qN]d3R'TLDcVkiJ?f[%#+Ә֑<X^j\fVN4 ,[h53\bW@2yr+\f_\b\bc'Vgˍt.-Fg[/K6X@Xm!<{p\f!g*+z7.< G'RpuF.TZʞ[W\b@OitM>u@>3|7=^,\tuDCϴ?-2:θ`ƠJuN\vlq_:h2CLb9bgU@p]_)G¶GúsNG19M!x`E\f{!/T>ufV#eQy-\v5$SPBW|ʆdgJo!nsceUi~Fjw_7kz~j]Rf5Vf{w-s#iNMch!5^A]cO1}@*3Dv+קi|P/{_|uBұW#Pr_U81(\ba=Y =X6EP]*/#<0*'L\v\vklC=i%Q0ҩFHa:zt~}\tD]<ƑE{F;N'}k xF)Yq{Dҵa|LYO`^ׄ.U@Ew%ˎNGWr;˰G8uoElD$D|E|\tκ)QNNARMxqBz071ezC#?YxtWtʙL֑Hav@`ch_UP*`OַIPn(\tֆM5\fb=,$#>x(i7k75W\vWWFDz<lU2lHpUSjÝ\t{{DS}$\vKT<+*xdDּu#!V#ֽEtET˨81E~YhdƶDeYV/;8+b RƓS=\t3.LBM(6>0)8u]|EiO,}z\bp'H00 X7MV3$t{K3}.f_)Wa\tER/5ϒRi4CHd.\fR*Ϫ 7.6~td.%:y'k]mn{NҒ/G/S{)iXFOK%8=!/;rQA-83<UY#-V\v[V*ˠIʓk,bk:>z|>!?gt_.7PWk?oQmã\b;ln\fs>dyLE%'gsmgu=%)524'l\bYkcC'!0PUB6,5\bV}at;._w{m/+Ur~)a'rQ@\b78L\v{i\bΒ`R;7N$x( `!\bd6kSR]II\bv2il7KRAfr#8gʆs09MaT)LKj7zM@sSw\f{a/p>CwkF\bH \f^H|5gjJf6tfO_i҄JxM`@\v;9$i(҄~6Y_d;dPxdә\tmru'Ӗ7LσL4Y.1]tҠN]%>osGZKW#65`9De0:|@s\b4\v8!?8X'@'5F:T?K1ÈGW8)Hmr rZ`j$YZQi\v(h\f:GX4t)NSˤCb+,kDjzEi2өED˒\bUu\b!\bTF%pH0w[Rk`>(}Q0Q@ӵzMP67@jrQql@v\vksvY[7+OָI>#7$+ӿQbJ+ҎviQ5V92cvu!^vϩi<˾UkloҰM3Z;%(=AzX^^5aJ0;p,}ot>m\t/6_1aSCQ}{!GʟISYaM8zO$8}îepJg1{'v*EON|Jz eyv<$\v\f4ϱ{<Dr4eFQǐψNa/Ia,dOy+reW5n4u<_.3mlsz`JDGw2EP0=j9_k\vz3[o?(=;){jSu,Q?qV#wu3%/MdKsm8K*[3\b§^-.Ϡ5˾kqfeL%4S,'ʣv P0\fE{iWƖp%:Xp15?U>ews0qZHLGSu5BfҏFfY4ӓ|\b1/e|SF#jTֿ,H1sA1:T(KoF]\b`fibQq)kr|9ozAT|tcǜ:iZ_x49Á3(o7\fl\b^Gk`\vud)w3$wֵi\vJft>5u8v7W.VI\v˖\vpm˙na5V֩עA8dtʞTzYM%jJ,%?KkADl6IG˯R9ieӕRV3,Ӧoc1x'6-rH%\bvTLXJïXp0vI1vU3\f:Fq5seB,l*eB]Vb0+ǜ(_vY[\bCΠ'ςp;BBmnW :H֏nvH1וp,Z,-AT<!\fϕB˴$x7\bq?K+VX\t9!S^AHp`f2w/7BuB%X@\b[Iϗ@yHF6TS½ʗsBLa@BL:u5\vfL5Àdƪ:.I($T-.QvlE%CI!j[2'%[rt^Go\tӕwUttg6EY-˨z-N@,#Ï.J*GhIҢ3hf{CHlJӷ4<kYm;eʚ}.$}-K7A+c>?%e\fhd\fZnc~\b\bhZ7DֳaoybʛrtYrJc;[rbL_Kr\bb5fDE=6ph6K.X@['SǬLj+0<ÊHv5NXgQ{*dž!\f%3FD+Ɔ*_eMˢCUvJMK%\f,.~CdC',ίX(wʵ!*Thm^qz~<_<pW)NMM,\v\t- mqm!0J$eDw{)zEp/[Q7cPC.n3>/WM-9QR0\t{z6?Ұï$:AeA\vbO,xװ<~WAt$ ~<0#f'u/G#֚H-Ar:5UPG?m]gW.Rʍwp`.7[F$=>kK!6rzQp@6ʥI;c1|4Ry00ρӊ_t@)IQp`[tFoX.H`?lllEeIl9j|5t`\v3[5?V4tW!9WlhtsO1 ~2˄oǞsdIl@tϩIj֧jǐ=#*sEju!+,:yCaxiC=ǀ\t,?x$cvLJ3zO}-zjfP%,Z!:HZJ:a B_\t\vU|[aHF~?Zk\t:1fxvc)j.^.\f]xlsw*e,:_@-gWff+k9r-A{ӗ3?;!¯~g27k1@<j9)l'j>M$ƾ#0$c|?϶X\v\tD\bG\v{)'@^Gp^z|FaÆ?OVE=Rw)-0laHoosWj\fIғ\vV`W`r(q+oF\fv;3Ix;a_˻=dNZ϶[6]\f$E!.a([,^:2ca%91:E_k209~/,DHǥu0Gb=FYMKna;C'\f{5'I%I(.QZN{)=+@6z]b6 7:+lnCmr!%Ko'MҮoeïq\vXCBK<4!V8[4,=)Lvdie?t`d4~@<A'hNΨ8dH0SCM?$~%$+xe[L.EG-`5W(}\bW!oI6^=ʰ[n=Wb\vE8^g3M-f3kw9;lQAXr;U91)'SRa<)NJ|U{1=reUg.{fqNGA1LPd<Mmf7\fX_Q92r#%[\b\f8=iXW~0#U\fH7\bC#CHAsIdDqn+< /gDbcˬKӨ{ҩ'q]JO\f4ƃE%)\t'z]YS#L\t-\b0ʩ\tjVÔkDMipqa%g?Hƥ2QDηzwxaAO2:)G`*_(?( U3-.)GR>N{Ue%7W%GGҡ|~֪,Q%_%Dһ_G/+-;֔SǷ\ba'w)<y4.zlKʍEt}\tvow\tbP/,`>I^1)$Erw[p.]H˩Jdyk#<4X;4A|0-x/{Q,2E{z8϶%kW}L!; \vaS\vFH%Ӷ\vx\f1gxִ[=a8Ahq?@`ZD9%^#nZOK|_JqVHF24%ӓ_Z:]]0`-OGqfvEnh\b\v/M#4Q,vb0MAzBn]PZvP;>Yhx#V*ʘ?WטsH~΄o.Ɔ>-qVz@WI8gXLRK>Ekp`0CO9\v'tsi|/K7KuQS>S?)CMNue`+>bCT4)+,P\tM:^K\t]dg@.p\vrfk>sy%h_8vJ~sZcr[[jfm)h>dD0E$X1(JmMbyVC*GToW R/7x9*W} ΰ7<\bfCU?T2~]I2pi2\vê:G(D4w|=+{Ò3$#q`^V:wJ0bj8 \f4KþNhmO#:N_~%db9'w}>tI\b^V(\bfI9@irʅ>Zo[(v@C(4G:LD/}8:~ϼ`taYfh7bf\t\b\vgq Q|tT+]n9x5*_Ӡo/$Ґg}'4\bTQF4k_`\b6B43QI|~U`tQ{27EPKa'1nvZ=/;}~n]gGNʕ?g\f<~uz_g|:djroW6!=W%\v;E 4bzpʣlǭ1:OaM,)8BS:f9@C`O!y`_naq1ItI{\fAyu r(ӌ=fIô|iq0.@-ְ!Zhw/*EHךr2Oa9\va%a=:0tvn1R]vH;t[\bʑjO-V[ITwRRθ}֭Ɵ8Rq+ny%Ano8\vˠE*`a[/nWh4U`//^h83Esx0ioP>[X%uF*%rcn]ewp,~T|87Y9>LX5ENiQuP-0\tY2(ӯQMo-%|Tcr\f_C)/){HFKV22Ng=0)T_RFxEz<-^%҆ita}UXBZω>(i֬DTbdX_mT.~0XfDmU:Kh>N+\tSϹ{qk0hCPyƂm@Uf{p?VWM \t]=F91DQ#gV#iK@S(6N@h)\bǙ4\b4<l%<;Sx$h}>F:a9g2ICi֓7(viR9҄`^ue;RvV`פ5oKeI2]g#A3pC*E\t^t]nQ:1G= pm4c*2).`ioD,NEsgOeNZmDNLQ*7UURG\t{uEI\vRSBÉCOpOA*x.l5zg9?*Em`pt{k|,m.E\v2bI0D?Cr2y6Q< 5aTO7(0dFm\bbeZk/+ .8lLWycFmp-:ZDYV12U!n%tB_ϜӒl#@GwOOmgz)*r!zvHvDw+,$CezXoJ~Oh;wwK\fL<f:D`P\b)K#V\b(9.P*wL$QR*4hӁIZRVNX]c\f\tgN_zB!@}/ϴϗRY6.8 _\bhw_\tqaJadI9p\tdPC^E]C2]/f6G4S?TMFV$7:1Ӵ6rfү;\tZʧ`Iqu[kJ@P%+X(vc1>0Slpz[DKd;1)fDVWkDevyIXB^-GOba8=>e6az@C;Hge\b!e@9T.'ά)zv=i{M%([.hr})l˾6Q/exnZ\vgϦI WW7tzE}aM~)H.T9]/.=C8h2@(OjQ8((oyNHEMX9\tֽVT2?j\vjrIηvdEC_7Kk|25~?.ό,3h:8)XG^=>7}os0]jl|H%gN- Q7C3.VVe6VFje$HLiu\f+]O֫n)(V0CqKsXyD)\b|nA|ӂx\t^R3iO8?z\f`:8m)'FhW{u$GS@[k ZBo{p0#F#V'-$8c)Lciy=lyit/ckzG?|N\fό{%>ހ"),e=Stimulsoft.Base.StiGZipHelper.unpack(t,!0),i=Stimulsoft.Report.Resources.StimulsoftFont.getBase64Content();return e=e.replace("<style>",`<style>@font-face {font-family: 'Stimulsoft';src: url(data:font/ttf;base64,${i}) format('truetype');font-weight: normal;font-style: normal;}</style><style>`),StiBingMapHelper.getContent=()=>e,StiBingMapHelper.getContent()}static getScript(i){let r=this.getContent();if(null!=i["locations"]){let t=JSON.stringify(i["locations"]),e=(r=r.replace("_DATA_",t),i["locationType"].toString());r="Auto"!=e?r.replace("_entityType_",e):r.replace("entityType: '_entityType_',","")}else if(null!=i["pushpins"]){let t=JSON.stringify(i["pushpins"]);r=(r=r.replace("_DATA_",t)).replace(`document.mapType = "locations";`,`document.mapType = "pushpins";`)}else r=(r=r.replace("_DATA_","[]")).replace(`entityType: "_entityType_",`,"");return r=(r=(r=(r=(r=(r=r.replace("_KEY_",Stimulsoft.Base.Helpers.StiBingMapHelper.getBingKey(i["userBingKey"]))).replace("_THEME_",i["theme"])).replace("_LANGUAGE_",i["culture"])).replace("_BACKGROUND_COLOR_",`"${i["backgroundColor"]}"`)).replace("_BACKGROUND_COLOR2_",i["backgroundColor"])).replace("_ONEPOINTZOOM_",i["onePointZoom"]),null!=i["outerStyle"]&&(r=r.replace("display: table;",i["outerStyle"].toString())),null!=i["title"]&&(r=r.replace(`display: none"></div>`,i["title"].toString())),r=null!=i["customIcon"]?(r=(r=r.replace("document.customIcon = null",`document.customIcon = "${i["customIcon"].toString()}"`)).replace("document.customIconAnchorX = null",`document.customIconAnchorX = "${i["customIconAnchorX"].toString()}"`)).replace("document.customIconAnchorY = null",`document.customIconAnchorY = "${i["customIconAnchorY"].toString()}"`):r}}__.h.StiBingMapHelper=StiBingMapHelper}__.h.StiCardsElementHelper=class{static minDataColumnValue(t,e,i){if(!(t.is2(StiDataBarsCardsColumn)||t.is2(StiColorScaleCardsColumn)||t.is2(StiBubbleCardsColumn)))return 0;return 0<e.length?e[Stimulsoft.System.StiObject.stimulsoft]().min(t=>StiValueHelper.tryToNumber(t[i])):0}static maxDataColumnValue(t,e,i){if(!(t.is2(StiDataBarsCardsColumn)||t.is2(StiColorScaleCardsColumn)||t.is2(StiBubbleCardsColumn)))return 0;return 0<e.length?e[Stimulsoft.System.StiObject.stimulsoft]().max(t=>StiValueHelper.tryToNumber(t[i])):0}};let StiLinesSegmentGeom=Stimulsoft.Base.Context.StiLinesSegmentGeom,StiFontGeom=(__.j.StiVisual=class{async draw(t,e){}drawArrowMore(t,e,i){let r=[],l=(r[0]=new Point(e.right-5*i,e.bottom-5*i),r[1]=new Point(e.right-5*i,e.bottom-15*i),r[2]=new Point(e.right-15*i,e.bottom-5*i),[new StiLinesSegmentGeom(r)]);t.fillPath(Color.fromArgb2(140,140,140),l,e.clone(),null)}},Stimulsoft.Base.Context.StiFontGeom),StiRotationMode=Stimulsoft.Base.Drawing.StiRotationMode,StiImageHelper=(__.h.StiStringFormatHelper=class{static getStringFormatGeom(t){let e=t.getGenericStringFormat();return e.trimming=StringTrimming.None,e.alignment=StringAlignment.Center,e.lineAlignment=StringAlignment.Center,e}static measureAlignmentParameters(t,e,i,r){switch(t){case StiHorAlignment.Left:i.ref=StiRotationMode.LeftCenter,r.ref.x=e.x,r.ref.y=e.y+e.height/2;break;case StiHorAlignment.Center:i.ref=StiRotationMode.CenterCenter,r.ref.x=e.x+e.width/2,r.ref.y=e.y+e.height/2;break;case StiHorAlignment.Right:i.ref=StiRotationMode.RightCenter,r.ref.x=e.x+e.width,r.ref.y=e.y+e.height/2;break}}static getFontSize(t,e,i,r){let l=new Font(r.fontFamily.name,25,r.style,r.unit),n=t.measureString(i,StiFontGeom.create(l));if(0==n.width||0==n.height)return 0;let s=e.width/n.width,o=e.height/n.height,a=o<s?o:s;return 25*a}},Stimulsoft.Report.Components.StiImageHelper),StiLineSegmentGeom=Stimulsoft.Base.Context.StiLineSegmentGeom,StiWinLossSparklinesCellPainter=Stimulsoft.Report.Painters.StiWinLossSparklinesCellPainter,StiLineSparklinesCellPainter=Stimulsoft.Report.Painters.StiLineSparklinesCellPainter,StiColumnSparklinesCellPainter=Stimulsoft.Report.Painters.StiColumnSparklinesCellPainter,StiSparklinesType=__.L.StiSparklinesType,StiStringFormatHelper=__.h.StiStringFormatHelper;{class StiCardsCellDrawer{static dataBarsDraw(e,t,i,r,l,n,s,o,a,u){let S=StiTextFormatHelper.formatBasedOnColumnType2(i,n.textFormat,n,o);if(null==o||0==o)return;0<a&&(a=0),u<0&&(u=0);let m=t.clone(),h=(m.inflate(-1*s,-1*s),e.fillRectangle(Color.fromArgb3(40,r.cellDataBarsPositive),m.clone(),null),u+Math.abs(a)),c=m.width*Math.abs(a)/h,d=m.width*u/h,p=m.width*Math.abs(o)/h,g=p>d;if(g&&(p=d),m.x+=o<0?c-p:c,m.width=p,0<m.width&&0<m.height){let t=o<0?r.cellDataBarsNegative:r.cellDataBarsPositive;if(e.fillRectangle(t,m,null),g){let t=new Rectangle(m.right-6*s,m.y,6*s,m.height);e.fillRectangle(r.cellDataBarsOverlapped,t,null)}}let b=StiDashboardStyleHelper.getFont(i)??n.font,C=new Font(b.fontFamily.name,b.size*s),f=e.measureString(S,new StiFontGeom(C.fontFamily.name,C.size,C.style,Stimulsoft.System.Drawing.GraphicsUnit.Point));StiCardsCellDrawer.drawText(e,S,b,l,n.horAlignment,n.vertAlignment,t,f,s)}static colorScaleDraw(t,e,i,r,l,n,s,o,a,u){let S=StiTextFormatHelper.formatBasedOnColumnType2(i,n.textFormat,n,o),m=this.getScaleColor(StiValueHelper.tryToNumber(o),a,u,r.cellBackColor,n.minimumColor,n.maximumColor),h=e.clone(),c=(h.inflate(-1*s,-1*s),t.fillRectangle(m,h,null),StiDashboardStyleHelper.getFont(i)??n.font),d=new Font(c.fontFamily.name,c.size*s),p=t.measureString(S,new StiFontGeom(d.fontFamily.name,d.size,d.style,Stimulsoft.System.Drawing.GraphicsUnit.Point));this.drawText(t,S,c,l,n.horAlignment,n.vertAlignment,e,p,s)}static getScaleColor(e,i,r,l,n,s){let o=(r-i)/2,a=(e=Math.min(e,r),0),u,S;if(o<(e=Math.max(e,i))){let t=r-o;S=0!=t?(a=(e-o)/t,u=Color.fromArgb3(255,l),Color.fromArgb3(255,s)):(u=Color.lightGray,Color.lightGray)}else{let t=o-i;S=0!=t?(a=e/t,u=Color.fromArgb3(255,n),Color.fromArgb3(255,l)):(u=Color.lightGray,Color.lightGray)}let t=(S.a-u.a)*a+u.a,m=(S.r-u.r)*a+u.r,h=(S.g-u.g)*a+u.g,c=(S.b-u.b)*a+u.b;return t=Math.min(t,255),m=Math.min(m,255),h=Math.min(h,255),c=Math.min(c,255),t=Math.max(t,0),m=Math.max(m,0),h=Math.max(h,0),c=Math.max(c,0),Color.fromArgb(Math.round(t),Math.round(m),Math.round(h),Math.round(c))}static sparklinesDraw(e,i,r,t,l){let n=this.castToArray(t);if(null!=n){let t=n;switch(r.type){case StiSparklinesType.Column:StiColumnSparklinesCellPainter.draw(e,i,t,r.allowCustomColors?r.positiveColor:l.cellSparkline,r.allowCustomColors?r.negativeColor:l.cellSparkline);break;case StiSparklinesType.Line:StiLineSparklinesCellPainter.draw(e,i,t,r.allowCustomColors?r.positiveColor:l.cellSparkline,!1,r.showFirstLastPoints,r.showHighLowPoints);break;case StiSparklinesType.Area:StiLineSparklinesCellPainter.draw(e,i,t,r.allowCustomColors?r.positiveColor:l.cellSparkline,!0,r.showFirstLastPoints,r.showHighLowPoints);break;case StiSparklinesType.WinLoss:StiWinLossSparklinesCellPainter.draw(e,i,t,r.allowCustomColors?r.positiveColor:l.cellWinLossPositive,r.allowCustomColors?r.negativeColor:l.cellWinLossNegative);break;default:throw new StiTypeNotRecognizedException(r.type)}}}static castToArray(t){return StiArray.isArray(t)?t:null}static bubbleDraw(l,n,s,r,o,a,u,S,t,e,i=!0){if(0==S)return;let m=StiTextFormatHelper.formatBasedOnColumnType2(s,a.textFormat,a,S),h=(0<t&&(t=0),e<0&&(e=0),a.horAlignment),c=n.clone();if(c.inflate(-1,-1),c=this.calculateBubbleRect(c,a,Math.abs(S),t,e,u),i&&h!=StiHorAlignment.Center){let t=a.horAlignment==StiHorAlignment.Left?StiHorAlignment.Right:StiHorAlignment.Left,e=StiDashboardStyleHelper.getFont(s)??a.font,i=new Font(e.fontFamily.name,e.size*u),r=l.measureString(m,new StiFontGeom(i.fontFamily.name,i.size,i.style,Stimulsoft.System.Drawing.GraphicsUnit.Point));this.drawText(l,m,e,o,t,a.vertAlignment,n,r,u)}if(0<c.width&&0<c.height){let t=a.allowCustomColors?a.positiveColor:r.cellDataBarsPositive,e=a.allowCustomColors?a.negativeColor:r.cellDataBarsNegative,i=S<0?e:t;l.fillEllipse(i,c.x,c.y,c.width,c.height,null)}}static calculateBubbleRect(t,e,i,r,l,n){let s=e.as(IStiHorAlignment);if(null==s)return t;let o=t.height,a=Math.max(Math.abs(r),Math.abs(l)),u=Math.abs(o*i/a);switch(s.horAlignment){case StiHorAlignment.Right:return new Rectangle(t.right-o+(o-u)/2,t.y+(t.height-u)/2,u,u);case StiHorAlignment.Center:return new Rectangle(t.x+(t.width-u)/2,t.y+(t.height-u)/2,u,u);case StiHorAlignment.Left:return new Rectangle(t.x+(o-u)/2,t.y+(t.height-u)/2,u,u)}return t}static indicatorDraw(t,e,i,r,l,n,s){let o=this.getCellText(i,l,s),a=StiDashboardStyleHelper.getFont(i)??l.font,u=__.t.StiCardsVisual.getFontGeom(a,n),S=t.measureString(o,u).width,m=this.calculateIndicatorRect(e,l,n,S,i.isExporting),h=(this.drawIndicator(t,m,s,r,i.isExporting),this.getColor(l.foreColor,s,r)),c=StiCardsCellDrawer.calculateTextRect(e,l,n,S,i.isExporting),d=new Font(a.fontFamily.name,a.size*n),p=t.measureString(o,new StiFontGeom(d.fontFamily.name,d.size,d.style,Stimulsoft.System.Drawing.GraphicsUnit.Point));this.drawText(t,o,a,h,l.horAlignment,l.vertAlignment,c,p,n)}static calculateTextRect(t,e,i,r,l){let n=this.calculateIndicatorRect(t,e,i,r,l),s=2*n.width;switch(this.getHorAlignment(e)){case StiHorAlignment.Left:return new Rectangle(t.x+s,t.y,t.width-s,t.height);case StiHorAlignment.Right:return new Rectangle(t.x,t.y,t.width-s,t.height);case StiHorAlignment.Center:return new Rectangle(t.x,t.y,t.width,t.height)}return t}static getColor(t,e,i){if(!t.equals(Color.transparent))return t;if(0<e)return i.cellIndicatorPositive;if(e<0)return i.cellIndicatorNegative;return i.cellIndicatorNeutral}static calculateIndicatorRect(e,t,i,r,l){let n=16*i;switch(this.getHorAlignment(t)){case StiHorAlignment.Left:e=new Rectangle(e.x,e.y,n,e.height);break;case StiHorAlignment.Right:e=new Rectangle(e.right-n,e.y,n,e.height);break;case StiHorAlignment.Center:{let t=r+n;e=new Rectangle(e.right-(e.width-t)/2-n,e.y,n,e.height);break}}return e.inflate(-4*i,-4*i),e}static getHorAlignment(t){let e=t.as(IStiHorAlignment);return null!=e?e.horAlignment:StiHorAlignment.Right}static getCellText(t,e,i){if(null==i)return"";return StiTextFormatHelper.formatAsPercentage2(t?.report,e.textFormat,i)}static drawIndicator(S,m,h,c,t){let d=Math.min(m.width,m.height);if(null==h||0==h)S.fillRectangle(c.cellIndicatorNeutral,new Rectangle(m.x+(m.width-d)/2,m.y+(m.height-4)/2,d,5),null);else{let t=.75*d,e=(m=new Rectangle(m.x+(m.width-d)/2,m.y+(m.height-t)/2,d,t)).width/2,i,r,l,n=(l=0<h?(i=new Point(m.left+e,m.top),r=new Point(m.left,m.bottom),new Point(m.right,m.bottom)):(i=new Point(m.left+e,m.bottom),r=new Point(m.left,m.top),new Point(m.right,m.top)),0<h?c.cellIndicatorPositive:c.cellIndicatorNegative),s=[],o=new StiLineSegmentGeom(i,r),a=new StiLineSegmentGeom(r,l),u=new StiLineSegmentGeom(l,i);s.push(o),s.push(a),s.push(u),S.fillPath(n,s,m,null)}}static imageDraw(t,e,i){let r=StiImageHelper.getImageBytesFromObject(i);t.drawImage(r,e)}static drawWordWrapText(t,e,i,r,l,n,s,o,a){let u=t.getGenericStringFormat();switch(u.trimming=StringTrimming.None,u.lineAlignment=StringAlignment.Center,l){case StiHorAlignment.Left:u.alignment=StringAlignment.Near;break;case StiHorAlignment.Center:u.alignment=StringAlignment.Center;break;case StiHorAlignment.Right:u.alignment=StringAlignment.Far;break}let S=0,m=(s.width<o.width?s:o).width,h=StiRotationMode.CenterCenter;switch(l){case StiHorAlignment.Left:S=s.x;break;case StiHorAlignment.Center:S=s.x+s.width/2-m/2;break;case StiHorAlignment.Right:S=s.x+s.width-m;break}let c=0;switch(n){case StiVertAlignment.Top:c=s.y;break;case StiVertAlignment.Center:c=s.y+s.height/2-o.height/2;break;case StiVertAlignment.Bottom:c=s.y+s.height-o.height;break}let d=new Rectangle(S,c,m,o.height),p=__.t.StiCardsVisual.getFontGeom(i,a);t.drawRotatedString6(e,p,r,d,u,h,0,!0,s.width)}static drawText(t,e,i,r,l,n,s,o,a){let u=StiStringFormatHelper.getStringFormatGeom(t),S=(u.alignment=StringAlignment.Far,0),m=(s.width<o.width?s:o).width;switch(l){case StiHorAlignment.Left:S=s.x;break;case StiHorAlignment.Center:S=s.x+s.width/2-m/2;break;case StiHorAlignment.Right:S=s.x+s.width-m;break}let h=0;switch(n){case StiVertAlignment.Top:h=s.y;break;case StiVertAlignment.Center:h=s.y+s.height/2-o.height/2;break;case StiVertAlignment.Bottom:h=s.y+s.height-o.height;break}let c=new Rectangle(S,h,m,o.height),d=__.t.StiCardsVisual.getFontGeom(i,a),p=this.getMeasureText(t,e,d,s.width);t.drawString(p,d,r,c,u)}static getMeasureText(i,r,l,n){if(!StiString.isNullOrEmpty(r))for(let e=0;r.length>e;e++){let t=r.substring(0,e);if(n<i.measureString(t,l).width){if(4<t.length)return t.substring(0,t.length-3)+"...";if(1<t.length)return t.substring(0,1)+"..."}}return r}}__.t.StiCardsCellDrawer=StiCardsCellDrawer}let StiInteractionDataGeom=Stimulsoft.Base.Context.StiInteractionDataGeom,StiCardInteractionData=Stimulsoft.Base.Context.StiCardInteractionData,ListExt=Stimulsoft.Data.Extensions.ListExt,StiMeterIdent=__.e.StiMeterIdent,StiContextRoundedRectangleCreator=Stimulsoft.Report.Painters.StiContextRoundedRectangleCreator,StiContextPainter=Stimulsoft.Base.Context.StiContextPainter,StiElementScale=Stimulsoft.Report.Dashboard.Helpers.StiElementScale,StiElementConsts=Stimulsoft.Base.Dashboard.StiElementConsts,StiCardsCellDrawer=__.t.StiCardsCellDrawer,StiPenGeom=Stimulsoft.Base.Context.StiPenGeom,StiCardsColumnVisibilityHelper=Stimulsoft.Report.Dashboard.StiCardsColumnVisibilityHelper,StiCardsElementHelper=__.h.StiCardsElementHelper,StiContext=Stimulsoft.Base.Context.StiContext;{class StiCardsVisual extends __.j.StiVisual{async draw(t,e){this.paintCards(t,e)}paintCards(n,s){let o=n.options.zoom,a=this.dataTable.meters.filter(t=>t.is(StiCardsColumn)),u=StiDashboardStyleHelper.getCardsStyle(this.element),t={},e={},S=this.processColumnsWithTopN(a),m=(this.getCardRectanglesList(a,S,s,o,t,e),t.ref),h=e.ref,c=[],d=[];for(let r=0;r<a.length;r++){let t=a[r],e=StiCardsElementHelper.minDataColumnValue(t,S,r),i=StiCardsElementHelper.maxDataColumnValue(t,S,r);c.push(e),d.push(i)}let p,g=1==h.length;for(let e=0;e<S.length;e++){let t=S[e],i=m[e],r=h[e],l=(p||g||!(1<i.right-s.right||1<i.bottom-s.bottom)||(p=!0),1);if(g){let t=this.unionRectangles(r),e=(s.height-this.element.cards.margin.top*o-this.element.cards.margin.bottom*o)/t.height;e<1&&(l=e,r=this.zoomAndMoveUp(r,l),i=new Rectangle(i.x,i.y,i.width,s.height))}this.paintCardItem(n,i,this.element,e,r,a,t,c,d,u,o,l)}if(p){let t=StiElementScale.factor(this.element);this.drawArrowMore(n,s,t)}}static processTopNElements(t,e,i){if(e.mode==StiDataTopNMode.None)return t;let r=[];for(let e of t){let t=StiValueHelper.tryToNumber(e[i]);r.push({key:t,value:e})}e.mode==StiDataTopNMode.Bottom?r.sort((t,e)=>t.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(e.key)):r.sort((t,e)=>e.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(t.key));let l=r.splice(0,e.count).map(t=>t.value);return l}processColumnsWithTopN(t){let r=this.dataTable.rows,l=0;for(let i of t){let t=i.topN,e=StiCardsVisual.processTopNElements(r,t,l);r=e.map(t=>t),l++}return r}unionRectangles(t){let e=Math.min(...t.map(t=>t.x)),i=Math.min(...t.map(t=>t.y)),r=Math.max(...t.map(t=>t.right)),l=Math.max(...t.map(t=>t.bottom)),n=r-e,s=l-i;return new Rectangle(e,i,n,s)}zoomAndMoveUp(t,l){let n=[];for(let r of t){let t=r.height*l,e=r.y*l,i=new Rectangle(r.x,e,r.width,t);n.push(i)}return n}getCardRectanglesList(l,t,e,n,i,r){let s=[],o=[],a=new StiContextPainter,u=new StiContext(a,!0,!1,!1,n),S=0,m=0;for(let r of t){let t={ref:[]},e=StiCardsVisual.measureCards(u,this.element,l,r,t,n),i=t.ref;S=Math.max(S,e.width),m=Math.max(m,e.height),o.push(i)}if(0<this.element.columnCount&&this.element.orientation==Stimulsoft.Report.Dashboard.StiItemOrientation.Horizontal?S=e.width/this.element.columnCount:0<this.element.columnCount&&this.element.orientation==Stimulsoft.Report.Dashboard.StiItemOrientation.Vertical&&(m=e.height/this.element.columnCount),0==this.element.columnCount&&this.element.orientation==Stimulsoft.Report.Dashboard.StiItemOrientation.Horizontal&&(S=Math.max(S,e.width/t.length)),l.some(t=>t.wordWrap)){o=[];for(let r of t){let t={ref:[]},e=S-this.element.cards.margin.left*n-this.element.cards.margin.right*n-this.element.cards.padding.left*n-this.element.cards.padding.right*n,i=StiCardsVisual.measureCards2(u,this.element,l,r,t,n,e);m=Math.max(m,i.height),o.push(t.ref)}}s=this.element.orientation==Stimulsoft.Report.Dashboard.StiItemOrientation.Horizontal?this.getRectanglesHorizontalOrientation(t,e,S,m):this.getRectanglesVerticalOrientation(t,e,S,m),i.ref=s,r.ref=o}getRectanglesHorizontalOrientation(e,i,r,l){let n=[],s=Math.floor(i.width/r),o=(0==s&&(s=1),r=i.width/s,i.x),a=i.y,u=0;for(let t=0;t<e.length;t++){let t=new Rectangle(o,a,r,l);n.push(t),o+=t.width,++u>=s&&(o=i.x,a+=t.height,u=0)}return n}getRectanglesVerticalOrientation(e,i,r,l){let n=[],s=Math.floor(i.height/l),o=(1<s&&(l=i.height/s),i.x),a=i.y,u=0;for(let t=0;t<e.length;t++){let t=new Rectangle(o,a,r,l);n.push(t),a+=t.height,++u>=s&&(a=i.y,o+=t.width,u=0)}return n}getContentRectangle(t){if(null==this.dataTable||this.dataTable.rows.length<=1)return t;let e=this.dataTable.meters.filter(t=>t.is(StiCardsColumn)),i=this.processColumnsWithTopN(e),r={},l={},n=(this.getCardRectanglesList(e,i,t,1,r,l),r.ref),s=Rectangle.empty;for(let t of n)s=Rectangle.union(t,s);return s}paintCardItem(p,g,b,e,n,C,f,y,w,M,I,T){let i=new Rectangle(g.x+b.cards.margin.left*I,g.y+b.cards.margin.top*I,g.width-b.cards.margin.left*I-b.cards.margin.right*I,g.height-b.cards.margin.top*I-b.cards.margin.bottom*I);if(p.pushClip(i),null==b.cards.cornerRadius||b.cards.cornerRadius.isEmpty)p.fillRectangle(this.getColor(e),i,null);else{let t=StiContextRoundedRectangleCreator.create(i,b.cards.cornerRadius,I);p.fillPath(this.getColor(e),t,i,null)}let r=[],l=[];for(let e=0;e<C.length;e++){let t=C[e];l.push(e),!t.wrapLine&&e!=C.length-1||(r.push(l),l=[])}let x=[];for(let l of r){let r=(g.width-b.cards.margin.left*I-b.cards.margin.right*I-b.cards.padding.left*I-b.cards.padding.right*I)/l.length;for(let i=0;i<l.length;++i){let t=l[i],e=n[t];x.push(new Rectangle(r*i,e.y,r,e.height))}}for(let d=0;d<f.length;d++){let n=C[d],t=StiCardsColumnVisibilityHelper.getVisible(n,b.report);if(!t)continue;let s=f[d],e=y[d],i=w[d],o=StiCardsVisual.getForeColor(b,C[d],M),r=StiDashboardStyleHelper.getFont(b),a=r??n.font,l=x[d],u=g.x+b.cards.margin.left*I+b.cards.padding.left*I+l.x,S=g.y+b.cards.margin.top*I+b.cards.padding.top*I+l.y,m=l.width,h=l.height-b.cards.padding.top*I-b.cards.padding.bottom*I,c=new Rectangle(u,S,m,h);if(!this.element.isDesigning){let t=Color.transparent,e=StiDashboardStyleHelper.getHotBackColor(this.element);p.fillRectangle3(new StiSolidBrush(t),new StiSolidBrush(e),c,this.getInteractionDataGeom(s?s.toString():"",n,d))}if(n.is2(StiDataBarsCardsColumn)){let t=n.as(StiDataBarsCardsColumn);StiCardsCellDrawer.dataBarsDraw(p,c,b,M,o,t,I,StiValueHelper.tryToNumber(s),e,i)}else if(n.is2(StiColorScaleCardsColumn)){let t=n.as(StiColorScaleCardsColumn);StiCardsCellDrawer.colorScaleDraw(p,c,b,M,o,t,I,StiValueHelper.tryToNumber(s),e,i)}else if(n.is2(StiSparklinesCardsColumn)){let t=n.as(StiSparklinesCardsColumn);StiCardsCellDrawer.sparklinesDraw(p,c,t,s,M)}else if(n.is2(StiBubbleCardsColumn)){let t=n.as(StiBubbleCardsColumn);StiCardsCellDrawer.bubbleDraw(p,c,b,M,o,t,I,StiValueHelper.tryToNumber(s),e,i)}else if(n.is2(StiIndicatorCardsColumn)){let t=n.as(StiIndicatorCardsColumn);StiCardsCellDrawer.indicatorDraw(p,c,b,M,t,I,StiValueHelper.tryToNullableNumber(s))}else{let l=StiImageHelper.getImageFromObject(s);if(null!=l&&null!=l.height){let t=c.height/l.height,e=l.width*t,i=0;switch(n.horAlignment){case StiHorAlignment.Left:i=c.x;break;case StiHorAlignment.Center:i=c.x+(c.width-e)/2;break;case StiHorAlignment.Right:i=c.x+c.width-e;break}let r=new Rectangle(i,c.y,e,c.height);StiCardsCellDrawer.imageDraw(p,r,s)}else{let t=this.processRowValue(s,n),i=StiTextFormatHelper.formatBasedOnColumnType2(b,n.textFormat,n,t),e=n.as(IStiWordWrap),r=new StiFontGeom(a.fontFamily.name,a.size*T,a.style,Stimulsoft.System.Drawing.GraphicsUnit.Point);if(null!=e&&e.wordWrap){let t=p.getGenericStringFormat(),e=(t.trimming=StringTrimming.None,t.alignment=StringAlignment.Center,t.lineAlignment=StringAlignment.Center,p.measureString2(i,r,c.width,t));StiCardsCellDrawer.drawWordWrapText(p,i,a,o,n.horAlignment,n.vertAlignment,c,e,I*T)}else{let t=p.measureString(i,r);StiCardsCellDrawer.drawText(p,i,a,o,n.horAlignment,n.vertAlignment,c,t,I*T)}}}}p.popClip();let s=new StiPenGeom(M.lineColor,1);if(null==b.cards.cornerRadius||b.cards.cornerRadius.isEmpty)p.drawRectangle(s,i);else{let t=StiContextRoundedRectangleCreator.create(i,b.cards.cornerRadius,I);p.drawPath(s,t,i)}}processRowValue(t,e){let i=e.ident==StiMeterIdent.SparklinesColumn;return t=ListExt.isList(t)?i?ListExt.toList(t):ListExt.toList(t)?.firstOrDefault():t}static measureItem(l,n,s,o,a,u){let S;if(s.is2(StiDataBarsCardsColumn)||s.is2(StiColorScaleCardsColumn))S=this.measureDataBarsCell(l,n,s,o,a);else if(s.is2(StiSparklinesCardsColumn)){let t=s.as(StiSparklinesCardsColumn);S=this.measureSparklinesCell(t,a)}else if(s.is2(StiIndicatorCardsColumn)){let t=s.as(StiIndicatorCardsColumn);S=this.measureIndicatorCell(l,n,t,o,a)}else if(s.is2(StiBubbleCardsColumn)){let t=s.as(StiBubbleCardsColumn);S=this.measureBubbleCell(l,n,t,o,a)}else if(StiImageHelper.isImage(o)){let t=StiImageHelper.getImageFromObject(o),e=50*a,i=e/t.height,r=t.width*i;S=new Size(r,e)}else{let e=StiTextFormatHelper.formatBasedOnColumnType2(n,s.textFormat,s,o),t=StiDashboardStyleHelper.getFont(n),i=this.getFontGeom(t??s.font,a),r=s.as(IStiWordWrap);if(null!=r&&r.wordWrap){let t=l.getGenericStringFormat();S=l.measureString2(e,i,u,t),S=new Size(u,S.height)}else S=l.measureString(e,i)}let t=Math.max(S.height,s.height*a);return new Size(S.width,t)}static measureCards(t,e,i,r,l,n){return this.measureCards2(t,e,i,r,l,n,0)}static measureCards2(l,a,n,s,t,u,o){let S=t.ref,e=0,m=0,i=[],r=[];for(let e=0;e<s.length;e++){let t=n[e];r.push(e),!t.wrapLine&&e!=s.length-1||(i.push(r),r=[])}let h=[];for(let r=0;r<s.length;r++){let t=n[r],e=s[r],i=StiCardsColumnVisibilityHelper.getVisible(t,a.report);i||h.push(Size.empty),h.push(this.measureItem(l,a,t,e,u,o))}for(let t=0;t<i.length;t++){let l=i[t],r=0,n=0;for(let i=0;i<l.length;i++){let t=l[i],e=h[t];r=Math.max(e.height,r),n+=e.width}let s=new Size(n,r),o=0;for(let r=0;r<l.length;r++){let t=l[r],e=h[t],i=new Rectangle(o,m,e.width+a.cards.padding.left*u+a.cards.padding.right*u,s.height+a.cards.padding.top*u+a.cards.padding.bottom*u);o+=e.width,S.push(i)}e=Math.max(e,s.width+a.cards.padding.left*u+a.cards.padding.right*u),m+=s.height}return t.ref=S,new Size(e,m+a.cards.padding.top*u+a.cards.padding.bottom*u+a.cards.margin.top*u+a.cards.margin.bottom*u)}static measureDataBarsCell(t,e,i,r,l){let n=StiCardsCellDrawer.getCellText(e,i,StiValueHelper.tryToNullableNumber(r)),s=StiDashboardStyleHelper.getFont(e),o=this.getFontGeom(s??i.font,l),a=t.measureString(n,o);return new Size(a.width,1.5*a.height)}static measureSparklinesCell(t,e){let i=0==t.height?20:t.height;return new Size(0,i*e)}static measureIndicatorCell(t,e,i,r,l){let n=i.as(StiIndicatorCardsColumn),s=StiCardsCellDrawer.getCellText(e,n,StiValueHelper.tryToNullableNumber(r)),o=StiDashboardStyleHelper.getFont(e),a=this.getFontGeom(o??i.font,l),u=t.measureString(s,a);return new Size(u.width,1.5*u.height)}static measureBubbleCell(t,e,i,r,l){let n=StiTextFormatHelper.formatBasedOnColumnType2(e,i.textFormat,i,r),s=StiDashboardStyleHelper.getFont(e),o=this.getFontGeom(s??i.font,l),a=t.measureString(n,o);return a.width+=4,a=new Size(a.width+a.height,1.5*a.height)}static getForeColor(t,e,i){if(!e.foreColor.equals(Color.transparent))return e.foreColor;let r=StiDashboardStyleHelper.getForeColor(t);if(!r.equals(Color.transparent))return r;if(null!=i)return i.cellForeColor;return StiElementConsts.Table.Font.Color}static getFontGeom(t,e){let i=StiFontGeom.changeFontSize(t,t.size*e);return i}getColor(t){return this.element.cards.colorEach?this.getStyleColor(t):this.style.cellBackColor}getStyleColor(t){let e=(null!=this.element.seriesColors&&0<this.element.seriesColors.length?this.element:StiDashboardStyleHelper.getCardsStyle(this.element)).seriesColors;return e[t%=e.length]}getInteractionDataGeom(t,e,i){if(this.element.isDesigning)return null;let r=new StiCardInteractionData,l=(r.valueText=t,new StiInteractionDataGeom);return l.interactionToolTip=this.getToolTip(e),l.interactionHyperlink=this.getHyperlink(e),l.interactionData=r,l.elementIndex=i.toString(),l}getToolTip(t){let e=this.getConstants(),i=this.getInteraction(t);return StiReportParser.parse(i?.toolTip,this.element,!1,e)}getHyperlink(t){let e=this.getConstants(),i=this.getInteraction(t);return StiReportParser.parse(i?.hyperlink,this.element,!1,e)}getInteraction(t){return t?.dashboardInteraction.as(StiCardsColumnDashboardInteraction)}getConstants(){return null}constructor(t,e){super(),this.element=t,this.dataTable=e,this.style=StiDashboardStyleHelper.getCardsStyle(this.element)}}__.t.StiCardsVisual=StiCardsVisual}let StiCardsVisual=__.t.StiCardsVisual,IStiCardsVisualSvgHelper=Stimulsoft.Report.Dashboard.Visuals.IStiCardsVisualSvgHelper,IStiManuallyEnteredData=Stimulsoft.Report.Dashboard.IStiManuallyEnteredData,StiContextSvgHelper=Stimulsoft.Report.Export.Services.Helpers.StiContextSvgHelper;{class $wa{implements(){let t=[IStiCardsVisualSvgHelper];return(this.implements=()=>t)()}async writeCards(t,e,i,r,l){let n=new Rectangle(0,0,e.width,e.height),s=e.component.as(__.G.StiCardsElement),o=await $wa.getDataTable(s);if(null==o)return;let a=new StiContextPainter,u=new StiContext(a,!0,!1,!1,1),S=new StiCardsVisual(s,o);if(i&&(i.needToVertScroll||i.needToHorScroll)){let t=S.getContentRectangle(n);i.needToVertScroll=t.height>n.height+5,i.needToHorScroll=t.width>n.width+5,i.needToVertScroll&&(n.width-=15,t=S.getContentRectangle(n),n=t,i.needToHorScroll||(n.height+=10),r.ref=Stimulsoft.System.Convert.toInt32(n.height)),i.needToHorScroll&&(n.height-=15,t=S.getContentRectangle(n),n=t,i.needToVertScroll||(n.height+=10),l.ref=Stimulsoft.System.Convert.toInt32(n.width))}await S.draw(u,n.clone()),t.writeStartElement("g");let m=i&&(i.needToVertScroll||i.needToHorScroll)?0:e.x,h=i&&(i.needToVertScroll||i.needToHorScroll)?0:e.y;t.writeAttributeString("transform",`translate(${m},${h})`),StiContextSvgHelper.writeGeoms(t,u,!1),t.writeEndElement()}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}}__.h.StiCardsVisualSvgHelper=$wa}{class StiElementLocationHelper{static getSumRectangle(e){let i=new Rectangle(0,0,0,0);for(let t of e)t.right>i.right&&(i=new Rectangle(i.x,i.y,t.right-i.x,i.height)),t.bottom>i.bottom&&(i=new Rectangle(i.x,i.y,i.width,t.bottom-i.y));return i}static getLocationRectangles(e,i,t){if(1==i)return[e.clone()];let r=e.toString()+" "+i.toString();if(this.hashLocations.contains(r))return this.hashLocations.get(r);let l=this.getSimpleRect(e.clone(),i,t),n=this.getSimpleRect(new Rectangle(e.x,e.y,e.height,e.width),i,t),s=l.width*l.height,o=n.width*n.height,a=[],u=(l=s<o?new Rectangle(n.x,n.y,n.height,n.width):l).x,S=l.y;for(let t=0;t<i;t++){let t=new Rectangle(u,S,l.width,l.height);a.push(t),u=Math.floor(t.right+t.width)<=e.right?t.right:(S=t.bottom,e.x)}this.hashLocations.add(r,a);let m=this.getSumRectangle(a),h=m.toString()+" "+i.toString();return this.hashLocations.contains(h)||this.hashLocations.add(h,a),a}static getMinRectangle(t,e){let i=t.width*t.height/e,r=t;while(r.width*r.height>i||r.isEmpty)r=r.width>r.height?new Rectangle(r.x,r.y,r.width/2,r.height):new Rectangle(r.x,r.y,r.width,r.height/2);return r}static prepareColumnRow(e,i,r,l,n){e.ref=1,i.ref=1;let s=l.x,o=l.y;for(let t=0;t<n-1;t++){let t=new Rectangle(s,o,l.width,l.height);s=t.right+t.width<=r.right?(1==i.ref&&e.ref++,t.right):(i.ref++,o=t.bottom,r.x)}}static getUsingRect(e,i,r){let l=i,n=i.x,s=i.y,o=i.width,a=i.height;for(let t=0;t<r;t++){let t=new Rectangle(n,s,i.width,i.height);o<t.right-e.x&&(o=t.right-e.x),a<t.bottom-e.y&&(a=t.bottom-e.y),l=new Rectangle(e.x,e.y,o,a),n=t.right+t.width<=e.right?t.right:(s=t.bottom,e.x)}return l}static checkMinRect(t,e){let i=StiElementScale.factor(e);return t.width<80*i&&(t.width=80*i),t.height<50*i&&(t.height=50*i),t}static getSimpleRect(t,e,i){let r=this.getMinRectangle(t.clone(),e),l=(r=this.checkMinRect(r,i),{ref:0}),n={ref:0},s=(this.prepareColumnRow(l,n,t.clone(),r,e),this.getUsingRect(t.clone(),r,e));return s.width<t.width&&(r=new Rectangle(t.x,t.y,r.width+(t.width-s.width)/l.ref,r.height)),r=s.height<t.height?new Rectangle(t.x,t.y,r.width,r.height+(t.height-s.height)/n.ref):r}}StiElementLocationHelper.hashLocations=new Hashtable,__.h.StiElementLocationHelper=StiElementLocationHelper}let StiGaugeInteractionData=Stimulsoft.Base.Context.StiGaugeInteractionData,StiRadialTickLabelCustomValue=Stimulsoft.Report.Components.Gauge.StiRadialTickLabelCustomValue,StiLinearTickLabelCustomValue=Stimulsoft.Report.Components.Gauge.StiLinearTickLabelCustomValue,Orientation=Stimulsoft.System.Drawing.Orientation,StiGaugeSvgHelper=Stimulsoft.Report.Export.StiGaugeSvgHelper,Graphics=Stimulsoft.System.Drawing.Graphics,StiSvgData=Stimulsoft.Report.Export.StiSvgData,IStiGaugeVisualSvgHelper=Stimulsoft.Report.Dashboard.Visuals.IStiGaugeVisualSvgHelper;{class StiGaugeVisualSvgHelper{implements(){let t=[IStiGaugeVisualSvgHelper];return(this.implements=()=>t)()}async writeGauge(n,t,s,e,i){let r=new Rectangle(t.x,t.y,t.width,t.height),o=t.component,a=await StiGaugeVisualSvgHelper.getDataTable(o);if(null==a)return;let l=new Size(t.width,t.height),u=(new __.i.StiGaugeElementBuilder).render2(o,l,a),S=__.h.StiElementLocationHelper.getLocationRectangles(r.clone(),(await u()).length,o);if(null==(u=1<(await u()).length?(new __.i.StiGaugeElementBuilder).render2(o,new Size(S[0].width,S[0].height),a):u)||!(await u()).length)return;let m=await StiGaugeVisualSvgHelper.getTitleHeight(null,u,r.clone(),o,null),h=null!=m?m:0,c=StiDashboardStyleHelper.getElementFontFromStyle(o),d=S[0].clone(),p=await StiGaugeVisualSvgHelper.getTitleMinFontSize(null,u,c,d.width,d.height),g=(p<o.font.size&&(m=await StiGaugeVisualSvgHelper.getTitleHeight(null,u,r.clone(),o,p),h=null!=m?m:0),0);if(e&&e.needToVertScroll){let t=__.h.StiElementLocationHelper.getSumRectangle(S);e.needToVertScroll=t.height>r.height+r.top+5,e.needToVertScroll&&(r.width-=15,S=__.h.StiElementLocationHelper.getLocationRectangles(r.clone(),(await u()).length,o),u=(new __.i.StiGaugeElementBuilder).render2(o,new Size(S[0].width,S[0].height),a),r=__.h.StiElementLocationHelper.getSumRectangle(S),i.ref=Stimulsoft.System.Convert.toInt32(r.height),h=0)}for(let l of await u()){let e=S[g].clone();if(null!=m){let t=new Rectangle(e.x,e.y,e.width,h);this.paintTitle(o,null,n,t,l.series,p)}let i=new StiSvgData;if(i.x=e.x/2,i.y=(e.y+h)/2,i.width=e.width,i.height=e.height-h,i.component=l.gauge,this.isEmptyData(o,a)&&!o["isSampleForStyles"]){let t=this.getEmptyDataGauge(o);null!=t&&(i.component=t)}let t=this.getInteractionDataGeom(o,l),r=new StiSolidBrush(StiDashboardStyleHelper.getHotBackColor(o));StiGaugeSvgHelper.writeGauge(n,i,1,s,o["isSampleForStyles"],!1,t,r),o.previousAnimations=i.component.previousAnimations,g++}}paintTitle(l,t,n,s,o,a){if(StiString.isNullOrEmpty(o))return;let e=StiDashboardStyleHelper.getElementFontFromStyle(l),u=StiFontUtils.changeFontSize(e,a),i=__.h.StiTitleMeasureHelper.measureTitle4(t,s.clone(),e,o),S=new Rectangle(s.x,s.y,s.width,i.height);if(!StiString.isNullOrWhiteSpace(o)){let t=StiDashboardExpressionHelper.getForeColor(l,l.foreColor),e=Color.transparent.equals(t)?StiDashboardStyleHelper.getForeColor(l):t,i=Graphics.measureString(o,u),r=new Point(S.x+s.width/2-.39*i.width,S.y+i.height/2);StiGaugeSvgHelper.writeText(n,o,u,new StiSolidBrush(e),r,a)}s.y+=S.height,s.height-=S.height}static async getTitleMinFontSize(i,t,r,e,l){let n=null,s=new Rectangle(0,0,e,l);for(let e of await t()){let t=__.h.StiAutoSizeTextHelper.measureFontSize(i,e.series,s,r);n=null==n?t:Math.min(n,t)}return n}static async getTitleHeight(t,e,i,r,l){let n=(await e()).find(t=>!StiString.isNullOrEmpty(t.series));if(null==n)return null;let s=StiDashboardStyleHelper.getElementFontFromStyle(r),o=s,a=(null!=l&&(o=new Font(o.name,l,o.style)),__.h.StiTitleMeasureHelper.measureTitle4(t,i.clone(),o,n.series).height);if(a>i.height/2)return null;return a}getInteractionDataGeom(t,e){if(t.isDesigning)return null;let i=new StiGaugeInteractionData,r=(i.value=e.value,i.seriesText=e.series,i.target=e.target,new StiInteractionDataGeom);return r.interactionToolTip=this.getToolTip(t,i),r.interactionHyperlink=this.getHyperlink(t,i),r.interactionData=i,r}getToolTip(t,e){let i=t.dashboardInteraction?.toolTip;return StiString.isNullOrEmpty(i)?i:this.parseConstants(t,i,e)}getHyperlink(t,e){let i=t.dashboardInteraction?.hyperlink;return StiString.isNullOrEmpty(i)?i:this.parseConstants(t,i,e)}parseConstants(e,i,r){if(!StiString.isNullOrEmpty(i)){let t=new Hashtable;return t.set("Value",r.value),t.set("Series",r.seriesText),t.set("Target",r.target),StiReportParser.parse(i,e,!1,t)}return i}isEmptyData(t,e){return null!=e&&e.isEmpty&&t.isQuerable}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}getEmptyDataGauge(t){switch(t.type){case StiGaugeType.FullCircular:return this.getFullCircularEmptyDataGauge(t);case StiGaugeType.HalfCircular:return this.getHalfCircularEmptyDataGauge(t);case StiGaugeType.Linear:return this.getLinearEmptyDataGauge(t);case StiGaugeType.HorizontalLinear:return this.getHorizontalLinearEmptyDataGauge(t);case StiGaugeType.Bullet:return this.getBulletEmptyDataGauge(t)}return null}getBulletEmptyDataGauge(t){let e=StiDashboardStyleHelper.getDataEmptyColor(t),i=StiDashboardStyleHelper.getDataEmptyForeColor(t),r=new StiGauge,l=new StiLinearScale,n=(l.allowApplyStyle=!1,l.relativeHeight=.85,l.orientation=Orientation.Horizontal,l.startWidth=.1,l.endWidth=.1,l.maximum=1,l.majorInterval=1,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(e),new StiLinearTickLabelMajor);if(n.allowApplyStyle=!1,n.textBrush=new StiSolidBrush(i),l.items.add(n),t.showBlanks){let t=new StiLinearTickLabelCustom;t.offset=.1,t.font=new Font("Arial",14),t.textBrush=new StiSolidBrush(i),t.placement=StiPlacement.Inside,t.textObj=StiLocalization.get("Dashboard","Blank"),t.values.add(new StiLinearTickLabelCustomValue(.5,StiLocalization.get("Dashboard","Blank"))),l.items.add(t)}return r.scales.add(l),r}getHorizontalLinearEmptyDataGauge(t){let e=StiDashboardStyleHelper.getDataEmptyColor(t),i=StiDashboardStyleHelper.getDataEmptyForeColor(t),r=new StiGauge,l=new StiLinearScale,n=(l.allowApplyStyle=!1,l.relativeHeight=.92,l.orientation=Orientation.Horizontal,l.startWidth=.1,l.endWidth=.1,l.maximum=1,l.majorInterval=1,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(e),new StiLinearTickLabelMajor);if(n.allowApplyStyle=!1,n.textBrush=new StiSolidBrush(i),l.items.add(n),t.showBlanks){let t=new StiLinearTickLabelCustom;t.offset=.1,t.font=new Font("Arial",14),t.textBrush=new StiSolidBrush(i),t.placement=StiPlacement.Inside,t.textObj=StiLocalization.get("Dashboard","Blank"),t.values.add(new StiLinearTickLabelCustomValue(.5,StiLocalization.get("Dashboard","Blank"))),l.items.add(t)}return r.scales.add(l),r}getLinearEmptyDataGauge(t){let e=StiDashboardStyleHelper.getDataEmptyColor(t),i=StiDashboardStyleHelper.getDataEmptyForeColor(t),r=new StiGauge,l=new StiLinearScale,n=(l.allowApplyStyle=!1,l.relativeHeight=.84,l.orientation=Orientation.Vertical,l.startWidth=.1,l.endWidth=.1,l.maximum=1,l.majorInterval=1,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(e),new StiLinearTickLabelMajor);if(n.allowApplyStyle=!1,n.textBrush=new StiSolidBrush(i),l.items.add(n),t.showBlanks){let t=new StiLinearTickLabelCustom;t.font=new Font("Arial",14),t.textBrush=new StiSolidBrush(i),t.placement=StiPlacement.Overlay,t.textObj=StiLocalization.get("Dashboard","Blank"),t.values.add(new StiLinearTickLabelCustomValue(.5,StiLocalization.get("Dashboard","Blank"))),l.items.add(t)}return r.scales.add(l),r}getHalfCircularEmptyDataGauge(t){let e=StiDashboardStyleHelper.getDataEmptyColor(t),i=StiDashboardStyleHelper.getDataEmptyForeColor(t),r=new StiGauge,l=new StiRadialScale,n=(l.allowApplyStyle=!1,l.startAngle=180,l.sweepAngle=180,l.startWidth=.13,l.endWidth=.13,l.minimum=0,l.maximum=1,l.radius=.92,l.majorInterval=1,l.center=new Point(.5,.7),l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(e),new StiRadialTickLabelMajor);if(n.allowApplyStyle=!1,n.textBrush=new StiSolidBrush(i),l.items.add(n),t.showBlanks){let t=new StiRadialTickLabelCustom;t.offset=.8,t.font=new Font("Arial",14),t.textBrush=new StiSolidBrush(i),t.placement=StiPlacement.Overlay,t.values.add(new StiRadialTickLabelCustomValue(.5,StiLocalization.get("Dashboard","Blank"))),l.items.add(t)}return r.scales.add(l),r}getFullCircularEmptyDataGauge(t){let e=StiDashboardStyleHelper.getDataEmptyColor(t),i=StiDashboardStyleHelper.getDataEmptyForeColor(t),r=new StiGauge,l=new StiRadialScale,n=(l.allowApplyStyle=!1,l.startAngle=120,l.sweepAngle=300,l.startWidth=.13,l.endWidth=.13,l.minimum=0,l.maximum=1,l.majorInterval=1,l.borderBrush=new StiEmptyBrush,l.brush=new StiSolidBrush(e),new StiRadialTickLabelMajor);if(n.allowApplyStyle=!1,n.textBrush=new StiSolidBrush(i),l.items.add(n),r.scales.add(l),t.showBlanks){let t=new StiRadialTickLabelCustom;t.offset=.8,t.font=new Font("Arial",14),t.textBrush=new StiSolidBrush(i),t.placement=StiPlacement.Overlay,t.values.add(new StiRadialTickLabelCustomValue(.5,StiLocalization.get("Dashboard","Blank"))),l.items.add(t)}return r.scales.add(l),r}}__.h.StiGaugeVisualSvgHelper=StiGaugeVisualSvgHelper}__.u.StiIndicatorIteration=class{constructor(t,e,i){this.series=t,this.value=e,this.target=i}};let StiDataSortDirection=Stimulsoft.Data.Engine.StiDataSortDirection,StiDataSortVariation=Stimulsoft.Data.Engine.StiDataSortVariation,StiIndicatorIteration=__.u.StiIndicatorIteration;{class StiIndicatorElementBuilder extends __.i.StiElementBuilder{async render(s,o){this.storedCulture=StiCultureHelper.set(s.report);try{let e=this.getValueMeterIndex(o),i=this.getTargetMeterIndex(o),r=this.getSeriesMeterIndex(o),t=this.getSeriesKeys(o,r,this.getSeriesKeysLimitCount(s)),l=t.length,n=t.map(t=>new StiIndicatorIteration(this.getSeries(o,r,t,s.report),this.getValue(o,e,r,l,t),this.getNullableValue(o,i,r,l,t)));return n=StiIndicatorElementBuilder.processVariationSort(s,n),await StiIndicatorElementBuilder.processTopNElements(s,n)}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static processVariationSort(t,e){let i=t.userSorts;return e=StiDataSortVariation.isVariationSort(i)?i[0].direction==StiDataSortDirection.Ascending?e[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>0!=t.target?t.value/t.target:0):e[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>0!=t.target?t.value/t.target:0):e}static async processTopNElements(l,n){if(l.topN.mode==StiDataTopNMode.None)return n;let s=(n=l.topN.mode==StiDataTopNMode.Bottom?n[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>t.value):n[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>t.value)).slice(0,l.topN.count);if(n.length>l.topN.count&&l.topN.showOthers){let t=n.slice(l.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNumber(t.value)),e=n.slice(l.topN.count),i=e.every(t=>null!=t?null==t.target:null)?null:e[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNullableNumber(t.target)),r=StiString.isNullOrEmpty(l.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(l.topN.othersText,l);s.push(new StiIndicatorIteration(r,t,i))}return s}getValueMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiValueIndicatorMeter));return null!=e?t.meters.indexOf(e):-1}getTargetMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiTargetIndicatorMeter));return null!=e?t.meters.indexOf(e):-1}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesIndicatorMeter));return null!=e?t.meters.indexOf(e):-1}}__.i.StiIndicatorElementBuilder=StiIndicatorElementBuilder}let StiNegativeColorChecker=Stimulsoft.Report.Components.TextFormats.StiNegativeColorChecker,GraphicsUnit=Stimulsoft.System.Drawing.GraphicsUnit,StiIndicatorInteractionData=Stimulsoft.Base.Context.StiIndicatorInteractionData,StiIndicatorElement=(__.u.StiIndicatorVisual=class extends __.j.StiVisual{async draw(t,e){let i=.06*e.width,r=(12<(i=i<4?4:i)&&(i=12),new Rectangle(e.x+i/2,e.y+i/2,e.width-i,e.height-i));try{t.pushClip(e),1==this.iterations.length?await this.drawSingleMode(t,e,r):0<this.iterations.length&&await this.drawMultiMode(t,r),t.popClip()}finally{}}getContentRectangle(e){if(1<this.iterations.length){let t=e.height/this.iterations.length;return t<this.minSide&&(t=this.minSide),new Rectangle(e.x,e.y,e.width,t*this.iterations.length)}return e}async drawSingleMode(o,e,t){if(0==this.iterations.length)return;let i=null!=this.iterations[0].target,r=null,a=null,l=null,n={ref:r},s={ref:a},u={ref:l},S=this.getDisplayText(this.iterations[0]),m=(this.getRectanglesSingleMode(o,S,t,n,s,u),r=n.ref,a=s.ref,l=u.ref,StiDashboardStyleHelper.getElementFontFromStyle(this.element)),h=this.processFontName(m.fontFamily.name,this.iterations[0]),c=this.processFontStyle(m,this.iterations[0]),d=new Font(h,8,c),p=null;if(null==this.element.series)p=this.element.icon;else{let t=await this.calculateDeltaIconList(this.iterations[0].value,this.iterations[0].value);p=t[0]}null==p&&(p=StiFontIcons.CircleCross);let g=this.processBackColor(this.iterations[0]),b=this.processForeColor(this.iterations[0]),C=this.processGlyphColor(this.iterations[0]),f=this.processIcon(p,this.iterations[0]),y=this.processIconAlignment(this.iterations[0]),w=this.processCustomIcon(this.iterations[0]);if(null!=g&&o.fillRectangle(g,e,null),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);null==g&&(g=Color.transparent),o.fillRectangle3(g,t,e,this.getInteractionDataGeom(this.iterations[0]))}let M=b;if(this.iterations[0].value<0&&StiNegativeColorChecker.isNegativeInRed(this.element.textFormat)&&(M=Stimulsoft.StiOptions.Engine.negativeColor),this.drawTextIcon(o,S,d,StiFontIconsHelper.getContent(f),M,C,r,y,w),i){let t=this.getVariation(this.iterations[0]),e=StiDashboardStyleHelper.getIndicatorStyle(this.element),i=0<=t?e.positiveColor:e.negativeColor,r=(i=this.processTargetIconColor(i,this.iterations[0]),0<=t?StiFontIcons.ArrowUp:StiFontIcons.ArrowDown),l=(r=this.processTargetIcon(r,this.iterations[0]),StiTextFormatHelper.formatAsPercentage2(this.element.report,this.element.targetFormat,t)),n=0==t?StiIconAlignment.None:StiIconAlignment.Right,s=this.processTargetIconAlignment(n,this.iterations[0]);this.drawTextIcon(o,l,d,StiFontIconsHelper.getContent(r),i,i,a,s,null)}let I=null,T={ref:I};if(this.measureFontSize(o,l,this.iterations[0].series,T),null!=(I=.88*T.ref)&&0<I){let t=new Font(h,I,c),e=StiFontGeom.create(t);o.drawRotatedString5(this.iterations[0].series,e,b,l,StiStringFormatHelper.getStringFormatGeom(o),StiRotationMode.CenterCenter,0,!0)}}getVariation(t){let e=t.value,i=StiValueHelper.tryToNumber(t.target),r=0;if(0!=i)switch(this.element.targetMode){case StiTargetMode.Variation:r=e/i-1,i<0&&(r=-r);break;case StiTargetMode.Percentage:r=e/i;break}return r}getFactorByFontSize(i,r,l,n){switch(l.fontSizeMode){case StiFontSizeMode.Auto:return.7;case StiFontSizeMode.Value:case StiFontSizeMode.Target:{let t=StiDashboardStyleHelper.getElementFontFromStyle(l),e=i.measureString(r,StiFontGeom.create(t));return e.height/n.height}}return 0}getRectanglesSingleMode(t,e,i,r,l,n){let s=this.iterations[0].target,o=null!=s,a=!StiString.isNullOrEmpty(this.iterations[0].series),u=.7,S=(1-u)/2,m=1-S-u,h=i.y;!a&&o?(this.element.fontSizeMode==StiFontSizeMode.Value?(u=this.getFactorByFontSize(t,e,this.element,i),S=1-u):this.element.fontSizeMode==StiFontSizeMode.Target&&(S=this.getFactorByFontSize(t,e,this.element,i),u=1-S),m=0):a&&!o?(S=0,m=1-u):a||o||(this.element.fontSizeMode!=StiFontSizeMode.Value?u=1:(u=this.getFactorByFontSize(t,e,this.element,i),h=i.y+(i.height-i.height*u)/2),S=0,m=0),r.ref=new Rectangle(i.x,h,i.width,i.height*u),l.ref=new Rectangle(r.ref.x,r.ref.bottom,i.width,i.height*S),n.ref=new Rectangle(r.ref.x,l.ref.bottom,i.width,i.height*m)}processFontStyle(t,e){let i=this.processFontBold(t.bold,e),r=this.processFontItalic(t.italic,e),l=this.processFontUnderline(t.underline,e),n=this.processFontStrikeout(t.strikeout,e),s=FontStyle.Regular;return i&&(s^=FontStyle.Bold),r&&(s^=FontStyle.Italic),l&&(s^=FontStyle.Underline),n&&(s^=FontStyle.Strikeout),s}processFontStrikeout(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.FontStyleStrikeout)&&this.getConditionResult(e,t))return t.font.strikeout;return t}processFontUnderline(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.FontStyleUnderline)&&this.getConditionResult(e,t))return t.font.underline;return t}processFontItalic(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.FontStyleItalic)&&this.getConditionResult(e,t))return t.font.italic;return t}processFontBold(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.FontStyleBold)&&this.getConditionResult(e,t))return t.font.bold;return t}processFontName(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.Font)&&this.getConditionResult(e,t))return t.font.name;return t}processIcon(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.Icon)&&this.getConditionResult(e,t))return t.icon;return t}processTargetIcon(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.TargetIcon)&&this.getConditionResult(e,t))return t.targetIcon;return t}processCustomIcon(e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.Icon)&&this.getConditionResult(e,t))return t.customIcon;return this.element.customIcon}processIconAlignment(e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.Icon)&&this.getConditionResult(e,t))return t.iconAlignment;return this.element.iconAlignment}processTargetIconAlignment(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.TargetIcon)&&this.getConditionResult(e,t))return t.targetIconAlignment;return t}processBackColor(e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.BackColor)&&this.getConditionResult(e,t))return t.backColor;return null}processForeColor(e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.TextColor)&&this.getConditionResult(e,t))return t.textColor;return StiDashboardStyleHelper.getForeColor(this.element)}processGlyphColor(e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.Icon)&&this.getConditionResult(e,t))return t.iconColor;return StiDashboardStyleHelper.getGlyphColor(this.element)}processTargetIconColor(t,e){for(let t of this.element.indicatorConditions)if(0<(t.permissions&StiIndicatorConditionPermissions.TargetIcon)&&this.getConditionResult(e,t))return t.targetIconColor;return t}getConditionResult(r,e){let l=null;switch(e.field){case StiIndicatorFieldCondition.Value:l=r.value;break;case StiIndicatorFieldCondition.Series:l=r.series;break;case StiIndicatorFieldCondition.Target:l=r.target;break;case StiIndicatorFieldCondition.Variation:{let t=this.getVariation(r),e=new StiPercentageFormatService,i=(e.decimalDigits=3,StiTextFormatHelper.formatAsPercentage2(this.element.report,e,t));l=i.replace("%","")[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break}}let t=!1,i=this.getConditionValue(e);if(null!=l){let t=l=e.field!=StiIndicatorFieldCondition.Value&&e.field!=StiIndicatorFieldCondition.Target&&e.field!=StiIndicatorFieldCondition.Variation?l:null==l?0:l[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(null!=t&&null!=i){l[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(l=l.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=l);try{switch(e.condition){case Stimulsoft.Report.Components.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case Stimulsoft.Report.Components.StiFilterCondition.Containing:{let t=l.toString(),e=i.toString();return-1!=t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.NotContaining:{let t=l.toString(),e=i.toString();return-1==t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.BeginningWith:{let t=l.toString(),e=i.toString();return t.startsWith(e)}case Stimulsoft.Report.Components.StiFilterCondition.EndingWith:{let t=l.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}getConditionValue(t){if(StiString.isNullOrEmpty(t.value))return null;switch(t.field){case StiIndicatorFieldCondition.Value:case StiIndicatorFieldCondition.Target:case StiIndicatorFieldCondition.Variation:return t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();default:return t.value.toString()}}async drawMultiMode(t,e){if(0==this.iterations.length)return;let i=this.getTargetValues();i.some(t=>null!=t)?this.drawMultiModeWithTarget(t,e.clone(),i):await this.drawMultiModePresent(t,e.clone())}async drawMultiModePresent(c,d){let t=this.iterations.map(t=>t.value),e=t[Stimulsoft.System.StiObject.stimulsoft]().max(),i=t[Stimulsoft.System.StiObject.stimulsoft]().min(),h=d.height/this.iterations.length,p=(h<this.minSide&&(h=this.minSide),await this.calculateDeltaIconList(i,e)),g=[],b=[];for(let t of this.iterations)g.push(t.series),b.push(this.getDisplayText(t));let C=StiDashboardStyleHelper.getElementFontFromStyle(this.element),l=null,n=new Font(C.fontFamily.name,1,C.style,C.unit);for(let r=0;r<this.iterations.length;r++){let t=g[r]+b[r]+"Icon",e=new Rectangle(d.x,d.y,d.width,h),i=StiStringFormatHelper.getFontSize(c,e,t,n);(null==l||l>i)&&(l=i)}let f=StiStringFormatHelper.getStringFormatGeom(c),r=StiDashboardStyleHelper.getElementFontFromStyle(this.element),y=r.size/13*l;if((y=y>l?l:y)<1)return;let w=[],M=null,I=new StiFontGeom("Stimulsoft",.6*y,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point);for(let m=0;m<this.iterations.length;m++){let t=this.processFontName(C.fontFamily.name,this.iterations[m]),e=this.processFontStyle(C,this.iterations[m]),i=new Font(t,y,e),r=StiFontGeom.create(i),l=[],n=d.y+h*m,s=new Rectangle(d.x,n,d.width,h),o=(l.push(s),c.measureString(g[m],r)),a=new Rectangle(s.x,s.y,o.width,h),u=(l.push(a),c.measureString(StiFontIconsHelper.getContent(p[m]),I)),S=((null==M||M>d.right-u.width-this.indent)&&(M=d.right-u.width-this.indent),new Rectangle(M,s.y,u.width,h));l.push(S),w.push(l)}for(let h=0;h<this.iterations.length;h++){let t=this.processFontName(C.fontFamily.name,this.iterations[h]),e=this.processFontStyle(C,this.iterations[h]),i=new Font(t,y,e),r=StiFontGeom.create(i),l=w[h],n=l[0];if(!n.intersectsWith(d))return;let s=this.processBackColor(this.iterations[h]);if(null!=s&&c.fillRectangle(s,n,null),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);null==s&&(s=Color.transparent),c.fillRectangle3(s,t,n,this.getInteractionDataGeom(this.iterations[h]))}let o=new Rectangle(l[1].x+this.indent,l[1].y,l[1].width,l[1].height),a=this.processForeColor(this.iterations[h]),u=(c.drawRotatedString5(g[h],r,a,o,f,StiRotationMode.CenterCenter,0,!0),l[2]),S=this.processGlyphColor(this.iterations[h]),m=p[h];if(null!=m){let t=this.processIcon(m,this.iterations[h]);c.drawRotatedString5(StiFontIconsHelper.getContent(t),I,S,u,StiStringFormatHelper.getStringFormatGeom(c),StiRotationMode.CenterCenter,0,!0)}c.drawRotatedString4(b[h],r,a,new Point(M-4,u.y+u.height/2),f,StiRotationMode.RightCenter,0,!0)}}async calculateDeltaIconList(l,t){let i=[],n=t-l,s=StiFontIconsHelper.getFontIcons(this.element.iconSet),o=[];if(this.element.iconMode==StiIndicatorIconMode.Auto){let r=1/s.length;for(let i=0;i<s.length;i++){let t=l+i*r*n,e=l+(1+i)*r*n;o.push(new __.u.StiIndicatorIconRangeValue(t,e,s[i]))}}else for(let i of this.element.iconRanges){let t=StiValueHelper.tryToNumber(await StiReportParser.parseAsync(i.startExpression,this.element)),e=StiValueHelper.tryToNumber(await StiReportParser.parseAsync(i.endExpression,this.element));this.element.iconRangeMode==StiIndicatorIconRangeMode.Percentage&&(t=l+t/100*n,e=l+e/100*n),o.push(new __.u.StiIndicatorIconRangeValue(t,e,i.icon))}for(let e of this.iterations){let t=o.filter(t=>t.isBetween(e.value))[0];i.push(null!=t?t.icon:null)}return i}drawMultiModeWithTarget(f,y,t){let w=y.height/this.iterations.length,M=(w<this.minSide&&(w=this.minSide),[]),I=[],T=[],x=[],D=[];for(let l=0;l<this.iterations.length;l++){let t=this.iterations[l],e=(M.push(t.series),I.push(this.getDisplayText(t)),this.getVariation(this.iterations[l])),i=StiTextFormatHelper.formatAsPercentage2(this.element.report,this.element.targetFormat,e),r=0<=e?StiFontIcons.ArrowUp:StiFontIcons.ArrowDown;T.push(i),x.push(r),D.push(0==e?StiIconAlignment.None:StiIconAlignment.Right)}let l=null,F=StiDashboardStyleHelper.getIndicatorStyle(this.element),v=StiDashboardStyleHelper.getElementFontFromStyle(this.element),n=new Font(v.fontFamily.name,1,v.style,v.unit);for(let r=0;r<this.iterations.length;r++){let t=M[r]+I[r]+T[r]+"DeltaIcon",e=new Rectangle(y.x,y.y,y.width,w),i=StiStringFormatHelper.getFontSize(f,e,t,n);(null==l||l>i)&&(l=i)}let A=StiStringFormatHelper.getStringFormatGeom(f),E=this.element.font.size/13*l;if((E=E>l?l:E)<1)return;let R=new StiFontGeom(v.fontFamily.name,E,v.style,v.unit),O=new StiFontGeom("Stimulsoft",.99*E,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),H=null;for(let t=0;t<this.iterations.length;t++){let e=x[t];if(null!=e){let t=f.measureString(StiFontIconsHelper.getContent(e),O);(null==H||H>y.right-t.width-+this.indent)&&(H=y.right-t.width-+this.indent)}}let _=null;for(let e=0;e<this.iterations.length;e++){let t=f.measureString(T[e],R);(null==_||_>H-t.width)&&(_=H-t.width)}for(let C=0;C<this.iterations.length;C++){let t=this.processForeColor(this.iterations[C]),e=this.processFontName(v.fontFamily.name,this.iterations[C]),i=this.processFontStyle(v,this.iterations[C]),r=new Font(e,E,i),l=(R=StiFontGeom.create(r),y.y+w*C),n=new Rectangle(y.x,l,y.width,w);if(!n.intersectsWith(y))return;let s=this.processBackColor(this.iterations[C]);if(null!=s&&f.fillRectangle(s,n,null),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);null==s&&(s=Color.transparent),f.fillRectangle3(s,t,n,this.getInteractionDataGeom(this.iterations[C]))}let o=f.measureString(M[C],R),a=new Rectangle(n.x+this.indent,n.y,o.width,w),u=(f.drawString(M[C],R,t,a,A),x[C]==StiFontIcons.ArrowUp?F.positiveColor:F.negativeColor),S=(u=this.processTargetIconColor(u,this.iterations[C]),f.measureString(StiFontIconsHelper.getContent(x[C]),O)),m=new Rectangle(H,n.y,S.width,w),h=f.measureString(T[C],R),c=new Rectangle(H-h.width,n.y,h.width,w),d=x[C],p=(d=this.processTargetIcon(d,this.iterations[C]),f.drawRotatedString5(T[C],R,u,c,A,StiRotationMode.CenterCenter,0,!0),this.processTargetIconAlignment(D[C],this.iterations[C])),g=(p!=StiIconAlignment.None&&f.drawRotatedString5(StiFontIconsHelper.getContent(d),O,u,m,StiStringFormatHelper.getStringFormatGeom(f),StiRotationMode.CenterCenter,0,!0),this.iterations[C].value<0&&StiNegativeColorChecker.isNegativeInRed(this.element.textFormat)&&(t=Stimulsoft.StiOptions.Engine.negativeColor),f.measureString(I[C],R)),b=new Rectangle(_-g.width,l,g.width,w);f.drawRotatedString4(I[C],R,t,new Point(b.right,b.y+b.height/2),A,StiRotationMode.RightCenter,0,!0)}}getInteractionDataGeom(t){if(this.element.isDesigning)return null;let e=new StiIndicatorInteractionData,i=(e.value=t.value,e.seriesText=t.series,e.target=t.target,new StiInteractionDataGeom);return i.interactionToolTip=this.getToolTip(e),i.interactionHyperlink=this.getHyperlink(e),i.interactionData=e,i}getToolTip(t){let e=this.element.dashboardInteraction?.toolTip;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}getHyperlink(t){let e=this.element.dashboardInteraction?.hyperlink;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}parseConstants(e,i){if(!StiString.isNullOrEmpty(e)){let t=new Hashtable;return t.set("Value",i.value),t.set("Series",i.seriesText),t.set("Target",i.target),StiReportParser.parse(e,this.element,!1,t)}return e}getMaxValue(){let e=0;for(let t of this.iterations)e<t.value&&(e=t.value);return e}getTargetValues(){let e=[];for(let t of this.iterations)e.push(t.target);return e}drawTextIcon(h,c,d,p,e,i,g,b,t){let C,f,y=null;if(b==StiIconAlignment.None){C=Rectangle.empty,f=new Rectangle(g.x,g.y,g.width,g.height);let t={ref:y};this.measureFontSize(h,f.clone(),c,t),y=t.ref}else if(b==StiIconAlignment.Right||b==StiIconAlignment.Left){let t={ref:y};if(this.measureFontSize(h,g.clone(),c,t),null==(y=t.ref)&&y<=0)return;let e=new StiFontGeom("Stimulsoft",y,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point),i=new StiFontGeom(d.fontFamily.name,y,d.style,Stimulsoft.System.Drawing.GraphicsUnit.Point),r=h.measureString(c,i),l=h.measureString(p,e),n=r.width+l.width>g.width?g.width/(r.width+l.width):1,s=(y*=n,new Size(r.width*n,r.height*n)),o=new Size(l.width*n,l.height*n),a=b==StiIconAlignment.Right?g.x+(g.width-s.width-o.width)/2:g.x+(g.width-s.width-o.width)/2+o.width,u=g.y+(g.height-s.height)/2,S=(f=new Rectangle(a,u,s.width,s.height),b==StiIconAlignment.Right?f.right:f.x-o.width),m=g.y+(g.height-o.height)/2;C=new Rectangle(S,m,o.width,o.height)}else{f=b==StiIconAlignment.Bottom?new Rectangle(g.x,g.y,g.width,g.height/2):new Rectangle(g.x,g.y+g.height/2,g.width,g.height/2),C=b==StiIconAlignment.Bottom?new Rectangle(g.x,g.y+g.height/2,g.width,g.height/2):new Rectangle(g.x,g.y,g.width,g.height/2);let t={ref:y};this.measureFontSize(h,f,c,t),y=t.ref}if(null!=y&&0<y){let t=new StiFontGeom(d.fontFamily.name,y,d.style,GraphicsUnit.Pixel);h.drawRotatedString5(c,t,e,f,StiStringFormatHelper.getStringFormatGeom(h),StiRotationMode.CenterCenter,0,!0)}if(null!=y&&0<y&&b!=StiIconAlignment.None)if(null==t||0==t.length){let t=new StiFontGeom("Stimulsoft",.6*y,Stimulsoft.System.Drawing.FontStyle.Regular,Stimulsoft.System.Drawing.GraphicsUnit.Point);h.drawRotatedString5(p,t,i,C,StiStringFormatHelper.getStringFormatGeom(h),StiRotationMode.CenterCenter,0,!0)}else h.drawImage(t,C)}getFontGeom(t){return new StiFontGeom("Arial",t,FontStyle.Bold,GraphicsUnit.Point)}measureFontSize(t,e,i,r){let l=t.measureString(i,this.getFontGeom(1e3));if(0==l.width||0==l.height)return void(r.ref=0);let n=e.width/l.width*1e3,s=e.height/l.height*1e3,o=s<n?s:n;(null==r.ref||r.ref>o)&&(r.ref=o)}getElementSide(t,e){let i=t?e.height:e.width,r=t?e.width:e.height,l=i/this.iterations.length;return l=l>r?r:l}getDisplayText(t){switch(this.element.valueType){case StiIndicatorValueType.Value:return StiTextFormatHelper.format(this.element.report,this.element.textFormat,t.value);case StiIndicatorValueType.ValueTarget:return StiTextFormatHelper.format(this.element.report,this.element.textFormat,t.value)+` / `+StiTextFormatHelper.format(this.element.report,this.element.textFormat,null!=t.target?t.target:0);default:return StiTextFormatHelper.format(this.element.report,this.element.textFormat,t.value)}}constructor(t,e){super(),this.indent=4,this.minSide=20,this.element=t,this.iterations=e}},__.V.StiIndicatorElement),IStiIndicatorVisualSvgHelper=Stimulsoft.Report.Dashboard.Visuals.IStiIndicatorVisualSvgHelper,StiIndicatorElementBuilder=__.i.StiIndicatorElementBuilder,StiIndicatorVisual=__.u.StiIndicatorVisual;{class QGa{implements(){let t=[IStiIndicatorVisualSvgHelper];return(this.implements=()=>t)()}async writeIndicator(t,e,i,r){let l=new Rectangle(0,0,e.width,e.height),n=e.component.as(__.V.StiIndicatorElement),s=await QGa.getDataTable(n);if(null==s)return;let o=await(new StiIndicatorElementBuilder).render(n,s);if(n["isSampleForStyles"]?o=this.getStyleSampleIterations():this.isEmptyData(n,s)&&(o=this.getEmptyDataIterations(n),n=this.getEmptyDataIndicatorElement(n)),null==o||!o.length)return;let a=new StiContextPainter,u=new StiContext(a,!0,!1,!1,1),S=new StiIndicatorVisual(n,o);if(i&&i.needToVertScroll){let t=S.getContentRectangle(l);i.needToVertScroll=t.height>l.height+5,i.needToVertScroll&&(l.width-=15,t=S.getContentRectangle(l),(l=t).height+=10,r.ref=Stimulsoft.System.Convert.toInt32(l.height))}await S.draw(u,l.clone()),t.writeStartElement("g");let m=i&&i.needToVertScroll?0:e.x,h=i&&i.needToVertScroll?0:e.y;t.writeAttributeString("transform",StiString.format("translate({0},{1})",this.p(m),this.p(h))),StiContextSvgHelper.writeGeoms(t,u,!1),t.writeEndElement()}p(t){return t.toString().split(",").join(".")}isEmptyData(t,e){return null!=e&&e.isEmpty&&t.isQuerable}getStyleSampleIterations(){let t=[],e=new StiIndicatorIteration;return e.value=100,t.push(e),t}getEmptyDataIterations(t){let e=[],i=new StiIndicatorIteration;return i.value=0,t.showBlanks&&(i.series=StiLocalization.get("Dashboard","Blank")),e.push(i),e}getEmptyDataIndicatorElement(t){let e=t.clone(!0).as(StiIndicatorElement);return e.glyphColor=Color.fromArgb2(240,240,240),e}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}}__.h.StiIndicatorVisualSvgHelper=QGa}{class qHa{static getContent(){let t=Stimulsoft.System.compactBase64("baeuRsmR#az#{h\tCftAMi\t\fIKZqjw3kʲe_-/!)2$0@ \tXjX+?{sg)\tAiC?\fFV{η*],V/ϟ/NUhrq{}mӢx_cS~_g~z8ҙH5y}$0Ӂ?CSbjϻq3%\b3zU{'Oe1v·u>G\vPk>?OK:,!H[ (\voFttI$(~9^U1MB;fI,1z\vd7e2aJoQB6x8\bEzCSQ#vQ)ΑCפqld{])ϛ\vat֢ϪYg'B-a2=n8*Ey[/{¿]]mʧe@w;e%L{:q]6T)bExmoo;Go^w\t ח(sn.v>^Spc3FPmgˀ[UILg\fIT%lM<D8[?Ζ3EkΠ.es<N\t|o5m2@E2]GqEVLˡi,a/eSJ4/(^jY8X[BL:8^\vUy/Jx/SgrfL9V# eqa|5)ց,30^W%\v:*,mpS^AX+JoiBrg\vhsps4,BJ-~IbjYrNRFT:O1DΘYG4$df AjtyqH!Xnb;MYbK(Z19@'3S=?v}7fTPX,l0t,S<!e^H7Ex=@hUãa!5d¨Ni{R*LCB.Ӽ\fYZhbCtf\b[N%\td<SDʜҰʄn.r9i Y{2UKk\b=e6[vBUr.sL!>ƖrvL@`PykN>N2D>:QNa@\váQqSDAM_@3tkSCp0X-]) Oo+εeOgBs\fS`-}wוa=CpGY\b֥v-cgwM\f a^P=u=rU!/]\b*4lc,mMQ4ti\v3ˎӼ.yw[2-épv?/@[aQHD7
tӗ_DLbϥB!3ghׁ u!{wPnC\v41vtkZo^zV0j]ςm×`!b-J4{ơ ggǓwNK֏)>\b@?n?D0ʹ6Xi.IdBlie\t,Hu@v{]T /I3Ply5Άk`fIӹgdǩ,V֩bbeZj\bamu0le+C#_lփ\f?Y>ʩKrnds˵L|}eֆ$PQC!bhZӜ]iE%J4-(\bf};nU3{RF=.ϯg0@[\vOQ2ΆB˿/sx<iZuj@=tdrMP<,[f(wDonc8iu/v\tDKN)HnYHNBs#_kE5\vNs[FBHXGƉ?(+P8cM4ƪ8>)p4RHYspD5-(AeE5( 6]ZTfoe[4j6V38|ʲ$IBNYY\tJG%JJb:g-rϳ!v\t7uHs(f\vB_{>Q~>{=c[5}=w/Z%.G9Rblǀ>åfrDN\v#(E\b|/VZ$lY!3>-jnm>|9RB@@QK.T7gk6hxyxӥ˩#BR0T.*Z>:\bάU8^QW$\bLhw$քNoξ't1F`x\fE?H^_SeLyL9N\t/\bxx{[wuf>B78xQI\vp{-Un%piNyW4Cfk-JnEs]OtwCX6/Uom741Bco4yXʑP_ϲ!P~s9^hLKjaשs8j/,B6\f7[u7tjhii<jzKrc\t982Y-$Sy[VgE/ lϋςíH(kgqJϓ8%Ϸ{eKpvjjHZƢ!O%i'V<uP,ˣ\b!Z%^K1W!C%<˂GǛӆKDFxT,gL5\bƵqQv+`tdeGq1DJUtxyvO=g'o4^\t (*h;GӴlm3VEq\v2]{<iel6O\t7Qφ\vgHA6C\fXLcK;,e(]Ӟ_)muyZZrvjSZZdm) nEZQVeÛi[reN2neeoUYW4TP4LQih6^W_.Q]@\v;5,,fUiMmYYk[65^,6dҒwVHUZBR_hZn`I3 [V`XDXzRapfL\f*hf˟<F4^ǁi793ma++PU?[*6w!vpj3jc\f]go7\t`#RV2z-~c#?*n+-Fn_7˺$XEj;q\ffuX?=[pBs4Lj=xZBHilGqDK[*ӆ4DTK
S#=UO7:[5Vd4ZӑaӄFQnSDke+vw%C;UǯjeLyMʊ#@%P,֪֩P\fJI6'B`-M6Jdd;*Q/dK,C9Cb-gTho <j}ZjlP+ӹYqP:K:lRODΏΌZþCV{UKk_C[+%5ʢt}jfJy/!`B%xk%I:6$<0g<{)2xY\tרfr_Vo<ytU^0Ê~><29S8|jVǠMyӚ)6._-16m,q3-T57:9Vh\vNCS 0;/a62rq^$#5>L},~rlEyq:Ô}Ӝ6_#>m3%Ͻ%{n{GgGo[V$˂@mv{d\vpON/}#4v6FB6l֞~xʮ7?=7?1(;^@;\tL#5k2BO7ie_XWc8\tj\b\f\bVbe±[S8A5ƓGP=Ijl=wOYJMo=N6b8]2TvQҞ>AK}}.0dV7\vo?zLJdF@6kaSo{[ӎiV0kx`XQ,GE<Hu!ev4B4Gdÿ8/eJ*'vo\vT!/{=6UkLaǢ?r~MSEO(ΰaRÉq|7ϛ5B{FAV˕2Қ~!ּxqgh%`V:0GD\vd5ljy4 R3ƹrt]UP! N?E0|`T/5Qâ4=qvfjQM<Dz1L-l?|_֫71Jbf9>.=ZAZA(feZ->bf*?'qUO:n0{|7rgj:F,RZbD $O=2ʬ5$I[wa\bc80^rjD\vWFiJ/R-r:pCi#i\f]+7o7Jm|aKp4e?Tg^rf{F)LU+4<σjX\vv=_˾|d'7Z]iϛI(,2ek:'5¥H;JUL(R^[+x';c\bwMFǼkH\bZ_ǭs(XY)6;]wdxswV$?5SevqJM3n+3ʨ@is!'E:un?_)ms)Iy\f֡Uu9?]`BrQ,fj@%9U,K5ם*G7(pƤVcYCX*ֵ_bpLCzu|3b8\t-5zk1Zs/_,iM?-~p@Y.lsּh 3kPU\fLoHUcCm5U-0\b;Sd;BӾVX3xO=q8*,l)wyavxnxtRC\tε1 B%W`_i\td4}@,if5T$zF\t9KJaK3DhWa{7nˍZM{Ӑ-$MeZKDV\vϨbWJG76\b1x\v9T,Q4˗ldM%GQ\f{f(f$H:z@7#mqkDO0ʆy_=)-X~4\tm2(+gb,yxU*bIeoh]5tq>|+#mdeǗRօe^J5/Ҹi/}5Ric~5}TfI6<P5:[!.ҥұEp]cccbxjnRHZuSé˓p?;VJroaj%|m+%_?5b.n2S4~`pmmTO\t9u7~cH<Qw!YaBrj(O~`wtMz.hJDz>3#8OKL##$#XE55MO>n6FECc!N[:Go7\fKTq@mR5Wb*jX`:*zU6T,uvJ'm_lgzZk'}3!kcAk$SVnBj]LxhM{W}=c0l:[VFל[o˒c{e+c4AB,5ceQ/PSj%=n$iPoy[3F\fT'o\vw[mn~4xnY~[KGbnd:FAhVo6M,Y>Ov\b)J93\vkf\vQF.}P@~r7.wM+6-A:rw<NVǃjk!CxNӱm6qg8_8+EhSI>~l}l5Um\b~V^NWw֫'kI=eoXrn\t{{ItҔMe=MRTm^[:Ϭ+9í5g\tT[;ˆyebLSR?WY'˳m\f]NSn=|[*7Lo{mScfPv`xsZs.78BRmX9V2,>w}@yZRhO;\fpO\vX;?ZI.U9-dp_?J{:`'MwI}em\vk.nD~VkTr3w~-|[sf[jZMF},.3'HN(]=MFFsxycl1X{=[zfP4fheQ 9\f*]_s%IP3<};!QS@|*e4gXfBZ/NE[֘AIYUx˸m:^a]tm7֟z={^ucw6p\t; 2evp9Av@p-q{6*Agxn7t2;-uurϪ,y<<<;.Kh$]6\fAʼY3]6k-$@xxxXdQwa֜rx\bY@/KdA}dh]g`DED9\v<f:ǟ)T[|up[CXb=5 Z^BC0xVY*Wv{=^vc2z'a/$ˏelBa2dCdv?VxHEeYO(~uio<cqR{bETDP\vWT2Ƶ8\t?f3,p|?iZDT?(ƛZ{d ӼP^hҁpe0b|rGp>Fi`2r/:.w1.q.T}4sF|}VC=-ӿ8kjÔYS_\t=Ǘ>!j%Y.vRp~-/gOϓd@6oUJf'ë08yUAiq|eV:vg|{55mOT4{FjothP.hWBCm]*bV+Ln`n^λk-eN˯sVCan!=arILG7r0(Ɔb)q_\vB()èG6.N?YDCTցkL)5ҋ [2Z|<ӯ>JR?8;Ǭ{kS6JjHYzpI>V@\b5`=T5[72?|M8:VXDL1\vʒZd)ξ]'|FZR%bj-ˊ~w0[Wϕ.u^M?UCJvn$_\voUfAOu\v*OGNr\f#-dM]R\vnX])Ë;ʟ\vt,sJ+OKnױϬKRVLVBK\bq7ns,c`o\tW2cgEY+nGϞm\v*.J2S35g-{~7zk.]`*eחw`[X:m;%TOK8>f3`0*V[getRƶ_}Ώ6*hM!`Ϲ`z)tb8!a`G^R\bu\t3ґ#lko(S$4:^^.B4s$jil6vL |h[\bu_vZ%tOHˊ1W,\tPN6uE\tTsn/8yFe 9qlQx`~tDB^8_QʷljGc5P3j[Jy.mTkxRu7wwA!XQaKQgp\vEP-|c;Q6Vr@BΚOFt?p9rNnzDΛuFSa_p{>Y?Xh_-Rb)h~sw+\t%u8)jw(ZqʤV~) Ͻ7M(l6pOUHnM>t˔<T|k uOQY(2l[րUXZql?2WX]u]/=w>Wt{<#uw֦g=[t5\bYMW;4yL_SrM=9;j{^Q3kzwzG%~˧lj\t{qg!'~[I4xPNӮlSVyg8s%R;mYByi\v_|6A0$t\t+sg?aM#מGa\bvTS<WִGp\f?zNwִw>Wu w5zK.4jTB 6#{.Z.hʅtXuM'5FDf}B}Eb?}cZ;[ƕ9ךi?]w8Frc{.˩i#} LcED6.+%al0sfKt9B)Zך _sqPwtlAu$VKbwBSxώ^suWuj`HS֙t'9wglӟ2_!$8rkK{[ol<z__4{{{vc[o>'F{\bxL=A)ʱS%o{N2wCnFZ^SpupZ#Q5TM[\b[b*ː>_nlD\t`?z*o;f.*jM|\tqe2Lj_q[7K|1( Cyp2yרb$:+4D@Bm>A767\b*h>%4Ʒ_cKf@dv\bDO'9ϼx-Q}ҟp56{}=PDa|N:}ikkl<f,,<k)5r]~7%wMO\vRs2ubיC?s'=#Z1I\tPe%P=j;.9Lʢt]$D*X:R6]CX^^ï69A q.=^D}%#!)ku]''!@IDLd˜JLfUG$v5Қ?9;.Á(ƒ>3gsmf^_%<_SR!lfD`Óxk/~zQ\tHҾ`2xuwz2q{^ʘ7lY #0p\tf;IҠ#11\vI\bIdQ\f8ckxRR.xi>3#6ι\bpSVD$[$5ycKKjX+pz6`Zlj7\vyMVC<#40Z0?N7L}[QfCT+jM'9KRY3%X.(\tBCt-WzK=^<6\b^)c I@c#J8#PNau0ƇVX<5@BN+exV2XB\vgdPk\ve]xR(_8!a_oWza\b6L'ILOG}K3ǧCn1zS(\t5IEZ)d3C,z'U0QSHpr@m_an`A2'QTp4S˷^esSto\vv)+ @ҥ]t]2)lǖilvQS8%xvL\b+?\tlCrxdkƻ˖ʴ_0)][\tօ_U3\bGp5)\b\vκ+n`w#tg;<U\bc)Ӧt7#L;$aBöJ_J_%r\bL zljqAIL.|{DxAaZΤ2S+:x\b\b2NFi֘QGM<G{1\fpJ#8\tSrCti,jc.>P@l~TP#:T*¸l:,ϷUAhI˒@,YLZϗZz.3Yqι)c-`BR-9ϖ[[\fee8]DY6*ƤuӶwCV9\vk{!!cNsDkuN\bcAR4R/:l˧O\b{;Gx~Y>r$z=H{7R u;ux7=~Kvm:74\vj{Xt-hӶt9%#+$c</@ckPNǸ=El\t8cIC@pP@Z(%[xe3co)ΪH\tTD\bv{$h|?Dw{I\b`Zsd`hGVlqTac?'z$WndgwR^@~]]yE0y3f(H(m5dj?SU\fo|ms\vC_5%SǤ_R:K,\bs5.YIND};K\txS! 1~JMό*0VZ[uP::>GP:6ÞivvR5w*gB\f,H17~N'YTeIdhOsieR@orU?`b:|q2^.9yulχ.HeH.9%p%7K#qXMq*#,Rou#r*<yxH`,3_yBe{:3AǎaY]>^^[*uT#*G:<)B4G_.|7CI'i/OLXpY@Aքk\v%}~.ֳF3fwz/SӸw2!R>Ol9FI^-xG{zz{QOTf10vGX.W][;u<1n(ӭ~zdGz@'}Yh!@G\vDk*=g<KdDSnLJ2OQ0E%#}vDjou5H$h$j\t?>heb\f+>Kq]<b~;r<B,z@!/Nq,iDÁU)\bbDUZmeμ@B:) Ƥ*TXGG>3N9N\f8Q\v;\v+}ҭt/Iq=N!w(T$=¥P^e+m#|3S86B\tƶs1z\f*ZW3BlZ!4h2tVx[eRs8VVIRWLxqǵfIQ67>jG$\b^4\t;QoitLӫ1]QAm$μ\t.7:uU2V+TajLP\b3ʷZE1]ϷWj6CҶl=$`}˒Z.ʽ3t). /={^Y7prn\b-#n0+XH\b,nHTr'\f^@xXD5+].o+:fP\tG70Ig2dZAX~A/Z]Mm_\f 1d`gfe`s\v\frZB_,]:QvBU=g\fyjpdvbZӡX]6jk#>c1W.Cm2[?-=>OZΨs\v\tL@~cHҷq3Ҷ#DTM\fek9:kdU}KFMIƃUImXN-dvyj>%)#|JsPniLNqҢY\bbI6mSC:#uVNR$p})\tIq,CP?:q5˓|H;Etj@MQeI{Uw|3|V\b tƹdmH˜?4Ƒh~\tl˭.C5γ,1#:ZZ%_>כ_g%c;xw7STz<6ǶM:}|}1=7zt7{f=LfPʲ1#ǓMFlNzj<h3:c* ajChM<>ֱYY%dB]%`-JdQ\t 6,KL[;R'?FFfj|D'g`X6=B>|?pw<E%R}\fChB5{;IiJ=F˒g:0:.tzbAc0\f:t_c6[,0Rί-ƯN[Czξ,4W<nxdeX/IKi\v]}evC*>gPΘ|bC8H,{eT@a|aZ*,hv30iQ:K˽-7sL-;@yL~O|qwv}[skgg7#Wt|3s4?Yse]Bl<\bA\vH%g6y¿WÉ<Oa_}ILm{,~/UE1_=9:])p_k;+;6Vw]#*JFxpJ!O M\bVC\fuI@B˓'+Z8@vxUnNN=1Ɔ<.<?^%ΠLXR,sFe*2))1IA,ZWBBtH9~F*>ҐMAn~)mHrrm+l|ky$j_MLBQ.j^`~Gv^j..PMOXl 9urAm_(Nh UX0O!FjSCbF[Nz1u%Bch*ұG{M4|OƑ<M\bbׄ]X.!\t;D_|0@}K]iqDP)6m|G=4;,ggZAeVJ.c54!iY?`Í҃PXz+\vSjExbH\b*^YVX5'rRQ946sC09e-;*/Mc(uj@6Z2rJB*>qI:3k6846B[YOo:uFV ϟZE-YWE˒*^tVjt%'\vC;rhuQh8[*{EAVlϬ`\bJE!X\v{EK\v7G~nxjQk\t9zXNUi0IB\vp9Ƴx92{$K]kv8fM?Ssw_}]|W?wY=\v7bNK,;kH{|ns%hJf(X=R:s<31Q(;X*ʢM=*V=Aӓ\vOR727+\f:mInQΝ3g˫39Mtfk5LWj :<UAd\fx-v->m[\t7oU<}}\vwLjr#9>2}}ASW56PQ{#,>*˳2)]Q;q)T˿sOk\bO6aUaUnnˠJ/8UHdEHsR(_s2]o0t09ׂKX[Dðe!Y,linG\t]ǫS$H2ˋ%}W6KR7_#3)(3U(SufE9P60@]ƌƢtҲϊ δeEDfv#3hƹǛgJuzYwʞTsW<_k4P<LG9z[Xev}78}kmZ/z?OnfXSύjo.\t\v8Ү,n=R~λuiaZ!@6v2zNo;mu{nK7ʁ\v=s,N\tYMh{[^O^{8.S!l%Qp<vZa(QZOyp~%opl<t-dCdnyo_<e@9%^F\vX9r?>0]/^H7H8V-W\v5YJ|(/'ptq2/q$g h)]YhKU>|PB=ҟ«_k+Kb˒K^hΞC<ʏm/=6SVnDibasdc8֗UmR{)v\tZ5-wY'xS\bXdүBHe\tV$Sn}KK5rE9fs<˯c0KCr\f=[֦*(*wCxΪaD<]{`mVw@EGʳBWM>$ysVϥtoʺ^ZiLEjG(`]<!|)CjEL'*saaTW`8M.:{_MQd\tRÊ(Pmaù#\fa\be\v:{CBi;d\v]{+xuQy3DCq\v#ӀL*];KolFtiK/m\tpA`%!ǬKmWAc.vr!.a\b;ғBzl=]_#:mjuN5\b/Z\fYE%GDfxL; CS*KE:{/v8y3cj6/q ^N=^F_^Ce\tj=l3\b7LI։^v\b%?`>+?4r#|9ץW|im~:4ӍNbQv8O@Y?'KP7m7Xד,ϓbwT¨3\fׅ`#] i^w\t>V+og(BAhaUKa\tEôS?v>r]w|}]Nm']{ֵz`Z!\t_7MK\fRrS0uE#^_!P\t\b:|MqZ6m9Hy>'v,.bUKDX<Ahw*%/0J?L4v]_קi@r8h-%-<DSMIRt:Zg~]C5jUP[34^dNdNPD~< txS҄bM]cB~ʸ2$bnt\bLu'(*IO6Ha'Y`6vKg+cth| x3;N#3p|_]Қ@l_\tm>mLMk}{qw}hys)nu^z:n{bdK`''\fn)[|CKy,N4LcTk ,#3VZwTrfT1s\b0FD:\fhbk`D\vLǦun,KKXP\b5a4NcN/U^2/|\tyL5gy)'@unvΞ~Ds%b-C[EDzD.Hl\fLx\bև(αxc#hL_';AtYZt?]NQ: 1ezpW4?}qt'Gfggw}Sw}ry?Z?N/Ooy(9Yg~nf>+z<xV>9tzƸ4=_SgM1\vJ7G@~ֱ{{Ll7×h¬{B,`-aǡR^A|Â*?\vzfp\fvb=
lw,-1\v/\fBw>uB-Hb'e9\b_Unf#X|}xzB/Gj8=vo>?ӈֳ\bb9[c2sϣ9gW:4h#6T; ZOK#he)E(Av=ǽV}WT<J|2]0VY@ʹ{GlIbO{YTi HSw;Y˸?FbôZ^J@Ewv\t)~uPz5PFCnA<_7\tf-kr\v8,WGLol}(qƏ(LXm\v\v[zhXoSMO>/z1Avwh}BcA}+$\v?`*b_jY{D>í'wwPp;?{LzI!$wS`?y`;t`l^GL<-Jpӽ|yuIsa~Ô@Zy\bfW[1s\b\b~Tln\b\v%Zo%%ҍKNψ,TFEhZLJd.f(veAS3\v!r{uǡ$`}2ҁUg!\f[Y8ìWz)ӳ^42a.P3~)/@73YyEFyҸ3pKY\f+zrR2X)MƲbO]6ZI4:1DzQ^TH_j\t_\bI=/Ǧ0-QK//\vגz(pWΘz+#ƫ:BIπg+DrU+\tπR׃?-+$[6$?~Py\fW(`IVUXhPOLHWN'Ag`0f ;W4L1gSfηRe%wq/\t[|j3s0/_DTD=SanN(@`Y@VM$Áv$H4Y;vyp`µ B`Ǜ\bp\fW`^iyT.Y*\b_8j@\bS|qh}(!FV;8BcyqUG\b5SD~M%$2<\f#Mggc´ ~~ E)=,\t0)UT\tXZXpFTi6,9\t֤[1Ym#I6Hcc.CϨ11':ҴC9huϐΙ[%Ǘ>\f.Ai$/%m\f%IlZ@y>lB\faBz-P{V{]pRÅPBHym~$֭/(?`M^}t0U({\v˯*dYLURAhlHX-)_@CK<d=%>CCF-heHvPZV[ʻ.w-BdQT'O8kj}#%lpK-69*-\vvUXzǛPf~8\fGbL\bi\v%4?o\vC}0UeK=9E WJR,ypJÎAB@tw+£i%iYHcβh$i<K1֑' C|5QQ*ûd8*MStfL?5ʭ7fGϨggC/Tv3k+?oIh{6 ftfx}e:ӝ0`'@SK'ϓ-X6Ai%lªp55nVlG>28-8u'9>96,XL3ga|{)n ǒbdG!#``]Mu$r106B|(˕bph'Q!WPW53ML$1@L6Zm*; ¿6iX1)**903hnxBέ[;jXW/ƪeE$Z(!t9][0WGG!%]g4!$>F-i)G25'6(ךrOZt:T0q!Jx\b3X4ֹdVPҨF.usadQQ>FyJ+xuu]i\tӆ9tY PJb` l!4X\b\t˕PQ\f^kAa@|Kn)BEúp.xTdUgtJC8ּe˂րXEΉ[vu0T>T/Zϒ-aa*֠!9;Z.Hm_?ΜJTO.QǶ8Ga\b@sZ@+`?@omi$9µS#)%4Ӝ<úW#Oq(s0Nu7'AP@X^s%MIW=u7d\vƐzEMy*e94YfjPX+q{^kXVP5[|@+Ϲ>7g-,@$mZ;«+_nv0YC*\tGWTyMy^J)6k1x-{R,Pǥ([6+K+#$';K=bSy%_H4hoά60ZN\bdc-5p.Ϝj\vDv1ϹhbuTgcd8^8W\b/5,5T\tP)\tldMQTSP@(S'RA'Ejm~Ea$6_iJlXXzm+r|-q!7=e(bJV%#Ҋg)Oוvg|7]EIN/YKyTQtQ3IYZʍ/PB®`\bhǫh$Owd\f-LӺ[)w9sr!aX\b2PEó_EF2\f8.qVxRAe4QV/L;s|=F'9q#-##ΨZ};[1`\fG>*JT~0ZGLc.4Mo˘b҂=M;Z] ,2gY9u\b9#\tuZWiYg҇!ҭHX3ti.}j[M]SGteJ*B|0cjQ|ZB\v-+v.RihB}FLc[WQKvl-Zp,--}LYh%gK>=Wy-M{\vj\f\tvMב)3jpSvUd|ieM=j!kSC8ҤǒFjhdm@/KL)6W+Yr_p,J68)N,72WArk$o~{Qg2T7.2[qs>pQvJq={aa:+ahf|Ja_wPl*n l<v tU#ӢXv34ӮxE8=j9˶ˋu-`?CӞOSs(Lj'paӱ\vCec=[FmQx(N-TArB+Z3M 9c\vq>yut^S(_+:qESBlZ!DCƩ?2H\b$O%A30[tS\v.;[mFf?<m,W'KxZ}%tTI/*h,EFAU^pd(\f\v2(OuY*;9;T-U>|<{#Ax54EoU4Z`EYUae:w\fΫΞW\tu;0j$#AB\f-u7oZ)v^$Ɗ}m>n@Jl=EJƫwcGXQo(t.70Ydx{GsdvK-]RekZ,U=ׅ#P5W>!b `G2F˂cVJXVY9ӚezN.5UJeW=,b09yfm6IG//dbZL=5X6dGZ1it@zH~IYaH!5/bP$N4\bmU`Dt$ƑL)4cLBExLFe^H_\b(WRr$)Xfוe-ǂS'yNVÓWD ^x^8I}.aNˤ^NҶ{W240fPuvICsS=XL:Y3PWB5NZk=Pe8\b,!5fX+bF)'b`oo_qdA\f/TEכi\v:å~z1m%Gm-=ƙ\fOi**O Q^UD$!w_,]m@]ʂ#JRmDi=lV@+cE.Ln6!o`cJ\vDtRI 6,T@`bVwX^E# F,BgJ\f9(.^d%:d[+i-;=uV:e[]}[3]ZgX]t1qjVOZ6)BLH|e5#/H\f'P]WiPE`l\f7V8h{W[0Fk>K67F6ƨ>bj5-bnp],DfKlpw'fcM+UXr˧´jU~JpQ;.qQy9a\f8Q2y72UI#*eV-L<)YAM/*P-YeYmZ6t4]nU*7JRC3G+'B;]x3r:\f7^duo.dRygI5idM\tnc`N7-yUO.zS2uUNӠ3Yr/,b\f,<V!qVf\t9+g<if˨I|uAIO`ZNGp_i,FL3ˑC-~A2k C_K]I-S)192v\b\tY_FDhaQ8!pDI_g+e?x\fd?X>bאq2 I8tb4[x6Qix*QUX-WE8\fh;=046HZdtER?%+xt~k-y[cbt+s/Q+k%7G\f31/O,`/*AN}\bK-P`I1pn%ˬ+2q]˪!04W/%*;,{ӌRJ,eAbbf[HmҀSHL\f. HjWl-Y1R]'3\v;_glcv8Gv>XLu!|*uiign;zJ^QL:Rә1\f#2SDZG)G2ab#/KGGTmd=8(W»AE5-A\f}TDq[37%13)pfPF9L.58lƶxu5/4Hjt\be,2פQOF,#jv;xJ\b5JXJWxqu4Ke-;jO[-VǭM*k'Z(ljU5K%$,,3xʨ7îGR;kʙRl=M0ϭ-NJD`<k+`X[5Vq+#0<U3\v}6m0$6}+\fUG0Z\t6$wUӉ`rjmFk1!df~\b,=\b~<\fRB$4H B\t2x\b}8?7L˙3URRUXD;jNϓ+M%Cg%T*\t˞%id2!$e\fNBYnUKoR~8Y2XF_)+8UH_W\tǺZUK3sFlaP҅xKyeϼ:i}.4w#1C\t\fd?RbI@\vcN@$F,v{w:Õ=>-B;!4.2s:0N%+RϠ^\vtc<+ʇ]:-/0<!E|'(O,MM-(b-HxcINPU (t5@1DM6Km?NҞ(OzPeӄm#-'|V(:T>ǑfXBc +~[5p5P(6_7V]ik,T<{`AtNMuׯOGOz]5$pfQxJ=^ml{H5w^ FƢoʅ\vq;{u\v$A 5|\f0=1+cBh)p\b^-NV'˔k5SuBT$vPhdG$$9^]8*ak:gc4P?W<1vҁ\ve)A8:I 2@tKuϹfb9Y4ÎFk;aXzQ $zK0_4b2zhPCijus[az%ôǪ0+#a^^ϓ,`\bpVO}Ύ(j{_a~W_zʐ:Ƙqmv!a:H\t<YҶminbV`NcgW63םS]en!J;gaD;P,7N,_\b^8ʁ@-CT\t+Q,ƃO#|o,YTKSlUL,\bafPC;\b}.^tU_Y<KeyQSnk{-L.-2Rh$3=0]1FR[`iYk(A(GGX%o~N.wPq!X\fEuʦXVX0La9m!X\blN$}\t:'zýr$V#3³cfap;| c?z3U[I`*B)B(w(Ic)!Q3kE.!@h6lJS%\bjʐz2KΓUFb<^8MyeJ8TRihW9qR:|v*a1`NMΔF_*Ӣ-Xs}!UF}C 9@{kwrUrxϲ\f`e^g7gOwoOcg+k@}}u]o?/w?#CCccs)M-A\tPVjʮZ)Vb.;-1$\bcgqlvK jʧxG/[\tLI`:<rw~PACQT53Z^ӂ9ʵ:6W4X@lsK`Eb.^@b,'.Re#Y5rƝϞ0bӒf{Z'N@j1-(/7WtAH)kBOcJ:a(]*:R)0kHJ/C!vEn_?c}Z=~Ot}%H)O?7k.6ӑBe/S .'%07H'R[gYF_w]XIFy]D5 gRVT%d#|8'S@o6m\f3QJhm2U(˼G\vq<k NW:3}\fl$hGeVQho%*adQD3SmD2#eRimTI}(J_jO?/oF~Q~qits#}:d#W.íҳn>G4(vP\vîҁOXM}ǔ3?(a-z>w=#o?]{r/Mh()0TCr?w8qpfYf_ory,O;N}3l{Kj~_7MYWkaY[NW>w7j7;m}n5/>e-]ne!\fg\bljKMyJHsdƝ\bz0}K1~?B{yF'.RC(K S1bI@®)\bR_\tǟ'sbIUHñoUBάf=)nE?~xh$r#˳l+sR¼aTʷ$?0aNX/vovPD_G)=-]Wo0^1?z/=Y*wy3T/xl3o|q\tT#Kt!Nʢm 5~P)@2XE0Ozh˯LS$\fr\tK[B'<oT6uZcXc'cKbҔ`[U~P(|5}oIW<_+?Wk/]P,)c!ca`-OL3B\v{}5hsӴ\v8sWGq\tc?X;I5O+demMD@ %:a~g#wS\f>n]0Ke\fFsV1!?6Lef9֧`ye/T`gTW~3B!T_U\f<^\tP\bP!}6{id7/{F~Q˙WD\v\f#H#.w<MA84¼7cG=T?xZrFNf~4-VaNBa^\f_FC>=]|T\bU-}8`=G\t#+ΌϦn1}?_Ekv0j/].a-^?7+qyEmu|[?7=i0Et{f738!tye]#vG9TҌγdC7D'Μ?,:gXM?BU[aZ?p|{Ap@2YαCmǁ¦G[1K7_\bu\t[+[qO}ʚaU|#@ӛ^J5T~bv>@XoG3Gawwyr`Yg\v?Xdg\bj>LraxG}\v@2aPNb6A3<G+H_håa<|dDwki\tSFf@kXn\f1sP9j}EZWC.*;|<rvR+:|/\fP|1_C1`DyW0bRuSE{DM0zQqJ*nÞA^9pbGq5b\fMΕ#:?`TOzFe4{E1\fsTN xC^rCi|`hl=<87VFEm~I4'~+$G?52;^yDCôZ~sJO6asUpCTi'nZ LǑ}z<>Ϸ@5]>bLhIUYDVMmoEtX!Nf9h>YH8c(\bpVkYwdeiwE}˗U҄ʴ^TZH#\bƲDn`ÜULS\tǠx3\f =VB$o ־{}@]lt>t>@Ɛ<hD~06'nÄC%փQ4f\fHx¥5I,'c@=ju/7(0Ϟh>i:>z+CFBsu,pq#0w\f4|_attP1-u}Ug?ʤǫVMdH0Hǭj#JΏ$0êd}~GҁHjU4GwFs_tJC* %H>!yUQltJU`P(ւ @׀arpYb@InQKuk7q\tC7Rjt8:<ֆ|OF[^ӏ!o}~y{zְ7:X ӺYY@˴Qy._23{qex[96J9.]:4};n#Nd2lxJx-=6ss//Nfbi!L9a(].[*?q4-dc#qBG./A)W^yJWDb!AL8}_mr]NpbEM>S*/eJ]NgRw<3(eWǹv\fY:NîSwD`9AƉn@\f1=~\tyǿ([L\bpYTˊ7:[־^?N?OouWC|=xk.G)ee'YNCq\b8~, bzY~) bQ Fw[3yҬhQbS)ׯ|-OD'd\b87%z@B/[/<f#>7\vHhÜ7\v~ZϾgC/?T\vLcXBhA`YfQvd:\vw/<?*x qQ\vSoFt~sH4\tJ4F1\f^\tMN^2|uy=ƺG~3PbPw=A|7ƐOuZO)hQ+E>x~-\v-IӟUAE_oLMvÃQgq}|Mm7d )_Q7.-ϰΚ|Cn~#yW/%8n\b|/ǒCHvdQj8;sCH%0X!4\bNCCv55IA|3EqN)l8;abFfAׅaJ/xe\t@#\f#d[e,g`3*}q@dBCR+xKxҠӘǪEh:mj:f=Hi]%9ʧIEסmazP?57B@?=Qd)22=i0`+$s#*`'L\v90;\bmm/*6d֔{7^G·5k\bMesakz\fD\f[ʔ>ƾm2wwבLIÜcds;Y\b-tFQc@22p\t4`dpVd)Gpz6t]$Q.=ʋΫ-AtBw%|b[rAa)GJ,GEU3DQd7n2sa-/87^Aϵ\v19ϛ0vyRoPT7֫/urGB;9o@_~^p%c\f*b7E(Lf:G:9H\v{V|מ7Nk[jKZY%-<mcC-sY*|UZ3RoMo)BM8,^4ҪƵ7GY#sW.soib6_M ?NX<>\t{F8*`\bZ(`ƺ6\f+ue}ϗ>1+@R*ʚ7T9;>o/k=:qC<r:b#>|Rϋa+uFD_qTPcdazrFQDr<nhc*L?-~-Q\buXV8W\b.Ymb9\vW^sn|t7PfTV*y5sFrU\bb[\bnhmN<Җ6ӫktX\tK]j515\tf65.505k`G,5|@Hlq}P7Q\v03^^%E\vx\f2XG\tǼ#]ENFwM]UR(SUT$Ʊ\bV^DƷe:Fi9;XUzFmO-]n,(A1PBuR.{<L|dW-qfNTZc@d52^/K 3`~_}5{e^|_-<ZPwt?ekw!]S3NEVK!t$CƉ0nR\t?YIp*XcZCn3Ƈv~mWCZhul*GZ#w%]u|nBoRHbxIw{b\v68:r/K#V*^o76d1^Ά(M¼w)EDmx-@1\toא-[M6}rTXJXNcqu/y$d,*\v?uR@\vvl6+OfZ@^$Tb||vc\vT$k7jCbJ]|tevCTWY#EZd+ojKd]!zF-ftmʕMu>Y?җ-s7®W1*[λn+\bw |ks4ozz\vB6BƟ;VqL.\f3%h6|\fF2]^#`\bxzx| F`Zj@ '*;HuFWlH)LϞs3Q)%4tH\fg!Kqs?P\tnu7˙R#1Μ@sr\bo(d\v^5ÖzJ\b.D)U6,RcHR>Se*fWzfTd
[Y}0VL'U1H^:zXLcCYuXrB?|a~DIDOyJ*aʑk[#CL6V`:IƕaaCi3\v)e\v:z!Lec:?onG+.V`\v.{eT=x{VpbTH[X[o4:;3.=OI]J.C{9ƃ[:Ύ/(X>aYr1tG.,;U\tJmJM6x*dʘVB_)$q%IT:A,|g!>_$lz7'LgO5sG{Xd:`\t66xG;A%cR!>B`-7GyƇNv F ?hnqja<BzMCJ,OWV@I)3Ha1zm*QpeFx_ ^)1784UI??7[qp/]]o\f~3TE.\b0o'Ya:(\tGa)IQhӑyeˮfP$_mM#˞-sNkE4elYWE;>c@DG2h~<z;5}B1(LnaHV[jDc*\fO8 =viws\tF)UI5Ir /~G֙X;whlej-%`#ai,T#cgWs_{Chax Γsys8s:ֆov{k{njK^>cN|mYL1QOוvjp2D˾ \bs\bY%7[_'DDDj]0dS*1?νGpҙbH2tV%|O5Peh$3.NlnӞXל@_Q,!ba\f97WRW;{AW2/]vng>\tïF#v/a\ty<eTdj ^f'I- TzaXE|0$(um-5\tt;R\t'`\bdd`Suz)TwlYt6xyZ5B`{\fS[mg~GӺWҫ\tAFaailtM6>ƌbIeBi(\tqY@UA6;5[RΗ(\bYR4R~˛%%=b[4X~MX%/\fcR4BCGv?^,;<_=$ +0aSB.,,S{YNJSn.7IkJ8S?:Ftχ*ùZU EʴD\f@6DiE\bXf1I7Bcd\vzt#(9[jl Z\t)˼FcA_9VsAHJMbIWB?f>#ddYy9`$pqlAq}72mBKK08?SXx.Z;҈*{2i,SksH|e+ӣ\bD`ABl˿XIGIQ!sdh?G6\v\v=sKA_K<`\t4#uNT:sVÈG!U2;CEӅt~6P0^KP1o~{YRNeHSAMIgd|!\f{38$(BΝ6'W8iOt@dRIX6~9})aA5H 5wJMY̽DqzMI4\vH\t}aֲPt%:6;FMm]E$\t:x>Qf!G(bT/b85DuVPDijt)!2;kYuG[m\t\byF'u(Kq[(zβm˥{#idcHFj0·`}90Θq2{\v5VDƍ!@G49_QCgZ'?RXRNyyxq|;)T/R(hfu\fAB%0]T/W;oqaVoWK.3V4KdkdVr-W-:|WǗT,gugcXP!dx;r84b.W\v3y?P{å}f/1,x+2:|JYϲ)ˎRIpUv!8.rH Y[Q{q-#$*Ƽ]Ɩ8h_LΩ=Bˑ[*J]ua*H8-Xc*(ur+9sG t1dXB^tUQz)#O*Kk#~:@l)(/,$aCӴIzkǺuTk(6(Z8)n4dz\bEU|O,d_AQi+cYc+L¿֫rƥThq<[<Hס.\ttʍ:+wD1e=g\t>_T\tdKHI>@zdZ*p-1__ֱPi:w@W[1Ɨf`6lA~7?Id(78r-*_\fHZ0P*][5W*CJ9xrhH3a;lma| hzÈ$E֙@\t^,Ta*nq9gz$SM;[|x$q9U\f]z9$%e\fr%1\b_Ao=$H=q7OzPcTu:`\vImm7!/Tly2'KVlǵCBw\v)}ù34`3PRC\ft2S<$Z+ӒF#5Xg}^aa~qmyZeMk}9u]7`t89ӟXS\vkpsp^@Cm#mL4֧]Mk7sG([3{Ϊ7kHrQJ1FHm:JF~כ\vr\vc\vfCEvÊ8VF,FXd<}Du|KqF#R:@6xϷ@*/;7*˰2D(~DFß8zUwR4î__T*?+8/_:]xOS!_M\t:3OexQ\bA#U `A9-<Z23@zI?EwV~g!}n5%'\v0ev6,Y9A7ϩ;{wjpM(ohz:0i/UjjD>d;/½tfwt$$[iWn=P{^K6ϜX;:`oNJk֓,+yQcfώǭOI-uaKvA8d/j+|rr==i!l!JaVha]!!-nOXףr`5<ä73!TAbWpY|<iLzY>m(x\t2V/{9]UuM(,/L>pR\bo`,8uE|\f)L%V*k[SϾq}*Y˗@zz<M{_.\tֶR,W@BcGm^ҁD)zzkBiK1z>ifYJrwxt!,=M=sU6F?˥4MiG]+uEE5kc,V2>R[bsi/YU)ß^0g{k(uA/V8@*|,QyaS!Ǿp\tƓmZ\vPuV\fR[.]G=8|4pg4H{NQ#$p<<>;.J0E{~UM4#sj]_>e~i}utP=qYap\tSsyKl)k>HϓR~NƝZzYLb1?-I,\v|<Ӊf\f<|onu\fmiրId\vm7Ma\fVϜqƸOI@>5k%SPv7A\vL!Tb)p.hJ H\v@m+m\t./#ThmKPRAJ`\bZ'.pYrϧm!^p֖;-ϟF+ƽXCU^W$^*'U6dmlDG5:1)z!T0kI\fA:kǖ-yӃ}Eq6sמϘ3]W`s[#67)Y;#Cf_.8Cs.\t6LWL]HQ\f-t}>%\b.H8$$KHbSX\fQM)wXLào6lYRP.IG1`*OKeL2ƚ_FqXhR bkicװ~OaB¶aURtmqB6=Ӭ|<[sI[dDF7VMs#afcvDNyE0F$J>\t\b-4wQ4uRӶ0l58?{FkPEP$=mJ^Cr7J.ZM3wRV\tAILO֕},pΣ4+UsCceIAG[R*z1yu]@KU|(C_^*Y6ҷ:O%\typvXew\b<]Lq]U4II֫h֨Y,Z{@N/*s1V0Si0SIv_YqkҲ5%.hc=e7y,MV+a4ic1G32EUepBƍ+W(zǰc23C1jRωD`4=F%:\tU]Y!99-ΧǨˎjU/`J r֥)g!$hKq?\fx\bt'>K(Q{3MʜZHa\bONPN'Y#}Ir|9Czhö'tJ\f\vNsdUˏh-|%һ$*7A!vm9F/Ch.kh)nK\v~;'ul:_g\bWDdGK˙JΚ>h=~ xqj^Jp.-[%0*iB9q|IcQ$c\v%>1>ZU!$Jm,p)c\t] =2\vBHDŽEb:SI$_,cK\v;)W`gkґi[UJ\bYpjʨ0WbN4$!Il@YU%14\b=¤W$D]\f5pH-JƯ.VfLok.3z-)Oc`(!l<$ryxie(P֠,)3\fYU(Y=pneSSlRd.I<nU=/._(f!Zs>ICoRVc8-lM+hʫ(S_)HAWϕFt 'v]M ?v!6d>*Lp\b5c{ϠIS]Z *dm*Sq@,SeRYnH!y~TaP7VRX~Pc(:_?eM\fh9FByHKD|>X 70˛``WkjL!y.%EE4+\f^L\v%[7\t%-BDLPA:Tz7`ψ:e)X`xY{Cd=*kSxWY/Y{22!ΤTb7Wn~Yv}%4_{.DzËh{c_,9W%N2±ZbKSu 4hJך;E׆9:*qjAFG҆xf_K/32.I-LD7TVp{hâm<uҖy!$,hRTE!Hvx8\f=q\vϝ\fcCAJRD]V:c-1p.].njB%SmpxQuxZ`He4Xj{1.\bi ÓCNS.$HP]ΦER,?C~|)-4#t,V#\b9U$i4J~μ+v*A1\v{99҇o xs#( ט=pX*3aҝpUTnˡO:#y[]TkITϳej>ON]RpeX\b\v_O2[xפK^XZ\fu~Y81G)5 IQH}\tǁ2aaU{+I6E7{LLT)ML] {ֽrZ\fX@;u`l!WL°G!03ZxcIEU!|c[_78:BvҭQ!tn-UmI1Jl<M9y\t',ZqL\b0[I\tbNqQ'\bN\bH<B<hdW8b+5Te8J7W(UÞd\f\fJhp\fyBnʕ[zX+(,E[$MbVGv51!ZI8uV:?ipN4V]u M-\vRo1`#:τd4~u]SÑd|-.ztJg+{77]*:V7wlakU:ssjNDǍ>-h!ǝƥna9$)Y_O,sD\t?PlXf\v\byoInV_pϝJӊeuqCh)Nʳ7\f%rrpa/Z_@?k4[%~_KW=s#jdMִF:$ejƟ(ZqU<DV(gG3C.K#-FR!g:P\f:H}=,Ӛ\vz\b-8n~[}ǃ.H9.\fb<rkND:l/g8%CGn9,,879V8w8$ZjK0H2Y$@VZm0}S-#!ePl~vr@(}ˊhEt|Ohzoy)hNGïaqJ7F>*0esM\fZZZ0$.%HdsVQaXDa\t\txֹ*8)5bZml?HfW2D~rPz>X$\v%JL)j\bw4;ob/Y^lF0p{P?f}ӬiV[4*\vǵ^.Z/r5Tn+8{κHU/:3pGһ7lMSvL6I^#T8hzKθ.jIL`+VELd.c$SUe ,^t,OC$M5eLJNh1:P54AdGLt,b6KqB<(Y<G\v7%a9R\v2%Ghyƀ~lsq+J>|îbJD+OMM7VD~K3t^u3dLZCG\f|%CaDhUoZo\t#i\b3Hsde)-\t<fÿyơ/#\vg8Os.PN1[Ilʉk%d{\f0Ӭ]ʢ'`BJ~b6i׀sV.2gXRIdeB|8i˷d*~PbR6?*W,R\bYt0ye-i)dUgL,-Wk)LPT<Wk3q`:hl_֎kSPO0DgMLHjBZ3Fiעf7WsZ«TnS93[]#46N|>\fa2ʴR\t6LGkufWqӠGJ9wd(Hưl,~.(\tv+@C\f/ ˄+GckSkttK\tjb[lH`19ϑYEg^}\bAǓ=azFZ)BXzHjuU.+-V@-?\b\taiM=eǔVQ%fJ\tOYhFJxYu#!2.#h8y?[q#4[fgE@Z,'*OeYִҨz!O2]w\v|D;D0cB\tdkaH5(0+>2rA\tYjgs@Z[\t=HL}%)z>)Y֦*t8~c*cJ9t,\bT\f´dLJCH~1pc,YOa ˰B\t-]өpCYYW@--#toEA.c^uTzlbp$dH2%AG>Q*5>[U:#7Y\b3V0[H'£ZSK=\fƂ<\tz^l6ׁq3KMmp-Uiׯvhe0)c\ft3+X2o϶e|;$1OƧEVzO]MpJ+$Aːo|a7'6@N r1Li_ShVe\f[ChjʯI >T2-A>{rN{D]wjN5YeI0lHY=#~7*i\v(ʼ`M#`1XT6%d>!QAXD+CCnE\f'*~+IL7ǮVNLcj=CNNDyZ\t/v0wj<J!L}A-Ͻ}Wjb.Ym'GfHo$`0i\t- \t:[3cXN8\vHf?>LotP%H-PT\v0dwǧ1*KTBR6yz~#\t]/QA^U4עO`eS,S3pWdllyl -ZW_R%`DV.Qus)/QBKΪQ[0jiu֚QV?U`C5,Lpv[687/0TkJY5u$K.6^peY:@P~bB6[ҩK6^MNp!)ґLX:\bI6GK k%d2mOzF2\v©v\v8duia}Y.t!!yrY(hHsY,;gZO5QU(k\fU7m-@XbFMaFL'HG\fdT'zbW%\fX2z@ bXx<}w΄)4s> 9(4tc\vs@UFk-?Ӳ0h(\b SZ;s{ξQ^to/2duC)ң,TdRmuDiz`xy@J7>S8`,Y#L?TK}kd!0O;NU$UwK\t\tU(D8/l]$tL{y>%d4m;R:/PHrgq[AEwFed:hG6f}`KiW-iÒ>˳J`<gҙ{X>/X7[=;cNf6|q,t916yB5*x!\bq10ƈkyuh4|*C#GJe|TG\b[DӘsI8tTfnCj>.QLQm~ӭj/6VN_teO[]:{4D~\voL:8SM]ϙ,|k|\t/L!ι'+_k?oh~>sa0=+#%W^yI5q{kӚ]ʥ_f(^U>#-\vη7B҂kwj$n0}d{H6*i^suzҞ26w5wfˆr7'njn=j->MVz$oaƯ>2u~S>r\tW-J+m%#i#5a!5Vfm;#TV]azjfjR/(%dJdUdym36n%6lQzc/QLL0gUwR0K\v6>|oMhHy/ZmZzd5eCizʣ7ic:J ++.]<%raRFϨif+^6KeR_ fqEBu>VM9x%GPE\tz}34>nFv^;QFSMc:(%=a>+A)8bR]Җ=6gU*bp1#+ּHVi3N>J1r.78Z]Um]*^Ϙҁ/d\bPP|<e|_ J8DN8Rz/PUΚ'H֙/l(N~.)%*3+ngF5AN%+@2a<m=rWcB('xjRǐhzʈ<Rdf`)xe1\t|D!T}>[NT\t}[Vi^I5XGKU,,OҋBDWlתax0miI;woҖJs#5*VO0}Ox*LZqeT+I3nUΌ?_,eyR|<7qx'4Y<32}Tkf\vZ!$u\vyE}MrO^-X@i/,\v[UӫshM,e5I9LG/I%j,/jvX5`-נ!a@mff`}:,/7F0Π{./;Omg!$NXqS;c*COBEְ?+C8r)LR[)!Q6kwW/ʭGZMveGU-fӼ~+w.D<Al<~EYyAn\fQ@s(Xxkr8s-\bQSg\v#WLvq4rv/#`j9j|GZi#CCiDgW,D 40>fJ[ӱ/p:0[Cu]:'cCҲz8e+2ָ֮-ÙtcvNgwָdG;cu[{e~N=Ι9Y,-(*S6/whv1ִӒVFlI'W0=1mU+=*LJy^lYVf|pOQjrm\t*'2Y,r*AEp\vơCˈB+և@Qx]oZ\bvjWcˍ9c4)iHXCMWq@ip$'r2FfmUeAp0DcpCzZVO#W9'A3~;p$ru:.tqW@gViDH`L})>RJ~g3ώ`Wg)v9NS86O#1ϫ/W8n(^<jt\f*QJ^NS6'Ie^eXy\tf#`{d?sI* ҔGXw BU!_%րMG;RW%W/v69C]^1oLDOlG%+VsKl[,[I4>VVǘ!*#ÁtL<xsf%6/HO_S-eq@<s>v\bvf A;Fʶw·*wϺC_NG*@TJ'\tH>BGhEg\fxII~%iZ-Q2v3(|<ye~G)mfjd[cWwX_vën\t}2)c3RʑRYoƳ}'6D'PTQwnD!_<ʺJ3GI?g\vfZGGc{L/A;-LE(Sϵ^LV+6N%^6YRY;PΥ׆t8fV<y<@\ft9?4QY$.P:#FO<akJ*\fT}v^8FrY}+*SptMT+IF<A_[:)H,(`}pk\b8κʑΝH4qӥPQx2g$7%baA˧5xlaq9\v2G1:B0pr@%KLbCQxx1Jd:0qo+\b:Ò-R}D[RK7ʬ\bfE>>g\b!gRD5-KzLR˴jjSD6klBGυ1 :jH/^B\vTi!~,#cDgq1˯r)|נ#'9=hDZP=SZqP\v?<<`m}q0Y8F=z\t=8f?x=2CR}y{qN*FϺ.n\b/֬%yxh!p*(;^ISKTUqTJS2b(fWi#ƨ4oNJ<Ӳ|c DS.˜q+Epu:k.0OxeUZ\vYOMH\vu\tdD'*cG0{FQf1ֳ֦0AîdZcff|$I\bJdWQU*9cD\bqRP!CmQvKPXsfX%g95Z`@^{(]*D4|F^8<dWnψWCaƊ]Ӡr(/9Ϻrzv6vh:A1ZXGDKHbjR]pG\fJH:\vxT;68t\fDNI-nyEd\f<'Z=vaX\te0Jj*F#Pp,2T}4y4FR%=7Njdn[JLJ%ʍt/%KI+Td.+4J3-|;BNQZtU3>:W`)eSFǴtv1QU9>s(4C/^piMxrFU\f7c1|4ej1q(h34avƁf>51}\tT5P+|Z1JaǕ^3y~Tg*Vi_wW>Z8SKCQDVJZOHRzj;sFmY[?0oJKw92dD6ZFVS+BP?'9g]C1`{{Rl/o!h!y(:XA#8MgLahnǍ[;Y+\tV'{h^LÓ(B_=-ֹm@)*YVq*ώ)=LtBQ<b@wdH-gInjF\tl4N~~ ˷7S³ֹVLjSW%~Y/H6%U'L:\vAH'YI%wzA]¦~[ҏ0Wׄ!-:uf^E%R{u·|P-'aeNy+FX{(8/t0;֨{4{32A+hB^pZB4=ZyIH,=;JB/%s6Fu.@mReA8I{7O3Qt5MYl!Cʓ;a{@5euiUquE%I?$U5CG_*u=G\fjy^5>A*3Mt-R>5MCDҌtP`DH'0\b3$s>+7xxu8oYҲW/JzE$/jϱ+ƆnH:U}YƸsL$N>_]0 -cAUN8JƱ ӿ+DU>\vA%/`OV!Lc)[Qƛ!ba\tE Z\t>QBXoeҒA8AOp>}hcʁ8aw%Wuvf%džRR6ҀURw|ThA%T];hBmMYg}s6^{Vq|[Ghf2TҘ˚aƝ˩)W$bhl-}<uL7(G%R˰%WY8!ƍJ(=r+C\fi};ǖ.e9\v\v>W^X-K?!Rvo!E}y~L\fK*gfsҿiaa~q>TWV0epˍSCz,\bhF^w.Fà'\tQJAVEʎӇJJ\vI+ӧ>UQ#3#)U_9T /p>f_w7MVi+BMB6ǀu|j!6ehIeF*lƩΓJ@wzkS7z8˂Z`N$jחqZLWzNlK5Qg-(02[57.WC??2Kc/te/OI:awos8GS6?e-9ϺUUtUz>D:!|^'ZΡGo,\bϼP~@vfkqqE_jj/9 Kkʺ4DdzAswZLm~^iTdY*[{m8DM}}o=P@Su#DFtBO Y.Y.kvV^jdc@S)!5ʍ;PjPTU.AsN,H#/W)gVg{m!Aӑ>p<\vdA9< iuprTf?$%cs`Wb8\bkvQPmqA5}_#,J`*:vvn%;`jtOq<KӞioW!9]g:~V](UZbIR)Yk9ojC=i,\t\biUϑ4H2RE<+C!tn*ϫ4TI<BPҦ9\fYQQHZ@sp1\tIDŽ9Ή8YT#],hpjH/l@:.~VazKi-DB_2RuU`C #gM\vc_G*ª.szXxZ\b\fttloICSOZOVd.T2QW.iה>%BX>ixKDC%@U$_eηq^d3cWcT'h`bǼ)'x;3GU#PohlZH.PIXv[n5h]N+X^jʰӭArpj$ל=%].m!dfsZÖ[zVjgòS+7%ǩ)0-$~Μp-V?%s]w_J6|T!xXsVz(m])=q%V8IJQ9[Za[oƻG>\fawKR)a<הy3J^}η;Ҧ9pG-=T_Ur3FqLbawU#F *t/h=*s4]f\fEEts\fM%uOE->,h7g|Cé\v:~KZH4cxҩe\tIoOLʢ2m\fx+py@UL`u{R 'k[9[r*ʷR;Oes[<~Cb~X^})RY!oE.#P[v:WXʀpI'>8b(4qWi2dP$]%bY֡`4\t*w*1!.ҷxv@yPǥMlVIvS/7HIuo=?,f6b=f@py1WcGSuLb1ҫe1Q+_\t]o[#3ΥKi\v$m$vwםaI\tUI%M|oS;Ɗt'mÂ|e_9)c7@K֍× rDǝQP0gk<;\b{HlVqsJ40uZʘy+D2Y,TOӮko$5?TAc*IH[DW.äP{מA,]EY8>2.zgS)$%}6yX˂[(a,}SP;nZpaPA,lFg3ll_,)r~^2fX9v'ưD@t?\tk\vH/h~dz^~gay\tINϚ6e_nO@_!D;lq1:Bx<w}\vsZ1#l/85Dj3{{qi7^'ZM\fs<o(YG\bP}hT2\b[@ֲIp]ƖFUP\bsz0E0Ycn3RCKn~ìn(^z)=LrAndVPsr*v;v]ϊ!\bsn,J%Xx˵+a[mQGpUM?8WW'nkCev__#2'yc(cVTCA|$'?K֜BÏZ} BvEJ>mz7E:MK\b`$J`Sp*xǂHy\vQ%U0R'Wo%\vFbGDӽM(\v\flC0*VGÒ(YJ*,5NhFmF9\b(6~hs~Ƅi\tSzm)0-2vƛ}.Y2M^!M*w.)Ɛ?k$~UT 0'2%ϣG=r9HF%\v5#8P{YSy6*E4ӆoSdž*}/~kd=u(UǐQXce#m7\bjU7`*ex/5mB@`u8(|h}#P-o\bEe_*\fh`s``S?ZF]If]]{74e~5BxaK-fh2e9I bm{QnEUr3;$6\b5vh'`FHNeӄ+bpfFו%!<o,$8X96:y<˗$Jf\vϵz-oG-Y}ad9ZcUbA6=r \tb'^=^HChpwzLlyr>nD\tU/ePGP4ca9jc{MgUM%:%%GXHbVm4lhS_ҍ,L! RnrqcL$LJstwYFK҇Ò!2Q˭{J -8\b6//+M+rJ>H3D%$y5NJ{{2Ɣl}:.IWkºaOc0)A1I$Ϛ˾{tDowzƸ7wY5\tdtsy]ʽNyz(dI#JsAar\v*R^MtΑx~6qwi#1JQ*S\vr;S>jw\t`%1wGΉq\fHBPZ'9%fk^1@MDkn.c)*{qt:(g)2-Rg= a|A|I(1`\vҚKF.iHRgPM+l]B/,DljW@8!ZWʠcT=UR3Lp}`0CJ@D#5\t9cL˘RYZh`BI6z(ib%Ǻn5PH1Z7*ZlEZhI|['X?FRH!$$gf]?yY{G]˜{GF(Wү=(#2JG5=D68+Qtob4`s{AeNSA4H<645r\bBFe|kNwcFpD\vfVt^Ӕ3P,'}zO\vR_YGƫgcARpN75W2d)la+,:vR4\tZn2;3tJLkx(+UoKz]*Fwk+l VƂ^b]5,Sl+Ɨr6V4ʦ|@hJ|c<3}3ATu\tFl9tvu5*Xi:֪1]8RVAt_#{\tyfl[40wτ8R)]W@ZlM_7k<i \v_%=fC\f]g[}D@u+=^v;Mu=l~B<@>yAu[J%\b$!oy6\t~z{r%f1wz^+Pˑ0jDUEKs~s)R{gVoWoNn^vE][Gy,2,*ZS/e6O*fa?Ҹ=qpjA×DJz /8U`#YIOY6QH`I-#Z4llGvJ7;H\bǗi!)'>ebQU62#Z?[l\fXGוn`uǫ(4\vZ[$/m[\feX\v)EUnv-1\vFk+M)Ҩ9jkXo7%f+l;RuCK6ֳ'WӬ\b 82n/]^1*yU=Ad-Z2GixCp(}=:UZ,/wn?nm4OCQç???0i1^?O\bp9#?T#OWK!N\t;\t#RHmHMVgq˫ˎ(I\t5,|$n|G}#mj-\b$M%JvFǘ+4%8˪PFg,sOg=ξ[(?hׁXcvWC1G]RSTP^0Z3:ǟ'sjrn[ӳքe>gyGat!b#k-P=Ǯj<HiC<KCzGtgVe<5>V/5RA8F;-sL(JoIƟǎ5kN)MUm$VCׇ_'~*<*dP9v(G\fvf|%oLøRb@\f\bz\v8ׅ}V\b1OyHx]â:Zod{E\vҏb7ysbmfzfCc!Em:ί?yuWFyc/e3>h֜Ks.[/._<# [1FNI?E5FQ{flNC9eRl!}9 jE-rA/-LU'FQϽFF6Hʠ+Od85{59R:SZ#0s^4sҒLURH[-i<-+X)vLFeTH%HXu,>RK*tZcA,j>D3t#e6E6#`< 5p%u7-\b]oR9%74|=yzҒYA%`֛)\f$f$tw9qN,7=fuFmp{no8{jvOxo:p<}|\bS=OI}ֺROK .JK[P#~Q\f8pαl)3>LMӥxNm\t>ӎ (L47\tVtryӱ7=Mu0wla28RcdO]2tu?)P˥{KgP,jVEw9_.:=NW\fN<a_r{2@ƶ_}._{x,5sw[Sa~6><K~|cu_ҿLeq?ϧStVֶA97:x[Ʋ;d֏~\tzHHKU~\bx3t6/\tQBvӕJ8D<pC8qFp#C0y?m=KåA_GƌVt)wbo*MJxYc97z/Jd{i[gמWu{8**|GUN^O[n}Gwè?|G^ar/~NW!o<O5{{*l3\b2Hltg\tge2c$)G!e:x||xn]wB9O[l/w?:O_3_:bSz_'E786lkE/=kkaSƞ1,7bdfxu8o=@n|6;4zT2)HUvf,n] kBZ+J]< CDYFSA+_50,r˵x,C~yg)EhsQD`ZJӫ\b.Q,rX)iΣ^od|1E36W\b3:|\fc*@u*:Gc1'1[k/\v|U'S.o5/#TicE}ξ{XoӺC$ZXE;7*,ף*dsv%Rv*a֦gnNF7 eX;;˙ҝA~s9iSCS<l9:MPg$E~[6Uo]ַIn:5GOƘ.xu~uϭG;%u^06}jyEzF(VH8t=%Un/Bҗ9MƅTyt$˫-*7Lplb7w<kZ/iҝn=XN*(\fI4=VRZVu>]U(O!P)4?bnl,^uXmy(`/O|E-i!<c~N/=c!Z^otYyl*iqF]~(YD07* t}7\fOkJN(.Dz%}}7%!ucW} uv6i]b09,DZ\fB\fDIN`qbAQ7Js3RmVA)m\fS=3);Yf%%!n EM[X.u`J\fc8ϳIQ\vGZ,^,n?2*Jk[fEi|+0%Eo֯mcItAH_7RZI8@YxXk-w?0i5q(2hTmlAX/zǿuvV8QFpƟ\t6@ʑQvT1l}xaҴ\vssrZNJNηqRbE\f:Z/\t.3gx`($@FfQ4gƫd,{=61O+-=:Y҈OKr+d9pq6?}xN2qoVDy5,vμMwÏMC6S{{`HUR2w)Tfz)\f9HLr9\b2`G$bF{cLmGzAlw-+u8N1sFfJ0*v cfJBPeJl8$u%Nd\bN:ix-;vbo~D;<(0#8QeUjo7{}z::/UG>?50y#@;Γ$}MvI7O_ey2-q^jI@kBS;h}|#F,b$F)\ta ^7)Vh`?Br:Qd-}zW/Gx u+4yϑl2!;m3\be?[rW%F}6'GNpac5lyRCTXbZ{L˰1'A;.h7V]/7reI6BWUh}W-+%pJ`w#=;a62I;{˨d[KƕKQB4P)x27\vWL3W.uemֺo2!I1NC$<ӯcB=;#ΨOW\v0*^=}kMnKyfp.#a]awe#ҞD5{jk1)>Pg0t]/L%^\fR)sF0d{B 0|pV7SeA+S6֞JbD/pu_R2ƾzSon~[<<D\vQ_9_wXt1M6sD+X$~l,w#igһoScztR.kDD5$Ijag]Wz@N=;3^Da<%M (*=.\fL+yYL9B.xX8wZXK{vm7blCE@>O014sbH,K0˰]ttCSul\b7pEfqm}HJo7_V|_vH xֳh1D,}DwqǓRdW+2o;.S5BtDjQB%qZxXFBҖ}!sjn1\v, PgvpzAξ)HSҗsaYV/~4FRlxMZ!W?|V\v=<#Q9J+ǘGʮa::*LoC/\tcpy˓#6\ff1fe.a'@;P0$g8ƶ9Gxӄ!wkNi;2!tn8c%mv<ƦHחD$2vxH\tL\f'?gD)NUxSdE1C\v/X-2(/2SJg.80>GAˏ?pfQ8/$.eV£JOt1EiX3+B6n!9-[zcyHmHol6EkΔRjtKZI+JLƗK-:ZS9Q\tZ=AסSfU+VAWrh+6Y.UbB.**ք=Q<.+j(e@XFI*{\f!3t,Lo939xl>LPa=i`*ÍבwGg%\v2J^JA vcpjEo֏{}j^MX'x/f!cφUCY=(S4nPPL?B*>|9`(LeVuEG%RrIBfA?Cֳ(OFELp?c.P6\bÄaxY~WsOppBhӘx0J0áLjӎ`{;C2q)}d1E8[|~\v0\fj'a Ϸ%,%yCecӐCL^]0:14Q,S=_IwLvV^(`fUΊ\fYOkO;\v4\t\b_b%h!e0BpD7!a\b\bn4B\tc{?Y$1D:>.aqpK57R!XIruG9~sjUu]_YQ)$pJ=r[bL1n^JQszSFwҦzcIN:\b+;q(/+9n?|VG?ZƇ!E\b%ǗM3.mҨ`R֗M9ө\b3pZhFCH'uj{¤(x(\vw8fp:@Hhp`CjVe4r\t|ƽqI\bf)J\t)/x9Y!XoraQ{d t{hHtL\v+Πl-euE[-Lǘ6T1%JxyC\tdst8FFx[C%XZ<5xd\f4savq%ta*i%2+EU+-% U>vQ_xKFT£ϖIxTp:Ó0CEC-W+sYu#ruX5*0ufD]':U$2N8%8}JDwҢ~V˚C!0,6r\f{SWװK4()<t8UMN7nb$dz*:!2XK^^\tn'HfJҐc+4Z?jX[YB0r L}^(v6:RFC[l/r@ς5u˕b-uπ:VdMO^OL(_<|%h9-0.[A%?(+˔}hvJ2d\tMbNAO4X:HsPc]b^ӔN0K4Rq.u14UF]k{n<#)HAfóa֨M6 d*,\b=e12l'Z8?Cëx<sc/ҡ_RjZC\fuq x˵G#lkM$2!#AW7z$yP2IW3'<)Ǝ_֪Ro\v'[ΗPl1Dh(I ӷZO\fd@u;(yEVQ^l.GjsO@}mw1_}f0%xx\v0}ewDP:zZ0r{b+iYT]^sƶtlf.mxM;Nd0Jf\vkr/6GY`H)jMusBHgZy5UP\til3,ÜKEPPǨPMzN\bZ!HCh^d\to|@ylQ[#^m;\t{gm)\b;R^B*9jBCi[C'ºiAs^rO:EDDxsO\bMlcˉuө'@.X.fǎ(61˲\vi8+=S.::n.>dHPHTTOQtr#ayTeh|zs~5<XRE>>@Q(I2ǜTs+ a]{LZo}]aU9eu5pb֚֭/ʎʪ/ZWv}חSf1+O\fJsm˦<)S%m)~-XϦp.!Ugb63SwךNFxRGPO(:;jÓ@KHcjw<l0d{ӮuJqױ)A,l*L֔-;J;]Otʘ CR|toPaKP.t)l`è,E!F2FIdQE9is(vks<m_ʣ->Pcdl\tTEUSqsj99q>2>3yI~<~+4\f.yb|R}7m'BgCh02d\foeDt\t>!`cM2+#V[{U]\bk'֣;wK\bmmE'L˺73sp+O$.]:w!o\bUMY8^tF_g@r>@R/bҎbΐa.dCD#άGkbT\tƩboqUl\bZlʒ47YC/^n{\fxwxyZFj8r)!)[~i5~m'-2o>@)(D?gl6NSnz>^<z]>oo>ʱEt~xx{Ct_9{yjo3]\fw[;]}vkjM]ws_cW{qKx;9]@{k=__yy7Z~G/w=(8g+v?oU,_o?=|^GvNkpRZOs??(2X)GQ19{/lSDM1Lv@6TI')2k|a;RGd_zʥ}vkVjE$,3[Y;U 8rExNs(PR?w1ӔQ>no`ouwb~#a[Cdjs6\tk5[bhΩ־ERӹB'PG^A`(|{9+spA_V 4V0YP*~I75V6˭@7ωNC;1mw\bX 7,EÅ#Flly_aasg,Wu!orfQugE<לbb1}@Ik-\t9raIaO8'A\fmϐ[WӂlTR8OnXR!֒3ij7>u(+|qmbRRH]25B`+XDqKuLUSBK5m\vD:5(\fCHqQKsojp>{S[^}9Lp$ϴ3\bO::Ploq}3P`P%o%T;=+˪NoZ '|E)K{c>;oҕ?c7zj,:K}!^-a:[D M}-|f{\vm!6Qotq%Z\fck҂?WsJˀƮJOIP\fI=ccb\f\b\ffh%*Qvy\fAJ^0¨c6,PrWb?%džF<[ÏZB6}+I>?-rրO-|YWGpDυfhgXj2V גL;1TwbihV0ˈps<jMVϦDSM^%^QW/;ml-uPy-4Obfp2$q~\fKAʹ.:Wt\f}GAw31ZE4={+N=ҨMe@]%dhAi<ϴ*25QcWI~0hA;t#/7#Ɠ6]@ʋCY2CE.n$|bǠ]z9N#m<`'pMKcOE@ym}X?d\t\thJօҧ'MXQA
-D/uw4F`t^8?20L-Bk$XC@YNy[aXS2x)\f otր`NEx-#z\vJ@1c#C`N\f^\tX|ד?\b(q\tQOưAj}q$ʖC\fgCLaO.bR®9a)נzT!*!\tA\bOuG(U)Bt`fk{a1]ϰ@Y]H@LLJzêvNר6h\feZ.\bVB\f3<WD}8I?dqǗ6F]\bl_VCh=1f˅- L9D\vZ֝'.x0 *:?+mHBzT$C{YAkBU-+[*ƞ,$\bcQAc'k?cb!PcϪ\vǔn;%^ffYRd>?WtAgʶ Z/R.DLӠ Nh^Z\f\t62v\fc^sW<6m6=gIT\f3a@vmfyvN]67.PqH=ʻYQ?{[e0B'*oljm|IZaDJ>=1O!,J {T?$D{Bv6<aKhM[F8rhk*$\v`4n5pL12ʫ>t-,8oW/;+@\fO\fʬ}*;$ tP$I` I(+X{J\v,K4G-FB1`A'/*֗TvxHmR҂nj'9oVEsH!y|dsWuk)+ntS]vHIL]w$ S^OT:hl4=ÄS)bzUsì9yR/W?6MIrLY_.huÄ:ki,\vw7,WSxE%yϙX[qdsCIOe1T6Yov~by8fJV)UT{':0zybROcMZ$]Vn!<s`\t9[\v[y0}-Ғ\bD{wB r>,tNZLa/4x@OXm.Y}בU^DEUNqR\f|ӥy,!/\b:)pbbFAR;!9mq9VwΆ'|+lΙjFCcj27wˏi9*~66yw:tk so\b% 5\fZs7Z(]t3IGדl9Y=fJfN\bP{IBY\tO_ƍϖ<A$k`k\vU.N|'ϑ˹ˡZ4)vEjNcg(LFle4J)H15nj2w-,2m\fg+NnXyDw+*c1mvZ0KG>W2m6r,dCj/6AG(,ʭ;5Lx|<1UV6GhAz,WYJ1 <[Zc\f?2_tz4\f8gΡǢ[c=~`eUD]\fjRi>.E:G$shbTh\v94,NoǓU+9h8ΖW41\bVƺ=ˍW\tUm~^}%t9t(˲:wm]ruVz.<9Pxˑ8Ϫ\tU;ltbyP;$2X=jx8cAGD^~cabdQIgL3MEB{N`κ3'D}$Ϯcc@,tQËe''%Q0G,`d0+]zOha2;7!1^6s s #.k~GXQVZE8g\foL)SFEXnGò\v/mF\vʂ#^\t\b\v,և`|C>\tAM#X\t`^`j{PֈW48Y2hˆRfKG.ƈK38dtMpA֭FzHUMk)UÕYsRX y\v:6\t0cAdPbϐw5\vsf?ϛ8*hZHt>Ҡ5ϠE2cR<sQ^fE(A+dXl=^-϶9Q>(Qv3w;xSJ{-UZ8CO\fq$gv*rM{*W'bzJ7ʦǮ\fJ_qMZGcA[4fS@OR˯48qʹO20<(F%@SB?3\f|6[+HPG\t)!t9O#N^X.A84\f%*:.htLwMNrr3;5}(^;0!)~CNw[l30iy(ˮƤ\t!=1?!qwI\vo`QQZTd,0Qw1=g/w$m\tmӻ/a%M6d3ӥbJ@$׃l\bk(a6]e('X3BH;-^Hr#v/7~},K?b:~N\tavF[d_mOzempm\b8m%-<1\to~X+jZlNHK{7+҄1ʆ;@Oaku׳ˠ*\f$8agH)+t~[gz:ˑ1t4Lm[wA[IFr;.^OKVCWã]xObwGCL\ta5?LrҺO's)x#2%xNDAC%cEq;,H@xPa'CTtynmE*}mm+UhÜhN@nB*:Pyς\tZ98Fv`wz)Chaxh>!qm4[s[bEG\f?\fx1{+z-ju(?HVmLYImϷr[M91QeaFsIVzyf6TnA`ϫYl_cn[3?O_M+Zy-1<5Z~H*iX7mEA C[f#R}wrs)pk.fmA/cdSa/2[sITOJI8\f3#.U<)3|lo{@H*5aM|PY4vbZ8Yq]R!5g,E6shxE;,Aj?LoI.'h.div`Xk$rӉ;10.h'P?uˋHϙW2RmRPqdJs/vχw.LyPfl*H8fW4\fp:tAKKm '4wK7fBq:ңQb\t},*/adQx,UOviFS[(tV[b0_7\bwQxJS:Wӥ;o+ynv3~tU:qυxBqL#ϩg\f;?W 4sj0]JbcE}WZ:SV-P$|gu#Uu-+-CSm\b7.i22zWBouDOFv}n=-AlDg4%`hvCp[SD:1%~Y$X04NkƝ-\tq55:2g\vt%?9KboyfDj6jVq|\b,li<qӯTGDΣj{Ϸ:<\fxVM4b(c>gU4Ҋili`\f;\fI ^0SngJ!bʗ[[ΥvF)oj\vK:UsvEGx%01º}md9.r0h>[Ʀ-Ҽe0AKY1s7Z]I><B3+g`Nǹ`uxED@.;@V<1Hfk}@TvRyjCwXU]'9u60P +SMoo`ʑ|7oש>\bƚ8QhdӇ+mN'NYSR\vVvT)i\tdH1E^[ʴ]vfXLU.μQB5FétFyWu yf}am6$E>=K$2bvX2NF]H?,Yx=q@eK\byhSJaDuwy7!EEn+Cz_)ϺmDK6b#WmQӖ\fðzf.jӒP~o9!@^NHB^ˉ:+\bby\tEf+qR'5E4ton:3/cNc7Nק\ftY>>օ;J^=*`Xij=Ddx\b[d\tJ5TfrQhG?#E'cM*F9;j4p>VUϖRnN8R2zrRj\fVBVW|Bˬ4l?¬9˱*E96EyR7)fhcDq9X!18(<)`IPU|`wӔgzvw\v=ӝ:Tl$ob.4LJ>3q+\fz5;Z9u5;xE@|?@I;8ҕQm[KJY\bY˘o-r<a~9gƔXFBc4=D+i=^\bqk1@a5;ʥJLW7F:%Ґ[P$/xU^>E#.2ILn(ˉ=@rlCtb<\f6p[x~D;/_PQW-_Z?5MזA'G Lǘόu5XujcHxOU HyK2ǏMlh5-bEa]p!lApp!jXld!_҉Ǩ%a\v$!egϯ0!oXόo-A^¿jeqc;Imӆ'\vV<kisodw/$8?4xqy$y@h_Xn4|(W1C#sg#7d2}UnƂ{gOǾD(=dsZVfE,.xYuƝ{gO:<-!_cIfQ/TM#˝bnl^vzD-'5L6w4mO6wL55OpK-+KnghuhKÜKx[\b70!ӂ2e{54(W|t_¯*dҏGucjZCB\f}\vr!3KN/qjJg%T{ƄG+EBl.eAsƿjDWZJAY)0e(sRW1΅n3yS`?Al0'-\v8{b5:j8nj773Q5QA+^xAaXVe\tK\t7OΣF/yVyơH1M#xJ_u˜=U6g\t6jw3[Q?xW64xP^sw-)\tjSPZ#[{Ӳàaos{ONkWsymҷl.QY;T9h\ffem*THfAJO<$L!Se7NhIiY\v%U§iAßgZ7Z'9qHcZSaz\t-ҡӨD-j2aUwdn\b7ϰ3A*m\vlΰk88b(vAXLGwh3kE6,-[+Uo5-ni.pD5_vbazu5, -mZO6#\v^=v+NC8Ke/wƘ\fCG>Y#[b?LjxOu.|-.Tֳ6>DugD4`pJ?uuakʉˣg_G.!|\b=9Y(1xO6ґʌl@H>FG#2;Tcʍbh=_u[FZ=nW(Y0ojZ\t֪<:jZ{Gʺg0jAZ1Wn!%˛TKzi(7?'<V.~sj~D~6=:B=#2^}nu9(\b_34=[Sp 'ΰ / j0W\tNM^pLmm\vt\f-+3:$oa.b8vUoW\v0pҚ0e3Ҭ`hDOBҽC)jlb>1ZT3ι|BjYf\bN,SP-Z6\t:]X[]1|4-kHskg@<nYǀƘ5,Bie+\f֗_ˣ^ӝ(X\fwH%MR1r\bZ/zLDKˢ]0(@DuvPJI~dqkNoZ:nBW\bSA0%ו6,\t;{Fos?DpaIYpqX8$1eqg`2FC\bA~0ǺT,2)W_?A3(6Cnqn5҂v9s#j1Mt//kDz@lΣmsd]\b=G-˓qw#6(\vxiG\t4Ew$vN˾vlOqXJÂϬ;8'1LB/^ӱ@+(-)aΪHX|0M˄EMy|i}8[!`m`U5ra1\t_<(mt(zi8q*eU\t_LcJCstro'BpopNi8W[)D%RB-P`3X]\v-33?P1\t(\tXAҮ8R)\bÊ\t1OVm.6ZV%Z+C7'd2J'ReoCΒCQ49p0N:*Fv+.MQ}maOh9(,ElH>b|+D;CD1\b]Mrsó7.NrwAYus\vy2kz8e=7%h4(t(\tmPV%+o!FGuΖӿR1e\tEג|ב[N?5\t:hph<.OiH$;nPii4+g~]gMom.6ӵp_|?:8>a(À;b/522f[(7~K\b[DUCS/9:l!Z@OmQrVLq8+K<TR 4sT\vlJT9%\f\vRd!(l=sEcLB+ScUǷW\vI}tYƀ%B|Qw,co3;ֱWDʾZPd _|^˲B.!Zpq,]lJ,ך\bTh'RάUΥnZA\tױ)UB8t-PR.ZA|NZf`#[=\beʞd\biwP:3,]ZqSiI85,_\tZW<1z9K(\fEOJR>\b#SB1?BV)c\vp@((\v{\bK{8h:RNDh:cA\v\bV`85\b9v֜Cǁ%({ƙTmQ!,PZ.Rx#L>gC7J\v4N'fszsq,uJ\vN1_ZOTi]Ujnc'tn֥JcQb@}M81]'*4X8vjjQ]=f*5y@tyfǮd@@Dc!q+$nVBcGWzƖkBad^PuBrV\bgRQ*v20gw*/ҟ:#î`;tCB0`O70HyrCv$'18 ^^\vRxRuhK(!o=φҐ2#JvD\v,8h)wGK8x5Prc]8XgҖf)JWӥ+zS%z*oM(y wmq҈>ß=U:\thJ;opDFf\t1_\f>klNTϿ(aZ~S%Xq@pm8AƝAD\b{`Yc6#ef\f>a}B{2j˖Xn6\t!dk>[.xx:WTƥLMdnBò~ΞcPf/rm4\t*\f S\fFgoI)2vX>$Z`+H*\tNRt\f}-$It=vH\f%`@@ej#Ely8MO5_Y8j\vFӷ0aÍpl@Lp27SҬHV(waV6IB@;Plsˉ;h0lN0){`XH!4נXJoikTO2iZXӴjz\boש9cl_s}c\fuf#j9//h<B[@gg@<^#üw=>6yA88e?W`]`J2%hfǤ${`NSe\fvE-t3ut/[\fsfF[gHyE=o\fSj~2o<B6~qR9cQ_=@\t@QҬ~9EFrw)@f*lDOO=gOs\v^1ea\fˣώbt<hs+TwPrg$6%m~\tEQ{(i(ueǂnyCh3-\bZl7@[-ra\vNӀ`<p-0i$z)I],FOjbIw4^]`+`0=GǺ* OT!aLq®v!_N<.sHt*@Y(9=֢W2^[L.\b<u1X,YP$ΨE_@p'@-6T7<c*io/m8nJ\fNY:TvB'4dv$*V ]$ tk#kPZ01aVc/2'a\b2J҂14ID%CV?\vV*.,WQ5hoJ**@_ilUF3fB0]K [ҊWI>-N'DmUq|-Q!4®Zw{.~ob-J;gWt$cM3hwka{G\bZKk\bTKlsy2;7EӁ5t\f|ZZA2|KS|t}`UMR8bL#D`AΚTpP9[4erdpS/BS>/UwDtx>JY?SӸ4]6h}(h4fZ#58.Fp9CGM*@;ψj-WHf1M+)^a.\bD\bkg)@Ӈ]W:g+3p)E^:~GפK-NΔsme`>c>u=TE+]p?b:D\b;ƲT%][<#'vYMM5j\vGAOUR?0>k+tyyaנ4c#9%P֨rnwIN;7JY@n$dφ$\t(kYje+f)~/TWG2AXbnE|\f(6Hr2z[òWPE/kQϙpx{:H|tgItoB +r`-\v1֙'+\fkPYK\tҴP_NwAWF0KQ:kJqUxqNs916/2wlA^na#.^7f<p֗BE\ttK%$a`2\vSQSr5K;'2bF,;\v/fAp0JrD@84RxKqA|tlBOWE*NC17!w=eL!M2^rcʍKX%8hHQƜs/t5meY!pW^A'EuCW`I0rRDY2iz]}vnO`NW%N}Ɩ^YEX?p!k3A<@1A.>N AunS\v)(yʩ.Jm\f:7xx4I_2^DˁVl*)4r#/$ʷA!Bb\bXõBU1,s\vn5yP׳1+0t~Cd ]NYpOh>DF#ǔRHƆ\t;5C~{w1xIApy£~qP{hv~IY#v8P(L4)4tAPX\bX}a^4\f,V%`C\fJgcPQuNDs9F0bLF\f=GKf\fbdWÍY|wxJO|U}d#:P\tzDD/\bjƽAYtyJQ42Gebt8Jqg1L\f]X\v6a9|q0˶DZH!?*:.~*zLϼ~;U_?o9{^rH[g[]etrQ]x?tWq:ϴ/FpE^'AMw}+C/IQ#jIZ 0yW[*g'Ӡ0INhrƦz<^]^Fb3˴i411r\bM/' 0rTV67u/.];,1\vpMmƽ\f!J!FƈG=%XӬP,lHmsif4_yr3) Nne.G~dm+K4n4(?xi6;(Ps7\vl7-cx98\tBBAWuf\fuu\bU@.$;b$eVR=#wEP'5Ʊ#=Sm\v{13eG]RQS\v!Rht/'FhX#JGn!MbNbGuov][hP_$zA\tK?x'1/ґX˧1'J\vbEF<\t `+IOjYLl4ʾU!/OIP`snʵWV!/y^xD,\vV\fgΧ}CJwlzN~MS[s0cB3N6t\vHfYWbE-7R88}/Pz\f;K0p7]?t';|Z{M[ϗVnXn)V:\vt<7)McS~\v?ï2Y\v'/pU8O|ugvQx{q\b l|vH{RvnMBVGX_M_8O:qgaTˢH:[.;XNil,J@q~.3DR=y(qCʭ5O3+Ӡ^;Z:{m}BmU_.Yum%HaX*@fmc3BW\vL˙ 6P%~NbW17EL1\f<Ita.S>Bk^]^o03c'MNjc81~F%J:P61MQ !0 1-I\v!AnCaZ:C5|˜WIk6x'6eunMXVOO3qFlWcmyb\t!#ϏG%X3ʵe Py??Ξc0rӅt79Ob-BJOq G[ph`P)';Pt7kƳXlgI\t^4UƤ3;O^WPdaKLNqlC7h[p˔6IWaA[5pYBW7?=U10L$B2:k!A91 (\v7od?Ò'WkΐYoY\bCg^'V_G:©;Ep'tV\vQJ8fk!sno5PD֓ig\vAdKqTVIl:{^pOb`BQpz96L9PnmWf\b.ֲ\t}òrFxç>FmΟeT˹;rTHx..,ui4)M<Ct\f+eaX +n6BL~+`>k[]Xp[Nf%o{O]w8m9p~?{o_6)AdkMҸ[+ׯgL__VCQ!EAnWJe2 X@ENU\tNVrS!!yǿU`H3[ҰH+ʢyä5Xx@~GbVSƔ0t9quW^=*Fw3OHWHH_6N;}N}2y\t -hD+] jwaaz}`>N`i!\vr<R>UsXF[1hkDcd%\vu{)f{E#@\f%5wa8qeUfw{[K-hwq-m7y.Go}q/_j\vjNPGM^)pficcG|jV.g'µ`҃g2tJd4P;,`) \tle$ebBF\t)sQ5x5:R\vn(eL@{ªNua,RHm_[8#(bHqq¨4 ώ50Qyu$1~!)oXv#uh4,S-2b0G\vSxg3s8U8<}Zf0G\b/N\boӞ/kq{1rp`:)2xZRqc13<\tWCOK:4QEYm\bJ152Tæ֒ʓZ_5aH!zr\t\t1$\f'3zY)ʟdqv-4XF1;v\fxA@N˅mZjd]5T/ʓ,UQYjBқ2L8|UәJ{A*[GWao@+ˋ:FCpp5ǩa֬sfFl<2uϹ?++H<`.SƳ/C<QaNPDm<,P֩x,D]t)QC$LK $Lט-6H?biϋvƿm@Wz3:8afC7<g3~0-%!ƙUJZ1H>\t8Zmo-\b/G~\bAto`\b5Oo$NV|*bG[dT]rhojr.}uu'}C}}dru.mPVdHV-8+=ӱZ.Lf5|'Urb)NLϖ2\vIc|h} U-<~Hodžpu.8I<ˎ:{(kT0[hNE,Cd1MOk0T0DB_/oxDEOӀn\b.\b֢837µ%6f#+@= pNmyigKM$KʺndC!>8#o;Ϧˢ{GOWBcYc!5o+o@~G'1^\fxI1҈:vSU5x00.!%YkbES{ax1.>'4H\tQEk`H90I(ÎI1Y^Xdtnxtb,M9ƍq(9@1heXy$ryt ΓGK0V0|{\byÿǕMc.F0B [5IkYE(?WWnMFgzmD?h\f*KDc->rV}T tQ{jug1PFfp/Whj~ G,6oΎLC2z9g+\tJWƆKMBsO30Ƥ\fMx1G+Qk{T9L-.X\bF6a4BeF[9 JY5s!=
M.\t4YkPw;-[rgJ9ϯtSeto HCI$[iϋ@a!b:,\f1BsYtCMN2aHCndâ_09$~~Ry<hWTq1˷#xb/|\tlF@>p7#'0gx\fVtuA,!6U|#=1TMsq-|V+1|Qw8m][?π}q.o)Q:fYe%o*0!zryC9yq#aq'>\vf%p`)\vQQ\vuFctP|Z b5jauːRU5ãҘnG 9#%~hAk\vʼ^1[ad(n{\bֲe]f1;BP=w'5;|2 sK2FWV֕\by^16o#Ekc\t]eD7<YZjm]+6]bqkbaA|s\f1Zc]fl+S`1d-;\tNNQKJ*@{cnϚ>Bcl_%J/H]Ug\taBisG JvA$˛zM]l7zJ*nZR%Z-~\vP-1{D\v<fZqB@;%Yq:g!l\f{Kh%\bZoU8@7as2UQBƯӆc)[ss8\tB\v>W./è/7=$]Au j;6;177\fr˻Olm%86?60`ϒ[.$0ZvJϖ<nVTJ>dj\by$ZfsDΎ7?tsCJ?^?w5]>dIt^P*5ko_~<wZ{I~v~nm~y0#up<em-n(Ǚ>j+H_VjTgz};;lI|9G+/|wLH:-iJ0]i,qxKsz{a\f]\tRug;[sb)W'+{),eW@KG>8`7=}\fx*LU}Hd<qΒ80-[{WA7uZØ<Fe@/>>4Bΐ)QDAXӺÇǷ֓p8˓YnO7t!pNl?Q/r'X\f!HU50ϱe.X-\vrKJ<|!h)~A_:Rii)a3*.ғw^-\f~APGkTtWiF$y:6V'^n10V/pAV\t^o0b>0c9.y®d]eMl:lvgB97BʑK><#gR/mσgjdpq\tC=RΰA_\t.[Uqeϩb>}#֜p-mAP:F~DM]\f+(9MHlT_)5I<ν\bg$D*~xHXrz`\v98iABS/dTY_IX;!'Z7Nʶbxgm>Q[F/7z?8VV#uXUXWD҆Y\bfΐA#@QҾt3y*\vd\bgsNHS.\t`ub8#Yrz'?f;t.ψӝDց2`P>d*^8ewv6\f-Z#pǞқ2Vmk`Vc#>*SƽUs;,|#[OW=0dH\f%H)_^P7#]0OPLzZK}OuIXN<Sy\vlHU6QPeZo\vҿ҂ӫiE6ufEXKuzN>o=@֤E\f:RM}l˳3i.-`QBΤ<v8b~˫,G_!Xt|ZS4ϺkK9e,dR\f|Sjv3}jE@fuD\bZ 1,\vLךSDG{w\f[~yP7{}@lkv'[kaE1\b}I$y`bvOk7i\v{\t^Flj9]IQa]02-Nz,}ӰF-\t/KV,\v/d-OI_WaHBG\bPvp2ugf6OuAM\tgG?Q%(^\bzz8Xy\b\bx¬s}A~0-hDYdU?j0wm~4;CJvAj^hCX BfeKdb,`i0\tfU[mo^85 V.j(mÔuR0U6LK}{r-6gW9qΥo\bEbg`džǑW}?*PEAha{qֻ.gY y=';8}jf][SBt9_ƥUj3~q9+3FM/.]7%;(Q5=Iz5Jt_B3V']%Ǭ\b K!Z{\b`6`cI'rkc].ujZJCEʒ,lHw#\b'91:0Wמ*#uyC3\b҆xNΡ{ϥ[4~HW`B5\bI!4:KPW%q</akRnLǗ$ˬ`:zAn .3ːA%υKPdW\fxE!?)nI;X5%,uPg(\trόP^\bIϕnQ/pNJ1_ `kELe\b\tv;\bm8qKNBdd!<9ӕǸ]b)LAP Ts}Á_cQ #ANgNu<Lg#tt3Wbϼ.mb__x@:\bN7-w|5U;8ogvγ/.x;!}sP$$\boB~)WYmW|nR16;JqX|tǷS\tK{:{\baS/ZG>ckdys4SCnNck4mZDjC>dʫOi52>ˆH/#+*Ɲ>9C|,{ZOk)e*mk*yp^{O|>mSKvdl)LN>XQ$N8~Nn.GצDcFs+cs_7\b!]W'_6o,4It\bikYpihvZ\bmFpq->'`~M'?v ǍOw\b(\t\fӸוÑ $uu0uO>3MV`Gh֙f4bt<WE!z+Gng,*Z8N4`7%Q%.w\bP;#.,y[ZEkƼ˫fb1ik,Ҽ~CxXGcY('Um~N-XY]feiVIV(],x}Iu*<O3#j_DyGG,)b[l72u{7».Fgmr4$<wHC*.kIVs=;ː,?'0Wk8nPk9zjmJqOIb5O29Qp%6ʞDI+OaBrS^vUC\v'.!E#k7_4<<º.^yUu`҂WYdcLmӢQa:֫ x/\bxf;gSnIuy,O~LG^W!UQ\fJK~5K\t(~.yejkplʾ\b<m>f\f[rxS2RcypCƛ33bvIg+yi/>Bˍl*dfclvAmBVO5cV7 x')c.ylJFZNVYB8~};u4A,#vbRpE5D/r i$ei]Ӻ6x'YCbr7d[eC;f^m5+XƩs7rPQ=S];K9Sҫf+- 'ʕ4,^'+[1I9s8^9}=\vHIO5)GӐe_w0϶Cdq-),Chmm(<ǑG-EIYgy^!yd^svqMǔpjA-z$(}$4@gF>$FX1\vy83±bjӑll9MIj8z>(}CBΖ\fik, _[f:>ױb6G\f/2K{,SRPj*-V)qjK,`l#u=|.Uup,FyJW'qD<%B=G8NWv\t2/W;y[rΑO\vO^Kwg@˿3q6!Ca%Y'|fÍI?@ֵUÎT\ve^SBR68U#;'7 m*j#ׇH'_mia-qAs%<t- q(J**,N`.O#*E-T=CWOëhy;Bt::SW1Avq^\bhJzA{q[LZn6-Һ#U)Tb7/#4jîcQNnΧ@)'|y?eFSY'dø<<Dca{*tuΛP\v>-\b:|v T\bI)LChn\b\f(v}Ps1$(i֠dzM}2Qn;$a |T.BM[=m'_sf>H)?vODQr]>;ӹ_#irRb]~kM\fp\t7Qwp)VWQ:/¯`DN!}1k1bi\bgxTk>sNx;Ao5ew=*z`L*Tnr0S$Z]Z\fp%pX\fGzml*L`r05:^zS\vL;]G_)$jIƼ[[^z;{[l1j)4n,l 8-Ӱq\tG%~L:]wPUwyK;yDn^E1krz-<~\tҲ\bRldZ-;hcKkS?$RxJj>M$(<2iiA$ktk]E]})xJU2A7T+$mw\bY%||.!CszMGLD:!kƢ8WUDF\v6^;J0qu)n\v8Ch\bA5נG\bOƛ%ew\bKJӆPKC^.fEy#!W<5+,4GzlxHjϠ/3?')1@2ν@^ʣqeTdΨe>Vǂdˢ\b*DS%K=FT[Y5$I/\b\f@[Ώ12ǭVB 4@s%Db>;c'(h!?(A.!}8b8qNUM7#b,~LR_*eGFI7CӐ;AZT8 x-*;։5?9/aO˙nP0b3ma6\v8V67%,PcxtAhI3Wbnr°_=(x wu'Y\v[7M#ʛV{Tv~ZYHTN.R\vca*<b8dhB,^/SB_|mv\fx/jbCPǤ<i]qP¸~iJ:u^*PJH-YbL.?lq6=3)xtLVi_\tb(^\tˤY˼;YD3BA3y }p{13kySN\v=nFNM~ c101 $$5!Hd\f3ʃײ\bZN{B\tb)r2b6r))R|˓S\t}_,;>{F)UfeC\v-() .AcRM\t^:^Ҝ6fr>^@qwʚOTBr\bCQkykvap3}nIΝƖ=+h+5>#K,12N%@78ǎ\tYO}B'f4ñ'u>{q6\v.IoDM'YK0y^%WϸmA;8QkLFDV!OV\t<{0nê~{2\bAjwֿ} zl8jRSv1i`ƏjoΎn>C_VO*+JW-?3M|NJ;_{<(;aˍF^^Ӝyt;CXʶ @tU7iqeiʀh=Q-B[fJljXRiY!t%X\t+M;(jc_:2-3lh%~K]XoHN\vϊ@T¾C+Uʈqc1-*0MZ_c{* wr+1-e~'^4Q$?3*w`I'4hi9ZJB$w_81DWlx\btxA)^ӕ@T <c8X@@È)>PGҏI@ndH5c_|\tsBEbPCGFxfƝbuP]_0Ư1YR, LFE:u#e!,¢Vv*/y08q(p*_N\v^>f\b˼e0;ʙf_VB[E<Ls}˙0K4S`8UdPmzuD}#re2]6\fDl,aSd*J[ө^ ]|iY+cA>04-s%NU_ZVgjzHZKӮyϽr?Mv6][ʴ|\b.Ξlbw4_8<'Y9>Ns=MaEvEPBn6([Dv*q1BuҚ`zO^mfU J-5Zv%PhG)l]-@eNO\vT+OEu\v(|?q{zdfGur#S>2kj%uh@Ϗt}K~kM76a5K?j\tKG#B2Q[TY152_1q.'iN\t|y:¹,ZUQE8gnGʟ[v\fn3=IKHs%1h$]$T/*X$aGQ3g~[_z[ΈP~jmW4iMe\v1k>q(?-PtcqÃM~)U19PENכXϑ<|_JiE.]R!!2]/ej%|QBstʏyh0g_gB=uomzz`>Ξ$j8AMAr7g#x|ҜYi%l!cAjcQ2byk6m*|EF;ַnvOL3[҄z0G-}l}[3vm+2ҐZYPvC$B\f@*.Uq(DbVAiì<h+64ao=|GW#ǰ+x=lF<X_n2mlXYH$DΡ%wV0Ϭ{=J_mL`+ʝ/[`\tK4.4>)PNsf'-Ee74IlC[eyQo6A˰f\tgωq9;rHH\tʙY|4;.\vU_p5NV23N?^o$_k^æ>7/u`\bwJ*2doV{\bØ)3ƴ\fy:u\b}ocVJW`]Q1Oak{`ׄ30+Dk+z\fk0+.-!--Í*n/=,ןaiYtYa he0#\v:P#V,Q@TJ0ҙǰ$CVObihh;yrY .ZW'\bG55:> һ*'\tbg`?r\t}G¿*!<b8p0֚3^-pàd>(KN:t(@`}{G`VD~n{xijKEr6{+D~LV_m1JERMKpa;Pq<rj;W`c\bdKc\fO*H!0H\fI3ÏLTa_\vJ*N]j֕$5WE*qˎv3(goαlYbʤvF:xntǢ4Vwӟ>V#:4.`eBa\f^3\fPDXDjl{aOSu?'r#]@^L8!n3`G38f0].JH;[\tH^R\bxƛ*ʳyDCe$Dl\v;`a>\t5˺t-\tU\v @8Aӊ}'*\bZn\t\bd=51o-F>=o,,+5,ҢoT(Foew9rDVO=B'|ʁS2,Zk9wLB^u]˒Zlgr½ӕy )!uwGc^aA.1x5|p*0jZ[;\vwxҚε{(|$U3N)7x>i(\tGYBj-vHsGsMDm$jT67s[cpZ}~ʘKdbpö%Sb5[s1vt*4vvCV|>w]kǶAnmNjsHMVTs0T!h<S:s\vedmtƙJ(6*W;2k}fIVuE5hmGoi-G\tL/Ejya12RI>^\v4ʯb3:4hD|u?'ƉMPd2_#m3#]80zA_?a44oCSn8Jix,Om\b[)˗U{jTJRH\bQkF :fvILϜֱ8S0c#HuK3_\bP(UC:4l%\f6u7u PV]E.s;aH8%vjX#,2ZҐ<]$ F~R:s:Jd3-KQ\b$ʰLJ.#RhwI4+r$|j})ׄ~A^F4(]\b{X|Mm\veL+G~k7%0\t$5YbdCFQg=Emg֡*n ZO)\b_{``w8|Fi ^<һH.FHt5BPCI5\v\vRQn.l[.1ZL8N]{7.ʒaJiob+S?}GZX6G<XΗ<Ξmx!tӶ$eI4:VtDm\blp{$NID4Rd!\bϥ\fBiFfS{juafǔ8y+rp4}H(p\v0C0c^MPNAneC$Pd!E˹\bqg>P|H,TC`9s7.4/6MugO\fRc}?~EI\b$~C!6Cs#=~-99=grp@-d:֎Ҝb{M6+.{Lpϴx\ty5a$}*4s\ts:BiuZ^3S+j vSUS\tXWpƖ<E0o2 D2Tvח3 IBTo V<i|{faǣ'XDYF}[lm8nu(Ra8E4ZN/r'@dc$[vz6DjY{;8Ef=TM4'7IwVz+!U0\v%I7JN>xs\fgR)B0TD2)IAO|kG[.0hccUt;m><BI}xˌ\tnkb5Y0IT*5MX6b 3d,VcX;5ýWjΌWeNyGY(הyK ,DL^$\vux5T`+=~#[*ʟv6_z.g;$\bbO6%sWDv}Ӑî!^@][|c<:?a'.S:pym[R>`\bdm8m5ғRM<0oSV[c\b,un>;+î]AT]>B{D8aϹuǙΓZ;Ƴ$VUӫtrPtf\vP31flIt79_c+[}=DmJh}u#[lqA5x,J֢<0\fS%+kA1SK<.\tór@<\vηuYe!:/4C%ӹ~rQ[/BVT,\fduq8f hI:)|Xh.L\bYn3אB;ouyc$/'Ca|~0U|>֥O0:KZרLHZq4twh(e/:_86˖ƒPTG^r)S5O\b2;#Zp`Ct-B6vI^6Wi<l(Ihω!##x8KRG6bmTvU\fB¢I1@b+e)E/miGx4,vmx1}T_%~1mҳ0*e-u]?\b5yCgNy}d=-qtsX0gCQ;Kg?9geTE-?hwμSI!|rhOi))b\fz*^{LS84?>..2_kF1THV>/]5shq%XQ$zz%t[j>Bӓ\tWo?KvScp_Y5#`F9ck9u%Ga@9|Z\fsxDXτ?Ӣ=qnLQÛ8I9EcryuuK/kQk\b)8ҴOD7sF+BӤ+SBˍ||`q@EV[T#OM0`ΐG(Oj8+ `\fI^wnwW8#o}LzzSAt$Iϊk;1Ә%\v}{\t|*q8X\vH0ybE,7Ν<-/-\b0jOҠ5Wtwq\v<Anl/WE$Dw'uXE^r EtT+N;I)z<D5Dt;ʇd8@q\t6(:<0:]ӷ)M inA FZP#_@\t~Xr=A,iGdvy/3q9Nid3|]=MQ2(OPd.F3P!Yr?<FgҚ1V+ϙuVKe-'l}qt4?zsns/'y:YtAL:'Ǻ1:Re(VY\tRad\tJOVUb_`kk?yzWwPRp|hE?Z.kf{T<b(giS˵!],D\f4$\t+})+=<jeHiL֮r/WjRzGtoZz,A9\vfk>UEF<Ul3FF`sC;.wQ/Y])U',=fWa7NkJ6>$e=st)UQIz@qatnr\v8\ti+J1#V hMΆGHS}w>G'\b%:iF5BLSf+o]ӈeQYjN;2OW9l>XyC2n|pW9MLDB0Id2qvwI$)m |'Vkl¿ 59G5˲XU\b#W@ӝ˳'WX``Υ>3EvRǘqh5P(h5485p'\t#M~?UUZA2>hzLo/BE2DwBt\vmE;2YcӈAm,w˚-JCE,k6qMR(W]M4@HOmNQ][v@y<BI?QYn7rHU<K^i->6G]I;k] +]-\tR\fS,'%0BVRg-M)b2sr`:#*Vzp/e˚5`o/L]]t|;$uNI=f.nIBNixMHT]H|\vMe}\t7{2XʆM8f*%| >9zfilW^ǽ:n!Mgs;:sǎVJCJFM/1ZQ{k{3X-k@J9LyN.yI8׳Y>Qzd)l;vJ]\f|6d{|nπҀ\tƀjr6G#z5!Lo-tPfSχ515\bS:D9_TDsUY%Qhjq}ΛP%Wz9KQ˭R86_0v<Bt`Q/((*LA)1§\b{Y\v2t;/6cRMt0\t:#(:dlI.0gzd!:?6}r0]y.2(8}SaO\bGT6a@T\v@?BcjbUYxe?=U6g{W+bt*I(Z\b(J!N}?[õFa4XlPh2~Sj'WyajI,J`CCbRDF!m!Tikz,;4-w8j|O5TrA{K}6>VXJ\vC$\vu,v=e0VYF(=Bk`7˙\t8UҐnge҃@Eki'U$;+sÖcDƋ7ϡy6QAfãA:p6\vga\vm?SIHscחh*9Rt<dbחS6F~d,=;oWANaSpKsw_02ˁf-Xcp6t4*VsW5$7-)Cth|i\vXn}oC4>no@6?~0<Q:AILFZ[l@¹T1u}_Qr$o^Bo!^L4R\t]GL0)*MWw`5hh:p\vhmo)5x{7=4rv7*''R_U6F\v[nXlS<s77-{tk.u#=EM*Ã;o@ΡkӅy,\fGoƗIY<7ҫq) iU*\t1!,bdgLJi4`\bL{q-U(g2l6{cƭdnR.zWHl:S+(Ewa\fzTgUӃ[ÞZ6v^Qej=e_h$4/P^6`Mw{Jn֖<5@5\fO}\tD=UxVv/5E9g%]'ZInxiUCw6v##;W$z-y,-\v bV7@=o3\f6yi@aVX3XaUW`HFWl_Gqx\fE}gSP:n.ƥNZLz7<9K!d0?fYVqLr\t?mjYiFGm3R VVEf1fzdYD*+oy+3)Ur'4WqƇGӑ!tT%s._asJt8]j?(?8vðFKA^T\b(mxd PzE(jJDw(#>-KMPv-(u)M\v4G8C/5MǐʆySFX/N»B)o11>,%O)gz֜@.s56^Y#'e4}>p\f0?U.֖\b%!Ƈ!LKfm+g$ÄKʶ5MpI:1Oy֗QBVT]JUboz7VrIg\t2-ÚidiLc[v>kG]mgƕZ11\bu(F-)ZvB!oG+2)/WϷ-];37#Í -4[l)\f}9 jn\fJ;Ia14v%\vaIM:QjCOljLcq|Z3Qa{BOvRjb}?)\v~ʠ
v=*W°AD=<~y_$52@hWE|5wYҧ\tc@=\v\f;AmǽiK@Gl,#[o *\fNf\vZ*`(4='%KK{Wc?%#Nƛ1%g/;#>`wj2b\fr{F9tX',B#j'Q\t)@`qe7`X.GLbTJ><31S~l\fD*E~uo7$8WX0\t5j¸*\fSRfV\bKD|=rʖhinW\v!,~dr[>\tCHNssmvk -þ96KR8(L*)g[*RWL::Cu[h#{O9u[\vNAʃùJ6p,O2)E$J7;,q+y*2eaBhuO+;/U;(v3^\b}U_>ºףw($#qIê{Ʊ\ve.v_v:©n<k{(>2[^d9wӵFwx<ƖA tv9.Jg2/|\tHG]l43yKҏeGNʵW~VJ|2Dx2R<jC_ǥ{ .0h}O?[$^@hAOI#\v+׀M)Ø]@%)3'{4 {u\vRf_U=($s\vntu%t4Db 8\t|,4:pX!`JqamG!@f'h^DƆfia*5ckt0)KB,\v5p]9q0#]\fDÕ./Oy*Z^!\tt}gGÊi\vm$/(WTG+ƀr[ xX^/+U4msluN4o.Y\f\vbr<5mTn.ה$!_iu2¾έ]u?tF=v4m-r 9q4g;8|WN1AoTb(j,1i:a`˳H{7tC$P Z|49ty~evW57=Ӷ:*3(%9*/p9GA~SbvDksBiOY\v/OMA;jcE^3åZGmÚ%5^a>9k%:#ƪֳk|GsNeo;+'EW7\t_ M`¥OK\vq#eMKLXPi-qʼGӆPaT7cj'M4tWF;K:ZSΪ)ʒE>(\bYoΫOZx~w%5j.BF*<euR1Cp'Qf=[1FdPR[0fMdHm|=!t`eH#DƿX0YJ\vP]@t2y7Lq])XJ6ϰlBEǹNj2pR;\f7qzkh3ן5lp*s=iiB#)SƣϨb2)rpms.gM`k7cÉӢ792)ƌE'J,\fzäz,x\t7x(11 ǡ 9aj!L2z9kSr<.nT9B9X(5K#xSMϐ(O_H2sB@y#қ.rӇAFFT2/@r}j!~K=y!b<[I Y06;[KO_NKx~fk_˗z1Hmif]dyHZ\b#|]dEsk mí:=iy\fvJLk!w_39+>t?psj~?<\f}fǝ[V¤b@,BΪ;e=lmdg k[26(MS5Iy^`*vvmJǏkJGo-L<bu h\b-OCLf2\vCNh]jKǛ\f'i76rS#~ni-R}GHW8\v,%o.yhhb(GzϹpoJ/fb%kgy0)E?rCx)26H˞xˡ$1?(Q=5X{`YThO`_`9Ҧ%TzD#iLa8\f,f:W/3!iUϷ[Vla9M>wj\b?=`AvUBc'[+rZODyDe0BGD|*v<.x5;Jf?$C4tkҴ>ַ!G{pr˖#O@ekXQX\f*TU@4q3l50v:sָƛOn\t]0?\tMl?7>Yrcy;dJÜ-joU32cdGu5<ZMj@P/@ix@FgKVq\fggb=fc;I',lӚrTrgojq\f$.oq4ʹ[{yEXZnx5`i8m*lL0`\bסYMin ϿYXGNDZ!.3{Wǵ,7zhuaZH,5`Sf'mÁ{o5Ν\t\tY_sIM[n@057B6_UJdǑm%6cCTU$%kmNpeb5hӡ@Y0ӄ;Cw$%H?Ӌ=:V R+Ix27ncUqU;ҖeX{083`0PRoBj!4EצIpo$6Ji#ÇLsXsvZ\bQya2bY[nʻ0MHrX7{A\f<-4)P9Rǰ\vk1qoxEx'#!oz~$QJ]6U8qB1a-e)Ib2\vH^\tLrT:xW4yLn<Utt<#?_7GJehX@c\ba@%iD?%Q\v5$cCx>sI,[kAƆdǔfzχʄf]LRI>eҭ<11֡b9?Җ+9\bZ@JOay,B_+I>BBH\vSr-/wO#M)M8LP,MxL2Z-X[{*\fHSw6'~/id<L;r!sG%cD[_B5!f7ðØtM^E+#xK˓uBF phWAsGV/3#\tfC5|\bI?w@bB+bC,oML`>O0QA-^øXIz}][9ӟQ]/Ea2RI=o\tdRskX8A6Cʁ;V90\bY'Pg,JwZƂK3+g3כCmw ?t=WH|-.%Nˮ`7!zaR 'rYyXpa0V)\f,,=rV\fn@#qKab*֩h6^8d[G{sʐ<>v]Wml.\t|]ƼLҐ/\t?1ʯYX,Gb]l]ƈzq+Yq_?6H!{+\f`I'zE`lҦ}V\f\v\t\v=B+? d6+pz_\v]-sjjA-g:/;p<yMp~DÇiUõFƯZz_.]C ք*l{;TaRk*˂>.Qұ}$J5 _6Sdq'VbwIt1v@8QyW{Amv\fdTjSζh?f|oDƻZ]yAkƁJ|2/sv`-jB8C9Q+\fL`;$>L07c7^E%|50[DmseQ\ffn/3FRHV?˶טZ1xv)FuQ>ye;4Q%{{nDN,g5d)FhOrBEú%w֚|0qKhmÜxmá˜H\tXLV/MkP6*M:\f q3kã4\vgw\vt1>[xa< =A4_ֲvtS`BˈrH\fT+fӬhibx˻$iA:$ln>`'\vp)x]$|@\vfwBgdVִ$=4OCvZǠ\t{@mҧVwnFmp %־MS˞V\b#oJ_OFI38\vHY5l#}hw6Ntu8ˍ\f\t|LfLv)3LVo#q*/FrZ~.$ϯWFdzs/y1U-]\f9gmZb3VH:{^}Ƿr\vU0G 4@oiA*1j=qUh¢PNSz@2c@!#\f8!z`Μr%ƂˇzUKPz/iƬWqb$(-5u64ET!/=U.Rnӵl\v}+lmNC,T%AHx4 \f=WtJ9^h)i~2lqH ~;(N36H\bϩ1[R~Pdc/~'(A½Ǧ`~m{Qc8Q4,QӚrNn.4r/Mt^DiPjW}4LǴ`.mם6@!Atat/]Nsu-'|sg8SmC\bPS<x\t\bQ6YXw|TYwK\t֬6^m2C/h;?mÓ6q>\v ZkxuEM26-1n-`,\t5r\b)a\tf,@\tyDoN!o9\f}[B.kiw*HNƶM(q\tQf(ET!χFǑM7gzU4G 8.K$_R)u_utROVRHp8eRW7vh5wNj^t\t|6`);w Nv13]0ׯpO tsqrlVnFl=6\bZ9ih~\tcb'Z/EB0zi1[ANq?s!\ba^}X|v|zMFckq`1CgI aa)Rdbh]b<wiu@i<+fYp} `ϑADg7/TD\b#<q.e+VH.BtQ+VkLBǖLjv1\vW!b,iCOΤoҲ=\fpP>=dMbSFǽʓAiT>N)p=)y2\fϣG_{a(]:0jH{9/VcE\v\fGAtq`X,%wÅ17Eo zw.D7ousG=^\f˸`fqq˖M/]8`7|n[}hΗ%ZL\v*TW.kZ4K;3MKY$A+tFf0f.8uB<J_.fk4]Azhf)8\b|4\vYҿǎ 2M[9Tי>eηy9_7ӯ8)VnpW~$ʨI/\b;ӈb'օ^*OGp?yntC,TQQn%˶@`T.àAR>B~2.(>:*``\b\v,H{j:2!g2ΐ?vpe*|e*J%gk7B2,%$3 W\vj'Ɣ[nNƒus~JJPA8LW=ӉGQ\t$\v JyH$CH ?+P{;çwaAc0F\fYd@r'oY5-JXf/j!ǔ»(uu_\bSk9Lʡ\bvSOw/UE4|=_Tt[nv\v4$hS]kguA;XK[/_fXe[j?oPE I>myQnArM??@k}';;W]qm<J4cSGbgF>PwD_lVLν;{/TvR˵^D6-x#ƌ>5tzҜ]8@<tҍpώlqP8$\fzUMZe7y|ƟAjOǥ2BczJ})rZ9Qk4QCr iN{R_rTΡK5_R))\bB4Rz}g<]NgM-YzPZFz#xtpiCC4b+\tK#Ao\v)S0{-e1<+V>}TpyEHhƥ<=BrQG>bw<h,;jH`wRTx%ʡFu9<fVưpw#B:3%u[7=`I\t[)r0Z+W\vlBEed#Tlօ\tYO!,`?_aO-?V2ilT n.G,6BVǡVj H/[*ʿ5W#XXn5 7fL:â cUa:w/KHVk1C+t7Ӗ,)=5U^I+-+1\bK}<uL^{Zb}^ok'/#S<8<+rP=gm~o3w)b\fTC6@WOe#9˓SSx]3UiGNwQ(:* 0ϚK#xJb0xˠI^9ws~>Ur^2]-V@U'N>P~F;TT4^ySN|EhI(~X@v<i; {\b:\f7Ut,Mu\t%$Cc))fl/L_3\t$W58!ҷEJS~,'ҵp:xÐ_SrBQN-Z6b|n >BZsWfHYf'.ơ;/֭ j !}T5dK36|H9Lf,4r>57$dBLǒ*3u\fn#T-kT\bVʷ?-3AӞ1HF1=aK2BQe|>$@.T)_]d3]kqUjjuH+!AV]o#ˏLAkWSXWN\fsDlL?o`ÐHda^c4|`Z~MsmOu\vfP60*SNnPkpY-r HT]@0XALd G\b\fƶpt\f\fT0\b.KN*gQDaiyΫ^C\f0hd?c2{LUV*M'ƏC\fd(\b[1[(rm0Rd\vNo!A^*b15GC%|mP1\v_7;4\b_<\vO]NO\fm\by;h0@Θ%luҭuIU\vʛ?''sKNyMa%F0e$< Rla g3yj%-2ˋ%$klV/@]\frm,c3CIYD]dMN:w-J_Gò{W0FHR)3hw6i`0Q2HfSvg*(0|}R2s|Pr\b((=$/){17jUSI-ʞ|/e4oPT֏6nNkn>MWljh*I:{0y%?.4Lְpq)9A%6Yϯ-v8Dg)C9VrSAIiJF8Lnj_HRz{ysL' |}.D,[ls=<RgN>i.]Q.'[7?3BL[brzZ-L_HNX/=\f\v$hW҃pAsaAP'/\fi1Ʊ\f~n#fyIT03\fStj;tA#C5DMYJ/X$'Mˆ~^UxfarQf'bZfg4`i;TAY9ʊV$7U`z\tQ5ˤc(ңP`0EwQ22`R=n\fRMJPasS$HPs\tBP!a,fǡw#irzEҳ4F`A#S7tOe`x6re,|%9W\v!];u_Z7jBP!֦NX,,[}Rx1sq}1\tHj8xPAA2Bjed3vkwaDgDpFA˰ӡ/b~\taB\bwqʰR};juV*iWN )BbwdO`DXMYr0[ʅ;O3^t_@dN<NV\vjXt=0cC\vvvl8Z+[(ar bHTVO@-hrQ-u9/ִt(iQ~[<>XlH˗:vkD|vJb8cqgjϭ;Ǘ$t,Q9hOXmodiKc7.J,=NZ4np?$J;a9-a.>\fZ$3s'6Y3wo\tZ\t<XW^}BdeRһMViM-%urW Q1D*0\veNSClBe?/y<fBeX^t2+,m';Tk<lґ1eθJB(_D1)T3-vaô+,SS#`0ˇ{jy<T)|\vAm{^*^h#n/*Hz0<J3z0$H:mA><kDId>n0%|<(qb8x.CpfC!1PǓ_\btpR]\t0SSEG>bt/FM*^3grnGN\t\b^jcI(s$*m?X*Com{ÀVzZIr~uaϜqUNCTuƻƄIaUb?}$7H4c\f< BU{UfYAdOV [`׀wE\bk'cfl/8È{2471d4BM2# ƘV\v`d\tCGp\f-`Ge0.;Q=j> {-\t>h\tkY9s\f!B<[Y֗~7-28>c\bqÍn(j6;|ip}b,sx.=S<E(/}GOv#rL*000=C1\v_0~$\b3UwM~M^rf{5Ø˼lQk3~2V+dFB'q}~˄AI*f'3=t1c~F2^~_7uy+v)`(BtnR¢|R~_XGx|I/oZ39guy]9k_?(E'Z%\vdBj\f!]9p)dh1:/t-f/t-m],GAsץ1+)q|\tKǿ_3y7pwY?*o{}<V7xN\vv'יΘ!D9w ?``J{ZU_0h,{4_-Y.D%|h$w*${(]d8ZO~7~A~J>\fkBuOQǿBp0±iE?m\fJϦp%~VKF/fF\vg59e}˨LJD\b*)(a.mgj['D`+Q7*O :w8=M\f;7p-SDִ7zKokw{~Mp]yz,A\taR(R\v*z~#/nWCt{ơ|n)Wqc3]29-[V7l<ǀKi uG7Dž-c:{\t(c:\fJJϟy-csvj,fINAQby7 ey֏Dgb\vAMf(a[=W:qAT[BT6tHf9:]w'}$g8D kO}9bD?ƀt'{Yjb|n\bLj9ukP?sPvƾ=;}B{OiNTSK2z`֝<w?)[aNkUr@}o3CKu0N}.+W5.#ad>8ӊNkn5|sM*994T(@@,4DI=AlOÛoncgmxp#v>ʐ(Gp7{5CLw^33oQT{$PH~r1Kj`=}NA:7<:J9kQӾqSsbV=ϧ* \bG%]}<L=[H:cMDW2KBS4O}hNUw7uZ2R|m_yS|a?um{S;XdzҖ~H\bGû/%NRW5ʟXG\tRvcu{?[\f[ocD7(u*:{r}fuq^:2g/;[[wwWY]5RKk.~V,Pm\t)wr<_Rb%k'b^Uf\t+A{.\bXzx{WJRjJrYҥ<{=eǽ-|-;WeP9/nSZ>e*gLUOT]-4l05'_r2mI50~.UZY#n(}Nm_zq!{R-VyHxuyWf2:Flxiw:T9bp_2/tQ,Vӧ7_d\t47.B9v0=wT@Mzw2$eaƆ?ltp-!>} ?Q})2B?qH{~AhwVQan\vhI<8!a+|g'5y]8!(WU*U,r?48Z,IVNYB¤m!z;fuHC-ֿqZEr\v`lIaLy}CP|~a±7e\bGG0++\fvByxHpVAF7Ey>Ki)QZ\tLz%EX_>D>%u,\vXm0%=jQUR4l,IIEz3N{fdHK2Cy:njpǀ`F8QˡOmz26twzǁ-+^[?W:{Y˃^BJY;7SQ_#EYιVPҴoψҤW^A+n2?{REn,}T13kV{/[7>[^Mi-dqr65Mq\bWn%:!6CE 0xY\bcX|F%Jʧ!!gqD~%\bʆ5YL-$Wsrgv?l_P\fi|8@SmIn <VB;c5ct8*<ֆ$_'V\fm;l\v\tc8@QkhLGBjb(9*}iw!2cfҘA4\vύqօt1jMWRWjCO)[j)cI`r|~|<֎O{Vc^`9^ydp5ra#Z*¯^T,'=<G \tAd?)w g15cIuYQHg\tm'/qc]2Z;zMYMG˞ʲ-e]~qAZS*3lRXEӇOO\bgL\bDzJa43.U2@i4ϱ$5o>3CEJUs\v;96o3B'lZ]qKv:3boE}FB4.[-`,25x<-G!|]w2P:']LlF^ƹr5`N::Gv?o\fBSaTdqjƀt-\b5JQfB!s8r;h=/;1ǩrSUJV$QxLk^DTc-\ty}s?-:so.\fy}oM}>\b#~Tv^>YiΈ0:E#WzxT?zZCN0m/7\flJ|%ÊMW37#GGmFI;l93wzhi32\bs\fdbQ=g?nNÃn~~<|\bK+6q|+gsgʒB]+G~:Bˎ\vD}\bg\bfE($k*5H-Em[Zֵva\fCf϶NEΟSq/(?f:`a\fǽ k9;9`O4*BN{tWDoI4Ân5|n|ҁ\f'N05{0y^Cd;P1vAL-h?\t9];V#cM5Yud\vLlh,\bs\fʠU\t Ύ7q02Ε<a6βy7
HqWm]:@DEJ}ǥ9\thS`wUg8.[q.T6],rPi9j)-f+)(j>c4.G¶FU9dkupM'D3f\vbo|0gQ^LT(N3pJ{\vU[l>ʘs;m98`0D^SXr\f*+\vR~dS[n)Y)%^ƛ|wrcQ-WxtWDv/YRk;:bao-h/+nʝO(70]S3K5R~Z;ˇH@zҕw7Je\fvP?j'֜EB6=Fo1#?m#ρYkƤ4v~:Ͼ7X9MFwQdhpxs{{~zirtz8=owo{kLePa)`$4Sv2E8;-3=Nb7XMQ=k3K`˭#6|?ǣEr׆{Q_|\t}V||_R%8>Q4UY]lV+iIJY?RvE, C.g :\fAƜι<~U*ua$/7yZU$skp5Zyc}(ltKב3o!ÊAlEde\t!RL\f~.JN\v,˞_*1Q:, 0>!x}l|a@C%o#Xk,bҬnk`-Pq2Ek2}rfS9.ΓϘh+JTN;*L>7X%\vC-UzI<3\f|@!oi/B(.Oj½$SCOP|bFM!*I}-B2_Fdrkh-\ttÍ\t6h]6yIK7DBm'x#V*BZzf?`!\bҹT[˅IϖWceǯ,\bqkS-z,\fv/UW5uZmי/@\v: UeI01>?nOK7e`2ʠ֞(fggCcqpU0O;nq2t/4f[R.+5+9M-5=FtXi|q#ƃ_q'5$(WV}\fP{[luIN;G}0r×|ʔj}%o{s7`SnU34z<CXvs]ANuzH8*,)_I2URZ1\vdu\vrq5z2bX\bwև,l[ 5'9oQX~i'}{LKLKQ?[Io~d5_e:\vN v[d?,eZe+tOO[^tg5G6V|Οf1\fM*l'*_U92`c||W'FmNCec6:.e:30`qLo8B l֭(N\t{Dz_|yg)5Xo~\b#\tM CO1KN;\f%a_T(K^rsi+UӍpv<?#N~9{S|J#yFew\tq#qt#ҨV9@3lF)-@tNf\bCUd8JxCJ{d5~cn_m/zgCo}~}~!(9^׃EnKqK*?PZZ3^gBXdHS¾oorN)4Ǎw(/gQ~{2oF{aZ3`hWx3֧,)4lM.f_S5q eA$DTTdMCvA=~<n4Wu?jazt>?@˟(8>s6\fQd7iX>Me9ʱ2T~l3a9cm\vat:DA*]üΘ`jxFQpr]0tBE;:ktX(R2B==*\t]grnAd=<ӥloLhgοdZ@+2ʫ9:_\byW@pf+di<@}$oWy8|GuZד0Z;x(q+AubH4ֆJq29qs~A6J+6FB%T2WʟGAU0$@EP$TΒMWv{6Sh.<]\bǚ(55JpGμ#~qq6u]A}%;'Dd<**YFj˾\tfg'EjV/KS(-\v,uNHΉRRz::TmktE,AU'LSv=ˌ3ֿNTcc^++z@$Sˆ]Z>d]55fENYB,֝n^:ZA6d*![4smJ[%Ơix WZw0keb.,*/\bGn\ti>9Nƺ^IT41N}D53U`ҟmQ6\f\tk%qMr(cXotuI)1A=,F_#=״<0ZCq\t_._co'\fHCk6ϟ}p@]O>|ʝ4KZ>\tp>~;H'M!2DeTTF^iU+1ʛc! =6ƫ\fkҹjSx$2N'?[ScY}v}mC9aHA<e7|i֯VvyYPǤfde֓Xː3~Ke\vb֮m'u9ˎ\f*]=4j=hCn3`KPHEftQAnF-JbzFb/mt <K(r׳qm?ka13LgGOl9`5Up2>(cUC\b];zV˳˛kH+|>CuG]xRBN\b:Fe4XS:,6$! +jg<\v+LJ-(ν@~g1'dÚmT#iTGs0[5£ʔιY$j2KG<{2HEafX7g2A~CU9{c!zX|˝?|~r_3+^$־i?+=%~Q}Ml9N!^Ly|vE}$X@ӯ]:\bLtLA;[B|PGR4fl6XjiEQkD`Ɠ-kNp_bӘ)Q4˟\f+bGw`')E\t \t`q}jC#HFXB}_\vƟs30Q8Z2D}A1`\v*QjfKU#_D5$RY6^bu$Sx ƞ/\b|>hL^Nin@`F33{q1lAVYnCH.(44b\bt!`gU]Cq'?xp}.=kF-Biq}V׆rNx>UTeBAZ:>!MB\ve+*I~OZt,1e\tґdZ*[w@Cd8r?V8X<A#cGYN/$'g$ oH}\tAx-mPK:>v:}hˋw\fHpPb9R7@6;p7EMU\b}~\bTi`Kj_\tb'nd6%\t_<s[F .'B He_~hvv@\f+[aa=ha;H?/mr ;o/Q=NjU:.D>ַmpYti8H1<kYnPm1|=ׂ}a82m^9>L3dZzTN~nbҮ>:[֓z-D+5oJth4vJ(t!_7SYl A+djֵ1vS'Nu#u%e6@@ssp(Fm;SWS8Jy.*d)?gp7%\b.W,}n,k vv]@K8-0rW/Үns~?yƴZ -{,<Cֱ>DÂh8o6d^FJz=C`WmpAwzE~[r1Hc9m]7P_8c?ƖDZ^6bU~,Q$hVV҉]IfjYtz6Ifm,}ʾaC w1?VNQt>|6.C{Atx~8[L a?:k%GsYxnW/7v4*f|~]o?*`KPnV})Xåpw65B{<E5¯giwiCm}jM@Vh^p~5c5xDdi`[u0lo1i2}p;{?F~uzws7qkRxH<t[j_;%aA$5סl`$@ϴ\tt\vUkJì59x\tw([YtuP:X>*AK#Ie\b2O)mWÖ+8=sMZ_[QE5k[jke6F8wiHa[t]E=TfW<t9#>֤@'b}_v=<dT3HWL7Al~(F8 7@k`?$S{Dto{z6.}7X!B:\bTE֗^?B4Pʞ/ӄLMnK?#h֘BU~W}ґ)~/U8U;g87}+-ҋo(1ʕ]${yί}ǻ%#|Ydh\vu Bk/>0ơCCr)DΡS7o,DNvY m%\v._9a0yKG%S3C+nWIsN8/=\b\tL+L|hN8}g\bNxq<-4uv![o!,ӉZj4f#n=|y(?`|7)Uh[Ao5+[4B3+X:8r_CN?|g/|íNbw3S_N=B[v[]^}8K:[ON^)e=KgO֡o:4=}w=QP֍ʟ|eK%n\bfFgD16 *K*yi4Ϥqt.c<OUpucKN##(mXjwҌ/ SY9>GGM/mC/!.$+ǒϸ[*nl?ˇ4>=CC@Ʒ0M/~jxM:^k@?DEok>m!\vuw#vDnW6Hg4^C3CaZjo_a#ӗO*rJu'vbswWP nP?~{WnjF@x1n\vaz\vr>D/Q|GGwjh{pg_'@SMNg='ӆ~1g=3?qGif<x\tA3SE3:c`ªAҍ1LZ\v<aFd3T?}D*wûGr^k9c5B<,NZ,+dZQ(Ps6_P\tlO[l6To7gz®+J@ހ"),e=Stimulsoft.Base.StiGZipHelper.unpack(t,!0),i=Stimulsoft.Report.Resources.StimulsoftFont.getBase64Content();return e=e.replace("<style>",`<style>@font-face {font-family: 'Stimulsoft';src: url(data:font/ttf;base64,${i}) format('truetype');font-weight: normal;font-style: normal;}</style><style>`),qHa.getContent=()=>e,qHa.getContent()}static getScript(e){let i=this.getContent();if(null!=e["locations"]){let t=JSON.stringify(e["locations"]);i=(i=i.replace("_DATA_",t)).replace("_OSMLOCATIONS_",e["osmLocations"])}else if(null!=e["pushpins"]){let t=JSON.stringify(e["pushpins"]);i=i.replace("_DATA_",t)}else i=i.replace("_DATA_","[]");return i=(i=(i=(i=(i=(i="canvasLight"==e["theme"]?i.replace(".leaflet-layer, .leaflet-control-zoom-in, .leaflet-control-zoom-out, .leaflet-control-attribution {filter: invert(100%) hue-rotate(180deg) brightness(95%) contrast(90%);}",""):i).replace("_LANGUAGE_",e["culture"])).replace("_BACKGROUND_COLOR_",`"${e["backgroundColor"]}"`)).replace("_BACKGROUND_COLOR2_",e["backgroundColor"])).replace("_ONEPOINTZOOM_",e["onePointZoom"])).replace("_ONEPOINTZOOM_",e["onePointZoom"]),null!=e["outerStyle"]&&(i=i.replace("display: table;",e["outerStyle"])),null!=e["zoomControl"]&&"true"!=e["zoomControl"]||(i=i.replace("zoomControl: false","zoomControl: true")),null!=e["title"]&&(i=i.replace('display: none"></div>',e["title"])),i=null!=e["customIcon"]?(i=(i=i.replace("document.customIcon = null",`document.customIcon = "${e["customIcon"]}"`)).replace("document.customIconAnchorX = null",`document.customIconAnchorX = "${e["customIconAnchorX"]}"`)).replace("document.customIconAnchorY = null",`document.customIconAnchorY = "${e["customIconAnchorY"]}"`):i}static async getImage(i,r,t,e=null){return new Promise(t=>{let e=`<text x=${i.width/2}" y="${i.height/2}" width="${i.width}" height="${i.height}">Export not available on JavaScript engine</text>`;t(r.mapImage=e)})}}__.h.StiOSMMapHelper=qHa}let StiBingMapHelper=__.h.StiBingMapHelper,StiEncryption=Stimulsoft.Base.StiEncryption,StiLicense=Stimulsoft.Base.StiLicense,StiArrayEqualityComparer=Stimulsoft.Data.Comparers.StiArrayEqualityComparer,StiColorUtils=Stimulsoft.Base.Drawing.StiColorUtils,StiMapHelper=Stimulsoft.Report.Maps.StiMapHelper;{class StiOnlineMapHelper{static get ICON(){return null==this._ICON&&(this._ICON=Convert.toBase64String(Encoding.UTF8.getBytes(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z" fill="#af6682" stroke="#663a4c"/><circle cx="12" cy="9" r="3" fill="#f7f4f2"/></svg>`))),this._ICON}static get EMPTY_ICON(){return null==this._EMPTY_ICON&&(this._EMPTY_ICON=Convert.toBase64String(Encoding.UTF8.getBytes(`<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1" ></svg>`))),this._EMPTY_ICON}static async getBingMapScript(a,t){let e=a,i=await StiElementDataCache.tryToGetOrCreate(a),u=this.calculateMapData(i,e);if(t){u["outerStyle"]="display: table;";let o=e.title;if(o.visible){let e="";if(o.font.bold&&(e+="font-weight: bold;"),o.font.italic&&(e+="font-style: italic;"),o.font.strikeout||o.font.underline){let t=o.font.underline?o.font.strikeout?"underline line-through":"underline":o.font.strikeout?"line-through":"none";e+=`text-decoration: ${t};`}let t=o.sizeMode==StiTextSizeMode.WordWrap||o.sizeMode==StiTextSizeMode.FitAndWordWrap?"normal":"nowrap",i=o.sizeMode==StiTextSizeMode.Trimming?";text-overflow:ellipsis; overflow:hidden; display:table-caption; width:{}":"",r=o.sizeMode==StiTextSizeMode.Fit||o.sizeMode==StiTextSizeMode.FitAndWordWrap?"font-size:measure":`font-size: ${o.font.size.toString().replace(",",".")}pt`,l=ColorTranslator.toHtml(Color.transparent.equals(o.foreColor)?StiDashboardStyleHelper.getTitleForeColor(a):o.foreColor),n=ColorTranslator.toHtml(Color.transparent.equals(o.backColor)?StiDashboardStyleHelper.getBackColor(a):o.backColor),s=Enum.getName(StiHorAlignment,o.horAlignment).toLowerCase();u["title"]=`font-family: ${o.font.name}; ${r}; color: ${l};`+`${e}background-color:${n};white-space:${t}${i};text-align:${s}'>${o.text}</div>`}}else u["zoomControl"]=!1;return(e.provider==StiGeoMapProviderType.Bing?StiBingMapHelper:__.h.StiOSMMapHelper).getScript(u)}static calculateMapData(c,d){let u={},o=this.getLongitudeMeterIndex(c),a=this.getLatitudeMeterIndex(c),i=this.getLocationMeterIndex(c),l=this.getLocationColorMeterIndex(c),n=this.getLocationArgumentMeterIndex(c),p=this.getLocationValueMeterIndex(c),t=StiDashboardStyleHelper.isDarkStyle(d.dashboard);if(d.provider!=StiGeoMapProviderType.Bing&&d.provider!=StiGeoMapProviderType.OpenStreetMap&&(d.provider=StiGeoMapProviderType.OpenStreetMap),null!=c)if(-1!=a&&-1!=o){let n=[],s=0;for(let l of c.rows){s++;let t=l[a],e=l[o];if(null==t||null==e)continue;let i=StiValueHelper.tryToNumber(t).toString().replace(",","."),r=StiValueHelper.tryToNumber(e).toString().replace(",",".");if(null==d.customIcon?n.push({lat:i,lon:r,fontIcon:StiFontIconsHelper.getContent(d.icon).charCodeAt(0),fontIconColor:`rgb(${d.iconColor.r}, ${d.iconColor.g}, ${d.iconColor.b})`}):n.push({lat:i,lon:r,anchorX:this.MAX_RADIUS,anchorY:2*this.MAX_RADIUS}),s>this.MAX_LOCATIONS)break}u["pushpins"]=n}else if(-1!=i){let t=null,r=null;if(d.locationColorType==StiOnlineMapLocationColorType.ColorEach)t=this.getColors(Math.min(c.rows.length,this.MAX_LOCATIONS));else if(d.locationColorType==StiOnlineMapLocationColorType.Group&&-1!=l){let i=[];for(let e=0;e<c.rows.length;e++){let t=null!=c.rows[e][l]?c.rows[e][l].toString():"";i.includes(t)||i.push(t)}let e=this.getColors(i.length);r=new Hashtable;for(let t=0;t<i.length;t++)r.set(i[t],e[t])}let e=[];if(0<=p)for(let t=0;t<Math.min(c.rows.length,this.MAX_LOCATIONS);t++)e.push(StiValueHelper.tryToNumber(c.rows[t][p]));StiArray.sort(e,StiNumber.compareTo);let S=e,m=new Object,h=0;while(h<c.rows.length&&h<this.MAX_LOCATIONS){let o=c.rows[h][i];if(null==o){h++;continue}let a=Color.limeGreen,u=null;if(d.locationColorType==StiOnlineMapLocationColorType.Single)a=d.locationColor,u=Color.transparent.equals(d.locationColor)?"Transparent":null;else if(d.locationColorType==StiOnlineMapLocationColorType.ColorEach)a=t[h];else if((d.locationColorType==StiOnlineMapLocationColorType.Group||d.locationColorType==StiOnlineMapLocationColorType.Value)&&0<=l){let t=null!=c.rows[h][l]?c.rows[h][l].toString():"";d.locationColorType==StiOnlineMapLocationColorType.Group&&r.containsKey(t)&&(a=r.get(t)),d.locationColorType!=StiOnlineMapLocationColorType.Value||StiString.isNullOrEmpty(t)||(u=t)}if(m[o]={fillStyle:null!=u?u:`rgba(${a.r}, ${a.g}, ${a.b}, 0.5)`,strokeStyle:"Transparent"==u?u:"#d3d3d3"},0<=p||d.valueViewMode==StiOnlineMapValueViewMode.Icon)if(d.valueViewMode==StiOnlineMapValueViewMode.Bubble){let t=S.indexOf(StiValueHelper.tryToNumber(c.rows[h][p]))/S.length,e=2*this.MAX_RADIUS+2,i=this.MIN_RADIUS+Math.ceil(t*this.DELTA_RADIUS),r=this.MAX_RADIUS+1,l=StiColorUtils.dark(null!=u?this.parseColor(u):a,70),n=null!=u?u:`rgba(${a.r}, ${a.g}, ${a.b}, 0.5)`,s=`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${e}">`+`<circle cx="${r}" cy="${r}" r="${i}" stroke="rgba(${l.r}, ${l.g}, ${l.b}, ${l.a})" `+`stroke-width="1" fill="${n}"/>`+"</svg>";m[o]["icon"]=Convert.toBase64String(Encoding.UTF8.getBytes(s)),m[o]["anchorX"]=r,m[o]["anchorY"]=r}else d.valueViewMode==StiOnlineMapValueViewMode.Value?(m[o]["icon"]=this.EMPTY_ICON,m[o]["title"]=null!=c.rows[h][p]?c.rows[h][p].toString():"",m[o]["anchorX"]=1,m[o]["anchorY"]=7):d.valueViewMode==StiOnlineMapValueViewMode.Icon?(null==d.customIcon&&(m[o]["fontIcon"]=StiFontIconsHelper.getContent(d.icon).charCodeAt(0),m[o]["fontIconColor"]=`rgb(${d.iconColor.r}, ${d.iconColor.g}, ${d.iconColor.b})`),0<p&&(m[o]["title"]=null!=c.rows[h][p]?c.rows[h][p].toString():"")):d.valueViewMode==StiOnlineMapValueViewMode.Chart&&(m[o]["chart"]=this.getChartData(c,i,p,n,c.rows[h][i]),m[o]["icon"]=this.EMPTY_ICON);h++}u["locations"]=m,u["locationType"]=Enum.getName(StiOnlineMapLocationType,d.locationType)}(d.valueViewMode==StiOnlineMapValueViewMode.Icon||-1!=a&&-1!=o)&&null!=d.customIcon&&this.getCustomIcon(d.customIcon,u),u["theme"]=t?"canvasDark":"canvasLight",u["culture"]=StiOnlineMapCulture[d.culture].toString().replace("_","-");let e=StiDashboardStyleHelper.getBackColor(d);if(Color.transparent.equals(e)&&null!=d.report&&d.report.info.fillComponent&&d.isDesigning&&(e=Color.fromArgb3(153,Color.white)),u["backgroundColor"]=ColorTranslator.toHtml(e),u["onePointZoom"]=d.onePointZoom,u["userBingKey"]=d.userBingKey,d.provider==StiGeoMapProviderType.OpenStreetMap&&null!=u["locations"])if(null==StiLicense.licenseKey||StiString.isNullOrEmpty(StiLicense.licenseKey.userName))u["osmLocations"]="Trial";else{let t=StiLicense.licenseKey.userName,e=u["locations"],i=[];for(let t in e)null!=t&&i.push(t.toString());let r=`[${StiString.join(", ",i.map(t=>`"${t}"`))}]`,l=d.locationType!=StiOnlineMapLocationType.Auto?d.locationType[Stimulsoft.System.StiObject.stimulsoft]().toNumber()+1:0,n=`{"level":${l},"locations":${r}}`,s=`{"id":"${t}","value":${n}}`,o=Encoding.UTF8.getBytes(s),a=Convert.toBase64String(o);u["osmLocations"]=StiEncryption.encryptS(a,"Stimulsoft")}return u}static getChartData(e,i,r,l,y){let n=new Hashtable;try{if(0<=i&&0<=r&&0<=l){let S=this.CHART_RADIUS,m=e.meters[l],h=e.meters[r],c=e.meters[i],t=e.rows.filter(t=>t[i]==y),d=t[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy2(t=>[t[l]],new StiArrayEqualityComparer).select(t=>t.key[0]),p=[];for(let e of d)p.push(t.filter(t=>t[l]==e).map(t=>t[r])[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNumber(t)));let g=p[Stimulsoft.System.StiObject.stimulsoft]().sum(),b=this.getColors(Math.min(d.length,this.MAX_CHART_SECTORS)),C=0,f=[];for(let u=0;u<Math.min(d.length,this.MAX_CHART_SECTORS);u++){let t=d[u],e=p[u],i=e/g*6.28318530716,r=S+1+S*Math.cos(C),l=S+1+S*Math.sin(C),n=S+1+S*Math.cos(C+i),s=S+1+S*Math.sin(C+i),o=.5<e/g?1:0,a=StiColorUtils.dark(b[u],100);f.push({stroke:`rgb(${a.r}, ${a.g}, ${a.b})`,fill:`rgb(${b[u].r}, ${b[u].g}, ${b[u].b})`,_color:ColorTranslator.toHtml(b[u]),d:`M ${S+1} ${S+1} L ${this.toUnits(r)} ${this.toUnits(l)} A ${S} ${S} 0 ${o} 1 ${this.toUnits(n)} ${this.toUnits(s)}z`,_text0:c.label,_text1:null!=y?y.toString():null,_text2:m.label,_text3:null!=t?t.toString():null,_text4:h.label,_text5:e.toString}),C+=i}n["paths"]=f,n["anchor"]=S}}catch(t){}return n}static toUnits(t){let e=2,i=StiMath.round2(t,e).toString().replace(",",".");return i}static getCustomIcon(l,n){try{let e,i=0,r=0;if(!StiImageHelper.isSvg(l)){e=StiImageConverter.bytesToImage(l);let t=Math.min(1,2*this.MAX_RADIUS/Math.max(e.width,e.height));i=Math.round(e.width*t),r=Math.round(e.height*t)}n["customIconAnchorX"]=i/2,n["customIconAnchorY"]=r;let t=`<svg xmlns="http://www.w3.org/2000/svg" width="${i}" height="${r}"><image width="${i}" height="${r}" href="${this.imageBytesToBase64String(l)}"></image></svg>`;n["customIcon"]=Convert.toBase64String(Encoding.UTF8.getBytes(t))}catch(t){}}static imageBytesToBase64String(t){let e="data:image/png;base64,";return StiImageHelper.isBmp(t)?e="data:image/bmp;base64,":StiImageHelper.isJpeg(t)?e="data:image/jpeg;base64,":StiImageHelper.isGif(t)?e="data:image/gif;base64,":StiImageHelper.isSvg(t)&&(e="data:image/svg+xml;base64,"),e+Convert.toBase64String(t)}static getColors(t){let e=[],i=10,r=!0,l=StiMapHelper.getColors();e=l.slice();while(e.length<t){if(r)for(let t of l)e.push(StiColorUtils.dark(t,i));else{for(let t of l)e.push(StiColorUtils.light(t,i));i+=10}r=!r}return e}static getLongitudeMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLongitudeMapMeter));return null!=e?t.meters.indexOf(e):-1}static getLatitudeMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLatitudeMapMeter));return null!=e?t.meters.indexOf(e):-1}static getLocationMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLocationMapMeter));return null!=e?t.meters.indexOf(e):-1}static getLocationColorMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLocationColorMapMeter));return null!=e?t.meters.indexOf(e):-1}static getLocationArgumentMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLocationArgumentMapMeter));return null!=e?t.meters.indexOf(e):-1}static getLocationValueMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiLocationValueMapMeter));return null!=e?t.meters.indexOf(e):-1}static parseColor(e){let l=Color.black;try{if(1<e.length){if("#"==e[0]){let i=e.substring(1).toLowerCase(),r="";for(let e=0;e<i.length;e++){let t=i.charAt(e);"0"!=t&&"1"!=t&&"2"!=t&&"3"!=t&&"4"!=t&&"5"!=t&&"6"!=t&&"7"!=t&&"8"!=t&&"9"!=t&&"a"!=t&&"b"!=t&&"c"!=t&&"d"!=t&&"e"!=t&&"f"!=t||(r+=t)}if(6==(i=3==r.length?StiString.format("{0}{0}{1}{1}{2}{2}",r[0],r[1],r[2]):r).length){let t=Convert.toInt32(i,16);l=Color.fromArgb(255,t>>16&255,t>>8&255,255&t)}}else if(e.startsWith("rgb")){let i=e.trim().substring(4,e.length-1).split(",");if(3==i.length){let t=[0,0,0];i[0].endsWith("%")?t[0]=Math.round(2.55*StiValueHelper.tryToNumber(i[0].substring(0,i[0].length-1))):t[0]=StiValueHelper.tryToNumber(i[0]),i[1].endsWith("%")?t[1]=Math.round(2.55*StiValueHelper.tryToNumber(i[1].substring(0,i[1].length-1))):t[1]=StiValueHelper.tryToNumber(i[1]),i[2].endsWith("%")?t[2]=Math.round(2.55*StiValueHelper.tryToNumber(i[2].substring(0,i[2].length-1))):t[2]=StiValueHelper.tryToNumber(i[2]),l=Color.fromArgb(255,t[0],t[1],t[2])}else if(4==i.length){let t=[0,0,0],e=1;i[0]=i[0].replace("(",""),i[0].endsWith("%")?t[0]=Math.round(2.55*StiValueHelper.tryToNumber(i[0].substring(0,i[0].length-1))):t[0]=StiValueHelper.tryToNumber(i[0]),i[1].endsWith("%")?t[1]=Math.round(2.55*StiValueHelper.tryToNumber(i[1].substring(0,i[1].length-1))):t[1]=StiValueHelper.tryToNumber(i[1]),i[2].endsWith("%")?t[2]=Math.round(2.55*StiValueHelper.tryToNumber(i[2].substring(0,i[2].length-1))):t[2]=StiValueHelper.tryToNumber(i[2]),e=i[3].endsWith("%")?2.55*StiValueHelper.tryToNumber(i[3].substring(0,i[3].length-1)):StiValueHelper.tryToNumber(i[3]),l=Color.fromArgb(Math.round(255*e),t[0],t[1],t[2])}}else if(null==this.htmlNameToColor){let l=[["AliceBlue","#F0F8FF"],["AntiqueWhite","#FAEBD7"],["Aqua","#00FFFF"],["Aquamarine","#7FFFD4"],["Azure","#F0FFFF"],["Beige","#F5F5DC"],["Bisque","#FFE4C4"],["Black","#000000"],["BlanchedAlmond","#FFEBCD"],["Blue","#0000FF"],["BlueViolet","#8A2BE2"],["Brown","#A52A2A"],["BurlyWood","#DEB887"],["CadetBlue","#5F9EA0"],["Chartreuse","#7FFF00"],["Chocolate","#D2691E"],["Coral","#FF7F50"],["CornflowerBlue","#6495ED"],["Cornsilk","#FFF8DC"],["Crimson","#DC143C"],["Cyan","#00FFFF"],["DarkBlue","#00008B"],["DarkCyan","#008B8B"],["DarkGoldenRod","#B8860B"],["DarkGray","#A9A9A9"],["DarkGrey","#A9A9A9"],["DarkGreen","#006400"],["DarkKhaki","#BDB76B"],["DarkMagenta","#8B008B"],["DarkOliveGreen","#556B2F"],["Darkorange","#FF8C00"],["DarkOrchid","#9932CC"],["DarkRed","#8B0000"],["DarkSalmon","#E9967A"],["DarkSeaGreen","#8FBC8F"],["DarkSlateBlue","#483D8B"],["DarkSlateGray","#2F4F4F"],["DarkSlateGrey","#2F4F4F"],["DarkTurquoise","#00CED1"],["DarkViolet","#9400D3"],["DeepPink","#FF1493"],["DeepSkyBlue","#00BFFF"],["DimGray","#696969"],["DimGrey","#696969"],["DodgerBlue","#1E90FF"],["FireBrick","#B22222"],["FloralWhite","#FFFAF0"],["ForestGreen","#228B22"],["Fuchsia","#FF00FF"],["Gainsboro","#DCDCDC"],["GhostWhite","#F8F8FF"],["Gold","#FFD700"],["GoldenRod","#DAA520"],["Gray","#808080"],["Grey","#808080"],["Green","#008000"],["GreenYellow","#ADFF2F"],["HoneyDew","#F0FFF0"],["HotPink","#FF69B4"],["IndianRed","#CD5C5C"],["Indigo","#4B0082"],["Ivory","#FFFFF0"],["Khaki","#F0E68C"],["Lavender","#E6E6FA"],["LavenderBlush","#FFF0F5"],["LawnGreen","#7CFC00"],["LemonChiffon","#FFFACD"],["LightBlue","#ADD8E6"],["LightCoral","#F08080"],["LightCyan","#E0FFFF"],["LightGoldenRodYellow","#FAFAD2"],["LightGray","#D3D3D3"],["LightGrey","#D3D3D3"],["LightGreen","#90EE90"],["LightPink","#FFB6C1"],["LightSalmon","#FFA07A"],["LightSeaGreen","#20B2AA"],["LightSkyBlue","#87CEFA"],["LightSlateGray","#778899"],["LightSlateGrey","#778899"],["LightSteelBlue","#B0C4DE"],["LightYellow","#FFFFE0"],["Lime","#00FF00"],["LimeGreen","#32CD32"],["Linen","#FAF0E6"],["Magenta","#FF00FF"],["Maroon","#800000"],["MediumAquaMarine","#66CDAA"],["MediumBlue","#0000CD"],["MediumOrchid","#BA55D3"],["MediumPurple","#9370D8"],["MediumSeaGreen","#3CB371"],["MediumSlateBlue","#7B68EE"],["MediumSpringGreen","#00FA9A"],["MediumTurquoise","#48D1CC"],["MediumVioletRed","#C71585"],["MidnightBlue","#191970"],["MintCream","#F5FFFA"],["MistyRose","#FFE4E1"],["Moccasin","#FFE4B5"],["NavajoWhite","#FFDEAD"],["Navy","#000080"],["OldLace","#FDF5E6"],["Olive","#808000"],["OliveDrab","#6B8E23"],["Orange","#FFA500"],["OrangeRed","#FF4500"],["Orchid","#DA70D6"],["PaleGoldenRod","#EEE8AA"],["PaleGreen","#98FB98"],["PaleTurquoise","#AFEEEE"],["PaleVioletRed","#D87093"],["PapayaWhip","#FFEFD5"],["PeachPuff","#FFDAB9"],["Peru","#CD853F"],["Pink","#FFC0CB"],["Plum","#DDA0DD"],["PowderBlue","#B0E0E6"],["Purple","#800080"],["Red","#FF0000"],["RosyBrown","#BC8F8F"],["RoyalBlue","#4169E1"],["SaddleBrown","#8B4513"],["Salmon","#FA8072"],["SandyBrown","#F4A460"],["SeaGreen","#2E8B57"],["SeaShell","#FFF5EE"],["Sienna","#A0522D"],["Silver","#C0C0C0"],["SkyBlue","#87CEEB"],["SlateBlue","#6A5ACD"],["SlateGray","#708090"],["SlateGrey","#708090"],["Snow","#FFFAFA"],["SpringGreen","#00FF7F"],["SteelBlue","#4682B4"],["Tan","#D2B48C"],["Teal","#008080"],["Thistle","#D8BFD8"],["Tomato","#FF6347"],["Turquoise","#40E0D0"],["Violet","#EE82EE"],["Wheat","#F5DEB3"],["White","#FFFFFF"],["WhiteSmoke","#F5F5F5"],["Yellow","#FFFF00"],["YellowGreen","#9ACD32"]];this.htmlNameToColor=new Hashtable;for(let r=0;r<2;r++){let t=l[r][0].toLowerCase(),e=Convert.toInt32(l[r][1].substring(1),16),i=Color.fromArgb(255,e>>16&255,e>>8&255,255&e);this.htmlNameToColor.set(t,i)}}let t=e.toLowerCase();this.htmlNameToColor.containsKey(t)&&(l=this.htmlNameToColor.get(t))}}catch(t){}return l}}StiOnlineMapHelper.MAX_LOCATIONS=1e3,StiOnlineMapHelper.MAX_CHART_SECTORS=100,StiOnlineMapHelper.MIN_RADIUS=3,StiOnlineMapHelper.MAX_RADIUS=15,StiOnlineMapHelper.CHART_RADIUS=26,StiOnlineMapHelper.DELTA_RADIUS=12,StiOnlineMapHelper.lockHtmlNameToColor=new Object,__.h.StiOnlineMapHelper=StiOnlineMapHelper}let StiCrossTabTopNCondition=Stimulsoft.Report.Components.StiCrossTabTopNCondition,StiDataTableSource=Stimulsoft.Report.Dictionary.StiDataTableSource,StiPivotTableColumnVisibilityHelper=__.O.StiPivotTableColumnVisibilityHelper,StiCellType=Stimulsoft.Report.CrossTab.Core.StiCellType,StiDataHelper=Stimulsoft.Report.Components.StiDataHelper,StiFilter=Stimulsoft.Report.Components.StiFilter,StiCondition=Stimulsoft.Report.Components.StiCondition,StiLabelHelper=Stimulsoft.Data.Helpers.StiLabelHelper,StiEngine=Stimulsoft.Report.Engine.StiEngine,ContentAlignment=Stimulsoft.System.Drawing.ContentAlignment,StiIconSetIndicator=Stimulsoft.Report.Components.StiIconSetIndicator,StiPivotToConvertedStateCache=Stimulsoft.Report.Dashboard.StiPivotToConvertedStateCache,StiPivotTableToCrossTabCache=Stimulsoft.Report.Dashboard.StiPivotTableToCrossTabCache,StiCrossTotal=Stimulsoft.Report.CrossTab.StiCrossTotal,StiCrossRowTotal=Stimulsoft.Report.CrossTab.StiCrossRowTotal,StiCrossTab=Stimulsoft.Report.CrossTab.StiCrossTab,StiCrossTitle=Stimulsoft.Report.CrossTab.StiCrossTitle,StiComponentsCollection=Stimulsoft.Report.Components.StiComponentsCollection,StiCrossColumnTotal=Stimulsoft.Report.CrossTab.StiCrossColumnTotal,StiCrossSummary=Stimulsoft.Report.CrossTab.StiCrossSummary,StiCell=Stimulsoft.Report.CrossTab.Core.StiCell,StiCrossColumn=Stimulsoft.Report.CrossTab.StiCrossColumn,StiReportUnitType=Stimulsoft.Report.StiReportUnitType,StiReport=Stimulsoft.Report.StiReport,StiCrossRow=Stimulsoft.Report.CrossTab.StiCrossRow,StiCrossSummaryHeader=Stimulsoft.Report.CrossTab.StiCrossSummaryHeader,Guid=Stimulsoft.System.Guid,StiCrossHeader=Stimulsoft.Report.CrossTab.StiCrossHeader,StiSummaryType=Stimulsoft.Report.CrossTab.Core.StiSummaryType,StiCrossCell=Stimulsoft.Report.CrossTab.StiCrossCell,StiCross=Stimulsoft.Report.CrossTab.Core.StiCross,StiCrossTabHelper=Stimulsoft.Report.CrossTab.StiCrossTabHelper;{class StiPivotTableHelper{static getHeadersBounds(r){let l=-1,n=-1,s=-1,o=-1;for(let i=0;i<r.length;i++)for(let e=0;e<r[i].length;e++){let t=r[i][e];t.cellType!=StiCellType.HeaderColMain&&t.cellType!=StiCellType.HeaderColSummaryTotal||(l=-1==l?e:l,n=Math.max(e,n)),t.cellType!=StiCellType.HeaderRowMain&&t.cellType!=StiCellType.HeaderRowSummaryTotal||(s=-1==s?i:s,o=Math.max(i,o))}return new Rectangle(s,l,o-s,n-l)}static async getViewerData(t){let e={},i=t.as(StiPivotTableElement),r=i.columns.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,i.report)),l=i.rows.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,i.report)),n=i.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,i.report)),a=StiPivotTableToCrossTabCache.get(i);if(null==a){let t=await StiElementDataCache.getOrCreate(i);a=await StiPivotTableHelper.convertToCrossTab(i,t),StiPivotTableToCrossTabCache.put(i,a),StiPivotToConvertedStateCache.putFalse(i)}let s=0==l.length&&0==r.length&&0<n.length,u=a.crossTabInfo.cross.cells,o=this.getHeadersBounds(u),S=o.bottom+1,m=o.right+1,h=(e["headerHeight"]=S,e["headerWidth"]=m,e["onlySummaries"]=s,e["pivotColumnsCount"]=r.length,e["pivotRowsCount"]=l.length,e["pivotSummariesCount"]=n.length,e["pivotSummaryDirection"]=Enum.getName(StiSummaryDirection,i.summaryDirection),[]);if(0<u.length){let s=new Hashtable;for(let i=0;i<u.length;i++)for(let e=0;e<u[i].length;e++){let t=u[i][e];StiString.isNullOrEmpty(t.parentGuid)||t.parentCell!=t||(s.containsKey(t.parentGuid)||s.set(t.parentGuid,[]),s.get(t.parentGuid).push(t))}let o=[];for(let n=0;n<u.length;n++){let l=[];for(let t=0;t<u[0].length;t++){let e=u[n][t],i=[],r=null;if(e.parentCell==e&&!StiString.isNullOrEmpty(e.guid)&&s.containsKey(e.guid))for(let t of s.get(e.guid))t.field.is(StiCrossTotal)&&t.parentCell==t?r=t.guid:i.push(t.guid);l.push(this.cellItem(u[n][t],n,t,i,r,n<m||t<S,o,n>=m,a.crossTabInfo.cross.widths[n]))}h.push(l)}e["cells"]=h,e["sizes"]=o}return e}static cellItem(l,t,e,i,r,n,s,o,a){let u=l.field?.report?.unit,S=-1;if(l.field&&null!=u){let t=`${u.convertToHInches(a)};${u.convertToHInches(a)};`+(l.field?.wordWrap?"True":"False");-1==s.indexOf(t)&&s.push(t),S=s.indexOf(t)}let m={};if(m["rowSpan"]=l.height,m["colSpan"]=l.width,m["row"]=e,m["column"]=t,m["text"]=l.text,m["isColumn"]=o,m["s"]=S,m["l"]=l.level,m["t"]=l.field?.is(StiCrossTotal),!StiString.isNullOrEmpty(l.field?.interaction?.drillDownPageGuid)){let e=[];if(l.drillDownParameters)for(let t of l.drillDownParameters)e.push({key:t.name,value:t.value});m["ip"]={drillDownPageKey:l.field.interaction.drillDownPageGuid,parameters:e}}if(StiString.isNullOrEmpty(l.hyperlinkValue)||(m["h"]=l.hyperlinkValue),StiString.isNullOrEmpty(l.toolTipValue)||(m["tt"]=l.toolTipValue,l.tooltipAsHyperlink&&(m["ttah"]=!0)),l.field?.is(StiCrossHeader)&&(m["o"]=l.field.isExpanded),n&&(StiString.isNullOrEmpty(l.guid)&&(l.guid=Guid.newGuid().toString()),StiString.isNullOrEmpty(l.parentGuid)||(m["parentGuid"]=l.parentGuid),null!=l.parentCell&&l.parentCell==l&&(m["parentCellGuid"]=l.parentCell.guid),null!=l.field&&(m["isTotal"]=l.field.is(StiCrossTotal)&&l.parentCell==l),m["guid"]=l.guid,0<i.length&&(m["dependedCellGuis"]=i),null!=r)&&(m["totalCellGuid"]=r),null!=l.field&&null!=l.field.indicator&&l.field.indicator.is(StiIconSetIndicator)){let t=l.field.indicator,e=Enum.getName(ContentAlignment,t.alignment),i=0==e.indexOf("Top")?"top":0==e.indexOf("Bottom")?"bottom":"middle",r=`<img src='data:image/png;base64,${Convert.toBase64String(t.customIcon)}' style='vertical-align: ${i};'>`;delete m["text"],0<e.indexOf("Left")?m["text"]=r+l.text:m["text"]=l.text+r}let h=null!=l.field?l.field.conditionPermissions:null,c={};if(l.isNegativeColor){let t=Stimulsoft.StiOptions.Engine.negativeColor;c["color"]=`rgba(${t.r}, ${t.g}, ${t.b}, ${t.a})`}if(h!=StiConditionPermissions.None){if(0<(h&StiConditionPermissions.BackColor)){let t=l.field.conditionBrush.color;c["backgroundColor"]=`rgba(${t.r}, ${t.g}, ${t.b}, ${t.a})`}0<(h&StiConditionPermissions.Font)&&(c["fontFamily"]=l.field.font.name),0<(h&StiConditionPermissions.FontSize)&&(c["fontSize"]=l.field.font.sizeInPoints+`pt`),0<(h&StiConditionPermissions.FontStyleBold)&&(c["fontWeight"]=0<(l.field.font.style&FontStyle.Bold)?"bold":"normal"),0<(h&StiConditionPermissions.FontStyleItalic)&&(c["fontStyle"]=0<(l.field.font.style&FontStyle.Italic)?"italic ":"normal");let t="";if(0<(h&StiConditionPermissions.FontStyleStrikeout)&&0<(l.field.font.style&FontStyle.Strikeout)&&(t+="line-through "),0<(h&StiConditionPermissions.FontStyleUnderline)&&0<(l.field.font.style&FontStyle.Underline)&&(t+="underline"),StiString.isNullOrEmpty(t)||(c["textDecoration"]=t),0<(h&StiConditionPermissions.TextColor)){let t=l.field.conditionTextBrush.color;c["color"]=`rgba(${t.r}, ${t.g}, ${t.b}, ${t.a})`}}if(null!=l.field)switch(l.field.horAlignment){case StiTextHorAlignment.Left:c["text-align"]="left";break;case StiTextHorAlignment.Right:c["text-align"]="right";break;case StiTextHorAlignment.Center:c["text-align"]="center";break;case StiTextHorAlignment.Width:c["text-align"]="justify";break}return m["style"]=c,m}static applyStyle(n,t,i){let s=StiDashboardStyleHelper.getPivotTableStyle(n),o=t.crossTabInfo.cross.cells,a=n.columns.length+(0<n.rows.length?1:0)+(1<n.summaries.length&&n.summaryDirection==StiSummaryDirection.LeftToRight?1:0),u=(0==n.rows.length?1:n.rows.length)+(1<n.summaries.length&&n.summaryDirection==StiSummaryDirection.UpToDown?1:0);for(let e=0;e<o.length;e++)for(let l=0;l<o[e].length;l++)if(null!=o[e][l].field){let r=o[e][l],t=(!Stimulsoft.StiOptions.Engine.CrossTab.memoryOptimization||null!=r.field.text&&""!=r.field.text||r.fieldCloned||(r.field=r.field.clone(),r.fieldCloned=!0),!(r.isCrossSummary||r.field.is2(StiCrossSummary)||(r.field.is2(StiCrossRowTotal)||r.field.is2(StiCrossColumnTotal))&&null==r.guid));if(i)r.field.font=new Font("Arial",10,t?FontStyle.Bold:FontStyle.Regular),r.field.brush=new StiSolidBrush(Color.transparent),r.field.textBrush=new StiSolidBrush(Color.black);else if(r.field.is2(StiCrossRow))r.field.brush=r.field.conditionBrush??new StiSolidBrush(this.getColor(n.cells.rows.backColor,s.rowHeaderBackColor)),r.field.textBrush=r.field.conditionTextBrush??new StiSolidBrush(this.getColor(n.cells.rows.foreColor,s.rowHeaderForeColor)),r.field.font=this.changeFontSize(n.getRowFont(),1);else if(t)e<u&&l>=a?(r.field.brush=r.field.conditionBrush??new StiSolidBrush(this.getColor(n.cells.rows.backColor,s.rowHeaderBackColor)),r.field.textBrush=r.field.conditionTextBrush??new StiSolidBrush(this.getColor(n.cells.rows.foreColor,s.rowHeaderForeColor)),r.field.font=this.changeFontSize(n.getRowFont(),1)):(r.field.brush=r.field.conditionBrush??new StiSolidBrush(this.getColor(n.cells.columns.backColor,s.columnHeaderBackColor)),r.field.textBrush=r.field.conditionTextBrush??new StiSolidBrush(this.getColor(n.cells.columns.foreColor,s.columnHeaderForeColor)),r.field.font=this.changeFontSize(n.getColumnFont(),1));else{let t=r.field?.is(StiCrossTotal),e=this.getBackColor(n,n.cells,s,l%2!=0,t),i=this.getForeColor(n,n.cells,s,l%2!=0,t);r.field.brush=r.field.conditionBrush??new StiSolidBrush(e),r.field.textBrush=r.field.conditionTextBrush??new StiSolidBrush(i),r.field.font=this.changeFontSize(t?n.getTotalFont():n.getDataFont(),1)}r.field.border.color=s.lineColor}}static getBackColor(t,e,i,r,l){let n=(l?e.totals:e.data).backColor;return null==e||n.equals(Color.transparent)?r?i.alternatingCellBackColor:i.cellBackColor:r?StiDashboardStyleHelper.isDarkStyle3(t)?StiColorUtils.light(n,25):StiColorUtils.dark(n,25):n}static getForeColor(t,e,i,r,l){let n=(l?e.totals:e.data).foreColor;return null==e||n.equals(Color.transparent)?r?i.alternatingCellForeColor:i.cellForeColor:n}static getColor(t,e){return t.equals(Color.transparent)?e:t}static buildCross(s,n,o,e=1){let a=new Hashtable;for(let t=0;t<n.meters.length;t++)a.set(n.meters[t].expression,t);s.crossTabInfo.startRow=0,s.crossTabInfo.startCol=0;let u=new StiComponentsCollection(null),S=new StiComponentsCollection(null),m=new StiComponentsCollection(null),h=new StiComponentsCollection(null),c=new StiComponentsCollection(null),d=new StiComponentsCollection(null),r=o.columns.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,o.report)),p=o.rows.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,o.report)),g=o.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,o.report)),b=null,C=null,f=null,y=new DataTable;for(let n of s.components.list)if(n.is(StiCrossCell)||n.is(StiCrossTitle)||n.is(StiCrossSummaryHeader)){let t=n.as(StiCrossRow),e=n.as(StiCrossColumn),a=n.as(StiCrossSummary),i=n.as(StiCrossSummaryHeader),r=n.as(StiCrossTitle);if(null!=r){r.typeOfComponent.startsWith("Row:")&&c.add(r),r.typeOfComponent.startsWith("Col:")&&d.add(r),r.typeOfComponent.startsWith("LeftTitle")&&(b=r),r.typeOfComponent.startsWith("RightTitle")&&(C=r),r.typeOfComponent.startsWith("SummaryTitle")&&(f=r);continue}if(null!=t&&(S.add(t),t.isTotalVisible||(t.total.height=0)),null!=e&&(u.add(e),e.isTotalVisible||(e.total.width=0)),null!=a&&!a.disabledByCondition&&a.enabled){m.add(a),a.arguments.clear(),a.report.dictionary.dataSources.cachedDataSources={};for(let t of a.report.dictionary.dataSources.list)0<t.name.indexOf(" ")&&(a.report.dictionary.dataSources.cachedDataSources[t.name.toLowerCase().split(" ").join("")]=t);try{let t=new StiParserParameters,e=(t.returnAsmList=!0,StiParser.parseTextValue2(a.value,a,null,t)),i=e.filter(t=>t.type==StiAsmCommandType.PushDataSourceField);1<i.length&&(i.forEach(t=>{let e=t.parameter1;if(!a.arguments.containsKey(e)){a.arguments.add(e,Enum.getName(StiSummaryType,a.summary)+`(${e})`);let t=new DataColumn(e,Object);y.columns.add(t)}}),a.complexExpression=!0,a.summaryForFieldsInExpression=!0)}catch(t){}a.conditions.list.forEach(s=>{let o=`{${s.expression}}`;try{let t=new StiParserParameters,e=(t.returnAsmList=!0,StiParser.parseTextValue2(o,a,null,t)),i=[],r=(e.filter(t=>t.type==StiAsmCommandType.PushValue).forEach(t=>{let e=(t.parameter1?.[Stimulsoft.System.StiObject.stimulsoft]().as(List))?.where(t=>t.Type==StiAsmCommandType.PushDataSourceField);null!=e&&i.push(...e)}),a.report.engine.parserConversionStore.get("*StiConditionExpression*"+a.name)),l=r.findIndex(t=>t.key==s),n=r[l].value;i.forEach(t=>{let e=t.parameter1;if(!a.arguments.containsKey(e)){a.arguments.add(e,Enum.getName(StiSummaryType,a.summary)+`(${e})`);let t=new DataColumn(e,Object);y.columns.add(t)}n=n.split(Enum.getName(StiSummaryType,a.summary)+`(${e})`).join(e)}),r[Stimulsoft.System.StiObject.stimulsoft]().removeAt(l),r.push({key:s,value:n})}catch{}}),a.report.dictionary.dataSources.cachedDataSources={}}null!=i&&h.add(i);let l=new DataColumn(n.name,Object);y.columns.add(l),n.is(StiCrossHeader)&&(l=new DataColumn("Display__"+n.name,Object),y.columns.add(l))}for(let l of n.rows){let r=y.newRow();for(let i of s.components.list){if(i.is(StiCrossSummaryHeader))continue;let e=i.as(StiCrossCell);if(null!=e){let t=a.contains(i.alias)?l[a.get(i.alias)]:null;if("number"==typeof(t=StiArray.isArray(t)?t[0]:t)&&(t=t[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),r.sett(e.name,t),e.is(StiCrossHeader)&&r.sett("Display__"+i.name,l[a.get(i.alias)]),e.is(StiCrossSummary))for(let t of e.arguments)a.contains(t.value)?r.sett(t.key,l[a.get(t.value)]):a.contains(t.value.replace("Sum(","Count("))?r.sett(t.key,l[a.get(t.value.replace("Sum(","Count("))]):a.contains(t.value.replace("Sum(","CountDistinct("))?r.sett(t.key,l[a.get(t.value.replace("Sum(","CountDistinct("))]):r.sett(t.key,null)}else if(i.is(StiCrossTitle)&&!StiString.isNullOrEmpty(i.alias)){let t=l[a.get(i.alias)];i.setTextInternal(t.toString())}}y.rows.add(r),s.next()}let w=new StiCross,i=(s.crossTabInfo.cross=w,s.crossTabInfo.cross.designTime=!1,s.crossTabInfo.cross.colFields=u,s.crossTabInfo.cross.rowFields=S,s.crossTabInfo.cross.sumFields=m,s.crossTabInfo.cross.sumHeaderFields=h,s.crossTabInfo.cross.colTitleFields=d,s.crossTabInfo.cross.rowTitleFields=c,s.crossTabInfo.cross.leftCrossTitle=b,s.crossTabInfo.cross.rightCrossTitle=C,s.crossTabInfo.cross.summaryCrossTitle=f,(s.crossTabInfo.cross.crossTab=s).dataSourceName="pivot",new StiDataTableSource("pivot","pivot"));i.dictionary=s.report.dictionary,y.tableName="pivot";for(let t of y.columns.list)i.columns.add(new StiDataColumn(t.columnName,t.columnName,t.columnName));i.dataTable=y;try{s.report.dictionary.dataSources.add(i),s.summaryDirection=1<g?.length?o.summaryDirection:StiSummaryDirection.UpToDown,s.crossTabInfo.cross.create(y,s.report,s.summaryDirection,s.emptyValue),s.crossTabInfo.cross.crossTab=null;let l=StiDashboardStyleHelper.getPivotTableStyle(o),t=0==p.length&&0==r.length&&0<g.length;if(t){w.init(2,g.length);for(let r=0;r<g.length;r++){let t=g[r],e=new StiCrossColumn,i=(e.alias=t.expression,e.name="CrossTab_Sum"+r.toString(),e.page=s.page,e.horAlignment=StiTextHorAlignment.Center,e.textFormat=t.textFormat.clone(),e.guid=Guid.newGuidString(),e.font=o.getDataFont(),e.brush=new StiSolidBrush(l.cellBackColor),e.hideZeros=t.hideZeros,e.border=new StiBorder(r==g.length-1?StiBorderSides.Right|StiBorderSides.Top:0==r?StiBorderSides.Right|StiBorderSides.Bottom:StiBorderSides.Right|StiBorderSides.Bottom|StiBorderSides.Top,l.lineColor,1,StiPenStyle.Solid),e.height=StiElementConsts.Table.getHeight(e.font),w.cells[0][r]=new StiCell,w.cells[0][r].text=this.getLabel(t),w.cells[0][r].field=e,w.cells[0][r].parentCell=w.cells[0][r],new StiCrossSummary);i.name="CrossTab_Sum"+r.toString(),i.value=0<n.rows.length?n.rows[0][r].toString():"",i.page=s.page,i.horAlignment=StiTextHorAlignment.Right,i.textFormat=t.textFormat.clone(),i.guid=Guid.newGuidString(),i.font=o.getDataFont(),i.border=new StiBorder(StiBorderSides.None,l.lineColor,1,StiPenStyle.Solid),i.height=StiElementConsts.Table.getHeight(i.font),w.cells[1][r]=new StiCell,w.cells[1][r].field=i,w.cells[1][r].text=0<n.rows.length?n.rows[0][r].toString():"",w.cells[1][r].parentCell=w.cells[1][r]}}if(s.rightToLeft&&StiCrossTabHelper.makeRightToLeft(s),s.crossTabInfo.cross.doAutoSize(),!t){for(let e=0;e<w.cells.length;e++)for(let t=0;t<w.cells[e].length;t++)null!=w.cells[e][t].field&&(w.cells[e][t].field.margins=w.cells[e][t].field.margins.clone(),0==e&&(w.cells[e][t].field.border.side=w.cells[e][t].field.border.side&~StiBorderSides.Left),0==t&&(w.cells[e][t].field.border.side=w.cells[e][t].field.border.side&~StiBorderSides.Top),e==w.cells.length-1&&(w.cells[e][t].field.border.side=w.cells[e][t].field.border.side&~StiBorderSides.Right),t==w.cells[e].length-1)&&(w.cells[e][t].field.border.side=w.cells[e][t].field.border.side&~StiBorderSides.Bottom);let t=r.length+(0<p.length?1:0),i=(0==p.length?1:p.length)+(1<g.length&&o.summaryDirection==StiSummaryDirection.UpToDown?1:0);for(let e=t;e<w.cells[0].length;e++)for(let t=i;t<w.cells.length;t++)null!=w.cells[t][e].field&&(w.cells[t][e].field.border.side=StiBorderSides.Left|StiBorderSides.Right);if(1<w.sumFields.count&&o.summaryDirection==StiSummaryDirection.UpToDown)for(let t=0;t<w.cells[0].length;t++)null!=w.cells[i-1][t].field&&(w.cells[i-1][t].field.border=new StiBorder(StiBorderSides.All,l.lineColor,1*e,StiPenStyle.Solid));null!=w.cells[0][0].field&&(w.cells[0][0].field.border.side=StiBorderSides.Right|StiBorderSides.Bottom)}}finally{s.report.dictionary.dataSources.remove(i)}}static async convertToCrossTab(t,e,i=1){let r=new StiReport,l=(r.info.zoom=1,r.reportUnit=null!=t&&null!=t.report?t.report.reportUnit:StiReportUnitType.HundredthsOfInch,new StiEngine(r)),n=(r.engine=l,new StiPage),s=(r.pages.add(n),r.dictionary.variables=t.report.dictionary.variables,r.dictionary.dataSources=t.report.dictionary.dataSources,new StiCrossTab);return s.name="CrossTab",s.crossTabStyle=null,s.crossTabStyleIndex=9,n.components.add(s),await this.updateCrossTab(s,t,e,i),n.components.remove(s),s}static async updateCrossTab(h,l,t,n,e=!0){let r=new Hashtable,s=[],o=[],i=[],a="",u=new Hashtable,S=new Hashtable,m=[],c=[],d=new Hashtable,p=StiDashboardStyleHelper.getPivotTableStyle(l),g=l.columns.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,l.report)),b=l.rows.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,l.report)),C=l.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,l.report)),f=new Hashtable,y=0;for(let i of b){let t=new StiCrossRow,e=(t.showTotal=i.showTotal,t.alias=i.expression,t.displayValue="{"+i.expression+"}",t.value=t.displayValue,StiString.isNullOrEmpty(a)&&0<i.expression.length&&0<=i.expression.indexOf(".")&&(a=i.expression.substring(0,i.expression.indexOf("."))),t.page=null,t.name=h.name+"_Row"+(y+1).toString(),t.page=h.page,t.horAlignment=Enum.parse(StiTextHorAlignment,Enum.getName(StiHorAlignment,i.horAlignment)),t.textFormat=i.textFormat.clone(),t.guid=Guid.newGuidString(),t.wordWrap=i.size.wordWrap,t.margins=new StiMargins(this.FieldMargin*n),t.sortDirection=i.sortDirection,t.expandExpression=i.expandExpression,0<i.size.maxWidth&&(t.maxSize=new Size(h.report.unit.convertFromHInches(i.size.maxWidth*n),0)),0<i.size.minWidth&&(t.minSize=new Size(h.report.unit.convertFromHInches(i.size.minWidth*n),0)),0<i.size.width&&(t.maxSize=new Size(h.report.unit.convertFromHInches(i.size.width*n),0),t.minSize=new Size(h.report.unit.convertFromHInches(i.size.width*n),0)),f.set(t.alias,t.name),this.fillInteraction(i.dashboardInteraction,t),await this.setTopN(t,i.topN,l),await this.getCondition(l,i,t,n,h.name+"_ColTotal"+(s.length+1)),this.setupTitle(l,t,p,n),u.add(i,t),h.components.contains(t)&&h.components.remove(t),h.components.add(t),d.set(t,t),m.push(t),t.total);null==e&&(e=this.createRowTotal(l,t,r,p,n),StiString.isNullOrWhiteSpace(i.totalLabel)||(e.text=i.totalLabel),t.totalGuid=e.guid,h.components.add(e)),d.set(e,e),s.push(e),y++}let w=0;for(let i of g){let t=new StiCrossColumn,e=(t.showTotal=i.showTotal,t.alias=i.expression,t.displayValue="{"+i.expression+"}",t.value=t.displayValue,StiString.isNullOrEmpty(a)&&0<i.expression.length&&0<=i.expression.indexOf(".")&&(a=i.expression.substring(0,i.expression.indexOf("."))),t.page=null,t.name=h.name+"_Column"+(w+1).toString(),t.page=h.page,t.horAlignment=Enum.parse(StiTextHorAlignment,Enum.getName(StiHorAlignment,i.horAlignment)),t.guid=Guid.newGuidString(),t.wordWrap=i.size.wordWrap,t.margins=new StiMargins(this.FieldMargin*n),t.sortDirection=i.sortDirection,t.expandExpression=i.expandExpression,0<i.size.minWidth&&(t.minSize=new Size(h.report.unit.convertFromHInches(i.size.minWidth*n),0)),0<i.size.maxWidth&&(t.maxSize=new Size(h.report.unit.convertFromHInches(i.size.maxWidth*n),0)),0<i.size.width&&(t.maxSize=new Size(h.report.unit.convertFromHInches(i.size.width*n),0),t.minSize=new Size(h.report.unit.convertFromHInches(i.size.width*n),0)),f.set(t.alias,t.name),this.fillInteraction(i.dashboardInteraction,t),await this.getCondition(l,i,t,n,h.name+"_RowTotal"+(o.length+1)),await this.setTopN(t,i.topN,l),t.textFormat=i.textFormat.clone(),this.setupTitle(l,t,p,n),S.add(i,t),h.components.contains(t)&&h.components.remove(t),h.components.add(t),d.set(t,t),c.push(t),t.total);null==e&&(e=this.createColTotal(l,t,r,o,p,n),StiString.isNullOrWhiteSpace(i.totalLabel)||(e.text=i.totalLabel),t.totalGuid=e.guid,h.components.add(e)),d.set(e,e),o.push(e),w++}let M=1;for(let e of C){let t=new StiCrossSummary;t.alias=e.expression,this.setSummaryType(t,e.expression),t.page=null,t.name=h.name+"_Sum"+M.toString(),t.page=h.page,t.horAlignment=Enum.parse(StiTextHorAlignment,Enum.getName(StiHorAlignment,e.horAlignment)),t.textFormat=e.textFormat.clone(),t.guid=Guid.newGuidString(),await this.getCondition(l,e,t,n,""),t.font=this.changeFontSize(l.getDataFont(),n),t.border=new StiBorder(StiBorderSides.All,p.lineColor,1*n,StiPenStyle.Solid),t.height=StiElementConsts.Table.getHeight(t.font,n),t.hideZeros=e.hideZeros,StiString.isNullOrEmpty(t.value)||f.set(t.value.substring(1,t.value.length-1),t.name),this.fillInteraction(e.dashboardInteraction,t),e.showHyperlink&&!StiString.isNullOrEmpty(e.hyperlinkPattern)&&(t.hyperlink=e.hyperlinkPattern),e.dashboardInteraction?.onHover!=StiInteractionOnHover.ShowToolTip||StiString.isNullOrEmpty(e.dashboardInteraction?.toolTip)||(t.toolTip=e.dashboardInteraction.toolTip),e.dashboardInteraction?.onHover!=StiInteractionOnHover.ShowHyperlink||StiString.isNullOrEmpty(e.hyperlinkPattern)||(t.toolTip=e.hyperlinkPattern,t.tooltipAsHyperlink=!0),0<e.size.minWidth&&(t.minSize=new Size(h.report.unit.convertFromHInches(e.size.minWidth*n),0)),0<e.size.maxWidth&&(t.maxSize=new Size(h.report.unit.convertFromHInches(e.size.maxWidth*n),0)),0<e.size.width&&(t.maxSize=new Size(h.report.unit.convertFromHInches(e.size.width*n),0),t.minSize=new Size(h.report.unit.convertFromHInches(e.size.width*n),0)),d.set(t,t),h.components.contains(t)&&h.components.remove(t),h.components.add(t),M++}if(C.length<2){for(let t of i)h.components.contains(t)&&h.components.remove(t);i.splice(0,i.length)}else if(i.length>C.length)while(i.length>C.length){let t=i[i.length-1];h.components.contains(t)&&h.components.remove(t),i.splice(i.length-1,1)}else if(i.length<C.length)while(i.length<C.length){let t=new StiCrossSummaryHeader;t.text=StiString.isNullOrEmpty(C[i.length].label)?(i.length+1).toString():C[i.length].label,t.margins=new StiMargins(this.FieldMargin*n),t.page=null,t.name=h.name+"_SumHeader"+(i.length+1).toString(),t.page=h.page,t.font=this.changeFontSize(l.getRowFont(),n),t.border.size*=n,h.applyFieldStyle(t),h.components.add(t),i.push(t)}for(let t of i)d.set(t,t);let B=1;for(let t of s)t.page=null,t.name=h.name+"_RowTotal"+(B++).toString(),t.page=h.page;let N=1;for(let t of o)t.page=null,t.name=h.name+"_ColTotal"+(N++).toString(),t.page=h.page;let I=0<g.length&&0<b.length,T=[],x=[],D=null,F=null,v=null;for(let e of h.components.list)if(e.is(StiCrossTitle)){let t=e;t.typeOfComponent.startsWith("Col:")&&T.push(t),t.typeOfComponent.startsWith("Row:")&&x.push(t),t.typeOfComponent.startsWith("LeftTitle")&&(D=t),t.typeOfComponent.startsWith("RightTitle")&&(F=t),t.typeOfComponent.startsWith("SummaryTitle")&&(v=t)}if(0==b.length)for(let r of c){let e="Col:"+r.name,i=!1;for(let t of T)if(t.typeOfComponent==e){T[Stimulsoft.System.StiObject.stimulsoft]().remove(t),i=!0,d.set(t,t);break}if(!i){let e="",i=new StiCrossTitle;i.name=r.name+"_Title",i.typeOfComponent="Col:"+r.name;for(let t of g)S.get(t)==r&&(e=this.getLabel(t),i.horAlignment=StiTextHorAlignment.Center,i.textFormat=t.textFormat.clone());i.text=e,this.setupField(i,n),this.setupTitle(l,i,p,n),h.components.add(i),d.set(i,i)}}for(let r of m){let e="Row:"+r.name,i=!1;for(let t of x){if(t.typeOfComponent!=e)continue;x[Stimulsoft.System.StiObject.stimulsoft]().remove(t),i=!0,d.set(t,t);break}if(!i){let e="",i=new StiCrossTitle;for(let t of b)u.get(t)==r&&(e=this.getLabel(t),i.horAlignment=StiTextHorAlignment.Center,i.textFormat=t.textFormat.clone());this.setupField(i,n),i.name=r.name+"_Title",i.text=e,i.typeOfComponent="Row:"+r.name,this.setupTitle(l,i,p,n),h.components.add(i),d.set(i,i)}}if(null==D?I&&((D=new StiCrossTitle).name=h.name+"_LeftTitle",this.setupField(D,n),null!=l.title&&(D.text=l.title.text),D.typeOfComponent="LeftTitle",this.setupTitle(l,D,p,n),h.components.add(D),d.set(D,D)):I&&d.set(D,D),null==F){if(I){let e="",i=!0;for(let t of g)i||(e+=", "),e+=this.getLabel(t),i=!1;(F=new StiCrossTitle).name=h.name+"_RightTitle",F.text=e,F.typeOfComponent="RightTitle",this.setupField(F,n),this.setupTitle(l,F,p,n),h.components.add(F),d.set(F,F)}}else I&&d.set(F,F);let A=(0==g.length||0==b.length)&&0<C.length&&!(l.summaryDirection==StiSummaryDirection.LeftToRight&&1==b.length),E=StiString.join(", ",C.map(t=>t.label)),R=(null==v?A&&((v=new StiCrossTitle).name=h.name+"_SummaryTitle",v.text=E,v.typeOfComponent="SummaryTitle",this.setupField(v,n),this.setupTitle(l,v,p,n),h.components.add(v),d.set(v,v)):A&&((StiString.isNullOrEmpty(v.text)||v.text.startsWith(E)||E.startsWith(v.text))&&(v.text=E),d.set(v,v)),0);while(R<h.components.count){let t=h.components.getByIndex(R);null==d.get(t)?h.components.removeAt(R):R++}let O=RectangleD.empty;h.dataSourceName=a;for(let i of h.components.list){if(i.is2(StiCrossColumn)||i.is2(StiCrossRow)||i.is2(StiCrossSummary))for(let t=1;t<=10;t++){let e=i.interaction[`drillDownParameter`+t];for(let t of f.keys.list)e.expression=e.expression.replace(t.toString(),`pivot.`+f.get(t))}if(i.is2(StiCrossSummary))for(let t of f.keys.list)StiString.isNullOrEmpty(i.hyperlink)||(i.hyperlink=this.replaceDatabase(i.hyperlink,t.toString(),`pivot.`+f.get(t))),StiString.isNullOrEmpty(i.toolTip)||(i.toolTip=this.replaceDatabase(i.toolTip,t.toString(),`pivot.`+f.get(t)))}if(!e)return;this.buildCross(h,t,l,n);for(let e of h.components.toCast())if(h.crossTabInfo.cross.fields.contains(e)){let t=h.crossTabInfo.cross.fields.get(e);h.crossTabInfo.cross.setTextOfCell(t.x,t.y,e.cellText)}h.crossTabInfo.cross.maxWidth=h.page.width*n,h.crossTabInfo.cross.maxHeight=h.page.height*n,h.crossTabInfo.cross.doAutoSize();let H=new Hashtable;for(let e of h.components.toCast()){let t=e.as(StiCrossHeader);null==t||t.isTotalVisible||H.set(t.total,t.total)}let _=h.report.unit.convertFromHInches(2),V=h.report.unit.convertFromHInches(2);for(let m of h.components.toCast())if(h.crossTabInfo.cross.fields.contains(m)){let t=h.crossTabInfo.cross.fields.get(m),e=h.report.unit.convertRectangleToHInches(Stimulsoft.Report.CrossTab.StiCrossTabHelper.getCellRect(h,t.x,t.y)),i=(O.width=Math.max(O.width,e.right),O.height=Math.max(O.height,e.bottom),e=h.report.unit.convertRectangleFromHInches(e),null!=H.get(m)&&(e.width=0,e.height=0),0),r=0,l=m.as(StiCrossTitle),n=(null!=l&&(l.typeOfComponent.startsWith("LeftTitle")&&(i=0,r=0),l.typeOfComponent.startsWith("RightTitle")&&(i=_,r=0),l.typeOfComponent.startsWith("SummaryTitle")&&(0==b.length&&(i=0,r=2*V),0==g.length)&&(i=_,r=V),l.typeOfComponent.startsWith("Row:")&&(i=0,r=V),l.typeOfComponent.startsWith("Col:"))&&(i=0,r=V),m.as(StiCrossRow)),s=(null!=n&&(i=0,r=2*V),m.as(StiCrossRowTotal)),o=(null!=s&&(i=0,r=2*V),m.as(StiCrossColumn)),a=(null!=o&&(i=_,r=V),m.as(StiCrossColumnTotal)),u=(null!=a&&(i=_,r=V),m.as(StiCrossSummary)),S=(null!=u&&(i=_,r=2*V),m.as(StiCrossSummaryHeader));null!=S&&(r=h.summaryDirection==StiSummaryDirection.LeftToRight?(i=_,V):(i=0,2*V)),e.x+=i,e.y+=r,m.clientRectangle=e.clone()}}static replaceDatabase(t,e,i){return e=e.replace("[","").replace("]",""),t.replace(new RegExp([...e].map(t=>t+"(_*)").join(""),"g"),i)}static fillInteraction(r,l){for(let i=0;i<r.getDrillDownParameters().length;i++){let t=r.getDrillDownParameters()[i],e=l.interaction[`drillDownParameter`+(i+1)];e.expression=0==t.expression.indexOf("{")?t.expression.substring(1,t.expression.length-1):t.expression,e.name=t.name}r.onClick!=StiInteractionOnClick.ShowDashboard||StiString.isNullOrEmpty(r.drillDownPageKey)||(l.interaction.drillDownPageGuid=r.drillDownPageKey)}static changeFontSize(t,e){return 1==e?t:StiFontUtils.changeFontSize(t,t.size*e)}static async getCondition(s,o,a,t,e){let i=[];for(let t of s.pivotTableConditions)t.destinationValueMeter!=StiLabelHelper.getLabel(o)&&t.destinationValueMeter!=o.key||i.push(t);if(null!=i&&0<i.length)for(let n of i){let l=new(n.conditionType==StiPivotTableConditionType.Condition?StiCondition:StiCrossTabTopNCondition),r="";if(n.conditionType==StiPivotTableConditionType.Condition){let t=new StiFilter,e=(t.condition=n.condition,t.dataType=n.dataType,t.value1=n.value,s.getAllMeters().find(t=>n.keyValueMeter==t.key||n.keyValueMeter==StiLabelHelper.getLabel(t))),i=null==e||e==o?"value2":e.expression;r=StiDataHelper.getFilterExpression(t,i,a.report),n.dataType!=Stimulsoft.Report.Components.StiFilterDataType.String&&(r=`value2 == null ? False : (value2.ToString().Length > 0 ? ${r} : False)`),l.expression=r}if(l.permissions=n.permissions,l.permissions&=~StiConditionPermissions.Borders,l.backColor=n.backColor,l.font=this.changeFontSize(n.font,t),l.textColor=n.textColor,n.iconAlignment!=StiIconAlignment.None&&(l.icon=await n.getIcon(),l.iconSize=n.iconSize,l.iconAlignment=n.iconAlignment==StiIconAlignment.Right?ContentAlignment.MiddleRight:ContentAlignment.MiddleLeft),n.conditionType==StiPivotTableConditionType.Condition){let t={key:l,value:`{${r}}`};this.addToConversionStore(a,"*StiConditionExpression*"+a.name,t)}if(a.conditions.add(l),a instanceof StiCrossHeader&&n.conditionType==StiPivotTableConditionType.TopN){let i=l[Stimulsoft.System.StiObject.stimulsoft]().as(StiCrossTabTopNCondition),r=(i.count=n.topNCount,i.mode=n.topNMode,i.conditionCell=n.topNConditionCell,i.conditionHeader=n.topNConditionHeader,i.conditionTotal=n.topNConditionTotal,s.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,s.report)));for(let e=0;e<r.length;e++){let t=r[e];if(t.key!=n.measureField||StiString.isNullOrEmpty(t.expression)||-1==t.expression.indexOf("(")||-1==t.expression.indexOf(")"))continue;i.measureField=t.expression.substring(t.expression.indexOf("(")+1).replace(")","")}}}}static setupTitle(t,e,i,r){e.border=new StiBorder(StiBorderSides.All,i.lineColor,1*r,StiPenStyle.Solid),e.height=StiElementConsts.Table.getHeight(e.font)*r,e.font=this.changeFontSize(StiElementConsts.Table.Font.getCachedGdiFont(),r),e.is2(StiCrossTitle)||e.is2(StiCrossColumn)?e.font=this.changeFontSize(t.getColumnFont(),r):e.is2(StiCrossRow)?e.font=this.changeFontSize(t.getRowFont(),r):e.is2(StiCrossTotal)?e.font=this.changeFontSize(t.getTotalFont(),r):e.font=this.changeFontSize(t.getDataFont(),r)}static addToConversionStore(e,i,t){if(null==e.report.engine.parserConversionStore.get(i)){let t=[];e.report.engine.parserConversionStore.set(i,t)}e.report.engine.parserConversionStore.get(i).push(t)}static setupField(t,e){t.margins=new StiMargins(this.FieldMargin*e),t.guid=Guid.newGuidString()}static createRowTotal(t,e,i,r,l){let n=e.guid,s=i.get(n);return null==s&&((s=new StiCrossRowTotal).text=StiString.isNullOrEmpty(t.totalLabel)?Loc.get("PropertyMain","Total"):t.totalLabel,s.wordWrap=e.wordWrap,s.minSize=e.minSize.multiply(l),s.maxSize=e.maxSize.multiply(l),this.setupField(s,l),this.setupTitle(t,s,r,l),s.font=this.changeFontSize(t.cells.rows.font,l)),i.set(n,s),s}static createColTotal(t,e,i,r,l,n){let s=e.guid,o=i.get(s);return null==o&&((o=new StiCrossColumnTotal).text=StiString.isNullOrEmpty(t.totalLabel)?Loc.get("PropertyMain","Total"):t.totalLabel,o.wordWrap=e.wordWrap,o.minSize=e.minSize.multiply(n),o.maxSize=e.maxSize.multiply(n),this.setupField(o,n),this.setupTitle(t,o,l,n),o.font=this.changeFontSize(t.cells.columns.font,n)),i.set(s,o),r.push(o),o}static getLabel(t){return StiString.isNullOrEmpty(t.label)?t.expression.substr(t.expression.lastIndexOf(".")+1)[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("]","")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(")",""):t.label}static getSummaryTypes(){return 0==this.summaryTypes.count&&(this.summaryTypes.add("None","None"),this.summaryTypes.add("Sum","Sum"),this.summaryTypes.add("Avg","Average"),this.summaryTypes.add("Min","Min"),this.summaryTypes.add("Max","Max"),this.summaryTypes.add("DistinctCount","CountDistinct"),this.summaryTypes.add("Count","Count"),this.summaryTypes.add("Median","Median"),this.summaryTypes.add("First",""),this.summaryTypes.add("Last","")),this.summaryTypes}static async setTopN(e,t,i){let r=i.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,i.report));if(e.topN=t.clone(),e.topN.mode!=StiDataTopNMode.None){e.topN.showOthers&&(e.topN.othersText=StiString.isNullOrEmpty(e.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(e.topN.othersText,i));for(let t of r){if(!StiString.isNullOrEmpty(t.label)&&t.label!=e.topN.measureField||StiLabelHelper.getLabel(t)!=e.topN.measureField)continue;t.label!=e.topN.measureField||StiString.isNullOrEmpty(t.expression)||-1==t.expression.indexOf("(")||-1==t.expression.indexOf(")")||(e.topN.measureField=t.expression.substr(t.expression.indexOf("(")+1)[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(")",""))}}}static setSummaryType(e,l){if(StiString.isNullOrEmpty(l))return;let n=this.getSummaryTypes();for(let t of n.keys){let r=t+`(`;if(0<=l.indexOf(r)){"First"==t||"Last"==t?e.summary=StiSummaryType.None:e.summary="Count"!=t&&"DistinctCount"!=t?StiSummaryType[n.get(t)]:StiSummaryType.Sum;let i=l.indexOf(r);while(0<=i){let t=i+r.length,e=1;while(t<l.length&&0!=e)e+="("==l[t]?1:")"==l[t]?-1:0,t++;l=l.substr(0,i)+l.substr(i+r.length,t-i-r.length-1)+l.substr(t,l.length-t),i=l.indexOf(r)}}}e.value=`{${l}}`}}StiPivotTableHelper.summaryTypes=new Hashtable,StiPivotTableHelper.FieldMargin=1.5,__.h.StiPivotTableHelper=StiPivotTableHelper}__.v.StiProgressIteration=class{constructor(t="",e,i){this.series=t,this.value=e,this.target=i}};let StiProgressIteration=__.v.StiProgressIteration;{class StiProgressElementBuilder extends __.i.StiElementBuilder{async render(s,o){this.storedCulture=StiCultureHelper.set(s.report);try{let e=this.getValueMeterIndex(o),i=this.getTargetMeterIndex(o),r=this.getSeriesMeterIndex(o),t=this.getSeriesKeys(o,r),l=t.length,n=t.map(t=>new StiProgressIteration(this.getSeries(o,r,t,s.report),this.getValue(o,e,r,l,t),this.getNullableValue(o,i,r,l,t)));return n=StiProgressElementBuilder.processVariationSort(s,n),await StiProgressElementBuilder.processTopNElements(s,n)}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}static processVariationSort(t,e){let i=t.userSorts;return e=StiDataSortVariation.isVariationSort(i)?i[0].direction==StiDataSortDirection.Ascending?e[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>0!=t.target?t.value/t.target:0):e[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>0!=t.target?t.value/t.target:0):e}static async processTopNElements(l,n){if(l.topN.mode==StiDataTopNMode.None)return n;let s=(n=l.topN.mode==StiDataTopNMode.Bottom?n[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>t.value):n[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>t.value)).slice(0,l.topN.count);if(n.length>l.topN.count&&l.topN.showOthers){let t=n.slice(l.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNumber(t.value)),e=n.slice(l.topN.count),i=e.every(t=>null==t.target)?null:e[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNullableNumber(t.target)),r=StiString.isNullOrEmpty(l.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(l.topN.othersText,l);s.push(new StiProgressIteration(r,t,i))}return s}getValueMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiValueProgressMeter));return null!=e?t.meters.indexOf(e):-1}getTargetMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiTargetProgressMeter));return null!=e?t.meters.indexOf(e):-1}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesProgressMeter));return null!=e?t.meters.indexOf(e):-1}}__.i.StiProgressElementBuilder=StiProgressElementBuilder}__.x.StiProgressVisualCreator=class{static createProgressVisual(t,e){switch(t.mode){case StiProgressElementMode.DataBars:return new __.v.StiDataBarsProgressVisual(t,e);case StiProgressElementMode.Circle:return new __.v.StiCircleProgressVisual(t,e);case StiProgressElementMode.Pie:return new __.v.StiPieProgressVisual(t,e);default:throw new StiTypeNotRecognizedException(t.mode)}}};let StiProgressElementBuilder=__.i.StiProgressElementBuilder,IStiProgressVisualSvgHelper=Stimulsoft.Report.Dashboard.Visuals.IStiProgressVisualSvgHelper,StiProgressVisualCreator=__.x.StiProgressVisualCreator;{class DRa{implements(){let t=[IStiProgressVisualSvgHelper];return(this.implements=()=>t)()}async writeProgress(t,e,i,r){let l=new Rectangle(0,0,e.width,e.height),n=e.component,s=await DRa.getDataTable(n);if(null==s)return;let o=await(new StiProgressElementBuilder).render(n,s);if(n["isSampleForStyles"]?o=this.getStyleSampleIterations():this.isEmptyData(n,s)&&(o=this.getEmptyDataIterations(n)),null==o||!o.length)return;let a=new StiContextPainter,u=new StiContext(a,!0,!1,!1,1),S=StiProgressVisualCreator.createProgressVisual(n,o);if(i&&i.needToVertScroll){let t=S.getContentRectangle(l.clone());i.needToVertScroll=t.height>l.height+5,i.needToVertScroll&&(l.width-=15,t=S.getContentRectangle(l.clone()),l=t,r.ref=Stimulsoft.System.Convert.toInt32(l.height))}await S.draw(u,l.clone()),t.writeStartElement("g");let m=i&&i.needToVertScroll?0:e.x,h=i&&i.needToVertScroll?0:e.y;t.writeAttributeString("transform",StiString.format("translate({0},{1})",this.p(m),this.p(h))),StiContextSvgHelper.writeGeoms(t,u,!1),t.writeEndElement()}p(t){return t.toString().split(",").join(".")}isEmptyData(t,e){return null!=e&&e.isEmpty&&t.isQuerable}getStyleSampleIterations(){let t=[],e=new StiProgressIteration;return e.value=75,e.target=100,t.push(e),t}getEmptyDataIterations(t){let e=[],i=new StiProgressIteration;return i.value=0,t.showBlanks&&(i.series=StiLocalization.get("Dashboard","Blank")),e.push(i),e}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}}__.h.StiProgressVisualSvgHelper=DRa}let StiRangeSelectorHelper=__.X.StiRangeSelectorHelper,IStiRangeSelectorVisualSvgHelper=(__.w.StiRangeSelectorVisual=class extends __.j.StiVisual{async draw(t,e){try{await this.drawContent(t,e)}finally{}}async drawContent(t,e){let i=await StiElementDataCache.tryToGetOrCreate(this.element);if(null==i||null==i.rows||0==i.rows.length)return;let o=this.getArgumentMeterIndex(i),r=this.getValueMeterIndexes(i),l=this.getSeriesMeterIndex(i),n=-1!=l?this.getDistinctValues(i.rows,l):[null],a=-1!=o?this.getDistinctValues(i.rows,o):[];if(0==a.length)return;let s=StiRangeSelectorHelper.isArgumentDateTime(this.element),u=a.map((t,e)=>{let i=s?(t instanceof Date?t:new Date(t)).getTime():Number(t);return{arg:t,index:e,dec:i}}).sort((t,e)=>t.dec-e.dec),S=u.map(t=>t.dec),m=u.map(t=>t.index),h=[];for(let e of n){let s=-1!=l?i.rows.filter(t=>this.equals(t[l],e)):i.rows;for(let i=0;i<r.length;i++){let l=r[i],n=[];for(let r of a){let t=s.filter(t=>-1!=o&&this.equals(t[o],r)),e=0<t.length?t[0][l]:null,i=null!=e?Number(e):NaN;n.push(i)}let t=m.map(t=>n[t]),e={argument:S,value:t,color:this.getSeriesColor(i,r.length)};h.push(e)}}this.paintCharts(t,e,h)}paintCharts(r,l,n){if(null==n||0==n.length)return;let t=n[0].argument.length;if(t<2)return;r.pushSmoothingModeToAntiAlias();try{let t=this.measureXAxisHeight(r),e=new Rectangle(l.x,l.y,l.width,l.height-t),i=(0<e.height&&(this.paintArea(r,e,n),this.paintTicks(r,e,n[0].argument)),new Rectangle(l.x,l.y+l.height-t,l.width,t));this.paintXAxis(r,i,n[0].argument)}finally{r.popSmoothingMode()}}paintArea(t,e,i){let r=this.element.seriesType;switch(r){case StiRangeSelectorSeriesType.Line:this.paintSeriesAsLine(t,e,i);break;case StiRangeSelectorSeriesType.Area:this.paintSeriesAsArea(t,e,i);break;case StiRangeSelectorSeriesType.Column:this.paintSeriesAsColumn(t,e,i);break}}paintSeriesAsLine(i,t,r){let n=r[0].argument.length,s=this.getMinValue(r),o=this.getMaxValue(r),a=(Math.abs(o-s)<1e-6&&(o=s+1),Math.min(...r[0].argument)),e=Math.max(...r[0].argument),u=e-a,S=(0==u&&(u=1),t.x+this.margin),l=t.x+t.width-this.margin,m=t.y+this.margin,h=t.y+t.height-this.margin,c=l-S,d=h-m;for(let e of r){let t=new StiPenGeom(e.color,2),l=[];for(let t=0;t<n;t++){let i=e.argument[t],r=e.value[t];if(!isNaN(r)){let t=S+c*((i-a)/u),e=h-(r-s)/(o-s)*d;l.push(new Point(t,e))}}1<l.length&&i.drawLines(t,l)}}paintSeriesAsArea(r,s,t){let e=t[0].argument.length,o=this.getMinValue(t),a=this.getMaxValue(t),u=(Math.abs(a-o)<1e-6&&(a=o+1),Math.min(...t[0].argument)),i=Math.max(...t[0].argument),S=i-u,m=(0==S&&(S=1),s.x+this.margin),l=s.x+s.width-this.margin,n=s.y+this.margin,h=s.y+s.height-this.margin,c=l-m,d=h-n;for(let n of t){let l=[];for(let t=0;t<e;t++){let i=n.argument[t],r=n.value[t];if(!isNaN(r)){let t=m+c*((i-u)/S),e=h-(r-o)/(a-o)*d;l.push(new Point(t,e))}}if(0<l.length){let t=[...l],e=(t.push(new Point(l[l.length-1].x,h)),t.push(new Point(l[0].x,h)),[]),i=(e.push(new StiLinesSegmentGeom(t)),r.fillPath(Color.fromArgb(100,n.color.r,n.color.g,n.color.b),e,s,null),new StiPenGeom(n.color,2));r.drawLines(i,l)}}}paintSeriesAsColumn(h,t,c){let d=t.x+this.margin,e=t.x+t.width-this.margin,i=t.y+this.margin,p=t.y+t.height-this.margin,g=e-d,b=p-i,r=new Rectangle(d,i,g,b);h.pushClip(r);try{let t=c[0].argument.length,o=this.getMinValue(c),a=this.getMaxValue(c),i=(Math.abs(a-o)<1e-6&&(a=o+1),Math.min(...c[0].argument)),e=Math.max(...c[0].argument),r=e-i,l=(0==r&&(r=1),c.length),n=g/t,s=.2*n,u=n-s,S=u/l,m=(S<1&&(S=1),[]);for(let t=0;t<l;t++)m.push(this.getColumnSeriesColor(c[t].color,t,l));for(let e=0;e<t;e++){let t=c[0].argument[e],s=d+g*((t-i)/r);for(let n=0;n<l;n++){let t=c[n],l=t.value[e];if(!isNaN(l)){let t=(l-o)/(a-o)*b,e=s-u/2+n*S,i=p-t,r=new Rectangle(e,i,S,t);if(h.fillRectangle(m[n],r,null),2<S){let t=Color.fromArgb(30,0,0,0),e=new StiPenGeom(t,1);h.drawRectangle(e,r)}}}}}finally{h.popClip()}}paintTicks(s,t,o){if(null==o||0==o.length)return;let a=t.x+this.margin,e=t.x+t.width-this.margin,u=t.y+this.margin,S=t.y+t.height-this.margin,m=e-a;if(1<o.length){let i=Math.min(...o),t=Math.max(...o),r=t-i,e=(0==r&&(r=1),StiRangeSelectorHelper.isArgumentDateTime(this.element)),l=StiRangeSelectorHelper.calculateNiceTicks(i,t,e),n=new StiPenGeom(Color.lightGray,1);for(let e of l){let t=a+m*((e-i)/r);s.drawLine(n,t,u,t,S)}}else{let t=new StiPenGeom(Color.lightGray,1),e=a+m/2;s.drawLine(t,e,u,e,S)}}measureXAxisHeight(t){return 2*this.calculateTextHeight(t)}paintXAxis(a,t,l){if(null==l||0==l.length)return;let u=this.calculateTextHeight(a),e=u/2,S=t.x+e,m=t.x+t.width-e,h=t.y+t.height-e,c=m-S,d=StiDashboardStyleHelper.getForeColor(this.element),i=StiDashboardStyleHelper.getElementFontFromStyle(this.element),p=new StiFontGeom(i.fontFamily.name,i.size,i.style,GraphicsUnit.Point),g=StiStringFormatHelper.getStringFormatGeom(a);if(g.alignment=StringAlignment.Center,g.lineAlignment=StringAlignment.Near,1<l.length){let n=Math.min(...l),t=Math.max(...l),s=t-n,e=(0==s&&(s=1),StiRangeSelectorHelper.isArgumentDateTime(this.element)),i=StiRangeSelectorHelper.calculateNiceTicks(n,t,e),o=Number.MIN_VALUE;for(let l of i){let t=S+c*((l-n)/s),e=this.getValueText(l),i=a.measureString(e,p),r=new Rectangle(t-i.width/2,h-u,i.width,u);r.x>=S&&r.x+r.width<=m&&r.x>o&&(a.drawString3(e,p,d,r,g,null,null),o=r.x+r.width)}}else{let t=S+c/2,e=this.getValueText(l[0]),i=a.measureString(e,p),r=new Rectangle(t-i.width/2,h-u,i.width,u);r.x>=S&&r.x+r.width<=m&&a.drawString3(e,p,d,r,g,null,null)}}calculateTextHeight(t){let e=StiDashboardStyleHelper.getElementFontFromStyle(this.element),i=new StiFontGeom(e.fontFamily.name,e.size,e.style,GraphicsUnit.Point),r=t.measureString("A",i);return Math.ceil(r.height)}getValueText(t){return StiRangeSelectorHelper.formatValue(this.element,t)}getArgumentMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiArgumentRangeSelectorMeter));return null!=e?t.meters.indexOf(e):-1}getValueMeterIndexes(e){if(null==e)return[];return this.getValueMeters(e).map(t=>e.meters.indexOf(t))}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesRangeSelectorMeter));return null!=e?t.meters.indexOf(e):-1}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiValueRangeSelectorMeter))}getDistinctValues(t,i){let r=[];for(let e of t){let t=e[i];-1===r.indexOf(t)&&r.push(t)}return r}equals(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();return t===e}getSeriesColor(t,e){let i=StiDashboardStyleHelper.getDialogSelectedBackColor(this.element),r=255-Math.floor(155*t/Math.max(1,e-1));return r=Math.max(100,Math.min(255,r)),Color.fromArgb(r,i.r,i.g,i.b)}getColumnSeriesColor(t,e,i){if(1==i)return t;let r=this.colorToHSB(t),l=.3,n=Math.max(.3,r.b-l),s=Math.min(1,r.b+l),o=n+(s-n)*e/Math.max(1,i-1);return this.colorFromHSB(r.h,r.s,o)}colorToHSB(t){let e=t.r/255,i=t.g/255,r=t.b/255,l=Math.max(e,i,r),n=Math.min(e,i,r),s=l-n,o=0,a=0==l?0:s/l,u=l;return 0!=s&&(o=l==e?(i-r)/s%6:l==i?(r-e)/s+2:(e-i)/s+4,(o*=60)<0)&&(o+=360),{h:o,s:a,b:u}}colorFromHSB(t,e,i){if(0==e){let t=Math.floor(255*i);return Color.fromArgb(255,t,t,t)}let r=t/60,l=Math.floor(r),n=r-l,s=i*(1-e),o=i*(1-e*n),a=i*(1-e*(1-n)),u,S,m;switch(l%6){case 0:u=i,S=a,m=s;break;case 1:u=o,S=i,m=s;break;case 2:u=s,S=i,m=a;break;case 3:u=s,S=o,m=i;break;case 4:u=a,S=s,m=i;break;default:u=i,S=s,m=o;break}return Color.fromArgb(255,Math.floor(255*u),Math.floor(255*S),Math.floor(255*m))}getMinValue(t){let i=[];for(let e of t)for(let t of e.value)isNaN(t)||i.push(t);return 0<i.length?Math.min(...i):0}getMaxValue(t){let i=[];for(let e of t)for(let t of e.value)isNaN(t)||i.push(t);return 0<i.length?Math.max(...i):1}constructor(t){super(),this.margin=10,this.element=t}},Stimulsoft.Report.Dashboard.Visuals.IStiRangeSelectorVisualSvgHelper),StiRangeSelectorVisual=__.w.StiRangeSelectorVisual;{class CWa{implements(){let t=[IStiRangeSelectorVisualSvgHelper];return(this.implements=()=>t)()}async writeRangeSelector(t,e,i,r){let l=new Rectangle(0,0,e.width,e.height),n=e.component.as(__.X.StiRangeSelectorElement),s=await CWa.getDataTable(n);if(null==s)return;if(this.isEmptyData(n,s))return;let o=new StiContextPainter,a=new StiContext(o,!0,!1,!1,1),u=new StiRangeSelectorVisual(n),S=(await u.draw(a,l.clone()),t.writeStartElement("g"),i&&i.needToVertScroll?0:e.x),m=i&&i.needToVertScroll?0:e.y;t.writeAttributeString("transform",StiString.format("translate({0},{1})",this.p(S),this.p(m))),StiContextSvgHelper.writeGeoms(t,a,!1),t.writeEndElement()}p(t){return t.toString().split(",").join(".")}isEmptyData(t,e){return null!=e&&e.isEmpty&&t.isQuerable}static async getDataTable(t){return StiElementDataCache.tryToGetOrCreate(t)}}__.h.StiRangeSelectorVisualSvgHelper=CWa}__.h.StiTableAlignmentHelper=class{static getHorAlign(t){let e=__.h.StiMeterHelper.toDataType(t);if(Type.isNumericType(e))return StiHorAlignment.Right;if(Type.isDateType(e))return StiHorAlignment.Center;return StiHorAlignment.Left}},__.h.StiTableElementHelper=class{static minDataColumnValue(t,e,i){if(!(t.is2(StiDataBarsColumn)||t.is2(StiColorScaleColumn)||t.is2(StiBubbleColumn)))return 0;return 0<e.rows.length?e.rows[Stimulsoft.System.StiObject.stimulsoft]().min(t=>StiValueHelper.tryToNumber(t[i])):0}static maxDataColumnValue(t,e,i){if(!(t.is2(StiDataBarsColumn)||t.is2(StiColorScaleColumn)||t.is2(StiBubbleColumn)))return 0;return 0<e.rows.length?e.rows[Stimulsoft.System.StiObject.stimulsoft]().max(t=>StiValueHelper.tryToNumber(t[i])):0}static calculateTotal(t,i,r){switch(t.summaryType){case StiSummaryColumnType.Sum:if(StiExpressionHelper.isPercentOfGrandTotal(t.expression))return 1;return 0<r.rows.length?r.rows[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>i<t.length?StiValueHelper.tryToNumber(t[i]):0):0;case StiSummaryColumnType.Count:return 0<r.rows.length?r.rows.filter(t=>i<t.length&&null!=t[i]).length:0;case StiSummaryColumnType.Min:return 0<r.rows.length?r.rows[Stimulsoft.System.StiObject.stimulsoft]().min(t=>i<t.length?StiValueHelper.tryToNumber(t[i]):0):0;case StiSummaryColumnType.Max:return 0<r.rows.length?r.rows[Stimulsoft.System.StiObject.stimulsoft]().max(t=>i<t.length?StiValueHelper.tryToNumber(t[i]):0):0;case StiSummaryColumnType.Average:{let t=0<r.rows.length?r.rows[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>i<t.length?StiValueHelper.tryToNumber(t[i]):0):0,e=0<r.rows.length?r.rows.filter(t=>i<t.length&&null!=t[i]&&null!=t[i]).length:0;return 0==e?0:t/e}}return 0}},__.h.StiTitleMeasureHelper=class{static measureTitle(t){return this.measureTitle2(t,t.text)}static measureTitle2(t,e){return this.measureTitle3(null,null,t,e)}static measureTitle3(t,e,i,r){if(null==i||!i.visible)return Size.empty;let l=StiScale.yy(30),n=e?.width??Rectangle.empty.width;if(StiString.isNullOrWhiteSpace(r))return new Size(n,l);let s=i.sizeMode==StiTextSizeMode.WordWrap||i.sizeMode==StiTextSizeMode.FitAndWordWrap?__.h.StiAutoSizeTextHelper.measure2(t,r,i.font,n):__.h.StiAutoSizeTextHelper.measure(t,r,i.font);return l=Math.max(l,s.height),null!=e&&(l=Math.min(l,e.height)),new Size(s.width,l)}static measureTitle4(t,e,i,r){let l=StiScale.yy(30);if(StiString.isNullOrWhiteSpace(r))return new Size(e.width,l);let n=__.h.StiAutoSizeTextHelper.measure(t,r,i);return l=Math.max(l,n.height),null!=e&&(l=Math.min(l,e.height)),new Size(n.width,l)}};{class DXa{static loadReport(t,e){switch(e){case"Financial":t.loadPacked(this.financial);break;case"Orders":t.loadPacked(this.orders);break;case"SalesOverview":t.loadPacked(this.salesOverview);break;case"TicketsStatistics":t.loadPacked(this.ticketsStatistics);break;case"TrafficAnalytics":t.loadPacked(this.trafficAnalytics);break;case"VehicleProduction":t.loadPacked(this.vehicleProduction);break;case"WebsiteAnalytics":t.loadPacked(this.websiteAnalytics);break}}}DXa.financial="H4sIABxOZ2QAC+1b63PauhL/3r+CyadzJjlFsiU/2t4zQyA8EggJJoRk8kWyZHBibOJHgJzp/35l8wgYG0ibc++Zzul02ka7knZXv13trty/PhUKRx0+9vywx/3A9tyjL4UjCUjyZ+kzOjp5I9cim8U0TGQVWKYuQ4CQJmOdytxSJYShrGMVmutzLsmIx3Oqtktc0ybOOrHk2CTIpVZtJ5la+fLwMB8JHh7OjUKFWyRywkKFBEPqEZ8Vunw0dkjIBX210ueR/7qxVxQOPT9ezwjtUeQEnhWu08s+Fysk+hUr4l+/gWMAAfi9uME0JO5gnQkqGkI6RKoGgJggvU04cwe2y9csuhiQ5uQyccxIyCyILY8lejbckPtjn4fJ6Pq2N64dxhz1yGU+Z+EwaFsN1xzOeQzTt8dhU0gWkUGyUtkYEn+82EiYKvKTYe7+cWPMR1e269l8wn2Dh6HtDuKzkDBKOK58/iJo6xShq4wRxvMVbDMWk/gzQfpLjCTSBl7kmzxYDYlBsPaD+DEbEAtiDiAW1O5snEw9DxbmWYw3Rgu9SX/2WLq/e6l0wDk/G9/dvdrjGrhnL8cTY2qe396wid4lT5PODZ3i+o0WTmrF4iUztccqt88iKEN8Kk1fSq7+0rt1bN9+LF1VT6t0UjlVLVyxp63XZnTu04Y1uugfo5Y1qZU6t7geXStXUS+40rVnvfYq66/PVJ+e+UXn2Lrp3zac9mxWK0uTV3SmRAaC42lPeSFuGbQ8ifU7L69N734AJudTv//I8bRdm1hl9zR4snidlM+esDFxtdJQWLtsyPJMaRYVEtVPzXLw0oWPN/61F+LmsNtsNJu2W5w8nYOJWp7K3ftG9Eqfek4U3FWaEXq9jpr+kFWnz2XnvCcbev/8qdEovlJ12Bur98prKUT3ln+l9CvlUYt1T+W7gV0cXNrPL0b9XhpWWx2gPA45Gs2eabN6BWc9Y8YvUe9CJ8fY7pyPRreu5mvR5bN6/ewen7XLWv3uWn8en0JQksv4Qr1+mj6WL8vwWh0Vo1a9Unoa9dzbYcilzrTB5Wt2W2/2q8PJfd3uGo3OoG1MndHF5PhesS9ntdqweltWS0HER/fWXZ9V28ObM9zrX8HmWT8odaIqmwyPR/2gUu0ZxAZDcTiRiktXd2x4bnDds9S+Ux7dHIfUn+qedl+2zi7qj6UBKdvnpUDrvg6qx2MUnLv0oua0Jy+t1plCmXRTHxhesVJ8tJwy42PFmcLn/t292ezIZqM6bXZ1OSxeqFrpuOVVWYf6F6WXutR4Or5qDQ0yLVItkkqw3bevb2pD9VSt1a/6vEH1ijl2Q+eJReHtnTiaEPC77nEDl+6HXeBLjlactqmH2jN2dkovJ9pLZdC+1odGzej2CWyXW7MJCF+vjhZ+8D35+/vcLYR/h8TY64sNxt1wERLjGV1CHT6ftu5fS5f1PS/M9NY0oew50cgNNjbb2n1jaSaC6doKK1rDXYiTw7MSIYu4jBfGLAj56HMcsLu22G+N6/v6lCOYL6DpeMFeCTOZViJmUtMyctMeiaiXK6KUL6I35u4+CbN4VgJmEd8rn5wv39AeDPfJl8Wzki+L+F75UL58jjfZJ14Gy0q6DNoBwq3+/T3lcOvbviU1iaflejwlwcH+Hl+iyzlZzv4D9/MVCYfxkklIWKQCX4rFN95NwT8thBfzBmtibwidClGLpGW16UraFWlbsKNl2moxrENTRgrXMZKpTKDELUyZSTDQmS69zdih5tGpHwXDmBZ4js2+vBHK3mjsuULazbi3FfU2VOryaXjm8FE8soHTpWIxA9wkLfXhCOqQmkCBloKoSqiqMh2qFiMWtYAMNmeVHVts0uFmKBLFeWINTsAJFCnrCUrxnno+40mu/FX82qSVnDBnKaRtryS4u3bo8J4d2DRhtYgT8A2e1dklCTBJ0sptL11ZLbZI2tHabt17mUtsDL1J1/Ocrj3e5hKSm08xV1uEurrwTt+x3ac034pQ4YFIfslCoKNLPhE3ZH5sSSQTfN8szw2Foib/z8ORwQceL9w0Ho4Kgf0aj8jKw9Gf30LB/Adx7IErhso8Vl0MrwD3rfjG8Oe3Yrzin6kD9XyX+x3C7CiYH0Fh8XuTT9QCTISm+WFukpKj2Tb1Uo8sS6cOcm8oS1+p6ZyDX4kT4f5OH3hjy/EEJlOJauIP4cnIklQqa7qkUIVgU8UWlA/wBPSBroCyfaHqLRRfIOKr/lnF6TUN7nBzvSoUdavXiavOTb4ecSLe4mEiW56rJExv1puzpw70gs+SYKJK2LQIRVQRFTwiMuaQMQAlpEAs4mV62tlUVKrBsraNr6XPWSlYk1DurPKzXM+p+V40jtngx2NcgLjq+SMS7jDUAotzPoP7L7bJ91/T6VxsY72Gy2yThN5uaK+4cpCtqIolM4nJnAHEEdE1oGBZlxngJkGY7UW2IoETWQEnWABS+ghwa3Nwb611SKQ/9CzKke9z15xtnkcKWglmDD4mfmy/eOZJmsUIY9TFDZHFgsZsRL0d2WHiMPscanVmu/xJoaYEiG4puqohaKo6lCxdYpRRTpEOyG5/MqLRb4lPJTXD7zuuHOIP+C5rzhkOEpmqyESUCPkIQCozNS6iAOKariliSGcHihxXETskFqdp83RpuHH+CcNBEquMSyrEigWxhrgEqW4ywpCIXLJiIXFVHxi08s27+4KMUz7izgqwIMA4CbeKkx2+kHUfQLx9IcTpiOeX4jRgtDDQPFnIF3q57lcop536b4yz78ziVuf706ncpUi6fyKDy4zs6Sp2M2ePuyS7k/aYYwGOnMBOJUvRRFiQucKQDjFBGsICs9hSoQwZ2hvY52E9Du8fEtZl6Sfiena/J7Pjs27Lii1MGHvjfH7qEN/cXNMVpKqyqklcAZyYVEKEMwI1LCgqwtsTD8tO1vOTSiY5x/W2+HZcbJsq70s04l/ft5Y/yLc2N1pAMNOum16W4T8Lll0uNjfPwW6WrZchCqJsPVq2e2uzMC60ZZCxc4tM3+ggvdHGz6ltM5p863ZrcRJEfp7llohkqow1rsocYcIxxyYB4h6iQNw7DFumsg+RqcsyH5bt7ZZcBiw79mCYrtTeicrLaES5vyvhSqZc8oE45Rd+RUKBxFgXmMGVlZrtB0MS7UPiCOOM5s9KoR/xX9UZdmJ0u8v7foxSyBUOqYmJqRAAialRC6pIIkwlsqxlRLvdOWg+SMsZje1/Ufrro3S71/9+lFqi6qCaaXIrblzqqiJudZ0BVTFNCYlM/mCUxo8Du0Ba3348+Bejvz5Gt9973o9RpGg6VUyOoCKbGjChuPDFCAaUy1SGh9/2jjfZBdHm1gvSvwj9BRGaW7jXOWHxuSzLd5Au3qoCRDsZ9vQr4tKjkDSTC55VWHUv/hlti/c+A8Xn/NPNg9J47MyqtpPRY9pzxmmrRI7T8Sbz9v0CzrmqxnXPsr9ftVNNhI/t0WS2N9JBcbP5OiT+7jfJhCOnr0EkERMlSzVlZoniSNIoYVgFso50xaLwkEdJbfEUI2kf0NfAyk/0NZJ277vbGsmsxEZZvcu1awVjE0MAMZB01VQVBCyOLJ0SpGPTsj6uiMz4rqOw7LOuPlEIPeERBwaqJOH/MeO8TT3EQlygScUaVLElyhZMKKBQUywgq5xbivlxJcz825wD1Rf39I8pv5x4gOoUKVDhXObMEjkHjfsMDOjUZLpFsSrJB6u+J+eIv1o59HoSmceP6b2aeYDijEsKo4pGoSxznaqUI0wxA0hjyELg8LJ1X0GQfE10oOolfxCNtj7tOEDz5cQDFNckSwbQsqgOgQKIppmQQEvhigYgEgf/EV3O9GvHLp3feR8nGv4f7+NcPQ59w/lnZEEt4kbEcWZnMRtna7jZ8yqZi7DVY5liyjrU4gc9hJgkYc1SmKXqqqabkoVRvkxLEB/ydFvjIkkhTv5L+vYF+2Evwovv6yr2wE48NdU4fteL8cZaJ4VDH5D7pamdESSyMbgNsgNd8+5/skvJ52R7E8Nm/HQW/5lZtAkj26xpuzyoe9uYTdJYZ277rk/cQJxFfMibEuWt2ON+VnX7A0smIc0hpu0OPkzMtTU/UtDlM2nGcnnnvRbdfrQUTW6MDIhdeYG9CrxxcZy7Qnsc8wVyZXuR9lhYKZxtNxSOmnFzQxgwXr7mi1InZaC/86uht0rpU2ozERVm83rCiP+XkRBstlpooyiR4rrk6/zD0FMBhbcvC+NyY/HadRSXIxoA8w2Tr2A/ff8vbwagV4U1AAA=",DXa.orders="H4sIAAAAAAAEAO1aa0/jyNL+fqTzHyLOl10xS/rmdntmdyXIhUBICDFJAI206na3ExPHTnxJCKv576ed2+RCAryg854PJ9IA6aquripXPVVdnr//+Y9c7qiphmGUtFUUe2Fw9DV3hACCJ+QEn4CjL2sc56knMzJA0mDEtEwAMAGGyUwlLQhdw3WoNBDd2FTnA5Vtuo6kPmCDdOp7PN5HS5NeGGVEO/EGqR+HbrLBUIgUT9RMn3xR//ULNJCFCCMGAwAcAwzAr/nNHT0edDd2UEwJRabJICabO0pB1wvUmksWC2hBL3DfSX2eaGotlDMDL4JERcNIJbPVjZNbgZfMWZyeWtrZiNTYUxNbJYkXdDM/IMoINohhzBmKPO6JkEeyrdlUtM5okIUaqZ+k0ex4FfzWsheibSfyhrMT01hvydnTOFGDb9+j78H6wkkx4hP9dZfQ8QIZTuKTchgN4hf28YSvr66e0EkhDJIo9OOXqWc8Vi8d+pNj7q9DtJOix/2wu+eEBU8hHAzDQAXJnC37F+g4jIfcUbk5T5wt/p39yOnPMBW+5+Qcn8fxgiH39QXBemX+13LjSsKalDnHL78ulzd4sk/S8+KTCx0U2hTvWa20/eXXb+usP5a6Lxf+Famujq3cSotcUcVeN1BRrqv0zywhco6Ox9xvORnmgjDJDULpudOZoOR78i8VyI/IWGk1+7GKcVdFKnCUPI1jNdAuUFmQ/p0RNRnMkngROL4/36TX4fr6PCY26GiNvhGPG1x4XYoOyw0iWSPeDfwNmrGJLavI3WCiW0zzAF5jMLcYljGqWTKOH4tM9pwME3g0XfNLU8VhGjnrvlp4a/VNf38JPhekF+FzQauq6QypJSQQmkxgbhEGIUOYYJNLil2FqbI29txOh7OjCvF4Y/1iwLszQmnYjU+Fg6xiBZg3x1ex0WN1v0TEU51MPDcaYVaz7Js0P+72n830Ib30gn45jmgjvJyET9Oz5CppVjrnz7VS2Lq8SM3jotO1oofJY5AgLK84e6rJq3r/6sr0b23entS1WaM8fBJtcdYzn4pnncrFsODV22f3w4HR6T9ZYDqx25dhIT/Ko1PHaVWt6/jG5neyL5zUTeE5bld9kwXPLSni69ZxV47C2tkVvbs8V338nJeGqnABxoOHkd0443CgLs9icVWO7WHySIKHyflwOk5vsHlajyajhkOjVJwnokRFHuHxE21HKTirlp6fbpKSQertRvsxTiPpp2Medms1Z1KelpvmIy2G1yNwWTsGIrTKXumsKiv5xr17HdxdTpv3p/Z5l7mth+4oHk2F9ZCHxWpl3GAQNO9EtX9dnfDWOJnECLrNMS7Uh6QCbbfxaMDQ7BRqj72HcntY5TbpSNqHU/NS3hmdh7BZaFyIi3F7LJ24FvYeWcc4DS7dhwnuBt7EGY3rk6joxa3KTd4cXxXvLuvjuycZm2cX7YkhiqV4eglArRemrQJtpteNTk8lfr/SL4I8vQma/allFs5a5YntFPL59PaeQNt/jONhkY5AeYDCUpx3JqfWca96641q40rfvQim1f7zfRiQ/A0ulJzWEPVV4KqibY/GzwNWB/QCWkredW6uzgeloNe4iZMHOKjDK6MU1/mdSC+NQPXO7m+nU1V7anWOnxOWBsH09qrs9O+vBUoCTC/KXueW3jVLdlkS2SwU1CkfiT7F14VSD3ttLxl11LHRv+/clJ6HXh/F+RGjCl5dPgbXrUjddNLmefVqUm/e9a1Jsyseiy1q3NPRc3VyfVPrPt+DJzA878QXd9WL2ugyct22ORxM7m6ih4eWiatt77rW72iN8k9IWHV+7NOCOzX64Lg5riQF5vqVsvDiIUwEL3rd23PV6ZQb6Z0/HQ2fhgxBCrE9gOXwvvT8/IAbnjeoVitNiw+vz69YMgzGF/gp74nQq9UegFbCLDt3TVyrN9WgVrm6T6vjavzsxL4odILUfrrrJlfP+LQ/MiePo2bYlcmZH54P43yhHougmZactiuHIbrUnVCr9tjv2J4OZVpSZXnzxx9HSzD4Mf/jxxL9MsC13wBiF1IXtwVSZntuufDVfOMG0nwM7KBwLQChxTASBFkGV9SEUpkYCOhCATf2FEI/HQTxpqK7qm+oZevWbkPhuXGBVE+a/BvcpmT7LoKFnXv3ryx7mbxE5UUZs5NIF8odroULkCsBp4BBRihR0hEGpYgggrEFXaR73/VtPzaEzOrxPst3nf5O0/cIOPBUXzK+GOoGa9dFS+OBqyyoa5sud8SCilkm4lBfSiBTwmH4kPHogPG3uvwlf33YBQfFrBxxkOtd7jChZUhmWK4rDYIp5JRyV5lcGYIaALBD7sAH3FFXk78KaZyEg4/547CclUMOs73LIwwxibCOB4NjIjBmpoUB0mkhlEFNxzzkEXIwQKLsoX2GU14VtRYor3C+yzUOMBRTjBDq6ju0m6UQcDSGYMvA3DAPusY44BrdD+tr+l8NbV9P984fcc2rolaueZXzXa6BQkIIEDME5ERqKKFIYoyh4wATG85BWKGvR80neuitErdj6HP95QoNv0wozgxFBGecGlA4ElmOBJJB65C/zIOhxP0Phc8L29dC5gXqu8zmnAPicgyYEARDg1GsgcVVAFqUCmQcMpsdMLsU69vlbNL1f7d9v4yVA/azvMsLyuVSF1sITCSJZZnCNKQi3DQxoiZiYtMLP7+sO2RP83CyKIqHmlExC9+3tqL6orvc9IltqCFNVxKAdSsGCNQhoYutbkywCakUEDobexo86WU6ZBujxUDgaz6/x9S1kUJD9wnbU5afVm823Isx4s+DVxauaNvmHC1nvcIgyHGoy7AlicLIEowbBgHK0k+WULC2Za9vjs6iNO5llDj0Pfl1jfJzULf1nHb68A2bbtVTUvLVIFvZTKUVumoOuEVb2qSbYma5BCNscaJ0lgrBALWEoo60DANtbSv4nj6nqZyEB11/Jh18AV8gAuALAVvMZ2FmfMbzTX+2iKd+skcYYS/I0uy3XuKrthd7Ysbrcj9Wm0yZoZmU390wSDSDo/74fmSrbqhyrYvvR7nYe85WMP1+9OfviWb+jfteN9BLBZVNrPXydbNYato5+/b01v49/5Pnz9/zmdA/t9Sa6fQCYi01mf3exoctGw6A4SomZwN1PpucvXDaKhxePO46qITj+XOwe+HkNgz9W2/4Apt+Hk5/FrRDFVQ01EW+F/R3GFeUotJAGfCFUll3qi+zb0K1nfvVRkQ3Z1PZGh8eDusV277Y1jcgR3CBdMElxKWIE6EIokBR6loIybfENmTL6EafEt5kHt+IbUt776NeWf8Jz/t0OPSnZc/XB3/oab8vNxapJqazbCvtnFwOFxGxSOBv0DgxjW1PZyqG0WmWo4OFa+bJfEg1XZ5qKpn5aK+DMx4+nLPtqfBYN8FQVwJi6j5H3xAEUxxBZTqWNBWD7s6+0tNQV7ble7RFLZ/POg5omwX8q+rOmF7R15IUmpJIXY0BMV3GMaeWBbnjGgQCZXySvm3up68rPOd6RWPqYJ22iLuOqwhUQBjcBVzXWiEtFxrm2zTeaiFeUFnrsVKsZZ/u5GbCy1E4mLcJCV8OzHZkLPvDir5DDLZTc5aNq/lZL4ySNY024HFnArMBj7rX9RyehNFheFyx7YNHjjUIChdKxhwiHS4oA4gYFgcKERM5b4HHDM40OMLPqf0YzdER0o+i48r4T0DHum7K3guLu3cLP5y0YhXZ+rFnQ8vXa38Gk9k7Pp4cMlTHQz0dCBXNWW0VjT1nV9266moVx0r32Np/maY7F6WicvStxy96XW/WgYJthvMoTIe2GvJo5lh9+Jedc+bY8HVb2mtg8SpOrJ7nQbQglsH0rUsYjpCEQI0VLMMMiRmVFkX4FbSw08EvG4jx68HyNhsYHOzGZhxvU11fjqVGOSw0Luvkc4UUJpDYkIZJDYX421Vfn5oeNuBN9fk/WZaXor9BvIMZF87c0gL3VSB5VOgpp3+9D0F3hrYfQtDtW9CqwVRAPyDIASOMQAcKk5mAIeYw6Uh9I3wdQRn4bAyd3Z7+h6HzLf/D0HdjqCWYaUjL1CCKiCUgNwkyGSPCoW42xXo7EG28rfgPQqkhKHC57sChrgLaCkGp7s0Zd5BDABavdbkbULr5XuFDcFovdXKFln17XfsvRNUsrRp+Gu/D051XPhvZ04jCbubBw3C65NrXj0IsBHCEBaQrCBaSIaqLn8BEWUxJh7yOpuTT0ZSSz0LTpfX/v9f1T8DUt4HN0tzD/RplDAn9QQgR4iBuUJdibGHdqyHT2oXgvZm6/drmU+DmTTYYAgsF9GUUKkyIaXBTuEjHK3el0h3BO3rOPW+gPgQ6zVKjdHqba7SahcqpXfqvwR19g9bdF3eySXgSpWvxthoZ/pSmIWbqL95CZP9teX2avpbUKMvrb/Ox+pnPnbXJZZbftvc8BwmdzrrtWmg+f4/wz3/8+Dfl7Bu//y0AAA==",DXa.salesOverview="H4sIAAAAAAAEAO18aY/jSHLodwP+D4Xxl11oPeJ97OwzQFIkRYk3KVIUFnjgfR/iIYo05r+bqmvq7m732jD8nqpLXWJERkZExpmZVf/+z/90d/eLHjZ121th26V19ctf736BAAj6FVm+gF/+8gKDH9LgBvYiNEJDAiYCBEHcEPbICIJAAghREAIhhHg1SHbL8DbIcIuwUy5he0nD8RUGVaRu94xy9zHO0Cd1e4/Up+VQdHXUv0Jg2tDtw3v21pvlpz+BKIwtzOAoCADACoAB4M/r1yMSt4pfjcAwAkEAFCQgFH09gq3itApfaOjxAfQIZ9zCHwq3X6BSHdzLK1R92DZt2N8/fTXzoUr7BxQ/CbtHkNqGN6mNsO/TKr7pA1pYJ0gSfIBv3C7xarcNrAUrbF/hIQ8oht+mzT3loVtgd8bU9WH529/bv1cvH/y6ad1x+fgeYKdVUI/dr1zdlt0H49zeffn0eSV+Zeqqb+ui+xhKu1340aR/YDzo5SvYr5vULer4kxkecZi6bOoqrPoHtNt3tZhf17h+ePeA090e/vvt7W55NYNXpP6dX7hdd/fKQu/++gH95cnDT0/jnwm9IPaKzJ/+/AR9hXp79Una/SosprAIls7hM+9/+vNvL1F/f5Lk6cG/tGG8WNTdMzN3m7BL4yps7+Jweb+5wZ2/WOHdv94F9V1V93dlHaTRdE+o/3v/L2EV/AyNZ67u354tOwrbsPLDgOq6sFw0Ed5s899vwAUM3LvuoxkVxcOg5Tn48vmDhbyCQy/gr6zzFRb8kspipK+AyAvgsSxewdDXEeXZjl8hYW+QHsz5BQL+BuHJYheUG8bvjw6c+rdI4LbTC73oYVcPrf9SV4/aev60fH6KoZHb9VFdB08z3wOfw+eH0H14m+4XkiQIAiJdCMMAxCVwAnHRCEYDBPJCHAjIV2PMqbmfjukur54LpRvfA1A67/tNQxyEhm18EMvpUVGv+835dJZtNyyV3aw1NmQ6FHLxHKXzcRyYDZDEm6IQ5hTR0lEENyQSr4FkqzJBYjWF1QiXK8BK/Vz6buINg2M0fHOBqiEl9xS6B8RdRwAKXdH2ZgfTnKz71Wbmc4oVp5PAHIyjHIbJ2Zqbc+cMW4VBDv4KHOgO7c2wceypxgin6Y/0WaDkq3q8bOwJCZvQGcasnpUTQfCNaZ7jLsJZdO/uTQBOLwxcZZ48q7R7gQRaWqM2rbPFMnU9DCOYQx4Wo0K9xq01aJatpQESAHp+zZTH5nQgWGtC92JxiE6CNPY+oueCiW7GEepARTm541bKedKF55WNW6vjtLL0bS+CFjsByXnVnFItJi/spZyzs+gpga5ew1YCEAFWzrVh2PtOA+tJES5HS1hL2MEd5IkKjsoJRUvPcbhgwNjaOru6JAQmPOvOhOq0eUxq8GSeUg9wLWYkbSwCV6MuzFDsr0YwxHZellBET06iMNargdrg3WanBAweZ4G1M+1ta4YMno9rvw5ZE87ivatehp2x37bp7hpWaASJYciIBkmodoYYR2ukQkUsLMmmjvIcieGwu8SRodOMmY4XCSr3l15jbDBV+hHwOIw4sTArGOdr1qNYraC0bMqHQAnK015U9epI1Vc5PPBrh8asXbloecYDLfHZhPG4eSkUxsJzx4njWYMYffPa2kFGm45q7+VmWnFB13pbq5q1ggzCfq9MbmHZ6ibbaQ1HkQ1uEjh37K8ga2AnNpZiLEysmjdYyzB9gfOOKlSk9gyPLsyaO02W9tv8eFoNccsS5Bk3rIAdzLlGCiQRbDDZRxSHI3BpyufoDHKrueOD3DDnBEtP2C4b7A1jVTC5aQ5OJFlbTpOzig0tA1STFu/0/aoZ+QyTxGLDzwBlAmPiilXm5/psAiQZc0pdj/Ex4nei7KmDxkVptFZ7zo22p+IqHs/WUK8O4yqsdyKty3vFOZ5XROlqiiRoszNe1Q6pgj6MpvF8lY/LRw0jKHQ6qco1bkupMXZUpTv+YoEoyWwyitrt+FSjk+MxgmRpe9gOXLwl9weAshDPlLNdHnC0iamr2D+7IxqoZOmZV2AtAoJJHcg0anwS4aHk1FZ1ROGVMEygbRx3pt+vBxVVGcpmbFE0oZbEasyohaprYa+fnLPJUPQG1c8utYIRDdiVvWtbfkGmEuuMLglfxGDGqcmeEY1ewYYlVrCyO06d4ek1atCBCCVUWpAZceRVaKz0rSAzhO9ttxx/5ACqDLiEZ0HHMI1SPtQYfN6pDbousQNVehy+6Wvfu0CMovFOLXNqAxgyDUDcBhsak2DNlu4kcE+wOsdZlnxYa3VCDJ5ljQqH4nmv68SuzBXFQRs+Ua6R1vU4xgqkeB58Tz+3p3N5ld31mM8Ay/DwSQ2BA3Cku3a9gZmQOGdl4wmLyezAXbB2GTtRzSw4UNXFoLnU7Hm8yZgY6lQTUqFAwfJpzV7905jXILzkY9LoKUgZinXheuuLiCBmZEgyvGOKRDCP+9O6rJxsnvYIWDIJUlbmld6xIULv0c2pUruMMuqdBrDRpFgIace66VneXt5t56s6nlxCD+1m4CHAu8p5zJoX8VBZ9AZZ7+eJ0zfyAZIQBx43QoqGNLrWu4lDoQA/AusIAYC50TkDlXsTVyLNZ48SLV9P/UXX+Tbt4ok6beW+uvrF4p4TGtcUk1yRXWPKhKkDgAsHF8EIE0riqFE5ugBOX4Bpu7GLlZ5JuerY+/aw0yQjaHYyjeXkRlRj5XxwbKqVRkDW+7xbOLYwZmNiuntAN+ZxkwbUZIyQ09JHv8Rblkv8aoinPRHqrneZlHMLyeRalHHInfFcTnJUGmVKVALlqtinjJWMLHaStYdVqn8KrRLYNYHWjgaIQ9sQ9rHEmivLJoNaGBNs322jSNEGZWZLCHLiK66iRQYnOUYR7KlXhP2wA09qyp7qQ9AXOdook4kDWaBXJ8m+7ur0tB6ryWlg0h1iV3XA0lM91YVKShCoYT859ZLfK+UgKiTDiieT0GV2kJtt7yaAS4lD59hAfd1sZzzbW7IyXRlvW45gs4naCTsk1QQM594qhCufSItzNH4mFpiVFypQkxqnq1ZoeuyochXNcqYTwNTV1BxZ8fStRO0RRIrXW6kkCWlDGj535LXOmDTHQ4ErnEXkmbQAbRtexOo4K1coCIaeQ2b9EDdezHSJv0ftST9KIa7HbjM0pzDx6/Z6blTpwLi2KdXt2ihCcwupWgWQ8bbhAjkWBRpRygTe8iS/5LXpsje8VejXcUWMhuhYvZWtT2C35zJEHYULDK3b68ir7EqC2Yu3aUtgRDghq+mKUvrQScEy5YNtdLGx4hxnbFeHOQnpzWl/nLcOlpX7num29Tifj0taMc4jEYaOvqZPsME0FzfNT4YLhRwMFrmmZFBaHyh8t1biTe1t58Lbih455ZC495bouOQply68je+e97g9CqPodLzlzQmEmsoq7/d8DqOwvonkmpR7fZqaRpSuDeTQht4aVnj1S9SK6lLtbBptKcLDWividEnLLjAQ96FCAVS0uACKdh3JR8qlHPlRO4LDyTlXh2nD+hDYAOAB9G2qds88TrY5V62u0HlNd0rZNLuyGHlJ2iEMCWNUjFMXAyN5svG0xSFcZFgpu4PgFBv/ih0kzgUYMS1JMVnhMU7ASwkhxYzQ8QIxIg0eo+uLzPFZTK63mU9x11bqORE3WlbsSEBK4eiyvbbzlTU3RLajD1QsToyYxIpwSKuK31aBCbTEUqyBh5xG7EzrVi5zsP2uO+xZB2f37EhGobGJOyrexr4NKvvZ2azj65yfrebU5Z0j4gd2RzcngYsxOxzlBnEasUAOdZr3rkMp4JCDbj0anIe6eJE7NL9VFJY8+i7JciJQJ6WKp8PQRpxCNFfD6eXRbrr6KlrdQed0HCqcRoHUIMHZxFQ8j73OxGBTJTpA7horMy71TofUswerOCYAVDT2weiHU86imW5pdiRuyZtnLX49u7acE4LQCEOg2TtpbRZBBSMziF0a4hRhoYzUbGGqQrUHo20TW6qFpwRKRUc5v/YpGzZ0QLGX3hbrAG/zHThceISEBctAKIWy2UQX8dI404JT89XcY7V5WB8iVGHQvFXX9jRd/LLaDtXGOiq7PXLC58FjN0t50ye+mtPQABju1fc0YIU0cLmo07vupIA2TdUH+5ZKr2i7DbrYWoZBSdkn14khKDYAkFkMGZu7SIuvZ5kZNVUPsaoTQ5eNGQxFflytA2pjaGjcxM06DkeT8cVAU6lqU5dbLBLr+GIz6JEgU7hiUe2EQ8jO711pOAS7OW5szKkPe/eYDDvntAXd0CdRqfXAmALPi2tdmotaH2F+tdUAP9mctKvG4oZqXIdsvdntSDe0nO7KHb0BzEwjRSkAy2hu78gEgVwCYJa0AzaaOyI56TvfG0hsU4SnXCPw/FKr3hA2EiVIgwUVJ1IyjJT24KY/wNqMblYWaBy6DbeVqgMK5FfYFc/udg+i585n1oKucLJyUBlrW/mo0yNqd613FzYTxFA7diN/HiteQDMLGD1JjvitnoFDBxmkknl+ZJwTcsVwabLi9Cw5rrndpQNoa2lvsMGaWcUSrlhe4I18hgAlH+oaQy+eGJ599UIdj1lTH0xIREeICaJND4y+aIQ8QRXrmiuQ/Rb1rRVC482S5Da1ZRcGOuWcs5sCm6RAQ7H3jJIFsoGB0EXetPyY7StovUGb/T5K6hVdQZCJSBRwDhlUQdhVgpUFQO1ME9AuUCuTOn1cahRz0yaGj5Q4L+5hOh9jjpkZk0bPqdYDouFQiVUJeX9l2wsNshlOAATeXa+6dBU2dHymATHFq6B0dFORgezkc6bUYQ2YohNqMTgmIiKHhPFWBmVhlRJ0dqw3/B7yD5u1wXLGGEzCxK2TUFhvAjdZXLCmQS4xDfQgT0rPbfy2qyv1ELtGalDEsWeyk8Sr6mnaVCBe2XSn4qfchmrQBvvM9kXrGB30PCuyvQa4+UaQIPZUuTY3K8fhunKq3OVtHj84lM5mFCBQnYFD+dBZ5/MhUxvrQmy1gnbhfGW0TlSiBpadMYYXN+t17LUtQKglzwpd7GRkSQNLyVvhW3izvwihZRUBjp3MBNj6rbOpXB7zEnGv8MVEcCqQ9VPpRHqepEobtrrfXQahJ5auHThRdQPV7GbJZpC23uceBUJAT1Lt4SDvnWwV9XZLdcBKmTpZOEdxquQOATsia4ji1tmPcLBHO7yramRQTmfUbE5nbr0xrC12PHWGoAo7UBn2IxbqS7tPqlburBm62Zo7dxhL4IICOz7mC4L0FWcYdOsa+v7lLNTCNhtRqne29WW/5pqN7oHCqhf5nKfP22SZYIaAIAqqqWK6GGO0FaRLU8wTbRCvbKbGZlBvHNOU5y66nJoza4NxqJsMB7a7st3vsSUmhlg0AbTTRkyEE/UeUY9s57SarRzqswNX2HA5b2MM2FxVd1BGvlK8ZGehlkiC5+Bg5/Z52JZNJBmsntp7BAXK/YmZD8B0yIBOvh6vTIDgizNgHHcRJjGQrzS3kjV4m53H4qCvi34LORbmH5PK92KN05ZCebb8Wo5XQxdtL6utBeRiWB5XELcnNC2lGIM+MeIu122LVvnTFYd4GZbA7eXKxrjWby+LXXeG42sG3BcjUwxsa0yy6QFL55UUaTFFI+H1aZ/ibuRXo8a3FFwlmzWddsEoHXCLxkSt2RKo2fYXtwM4o12N/NqjBASasmMql/pmH4iEPTv71JXsi4IyXbjvLld+DV4ojcjkcB94KUrMCYzXPXHNeaRAJ093/bCu5ZqtAeFUtiI/F+CASqt1JfO1q1TpUWeu+Rrgrm7hH/dysMbpyV+TbKrqYOnLUk7NFQjDVlQe7TlrvVV/3upT0EX+HIxMwMljuawoZffHXL8soTR018f4mMKEBOYr+xytJ3ldKNZ+HvvLtgSkbliTuHUUz0I2dO289jhNgPT1iKYVORYa3gcUh3ipsS5QRII5JY0uAg5YXO/z9b6E7SHrg2mHG+f+ss9P9oYD3dI9+c0V2LrtXJgbOyKBYUSA4+Bgk2pyF3jlSUpnenutvp4dw+5mUwu27eJlbl0bgr06Xbls3KxszSuxoPZs0K53wUlEd3wx7HrSx1qCowQY3czbladZp6osYlADTKAqHeVw8TduN10kylVk/nhqF6nBXjE2k5AojHVIRVU0gf4Uz0S9mqWhCHJzGqSqk/bm1WDmbbnTdsABXqqFlRcaa6CMqw3AXBmiQGde7Lig1eQL5qTmLkcp4VISKYzs81lKNolZMC1WIUp+cpFIdQhKmxxEbdmCz3axpfBx1XU45YgrWNsQtWFQRocY55UBSLC0PpVTAJ3mY5NVw1pllgDM9ZPjYp3HyUYc6Roee+rxjE1GSBvAFi8FvMxGiS9OFziwmGFAiovlsdklPu1Gue8xAlKncx0NqwbRQn191GXA8wo+9HY5HGXY4AiygtWZaMCoEjJUX+tYJ+K6AY+toKZ6R7qt024HLAsrrrmKPjs601LYFQBUq5qT7mLjLAuaUZ2cpm4SgqRFm50l1t5f+VTy+YwENMfPz9rmKMTyINFXsudBZnUacmCHkonqUVCdoWc1J6hQPud8zVyWLlVu8wl027QmIDejDVMXnD03n0NiBtLtyVjXCb/4VAXZK47cAvWEW/vK6KfYrJ3+vIFXGZ9XCq5l9NrEVUNrBS2VRFGLdrARIO2548aE36wd6tSNuyvMxLuNuwmaC6otXcQe0hnC1+EAskoHzOgNJTYnlUd3LboVpaLr3Livp7NH0aOzIc4HdcNqs2WPWF9VTM9qeCfbvOEoKZqgsR6UHFknO9mEsPPYSvluT/fN+nQRlsaaW1K/ZExAHYJiOCrQkp+Ag3JCy8iv6VVqpIqQVgy9WyWrBLmcL2eyajmR3Ldrf8WwbNsj/IAL1LwCA0X1WDENGARjVyjuy9cD5p53ttZr+eqgHnVKDs1YYo+iS/unnbc94gYLXIIU8gkdFPWs4mJ7t541dVV3c+2f2EuFA+ejejGPkYPoXOBVkVomhHSGXIs44sBGYHN/GreKmjXIbCeZBtQid+QgrVgVXcNO2nrasupuH9RbhVGLBD16/ZEWuuCYBhwuWGswoi55Z9sHsg8n/UruzTLXSLbSGauk1mpeVvtxNx9muSzM/ep4dPzDOYEazXHBJuCILSJw46HF0KGVIhALoCLPArSqxPnaJHU8CnS0eP/cuMTVhghtwh0NQYhqibVbfw1243nNklIU1qpN9pGIkfTWp4qK4416DWzHCmcJOE8deU9shXoNlnN9JCNu6tu+wQcPExu4T9NA7naRBdqmax1tV6izyodMRUmWLhKZ9kZNgX2X+bgslVJimZ4NUbLvAyB+ncw97cdq15+do5l63LZlpFJ3ainPN73N93VLLZFqq/MJqIFt51IkfmJ4GDu7Se93bgBETAvXRIkNrpP2Sr50CBCbopip7yHuynncTGpqZ127DrVsoWoqdXU9NnQZblcu36ika04E3WQWjAulQikxyppNIZ0ajw9YdiZOVerKHOwUeq1ddUA9rvlyFo7h5O5xx73C9PqIzlPDgVWEXh32qqYHZKUz7YmcGL/ad7oyk8dMPtT7ymualBPWo5FYQLQDTqm35Y5q6uyv2W4XOB5GGIGsa1VR4dekNXZBMVx2KsQlMZxFNXHZLuaHrPNT4pMjjQRMoC1Rx/MMW9rvVC+74EsIqjasKsU5OjQ0NlIB4HKWkTKKNOf7sGN1E9XJelgPFKg0MXmo4wRzlqQwI/5BzjiZzYAUR8YNEnRQxo8C4O3nVKoXrdhLQF5fUlOf252tEOUZz2R4nmjz2p8BVJZz4CxEZncuZgvcNEDUehdfY08n+eBgq7AoxrwViYhFgp6IYCi2M2wt+CnMNnBbdnKdxXwqBFt+Bq8a7PS80ly4Lb+aJKqlmW41R4pdYtaphVOnHZcSfDjnnfrL06HU7w8//P50Enc7/DO+40BNCMKqfzy1u40xXa8IHwa+OvH6+YM3yAMhEMcizwdwJPQx0gsRgnQ9iCQIDwqgV2OYuhjKqnvN7Hv2X7Fm9G4fgi/JPEhYBeF1gf8r+BZyGyhUj8J+TuCPWxkfw58OCR9PVo2+Tav4HdajFojIAyAMRUEfBBEwDD0sCiOIBELXBzEAh395Oez3V0Tuj4i/FP7+w0/K/yGN1yr4EOWHtBDiJOFGkU/iCIR4qOfBHuaiJOETPhyhcPiVFqAvtMAs3MV1Owmbn1DDF0Se9fAFzhtFCFUPQ5/pwUURGIaW0h3BQARZNBCGcLS8oSAQ4RGCfqUH+Dv08JMG8SWZd7r4ebMg3QDDcRfEXNxHICLwcIwgIYDEQhAJIQT4Sh3IF+pQ2zoY/P6nrOJzGs+K+BzlR2wiREMSxSHIjzDs5hsujBIogHpQSERo5BFfKQH9thK6n7SJL8m8VcXHWD8WKlAXjBBscRQfQTzSXawCc0k8wvBFK4QLfaUO7KuAebuc9DPB8sPxr2/wfUvyTT0s2fYzyYHID0IojBYDgBfzJ4noliJIGEcDYomSwVeS419IbrptHPY/IfonBJ5l/wT+Q8JjOOKTaAgCLhYhQQSTCEqAi1tEvut5UBR9JTzxhfC3G4c/s+wfj38W/WPwjy2778NLNoBxyPMRkPRdEkZALyQjEsEJ2EW+kpz8luT/96cX/0syr/XwGdaPqQPHoQAOwNCPPCRCPDeMYBgmAtSFARjzvywVwK/KRbVN/Z8LhB+NfxEBPwL/kOgkDi+uDgKgBxCIHxKEG7gBuJgHsCgE9t6Evj8+vNTCO7afSvRfn2v1r1oIz+1+oIFgusvToH9w8+BDPuIHmEtEEYjgGOC6ixbIAEeIiPRh1301RnX75MbHbWD7eK3wr+v1pwK/uJqouvG725p/yP66WXq8hfzH1M9yPsM+uOp9j/h0fxyFUAgLIjQEQBgJQo/EsJDAiCAE0RDBvBe9xi9f3g2/x6DboUtuGF1dpMFfX0D+uA38ZvHe+ccrEZckHi/669giLG9PXzvXi7riHutNY/QsI770eyQauTiKoAjhYq67mLTnL0l8WU8fQt8MY4p0mUsP/d6t4uJ+BuAvS+33F3T5BgHgDTpdt0F4fx3+t+X1BkgV/Yfk7r/e45ppX4RW2qXePWLkFl34Gul5Ye/vtLv311g/CDHPSnzSzTsPV6ptfXng20jq0azrwkybD9AW/v38hkY1TTFxabHM+w5tu0SVtkirfBN2fVq5j2z9Iofj0s9/FSEttxjCryS4R3gSQwo/mv3RRUEcgAKXWBL2kqTCKCIgCMNcGAohzwOxwH03jr02N6KPvBpD+afn2HSfPv78FeOPqeULzh8wvot1BAxCf0koPoIDS42JkCjmIQi+1B2RG4Ju8COsP0z7Je9G2Kbhu72NV853j/F9vBMBGWFRCPoejsCIS3ouCpIEFpG4i8Ag8Q3en/n+sosTXS8sXvZ6d/doX63PzZc+ENEMr197xhv/+2IKrn5Q1m8g/BtdF8Fb73/6/ZNbKqDdtnsLdqvBLYqJvblyGDwljC3SCdTDi70d5aDWTkspR2fiZu84Odq4xV4p6NDgd3pY1ruKHny7MU72eWSR7jj53YGhxPLg2Q56I2LnhfY2xNVF3bKufwvWfTuEb6FtFba6G6RD93m4MhI3qMfHuPdiIV7l/ncbRq/C+20pvg7tN4zPwjqxtCTQUqMCAQogIEi6S322eDu+dKlw5IJv+f0kDoMQAPwF+QcFdYT4gNZ3xfUnq/xbtNjUguCH/+fvixPGdXh3EP7+y12XzrcnMPb3X/7tb/2C/K9ukcbV8ogJb+azPH6dlv+2/gPr3/62vpH9t3dW8OPr/GM+dv//f96/fjTZfTjdjyc6pQmr54T2U6nuE694t4H42ituG+DfcIsbCvSJX+CgC+Pe0rWCOLQkEtQNPB/HfT+CEBgjieB7/OKx2oH+MdUO8uAZEPHOJz/eZP+oLnytpk26aOeWQR4ovF2kP5LTUvahHoHjHuITCIahng8RqI+BXgCFSzeLfjDyk/T01YbSywT1iHf3Cd732fRrae+X+zNJX5u4vFTZn+A82/enOD9g2rfX768f/P7WUz44LXgp1dLopr7b1+231hDAADBCgMDDoqUiWtrQkEQJjITgZQ1xzye/uYYflkfvB23rlrqFy/KRQT2Nk3fx5DG63X7xzf2g+nst4uLN8lB6YfuAbtxC8/ue/H6MHMaLvi/h0joudnFj+23/f4/Gt/XQGGHjtjfN3eb4y4fk7o9J7j0l9NPSLTZpvBS0f7mjPO/2y60PS/tuQf+fNtcPjnVehZzHIu5b1hoFAEBEGBqBmItEIUogLgHfOlASRnEP/0FrfexD/r8R/m8xwu8NO98w1g/O3v5T+TEKcA8mICAMSAhBEIgEUDjEYRDECDCASP/78+NX7dvnDdz/7sV+s4hflLrb0A1uHvrUUALviiuurvuvMb5VjYtp19/V0d1TJfOutH0i/tR3/Aaiv+Lo23k+MNmHHuSrbvyHS3n3o23p/9ZNq3faGYpCr0cjLJbq9rFx/mqPZenYnjYAuPRtJf8P7LHfhYLXO+KJ236jyb5H+azLXlIYBANYEGG37agg8kCIDAAQQjA8dAEU+Z5uAkYe+2wI+4f0EzD02FC867XvNwv/E/3E/bh7PXy41fVHvMRcH0MC7HYkTiyquV0ecsEgjCCIBJe+Avix7H7fsv/5baz/wqioNh7K99vo3yPi09DvkRKGCIjEl/YR9Pxb+UJEoR8RkB/CgI8uWeK/uGv6fn38aFi5F/5/Vli5/Q2Z7rlSemLlC5m/Y2PzXpUfXwD4L4zxb/YzXxjat7b3P7fJJ4sM4PvNPgwBPIJ0AxLEIT/AQjCIUAAIsS9vrT1Z/mfl8qt4yd//zZXida38BfF7/r+LMjO0t7/KMn1Zhn9QggNvUV5V0x8hfEd9/mlt/sSlMZVeXbyp1d8SUesufcPsF6o6Utf0o8D1iUF/vVX4dVxw/vumotrQ/WAmvk0DMa3Cblt/YP+vJnxbSHw9333I/Ei2h8V4jDW3CvYLIkpzw+zgzQd0xFv/cbsP9debFEuFcjPhL2j9A0uZd1foXjmQfv+HkiS3+bqceUb79ODAhz0ACGDPBUiEAG/X/AICxgMIJUDfi+BvlzS3vdHlH4Yttcg/ZosUxT4raX40xT2L/z/2yPdbCeyhwr67j1B3fX13Y/Yhm90/+2/NaUv6+WYKu+G4zZfpi4hQEMVJ0l9sDAlc0sOJEAtIhITcxQzRd5tCn5VTn99+fq6kHtT2rdPRG/ybgt0jfUMyLLidufkBjEIA4mOBB4QuGYF+EMAIGkLvCuL/cskWhp8FOBjUO2/qXa6ty6cdvacTiLfBqh6fr2km9duS8WdD3tOPf3C+yDYVj2fFbU7frkT8AXsZUKBbTPnt4X4NXbj+i/OpW2y5NZ33XdsSSgjg6bryw/2if/6n3/8DD518dGRSAAA=",DXa.ticketsStatistics="H4sIAAAAAAAEAO1b628iObb/vtL+Dyj7ZUbpaWyXy2VPz12JQCAkISRAnmrpyk+oUA+6qghJRv2/rwsC4R3S3Xd2Z+8QJYHysX3O8c/nZfP73/9WKOy19CBOsiudpH4c7f1a2EMAwY/4o/MR7H2Yo6gNfZU3a/uikGJXc4ghVwy7mEspuIJcImoWOp3xUOedOr7s6yxtZzzz08yX6QJVKfB5OkdW2EQ3zHpxkhO2Mz8cBmlssgWCcqJ5psdsFiv23U9gHzgA/FxcpOrxqDtPBYlDsMtcCAj0FnscRl0/0nPaeXmAXtrLPJDDwHIbR41YjWWtR5lOBonOxk8XZr6M/GxCInt6Ktt5oh98PWrrLPOjbq4HZDmhjMFJe4WnPRHzRF1ZKp0s0OEJSVsm/mA88jC1bYX2U5rp8NPn5HM0/+BjJeEj+3G14dqPVDxKP1bjJEzX9OMZn3860/7HchxlSRyk61sPeKrXTfpKMdHLtraPFZ8HcXfDDC805TgcxJGOsglZ/htZ6KUDLnVhQpPmD3/P/xTsazAUgS8LMuBpWlhBZ+HXNXPYJ5N30zFmg80NuDLUTz9PKRbI81fW89OPdQsJK6D/rGcy/PTzp3nSr1OJpg/+keiuRVZhxlCholO/G+mk0NX2b74FCtKisfBLQcWFKM4KYax88zQeKPuc/UNH6nvGmHE1/jNDuNGJjqRWpTTVodWGzjH6e95om8F4277AKQgmnexzOP98gpSFdjTXvoDSBSpnfhQL1oVGPNd4EwYLbe6iNZnheYGILBFNYD1H4C0RTJFrSXKKry8b2Ze5ReDJ05xeWjqNh4mc19WLtmaf7OclOzqdeNy2bD0XGjtPg3HHcvqw8Lwe8u64oRnCLuwNmle9bnxSfBjeu83hCb8/ury6aD525VWvFrpCFn11Hlye3HcxPD3rV27dk/Se88OnULAiqezXfXT44ApcrQ66uHs3UKiq7zzWRMb30kd+BoemcV72GuC2TJLH48ssRUc3ncsmvynSUemu/nhUDE3J51759uq+1KuNwGnmH3X2/U5ThajdLO7v0+OkenPoZKxZcjUonz53ApPio+uufwiLTjBMTs8fdXpzg+Jy7/T5vkef9q+O+WlZlPpNcwG7cnhyaRxBq/VB/YqSR3Sf3g1rh8HoIb6h10VJvVpfPiSRaF4NHrPo/LkSjPDgmbThl+MrWa7FVdlPjiuVYqV0deHSknsvS0cVxNp+v13utEbPxVaplUok2k0UDfm9igDoghg/xOenbFQ9hpVHR2LuPh47w7BlwpPHc3kzuLsVI++xdtrM5OjYnJij22jYAPX2AwrdW9ZjX27btZPMfegH6KxyGWadkyG7cM7P+5eNgHQbSXXQV73SXWUUd2pVcXRdcUivyS6GF4f+TeC3kjS8CwaDLIv9/VOumtcgBgl6ejRB9tTRAeJDYLIq7p0els9BtWTKMJZP5asHYlpaw4p6fr4/CHqt/mgo8OikBentQS00tZrnHD1EDLndsgm+jDrDyzP3rt7dN0yexqZW7ap61Rm2Gk8XvW6/37l/UPLu7A4lQVJ0q0T7jU7j6LlaAcnj4FpkzeFddLZf7Tai+kUYPfn7zeNRsV8ZDpqqislAiWr/eFTx8X75uuapy/7FTa+tjm/k8/FtGB4wOPpyHJ6ehrR8/djJDiMAi0MYZI6oOWbE62Fw1X5+9mHxsdZ/9kKPFWFrdPhw3r0GLYjZXR8kznUDHiuKbx/NAUuv7tLro3C/0zJfLm/PG4cP/auzpxY+OYVJA94/meSgs9/octiNnH5oTs6e1Qk4bVhvX24FZ97l+WG52z9IcMgaYdNisUPKPcDJARzQy4pblcGRf94Y2Z9aNTwp0qdS47B+O+iXGA17D0eOXwfHiJ0QcnJYue3ibNSq8bSelEJx4jpSsVFml9Mp9g1rVYonKumB+6daJEgZj/ggOnKSFMnr04eDQem6PvpSjG46/Zszlg27g/6X50qEZAJavIJTTW6DGjDnD/X7gwbPOg+XHvMGHScN+xLHo1O/TVSjy4rNEQpr144T3FSv7irwmHVGGbghV7KvYvFF1XitgX1yU/5yf3581SPP6rneVr0KeaqZm+x5pIvDqEoeO152dBQc6Pv4plcOnQgMT6KT0egUk+D29pofH9fBVSDvKtcXzu0zv2Lyzt+/Ywejc7ttO7hf7l6Kx0PcLB6WOp2b68dj2IbJ6dFT9eyAfWHyuHV+cNFKnbQZtg6P7qU8vQ/rI3Rw4UYI7wtwcX3RcyveILt5viv2PFjbmxrCr5M3X6d2PHcd7R3McV1ZN/1i8/M+HS4CPem4YGW/2Wyf6NxH7FHkOq7ENjr1CNZE5yEqx9zGhgZBAtyFPuU4GIZRusjqKvMLjOVxygLLE/EipR9t8y9wuSXvV49eJN3Yfyba+uapT3pxye0ssU5/hepFBYRD7RgBpQOxzTkIpRoR6ipGOYLayL35bl8XBhnHFpskH///dsHXdp/Jvbb1XWILjwjmCUcbhTGggkPEsZICIaYFFGyb2GiL2LUkHg7qle+QfNMIM+E3EbxLfqA4toIagQ3GXAhBHSMdRajmWDoe3Ca/s0V+6/X0oGfD7O/QwOYxXvf0RpJ3aUEpDxJuMYCM3fbGFYQZ5TpKSSYcSMg2LeAtWsiDzuDBpsDfroSNQ8x0sJHifftfCaQ0I4B6DhaMUOYKI7hyASIIs637390GhIRHNmFJvksJWwZ5hcJmmncpgkNr9SAw3GCBqWcYU1QooJB2qafQ1h1BtmIhGybRd2JhwxBzWNhA8S4VGEaZIB6TAiCMmNWDka7nuA4BUgNltqnA26KCevS/50lsnX66bvLd9bB9nJkytpO9SyOOo7GHOAOMCsyAQ6liDHFptONYxWzdHXTb7ogzHnzPxljb/3VPrG1+l+SeotYqeB7QHsIEGeF4NrviwNOSU+spFyV//TCvhFW2J6HYx2lIti1OFDx9R5Ro8+9ppx8aIVpfSDWxdkAQaR2jI7R1mNpqwroMarRc6HPOs17ORd4xeak7/FosbpJ2rnRxzrsr1ZxXwRfD4Zdq5evMMyFnbRvKwWPiaZ2ZOdhafY4xxS4mhjAbAEhhKONSCdfguS5v1o/HVAfJMO3lVNYt+erXuZbX6uHSCq6Ezgui2k3ctWpMDwMd5k8Xt9dU6CkVWmqf1dMdoQwTyCWMYukh4RltAz9pbJRjt7ZZ6lYOfDtXS8uMR91gPAP44CDwAVPwAWKwRH4QJ0qPS+af7GupsRRka4cb/yzRztZuXN7m40rWGgMy089U7JX924yO4ocJS+1ePOrEcdDxB2vILGuyn5OVBoPgqeoHdt4VsiNrM5LAj/oVbdc74i9s7Z3pkU3Ktpm/Kx4M9TYJxgRTMWyCv2b2qWvWgEPpGaMNxHblGJFKA2MIEDZ49VaDwMPHQT7oC6/tYfjT1PJMHeXP21jv8KSrs228Tyh2Yh5zgKHnSaRtpqGEYNQoIyl3qVJQeasuezPzY7O+lfO2Tny9kqIu7KsxxU6cQwOE4g6iUjLMhMepa7WvrBcE0LgKvMH5lOvxRt2mbT8L1gGlox+zrbFNNZ6K1I114bL+CbofPXd5F+YgjhNrwrpR+KKDss732DaepkN/gs6ngzhQyzt7ehaVW/sDnqTLRiQO4uSQy9wcZslQb3CPK/nzgvnL5d9u+nIKuMHsSYfZRRJCGgCwI4CwmZ1hOfSgcBxFdzF71uAhYC3fDzJ6uQVdGcuSjwFw5ae+GNMaHqR6CSIvUPjN2HWxBFL/z+fZsn/eK6T+c/7EIZ/3/vlbZol/4fl620eTpbaPJ2gce670t+IrzT9/K+aD/nPvfaAc/1/G2ZIMW/D1Xmu/drr3W/rmQEczi/5dtn4DoldKI4uIzst4b0A6J9mEaQ85RFv8SqMEBtLaIRcQh2MEsHXrDtsF0/iHevLpaOibYL2horguMFrUZcW3Kszt7GSE5ZV8NeEUQ+za5E262sOQcy6h0vat9UFUSbbiObcb8VXi3XC8yPx4iTcxvgjrszUVnheaGaY30rwDzvnr6+KDr8u7Y02xc2FJXjzBWyviMG7RktcUoMQQSG5DA0AAxogDqjF8c0UWo5lJCejnNb1yk5Ef5PI1gcwi63Znng1DoZMJuY0QHny5Xqdnumv1+KBtpmPXO+dnOVUdk1W09EMeVPyuP475wTqicR2zrQc84dnk1smHtXNOity/Lo+6sn7/3ehclW45qmn53V629waK19Su56VvaJ4Ok43yz4oDCDApiEN4flzCFDdcea6rGWXS4Ry9E8TTkHxXGf8C+3852N8A8ZoDiG8AsYDGoQSDvNhp8xpImUuIgppBj2mg8btAvFBzXIfkUy50MKlOFjZXJ/+C/F+QXyfsutOmb4A8hFq7kFDoUBsDKpdRoaUnuWvze44NfRfkX6oRf04Efx84PxRKQuTXSifL+v8bqlvS3CPNVb5o02IKWEmsqnGcbad4MxN/qUn7UeH3hh2nl6cqP3VixZ9+/loQT4X2wC6dzfXTNxP2P7DA9O4CQI6Ff2+td0U7wyBoxaO2DmxOvFLoWi1N+s96Wjar+vOB6kIFYcW3Lx7z9HjyRlFsTLKpgkCJwR72DFIYYeEgqrXjcgRdhaHmejmLX5Pz5+l+fhxgQ+APiP6QIgIkkyoCWqlJjEvk31AfGPcbK2JtgffVIRhAjYNcLCDTmHmaIxdoCIFRrot+ZDY6KTtPTyAPhiKH8+6GpJR0h+HqAdIuuph23UUdVEmNHEY4Jw42hAuHIQxdj1NglYLJ94SEuwt7rXOH+Q2iTjruIqigVEhNsZXTxYpgJj3IXIow4oQb+r51f72B8R4p32sBx2L9x552veWlSkFQ2Oqp/sjTjQaPhjwIng5zQq3mAPPWcd1mbM1KAwIpql0lBDLKIdRI+wlil2rm2Nxq6x2SXU+v3uaCSY4lkEYyG9cKi2/EsLXxEilr9AHjP+joampbNkWxC76rNv7eR7AYwm4ZfKzwnUbeITbeIS5+M6vbJWjeJZtbkvOm9OivW/QNW2o1bNvd5tz+cVOVEs3XzFRLfHXqRzo9itfstoUJl+Op7fON6wvrZDuPU39mx/IUYGGQDVHYSrq5gLfW+LtNDT7YHonNyDZFYxpSm3Qi7kBDMNWAOciRLvCAowhz3eVuG6Ix/EODMQw2BWM7Hem816vNdPSn9WxTr5ZnWmuvo//7kizrDN50azkNH2x1JhS7QiGIGDEcUwEY1kAQZd2IKwyRzo7OZKKdLezm++ZNfsdEbzAMASSUQG59sMAIeNbnKa4FcV0sHXf11O9bGR57qN0Ch7dYJtDqEmqgPQAwlZy52rpvxgD1oCcJ25HlycXHraHPYMbYZbu0cgkr49UkDvdeDvSmB7QrY0wTmSPNs3B584736+wbIL042Zjsrlyg/o77b3iDkXWRzWqEdHl+4GiEZMrziNWvxbSFsLPcbb1RJD/01JzgsX3NE9+VBfjrFtzGi2R2NxgXEpzfKFPKEZ79wDixQTW1Cfxb17F2TE3/L6/CeUJzmxhAjZSHEYRcEmAc5THkQcOEeYcEf/BVOEQdglTOqrTAhR7XWNu8AjJojCek3NE8fe9VuMnZ0XrE/+lvw618ieI7jOGmiNNl3NNcO1Tml54JoS60vlE5wCApKBS7GENIf6AxzM3gX+bwmy4FC2SQAI4RHsEOdQVVTDtSakq0Qu77LgVPC5d/lCV0IMOCc2jNCcfckxxo40ghXEGIB8jKQdx/jiW02nU9jhyiMLGOiDJXUWMcl7iUCk1+VGXl7UvBG7789qc0g9O3rxNak/cUvHwfVOu5878FI4NyO/Np8n2Lg4DLuTudub3Jj1ymWTIF4EW2yfdO/v63r/8Cg00VQKBIAAA=",DXa.trafficAnalytics="H4sIAAAAAAAEAO1d6W7juJb+PQ30Oxg1wOBeILciUtTWN52Bl9hZ7Cy248TBBQKSomzFsuRoseMM5snmxzzSvMKQWrxFceRUVXelujpdiUUeboeHPN855JH/73/+9+A/n8ZOacr8wPbc3z+Bz9KnEnOpZ9ru4PdPUWj9Q/9UCkLsmtjxXPb7pzkLPv3n4a+/HHRCu8N8Gzv2M/PXaoCfSuF8wmnPWfiphCcTx6Y4jHN5oTabeH74iVdRKh1UsUMjJ85seSY7PHFD5k98FsZJB/ub+UmhyAkjnx0y9x/XHU6TPsZ5NRwMiYd9s2ezGfM7LAz5SILDztCbtZnls2BYicLQc/dKIuliwtzV53rkOB3qs/XUFnOj1ecj0w5Xn5MhdVw8CYZeGKRETyIxONh/rUtJf20qBof9eYl3j7Mv490y41PJDs7Y/PdPoR+xhG+8YCUKbJcFwQV5YDQMOE3TDsKUqES9yOUPfDL3swI1HGKCA/YKKchq5qRdH1uWTcsuduahTYOka4tp5ZM4jpzAs8LPycg/Lzv7mWdWg2nWWG7f4zbKjo2Dw82WDvaT9BVCXvwQEcWyTAhNRVeRDrBBgGqYWJKZRqEGzIN9QbVS6ByPWU7lcfIK2SUOh6Krh1wuvMin7Lf9/ZelFlQLBr0gypi8v+DyKts7cd3vZry8kAleVxcThyUVfgXmVj0nGruv9UxfrZRTT7ETscOL9knj5Lzc3Gt5bjhc+92ZByEbcxnwuYTv3T9Jkqzf66YCLM1EFMkIa9hgSCUUGSqgBBkUH+wn1W5r6Yax0Ult409OY+AeKlCjvEWLSMgyVCwTQJGkQk1GRFVB0cZWfq03Q2SIiUkYQowgwCyiMmhhqiFqajJmhRrg08hWfq03QCUu3ZZBTANARBnBmq4RFeqEIGqoFirSwHXAd+O13zm8Uu4laEmaQoiKAIJY1WVVUSFkfIlJqikVaumcze6TFvI+5bQq3QOJMQXI1FAAQops8IFiSi3d5BlIl4u02mZ8w3d5nfc9O7BDjzdVLGm9Q9hiFtI0wzBkgpgGDWpARcOKpWm6qmCrSFc6fAvmO1+Q9+Hl6OV7ZFnQMKFEdYgUnekKsYAF+G7GhVbXpEI8j8aE+feedZ81dT/hz4Ll785b7yvjK0fmneTTISOZAiwrKlKBSSST9xgYRXp5iQdsyhVezodcsZBUrELTlACSkMQwF0pDoaqsUVNVTMMs2uT9fTa6Nx5zOmHca6ZOGaIqMSlCpoQR0fiEEZOpUNUhKdKJ8nSwaOS+Fvkxdtkpdb1npqwCVZI1AIjBJUbXkaVDWZEhkhWsKYVWaYXv55Tdt8Vu89rn3K2b73CqZanUkA1ECJcDvmSAZQKZaCpVaZG2q56bYsNXPq43bKnM0ihAgGoqUoBCdANCRbIYxYzoSqHt4RLb5sqvXHHDioI0aJmqjhHfxPkUIygZRDIMbGm4EFerXhAuV9C2p5weoHuZUCFthBAFKYaENRXy8VqmxpChS4XUYhf7AxaKFS3ae+MxV+AZloAAVZjxxW5qhsX4Mrc4rsIMW0gt0olmt3cfevfVcvWVj7l6WkIaxgYfrmEimcuTqVlivXNR56PPW+4c5ydYZTVtBT3bQYaf9zfRo6UhrBD+gyQLWQozuCq1OBhRNDFwQt+LHsXziZtgsRfkn/PLL+gLYskUOmZpbZYYQwXwfgLNM76s5wRFAWkyC6Ljv292c68Uo8ksXcwrlO5XsgU0NRVMOfKSTS5ZiGJFh7rM5YxgExAVQLhX6gpkyy2GvRLfE0LGO+CU47rq91ZFrdSfGq25Uu4N7FErpBVv8nw6O2+WXRiNLkkjtMx+Zzh5cqZ1PZhfq89aWvT5vPdwUQ+nj9Hs/M4d35328VUV+nP/sn0ck1Tuj8ddK5QmT+3Tyaj51L54OJrW5mar6s3P9HJlRrrh1YM7aE6qlaOx3HcvyfU069jp0e3IDM8fjq6b1yc3tzewfH3S7Cv+bHI18HqwlZJxtTl/ApWr9LF8d3L+pB6nT7fdZus2/dy13dtqSJ7r53fH3lgLjxTjrvXcu6kMm2MnOhucnjtnzVNlcvd0cdk9lVvWWTqGc0as02Hr+vhJq6LOrcLkh0rt+BpcPAzSqsfoTj3vXcyqdKCnSQ59wHJ5xFVO8kyrwVife/BhMr96vlYrOGzYDn1sPBxBQ7Mc98kYWM7ghNyZwUzyzvu1GYomzceH5sXEHJwY1+H5jX1791S+CFVwfvLs1oadWXVQk2/ck3Z0Wr0xGHvunaeN1btlTy1fyOkApOvThuXfzpzbK+WyfRS00vTI8Cf60dQZK9ERI427xnFZJbddadAdRP3546XbKxuNjuXWz5rBpOkY3X71oq9Pzmau3j4bER+daTeBdDptT+HodDCZtE6v9bF2Wxs9yldEG54GWm3Yjaxn2LAa/bRNO4rw5NIzr3r6sPx0JrlPXnjmkbvOVKtOWpfdSJaeb00jqnTbLWqwftiEpqqORyetWq/Vs55OT5XLTtMiHoXl4FL30mpbN2O7W9cql9bxEzh91h6l6zOjx/XfQzXlieJcVoiFUvrHQQNlbJDRDHS96NHtTYOONGGT1lW38pwWqz3IE/fUbTQe74b9sGE+aRXQHZ6Nqw02p7aqzY/0B4TUsSNHHnwM4HiuyTdpxZ0rPAVKyxxox+cV1UxT++px52IweVZ6tcem5g9vwpNRf2bZweWc42HvdthJCcPjKc9wm/41bFooqsObRtTpjeynSy4BIO2ffj68PWr1a9wIc1p+PWPzWX1yW7VaN67Zn6PjwVSVHjvH6vP88bgNhtdPo/542B0/OsFtWZ0cT5qs7jW7WnDRfmoGtY5vqNcnjvH41CeVKzCeU+usYx0pDyOLg8YzOhq0qvrs8bhzU44wuZE6jY7avq3eRKBv12+VrGP+9EwybmcK7J0Pxmm32o/K1Xz07Gpg4DRHYeU6Mp8orZyEM+25PHRAx9ao7Q1MVNXog3V8Yfcs4OOGpfi2T7xJKzo6886cE3MyCib1qZyt8tbFGLRN6SJtZUyux9i+HUgXkZQmPfjd64tTXpts16vXF9ePpyPfg0H1Cp3p425E4REwb09s/XZElQc9LTQM76DcVJTh2VkvbapxKgW37Pam17luPFxL3almNWry+PRi4oLooaY7DIMuiSqeXIcPl4o8nOARDR9UNzD6Zydj1JOur7TR4KYMW9BXotPzm/GQnZw86pVo1LkKTlkIpHl0pPBVb52fDY35sM1mgXHnKVGn7coD45qmPblsQakfPaqU8yOQbmT1mS86Zj/BwWOX3pbHwV3kM5wSqyC4bhuTRuvCt0Kjn21KsHoWlh9IJ32cZvvZtBWRq4d252n4MINPeht0jx6V/rNsG/Wzq6qORpLbbZj2w6ivmGmRTsukj7pBpynvqo8P4KzzyJVRpdm6YbIxmpx74QANs/1RnbKpVb/qNaSA9kdVEp7dWJSwll3upVUQf9zrjnyAlYdrlhZ7PDtNP/VO+AS35vT2slGb1YlRax3Tk5EB606zFT472GrpnQ5sdI6jYdCVO1F/5l9mWun5xNNA+7h1Vr2sKZfPaao1mLjzTqXp66ClIs1zamoZ39XMs3lbzYS6Q+27cb9fuS237urVp/rg+m4+7p6cNNr2cye8u5r0q3c1RAZ1n3U6ofRoyGdTN5On3uBKruJRNoL5yfx6XPGk8VnYGAb1oKwe1wO10ryok7p7U/cJdR9m5Pz4KLzJ9vXa0ayi+VEFDO96j/Veb8qa8+EztyDrvcnRUSVtZzZsV49POueRN00LtqlbGfeYOgm4gj2eq/Oam0n0ZWX0+BzCjlFvNwZyuW1COuifPk7MIYj8afXpAmnM0Mdeg07cq8GFdF1xGsNZTVYvOneXRzbFV5XzevVC6/Adzr57GDWxqhlMq7Q9ZXJ6Ou2OyONpa3BM6nAWo9LaffpnHX0e7C8AU5bSw74t/HBvwTCO4RYINUk4cge2y3qJ7XOYPsGD/fX0mLTheER412PAl6DnN9sTQJYCk+qy8DAwhjQTEoZlLqkm05CCKARLuHvQYsKh+Ha1wnZ+Cy0uXe/5XkyU4z5eFPlc9cYTz+XwLxAe5EX6Ky7OdQdn6VUPJ6cLO/YzO0S6tKdLkshPEhYUFUxH3LLwfFGbG0ywzztxsL9MXlAuu/gKJ6Q1H2wDRwMGkrErRcceFxIciD8cOWzMk1/18yYDrDo2J2ozGmJ34LBDaS/+ice6mbdWtvDQk+FvHMVUoyD0xvlHNMtCG+0bUNpD0h7k0wFV3sWt/VtwKD4VwvFCSvipbuXnCnmw4GVeZVsYG7PW8WbCfu9wO4ovvsM6dgIm2LqRvlGu5tuOU/Nm7iX2ueHEW3vbWstswbxebjIlxHXb2aXWo6eJn3r8ihapc1vssCxO9/aAfLAfP24Q+CxHdpbJa9SNyDYPub2PVVOSFGIq3AxHuqZCvoFrKjUtmVuEB/sx2VrBJibMSTcQ7X2LKKlifao3h9vCPt9+D+W9+OdgP33eoHnizY4PgdhGsod1CtuNE0V++nEtP/YfJNvCC2dCvMma4tT1UNmLf8S5U5KwQTVgmVGPXgzkMp6H1/PbfJm9tpPLL1bAScjGSsJ8/X3Mj9vbusySQyguMG1mxj6eDdmJKY5c81CWhZY0czOXEp6RraRsDGo/HlXeUNVkqMY3H2qfiS1k62hVtdBoU7JXR8sLdELshzFbkk/5BBsc3EzL46Gax0MtPcaWvjkTG+KU/lUeJmMV7Ck46gXpG6PWNnbsZEXlrDLh2DqMe5cSxQlrdJ0hNr1ZyjGQw7EKDtjnmo9nfBsQPOrY44nDkmLblVfCFlXfK8ko+5fPrIOml9zOOIR7JY5EF4/r40waXU9MPMzZhYZ0HHnXBArMfFLX9m26a4cOS5uRd4CTcbnt/NoJC20oSJCjIHdVkWJ07Ck8TI5kSuJI5mA/TlmfhngoG1wRtVuePy7TYq7hzXI7wolFOYF/CpfKAFPhAj1hgqWTXdh2WMhUXDp+agkEtn3yV5Z8eTr42wtX/so52d/5fvvqBhEfNsiSZlqIEFVCiFmSDgAzEYZUN2TG9BdXVeKCMUY5XGmGL8M4aX3yey8PY+IkLlJjHKa8WtgayXlvkrd9/DVG7TF2avbADoNDLs7rCRvUDd+LJh3G5RmHXIr3OG5bT9mgP2cDvqFM2SUO+Uy4ov7NpI0SfB8O2eFaJ/ZKZUJ8NrXTi2EJSQ57kvGuHRwlkOuFbQZThm03Jv5ixpn8FawzsB2p/zTPvkvzjAIZyBqSqYYwggjqmqFBk1oYEw0DxXrLPAPvNBG+tn2mfLF1Bv9U6yxep/FWluLGlwt3dyvOSOfo29s2b5lxoJBdA4oYcUbeSIGU3lb99hZIATOuoM1a0IgDha0ZUMyYAVIuC1OvJcwzSf5II06wTinEQaWoGVzcCi7IQbC+NL+aPQjz7KgPaA/CwobaF9mDcJfjhQ9kDza7vVLolarlqrAJbe+nUZgZhXD3Q5WvahQub7i9aRMiRlQmy5KhSzrSMTZUg0LK+GeKZEnSttiEy1bebxJC9adJmGcSwtUksawyvVf4pEEUijcU/vf99qA4nEQFTEKeH690cZ2d8MyFwbOe/CVmZE7vAJSS7m3t27uMmJ1tFItIEsYQYkQogqplEF3RTUBkCgyFGrlHSEVsh+TCp5CAPwv6r6n+PEvqe1f9Qiv9hxP+0+Kar2Rhynsfq8NPpcB+ZrFf+D8G4T8FSchp/4Ede+D+/qnJrDDOKEcmFy/KSmReqg6x6zJH0O4vibPi+6IJ8ZCnC1chQWFj52NBAvErZ+hi51/fGHI3hBdgIalqzT124poiYtPz0w1RLmxLLUoKni4e3rs1Cl8U/wfUr+8v26hKVr/KvQR5u8W06flaMOin9+vP9H4588kwh3wl/aUmYsQiiKscHRIFqRgYukwpNCFWdEVTDCNPE51Qzq9OyE3eUIQCcwOSbjJQpCydPpfMp7wrXLEktK+4gxZZhTkoSnAz7VCYFO4gqVw8rxNl0ln1+KedrIjCOne503wPilf+iDY337xXwb4sfynYlz4q2F+y4lVMIP+gboI41pULaCkLdS3sJ/Am5ylr8u3pEH9O7qYm9zJDLEq84Zb54X0PcuEzwzVAFNewSNnNB9GJxi99EC9DnN/0RWi6jKBmUt3AJlItZGhEl4CkSQQYhozQFl/Ey9aK+SS4flls87kwMz2JlQvb3V8TZgqE+ccBTRV9HaC5/bDtJ9D8YYAm0SgwZagCYmHEFy02dYyIqjNVYgpT8atAM34Fw0+MuYIx/7Rz3TWMmeeV+GAYE0k/MebrGBMVPjb9WBjznM2+AF6i/HuhP+FlVmAFXqLCZ6bfFl4u3uTzJqoEgACsQplAHXJ4iXRTApDKRBIv1qGWvAVVLhrZGUyund9Uh9jPDnBQYSsvLhW/s0x8eK+fMj4h0eO/BU5xfIbTbhY+wVzvpqhh+8TGuMnBlKuTY89PWytssyxa42XjzyvVFbvWsbar5O4o++td3DKAHvMztVPYPliMQBT+I4Yg2tnMvy0/2VnsY+G7cYue3yZTzat4q7+rl/BQ4TOPDZHi7eRdxHvRWnH+xLQrukjPVUWCj0nDLzNivJkGUBY+gXg5rpzrSBt7b9zaigZXCmvwnOl6W6N/CRcB3Kt4jvkKL4udASVcf6mtRWostJup/aUkK4XDOxas6b9LkpXCOvCDSfI7ddM7JXl3FdP/QSS5/0KSuW7mmnNTGw8iofNXzRtloSnF+xmLGDdJdH5qF7Rarc+mKcyHlcTNfqy2mt+jt9/OlBaIryGmsYvK7ioyay9OeBs0rsPGF5CxFgevbLuIGcNFAg0FqkhlmrgEpWCLqciSMCAGIcgkeXBxARhrr8THlLIrmeor3N6Qhh0deYI9u3spcg+1xWnz296/quMFLIa/xVvjPeNVhU3xauCihd7jS3PN3Tr2Dudb6v2yTItJuswsBQGLEZMQajJqSRpP02Ge9+vYHgx3692a3tkdqsUfCuict3XIjg7FPH1z0GQD5prpYN4JB5M6tg9mlWnqO+FZ0k4hdV1czRRgc76iXlWc6u4QcGVERTTn+wa0TWvmemD2kx5tyIg3222FtLAbYceZHwmTh5lLXZFya3dUGLdfUOckOgMZAFBoAoyxDsVbnhWTAawgXbyBWccvdYbwCb/S7d1dyTxttBjuO7FpUsd271bsoU6cGXnu6syrKV69z4JYXoKX7uhv79IW+aG3rRdtLkupluBCHkczraSs+8e3VLPqO1fzsPP37jtf2VMKg/GP5RhOvXe7eoTVfIfUD+sR7vpC1+2CzHb2IYsC4mpZfHKxm+d51QBStb/s+U5+wEDGpN1ssvRdKOruiHIX5VjAj/+mDz9VsVQH3A7TGcKQIcswuZVmGhoCOoIAEZCjYuOiiSn2qg8/mY54i49D3sQS4MxfJrwkHnqz88jhAK2BJ2JbzR5zKe+Y761QJo+5huHmu1vydNEN4+ZDwRXHlUWsqFeTxC6Y3mdRC6PvrxFHgqTvO5JElr6vWBJF0hRLNwhSIOQyL2NkUpnqlFuVFCtmrmm5UyzJd3HdQMuzzL53yPSlsSTLbxcISpjbwuL994GgJn5pXxD8+ssXxpZoP+gZ/zeJLVk7p12c3sopJwubjl85tuSPDS75Gu9V0babnT8v/f0wl/4wURCyAKaqqiCAdXE3FwBqMixRXREv6Nty6e/SiX7e+1u99yd/F4r4I/ouNu79aQsHRjXy+dDpfHfLEH5jy1B60zK89AJ7o8Rm0texJQvcFdQKX8r5WDhCfPHS7h4hLf/08of1CH3JHUGtsFfh294RFDP95vVAImHFkg3Z0qiETGYYWJEZIDJSZRnLUNlyPTCRpB1vBsq5iBOlnCtsln/1MJM/Ns7ka2BOffvJ3k/M+cNgThEXZgDJUiQIEaSyATCDjAiPiGxY7HXM2eKrZf4TcK4ATvQ9AE79w75QOu3/+xwDSRXv1HC5L3pa/x7FN3WdCpCqyYZJNWYhii1dJpAQBqhmqYasv/i2wYRlsX5bbylf6yU023G6Lv/E6Wm3343M9R80UlxIVmnC/JJQqbtDdP1nlHhhiK7/8VHiuRvY2pfRvrl/MUmXJA1BhfGdzORgnRoWUSyDQE0W7zPfsn+tNbQzaEeryfHBWnqOpu9+qfWLwnnU94Xz6O+8Ofi+cB5996t931k4j7H7pcHvJJzH+JL4kF2CIIzd79V9iCAI4wuCO3YPgjB2D7n4q4TzGF8SH7KTJO8effgxJPmduumdkry7ivkZzmMsNOWHCeeB2XeTSLvryD8lnkdSTUMlBtWQhlRIMZEtwzINpDFTpcT6ongeCF9h9/cRzyP/DOjZIaBHlTVDk6CuQxMhbABDBRLREDOJzmUo/9bVlwX0AOm9oRzfY0QPkN4JCXcN6QHSOzHa9xvTA6R3xt7+NYN6gLQ7ONw5qgcSSzcQ4DoCUxUbhk6QqvGWFca3AxXkfF3aN4vq4Ursjwjryb0W+pcO6wFSHoj+3o8qVveVwrD8o/mKs3u0uzuKgZTvoPphPcUfJ7wHLL+d94eK7/nmET1Qzhi4O6T8yiE9y6VZIK4HMCgriDKFI22kAR0TLFOgG0yTKbTM3O8kXXHqLzeBt4N7OhPnzwrvgXLezH95eM/S/BRKJJvZZeJi3m+48HEx80eZlBR5nXjZnGKXsmXhVyXj4GTMdfty+6ZzsQxfJq6UEJt2sr03fDxPNvHN7T49PV5oEFnNzkfXtAjnHJ6ymi3MUcq4xc/bXk/apG3hB3HdQrQGgLFXWvuVFl6heVHcdrMsXXml9JJkOUUvp2OZuZvVmlis3EIFSDZlYCELSaqGVcXUIbM0TKGh6PqGxZogvUUnNhfuBvg7aLMJ1wAZIFtvvhPOHVGVP0pmL3lOslfGudlETCHQYfY9dAeX4qIqVxvpF7MdQoVDFsPgm+xmTkzOu8KEKDGzHARsTBz7tW1Sz+TzYBqf63XmAV+In2uOc7A/XTnp28hOpf8Nshvb5agr+Cz27uDNOgWweIPmduy8TrJcoXzDC33P2dLk5mp+my6Z5k1Kjp1zWJ1NgihRdmwcZF650ooUrWav0kfhkK+GZcsLyiRjhVR8yc6AmXxt7hv7UIKghH6TlN+AVrpsZaUymtViPuPrii+LfajwYkAvwd+Q8RtAq8VSmpViHIJxUf7tX8lT8K/TTqnGLBw5YWkhyKUu4xBfQJt/vdB3Y/85qz2uaqXqZJUSGSsaUynCFDGTElMnmq6pmmWqlkRgVnixVtPCSbTea/xdrNWU+tq1w8MTlw7ZgiROWiHpJbryUHD0M/osf5YyyiwnJu5Q356Eh1EgXtqfyOc/f/1l9TFbJpvJa8viRRm+DJZpL2U6L29VI+XlJ71/PedzjasNb5Bbd0qxVJuc6NdfXM5Wrq7E99wn4vDrL/+VrJxJxJcALVEHB0EpnZb7xbSUfsupm6ckn5Ia/mupR9LKXlTzt79nFCvE4r9waIu7GHbIB2Q/s0Wv//b3fy4J/1uMIHv4d58NxF3ZRSe4VAf2wGV+acD4b7EM+GZpstI/SqZXcr2wNPZM25r/+su//du/c4Ph/eXTvvD/uWZIpGlFspp84UZcAxxWufHqTzKSRXJCKhTKdk0otI4twFzMEf/w/wGab9YcM6QAAA==",DXa.vehicleProduction="H4sIAAAAAAAEAO1caW/bSNL+vsD+B8H7ZQbKWDyabHIy7wI6Ldm6qcM2ArzoixJtHhIPXYP8921Sh3VLdjK7gyAKokjs6mZXdVXX81RT+fOf/0ilbtps5Plhj/mB5bk3v6duJEESb8GtfCvcfNqSuIssGjcLEtAANpGpqgqAqoAkXTSJgCFRATGhuNOpjhwWd+qxoUVslmr6Ho1IGN9pWyxrWyi4Ri4Kh54fCxqh5UR24JnhjkDeZyhkyTwzBf7pFxEomiqLKhQFQUgLsiD8mtntMUTuYKeHKimqquqx7F6PojuwXLZlqtUFadWeRzaJbBRPu+bRRPGKGzJ/5LMQHSjTda0wFilHLvUZDYdBw6y4ZLgSavpsYrGpwcLQcgexdWRZERQJ6sv2AgqG2EM+7XEp5m/JSQpYihjEt0bJPaKAt6WMeRAy5/MX/4u7feG24KMp/3rY0Ldc6k2D25LnO8GRfihE21c3a3Kb99zQ9+zgeGsOBezYTd8klhY613ZbsJDtDU7cYSWT95yR5zI3XIrFf13ukcEIEZZaygTxxT/jtxR/jSJsWyRFbBQEqZUz/v+bM6Z+P3ITfmX5aT3IZrStEQ/H+uXXtciOfPwKh1ZwW+HuwVW0FmyjxS+/ft4W/brWaX3hXz4bxLPczChVYIE1cJmfGjD+HodGinDPTP2Wol7K9cKU41HLnCcDhV/Cf7HYFT8+xmZWydvG203mM5cwmg0C5nBzsNhL/4wbebOQhPPKoWx72YlfF7evL31lp13aat/x0x0peXsU7q47jWCr8dGxd9qU3V1m49E7Quqe0NKxtwTgnsDad7lILPF1FcpW4hHIn2/Zpc0CL/LJtq1W1tp849/XGyzfGb31XZOGzZZ60PLA4tvcEFFTBV2gkoAxgFDABAoMUdGUoEk0Udvp05mPktvkg8nO9YqDBkmDjzKDZsMwnubaCHrjh8yT81SDxXq3pT86w9xcgZlxdT4TFq+hFhnWYz6rLhbdzrxGpKoZosim9rgwZs2e1GtF04I3LdDyqxiJamb6RAoCbMJpzh+UkfrYGL9Y1cewM6j57KVa17pKk7r951dDr8PSgFYz2ftirR846cV9Tjdm2X5LaMxA9JA27zJqPv367DpKM2fKpP+Y7Q6qgjOumS9IKxfuPMme10qOm7Vf6plu7oUZxSIcgyEsuKiUFl4HkjhARv1xvJg1OqV7L/siS20pbA964X1aAPna1GxpuGQ9B+qg4k+LOSNsLBb+SM7X6zOraQGhpS9Ghc7MewKP2sM4nX5pTsxamhjT8v3YGOp6kNPz4wFkA0nqkZri2g5Qg7n40qdW73X03Hg2M5Y3m0Xzx77bvRcZcNxAv291rOpdP7p3ugtS69fT1QkTIuN5WH3s1/Uqrj9W/L4zLei+/Nx4glk+xQej7ZeRQvQBeu2NGq/B5M5TrYxbrEXwQXK6s0pkhaW+31Ky4xq5gwVxdDfIC2mVDl7kYcdoCD3vqdvt1p+rpWZ1pnpeKSuUtdYzWVCxGYY4lDHfNkrTl07bHcvyHXeIgZtptMZ1rZqpN/QCKxZRepEPH0NRfjLrd5O+p+WrL4XWs41nlGbl5lMrmr2UXly5pqCImeqzU9QXxnyRLU9yo0WlFFq6nI+y7F5phCLEUlChbqtVrzwZ5Wfa6jVRux8FxoPh3JWaZVe+b92NWYD6Ob1fazTn7dfWLF26Kxdw87nbFvve2IBA6D3Y47RabTaa2j0cRXblhfjPRlbPpCsBzDSwq9pu2h5Ktl7rdYe518l9BfXMmt3MtNFzu5/uqU9Sg0nVtKJPMHVwtJjg1369rvQyuYEyEbN48tB8Zc2RF2iP8NUeyK9GFObc2tB8zYp+dfxSq2qkk6021NqoWRsVm6MsLmbaUt5rSZOCn6dNQs3pKNs2lUlQE1Cp2KtPhWlrMXXmLCiCGUaPtFFo5gF6njkvehp4Y3z/XIADR3moT0qGKY8HnUfhqVLxXieV2aTfwKMwb1eYZJUeHnvmnZwzjWq6kB++hNy9RqNertemxck9y9y9aqDng4o0VwiLgD/1HxcydMdjEOphVM3P1J7vdZWSc19qcZ/p6qWnXlt1zbL+gKGR44M/g5asY/o0KKtmjVRrtKYUWx1vli0y6UFWC6OaE+bv9WpVbeq0mI38oZ3WKsrrArXVVkFuiw5SnwOjbLC69oobYWUW9TPtLsqPe0LGmOXxQ0FdsF7lfu6LD09Gv1bAqNbhO0Uw6NWL0oNYXEgd137J8/VD7WlzZjqzUj1AzahWri7yubrU7PrBlKgDx5Ms2AEPXdjP94eZ4sBkOXSPK31bRHMg6eYgFLSOg5VpWlHylRYb3lm5YeWxTfDk6QFCWKoOc954lCXucNHtVu2XltcdhxWNNeFcw3eB3+9MBHf23Oo7Iwu11Ey1d9dzhjho9StzsQ0hKI2r0XjUNwwpIhN0P5PcotT1ps2h10DiI2qGwyH1srShWZ5fVMvFtNMs3Q+wrw9sxp5DcWw8Rd2Xxt0Q3Kw37K/LD1/X2SlOiMYVSaZCOfhYZbK4Twdhmy077mSDb0hGRFUkHTNANAWYWNQYYgLVEScYDBOi7/TJe3bEN77dSR5Oe2dKbeS+bg+y1MulbMZbfxP3W+JuFXel4qnuG62Otq5T5gpfGKHPEcyB1Ep/YAoQYKRqUGeAEzBsihIlVBQ4F9EVLN1sd/u6M0gClE6pnfciDlvm36D5qRE2yp8SeJf+xNR0SYSmJjITyCbWIdA0EeuawrVXiXBOf+mM/k8M+ZIg6t9ggJNDbCxwUmLPBAWPcwF2ygSM66/KKuYaS4BqEGtU5m5gMkXUmanr50wgXzaB8u0mOBxi3wSHEu8ygYQ0DHUKEIIMaEDUuBdIOiKiKRCIIThnAnDZBMK3m+BwiH0THEq8zwS6phKZihiaIhAEAauCiRniJmEqgTreNcHbl21rHEw+3nVvk633XCbAnLxcnwc4E1h3+k45QGachQAFCZoJAN8PENaRqCimqlEATQR2+jRROIzvn3CPFVP6PZM5quQW02pyurJPPt/03c1zq/LK2203ur2VXpasfr9alQiv62WiiKgEEDahiAGHP4gyYiIBENPEKqJbIXNzsQyWSOX8KBjGUoFnW/T3rZa3csfewh1kxh1VO2wWFm3mxFd2g2qtcCwh7rVt9NN0AhRZQhjrgFAVAyABbMoipydUNdFetzyn/27YZiRELkcqSUXxk/BJlAThE9gLnpuc51OW1Ps+89deY9YOTwzG/xzKdqzQZj0rsHAiaCI7YLtCsZbxEH+YnOtzAcL+78uNwQYeS3UrX25SgbWIr8jql5t//xFy4d+QbQ1cfinP4jIfv3y4cH9k3iT//UcmHvrfe5NLZnZk+1rPJ/l3f7/Y0+TMzrjx1qQWiZbudHi3jUccvV3DLXuT5VIYQ2/a8Ty7Y42OiPElIa+xWGPE3DLf+nzbOoKONi2cJoaWi1aTuqmzKUeXV+1yB7jnA04NTjg1EQgFHHxyDxYBD16efCAVVYUCBRKNadc4tSxxjwZHvLqG/IF1bAmqzIynL98KBznEGx1vaFuD4Yk+OS8MPYe3CbfCGff4YIwB7Yhm3zPMxHeFWSpOvanf4n/0nyH3V4XcAdTeDbmYFl6IuVhkHwBsxZ2sShjLkqzxjAJExoGgCCUFmUDAgk4UfFXcqcu4k75f4AkfCzz5+wceWEaeJH0o9E4w5+PceXt1CxZf1PjUaznCvm9tgTiKNaYARrBqcvCOdKYrpqxgnTIqQoqO9CzORhzBrY/UEqx6glNeHVm7k0+c7tTEdwOtzuHTCZlNlJ2UeUeAxa+vuxe+7rvREV6/syQc/eaQH1xcEYUzah5WAjAxkBSIABUUIiACTUiZcnlFSpYfhL8k67KmeXyj3f4u/HpkkCrCzL5JjkCJzzhNSFnJLn3AEVfbbnx2g8JLa8m3mXrkYOYvxQ3mTyxyfDnqbMCXYMI4VeCuEquyz/ISsTvfi0YGGyEfhcuz5U9HhzNCFC7RPyOWg+yCNbDC4FMqi3F8Urtc7YM1PtR1uZeHyDYix1ke+YR+xI4ILtvX9DHLXTQ+bPmxY+JQu7LnZ+NM7qxmnuzVF0LnSEnoI6EjcG8loixrmqADRYSckaoIIsZTFGVQxR8IHX0vdJT3hM5Bheln6PwMnTP22g+dJWbZi50zCKXMEI3dZdn7sygcwJSS54XnJS4h7XOljpXoOUiTzGHl3ysK8VlUbqGyP5Ej5ljSiXNFxXfjeHSstPd+IJ8djex5ybLj6b0Txh9YJ7Lttjc1mM2B5CpgzmhscPK1fnapZG07yw4ROCg4f4B77wGBDQdQJQ4VJU0QGaQAMQ0jhSNJU5J1jVEVXMG9Y/Qfs2+o/pjsW1L/fvwbz1Mr1P6Tfv9V9PvgjGO3Ij9E/oWwS0ROFXLNGOcIFKmmwgmcSjQIVUgxxkxQVJPuh+upuFOXcfdDsm9Z+Cb63UN2xD7AvpN+ydrV2JGU8AZYTSypSIMAKoQAHSnY1Cl/UxAlTIMiONJzF7By4PTL9cwuFkodO/OKEwnzLRasEVichTgKJK+MGiMeBCzLce0lFH+BAF9tFQawKAtEU5mpAxGZmiDrjFIdAp5TKJHebZXzoH1tlWNE9ztY5QK3udoqKhGhpIuM6boMTCZjhjnc4x7OJFMggvxuq+hXWeUYh/mAVc5EdtYfRM7hIVjSdiHQ1l2vsR9WZEUHukxECjlMkTSkyDrAqoiIoEkKeV+l63r13pvcEl3+t5j0jDbvpwdbSONvxBRqyI2Qbc+LsSCjWw50ZmkuxOra00Qh/sEFpUylGofBUBRF/k5MyTQlQAR6bl5rjz5VIthBEHfJA972bn3gzODJ/K8a+YrCwxVFh936QYwM9gWuqEicqEac0/MxO7OO7SYnnPc8Vj0f3U//vVsl2+rhne58i1b5rhuUvSPOu3PDfS55/n5JKjimW9MLrM2OEVdDrsHCyndgoPIJJKxAGcmaRCkHUQBjCZkKESUoUMxkyMwrTqGW574/LAFVpL8fAb2zPRzvwD/p519FP9WzIddOfjdUQ6PzcbcRO0VDkapSRdcVonEaKismUoEoIR3IkgoEne13OxF82g/MQhX1m1joe91zs2I/Eohc7xZ/IwjJ0d5FxBjLoNFZtIg1BUtUVBHSFQAB1FUoQEllUDMFquriQb8rWckx7Hcdwr04Y5GZfGLYZBAAyJCmYyALsmyaoipi7YBJHZvxyWewjxDQszB+tJl73/NterMfOyEq+UlgJ5/XD1QcjLIms2WGQoeHzoktFX4HFCOd2EglhbNSggRIBAIQMTUTc4qKKcWSqhONXd5Il4+b/KCPsEHtf4xhOFeZhsOfhfP/AnLRzoZZxaUWifni+VjbiJ1CLgIiVJJklWEUP2RDEIEEqkgzRUmXMNl/1vSoV2o/8LNr2oo1HCr3l+CWzXp9Bw89dkj/LYDlzEMbf0Xd5ONlkTMPaRwDBBexwGZRziICwjMX1kUg6oIGGM9YCmEUqwxQCWGCD2rT765MvxMWdHjwsbNrtZS4TjuoQgkiIgNVkAFFQJMJM02NEU2DsqgdPJH37tOIY2cRZ7Rblt/PemIiceXaaTwbQgYxVgSgYglBRUFIRjpfOAGL6nfCn5cy4enovz4dvj3XIh9schWyWo0Q+WVkm/vN69vnPf4pjp0PHEccyU2b4Y4cL7y1/R6HfPw/4fidITomug7Wm/i/xYlfR2SazHesZF2Cda7ncPfQoKnttkQQ2d94tPctile5L8VaN/ziOEJ2x7us/ndUXtSl5OdHF/S/cIj3PfS/YtW/o94Nm2egs6dYW9Bs/fHNLDuAQooxxeflr9tyNiJbkDBWNeTW2KHWRuizkAwft8RiCHK1ZPzMU1I34thEFNT14i1/N/jPf3z9DzSN0qMoSwAA",DXa.websiteAnalytics="H4sIANK8R2gAA+1dWVPjSLZ+n19BVMSNmAnqtrWkpMyeuA8GAzbYYLABw0tFrrZAtoxk2cCN/u9zJC9YsiWbpbqZarqrCrBOpvLk8uXZ+f9/7Ox8u5BDPxhdySB0/cG333e+GZph/Wb8Zn37/vL4KHJF/MzSiUUsypAjFFK6IJRjwRxH0zFBjKTanNK+jNtcSxa6I1keUO9p5PJwmabsuTRcItpZTxWNen4Qk7VGbj/yQl+Nlp/vB5KOZDLAUgW++6dumQ52bN1Cmqbtaqam/auUatCjg26qgW3ayCLQItvgYNB1B3JpemYfGMv9XQ7cUfysNuA9ORv6fuSNoiCZATn438vW9NMKDXvMp4G4cuVEBi05GrmDbjwFhoUSimYgx/As9UTXMCH6tFvq8cijIxhNwxdJ97XBSAbDQI6ST2fvcXn8Aw2egCJe52SsoR8FHAY4/wg+1JZ+gB/ni0ZT6zB7uFittU9PZPyub5oG00gR1xnRENMsQpCQTKO6xQnSibPcpP00TN62H46XP671aTf5/Kla3t+9Pe88Dnft5kUDn11f3Dl2/WLXvt13hhel9rh2d9Jt9MvdCeXBGbkodeoGvW13cPXidjQZGi6u9e5l9cRoNWo8bJUG97x62TjVj7RD1j0XLTxpnl0dDAcdt4r0qCz3j4Le1XGla+6SB3TSuTP3qu3G/f1EHF2rsBn0mq3OLr6ePIdVVr4hV4TdnDw7j88HRutorCYtWKlSeFNtNORN7f7g5tzsa42JMzm3yuMrphtjNmbtgF7QxlnnSjtll7v77cuINIOm37vSbyv1yv5hk189R+jKCW/D46DzULuKgmsD1Q/I7h5+QFwFPRHc31fE9ak1Gusno+aZXa8eVMS+qjw9j9GI7ZrPe5V9eXfT2i21VahHqnt3GprnXXKIRLv5FJbGV52H67OuaUv7qSnMm/Ch547vzepN6+y+G+HwykH+jcNqlxej8+HJnjd+Rt2up7fPw3HgnTnoHrMRdU7aJdVS3cug1D06GZZY+Voc3jw8PrHS5dj0w1ZjiA9OrT07OsZD1rn2naBxPagc+2V2snvMjBvauj70+9rk1qt49YNov6LVrq+PNaca7SG8v/d46IxujccIha3qebt5dlnt4Pt7GXWUrUbk4N67fY565uSi6z2dD7ymRoe7fCz3mhNRY9aw+3g0bNfP67X7x4A1rsa3JVmOGh2OLrqlMj8ah/sn5X2b7DNeNjq1YWl8qZ+e3h11O6jRfx5YRxf94/BUXB9FT+fitDMUDe+s3K9bdwal7OngYd/v355y+ng5IDryn4+PrTNRuxuej7R2M9Lr7rAx7Lj958qdV1NnjNzcXXS0ybnRrLn4UaucRretyd0e6t4pFd25XjjA7nXNrJfbURmdVEjtoKKZvcnD7jny945Ke7t9eita8jroE4XqtfojJsOyaJoRrtz26qp0etgxD2+eqPHQKbWvdtvj1k332Rl3eMTRuSkPJbpt9kYlFXburi5L592mCC8HrSHpHk+qYVm/OONnvbKo7DessDngu9EpHY8Hl+UjLzoW7Xq3Rq1b5GmdcCy43T49G4tJ2BdH3QunuiuOvA69FDI8O2lXrdvH4yg8mlw2b24ub4jXNeyxwYd0UHmuXVa9xn45eK4/nPFuaWC2q+SodO8OLpve2eHjValsjJ/OhxXvnPUvDk+1o7vLx0ds3F33uerIm8Ojw3rvYLdUhs1HUX/cb/Xvm6P7//s2w4w/kq9/TCEEMHZEWxuRribkIAFtuFPiFm3KPDlttoxF7wdE6iCEmNCkIR1kEpvZujS4w5XChm4zfbnJvu9F/cHysNcMPTWuhj8Y9Za6WDysDWbM5BEtBr/26RyaW0/hSPZ/a40CuI2yRDMOuUCaIBgTZhqIOAoT01LUoQphZShO5su0tEizDvR8xq6lvK9VNnG2nmpJrFj3OMMb3J/m9DpfZU0ow7ENhKXkIPQgg4KcYDqMGRpWVMIYclkzilnbhrFCtt6zYMg2NAF/uEk5sqhGKbK4tJjGdA5XtpPPlZnPVSxIbeJqHc2Cq3UPM1zFJG0X3reeL+Yo4tjK1DWHIgKcCYJMJoAp6mic2/l8oXy+LkMQ/jYxtpZowdnap1nW/AgAKIcxy5KWxh0hkbKRgyVBmqV0xC3HIYzaNJ8xK5+xUzn5sRVzuYQLBnMpXsOkZJayMdYNAwtEbJM6SukawkKa2Iazl8+knc/khQQpfABH4ceVCxqGv5nbzS0WbG8mfQ3/VGc6IA21TcNANpPYQAZ2GCgmjgWYWnAqnXz+WzKMNZeNXOfRLXjNI3jVCiNGCVYmQcpCCnRHkxBBQaayLSWwU7CNccE2jvpMBj989WM+xB9D+Dnejhs39vZNX7b69m1etfi2ckyiO6C6ctCsCba50h3bcZRpK1x00ZD8qWmCHhUrk5vmIY9uwXQewWs4ZEzCvpa6QwVCgnOqpG46hOqwHSjSCjjUC+SfeGQ/fszXYhtG86lT7OaTvYppEPRsTddtgG1EdR0rzTAMiU2NaNKhWgHTBbJRedxdjO5HJQpeFP8C3rdqtJiCrahfMxOGolRojGtYKmTAqXdMYdiWo2zGhVl09vUCUWrPjwZc/rjYQvYoIF1wXUDzGl6RNECyAhGLgwmK6BjHUjCGixoRCv+KFK+L75e4Xhn8QsH47UXVyFV+GA23Vn3A9DJv8rFqjzSILuAqd7gwQFDBTBiWpVOhlGFyCWu61KRJR714FHG7YGal+r1UymMV/k3YTc7pC6MpNjP63czqtnjpktQ6e7TWTJmQzo2fYNfSkSlMHUyfSLMdalsCG1I5lBvEwvilxQaz5nR8sdWOJla6/NVZJprPwaKHvSAKezFh6Huu+P2lazBPDP0B9JJWJFfUyPRG6NFgdODJfvxR6vzNpyqhSCtKi7nBDCzCVMOg/OnIhkvetm1YcS41zEzHeZn46QA9F95yIfkI7LBwiuIOsPYdrLXfTUP7bmhamj5vrraZr1U82fMDAZc1tPg3/Jd+U9kbtd2RJ2N5Lj7fv+8o6oUyRXNFvSh1vnK19OXRJa2SKWxIGGQGOV7ODVyP1KAGtwjsNhCIGXFMuD6orTGiQJFZbXjwCMbf6U0Vz0LU/+cLWiRC+b9W29Qpk16eagLPWzJwZTjHvKabup0zE7pWj38L6yACYm7ZsI8YCMCOpETYCnYQkiYYwMWy6XgL1hc6SRH7QLTzxinI3V8LSNlu2yYTk71IzgZVfzzdpK2eP2n7vtd2h6tUcJL4fXJfD4fe06Hrrc7vtyqwEHju4L4iQ/ApTG/yKe9g9Fq9Cz1/Ek9JCxwbsQlhdgRy2U3Oyyp/bfmYz17meOX23aCDiHre00E8k1Is7aH8+SzebfO9RgwdwfUMNzKgOsA3oBdHoGQLuKAEsgtsVuWgG8UgeegHfRq/sQCPpsrClBL209hNGRen6Cq7sCJjCXcgjDZemMTRs7yfJHf71Ku4XTdBdC3z/Cjwo2FLDikIaVM32ffsS1rgG5ped8t9fd8pMxa7m6ZbIpfjZEb/PuyWwZ24ymfLFXLvKf4Xno2CKHUnJMNyRR08g2E1GdQKGoJpdzpa8AANQhh9PG2FoLroEbyPqxP/pi4TRPIoh3P9YcNc6vMjBypcPlvfle7WI04KddK9p9G6CLuTi2HN3d70QY6b4eY+jB5wJbePs2FMGZqV1W7OhjBPoxiAsru+7nZ7M7iFhaciFpDyX7HvBwMZXABZlMiZ2nc4JsmftDjT6lHhT2aizkt3y5pG9urOOkZkE24YGRRKhi9ky96MJfEQOUxDloY1C3whBtGwaYAFAAyaCOIGQCHeKB5q30EsBNEQ/ZWSYc64UCK6ZiZeekC25KSHGAb/Io46SNMl0LrVjfYyx0XXmtAQkg7XJVi+ERiOKDYsO7Yn2djWwCGTbZYWoF6Ep3W2+IXQlDz84L2ZFingFG9z38QDSd82GxXrrC0h1V/dDUd7/mPhXp/R5Gx0C8I4wB6POTUQ0kFslboGdg6NgBWbOkZm9dduKDTd6TgzXXAT3CchK9m75xOcgXjI8Fe30yL6VtpUM7kN5oaTV+FEcpsoWP9YVN1WIZu9aZ3TM4mbCabndio9hFzCRQSovOX1sXLsGxAF5K5upE0nPqaZbbSi0w4TZUoMipIGPkqLMUox4tRUjkU4IMDKCc477Ws9wIvjPn2ayzOMZRM7QLIFNzrRwTQEgWWaiP0gFuVcN5EBLi/w3en2i33lZ3KzQZtZ2/e22swHIOMrdcv1CuGfqFxuxOOsQ/mteJxjl7KkqVOw2ZkYjK9SM6mBdcoIOB+QyZWV3lPr8ViPLVLx3/8eRI7B+MMw+XVX2gKTywlX26Ly3MwC8ZSgSmSBa2Yizgl9WGiogd+fbvogzFoc5jRtf0Gxs76rZuD6wVRG/1ZWsDyJvgl3QGKgfr0V7EM5A8v4ultrmbWE5ON5W/XBfDBvdbph0WKCj+drNaDlg/lqSe4P0vbvLGdTko/nbTWo5YN5a/fcJZ/KOtYSig/gLP++focMGA9rB8LDPqdwhzmOg86o0EEKklRhoYEMA0GEgjGdWSuG2zxxaF2w2EIaSh7+fNFOg5AeRsC+T3QIAmcEOw7D4BCVmkQO5BO8hpfVeL4UN5kFfZV0t26qvoS7twt3WQDKyD4zE1+heLegylG4CTjKJAcfGQHNEbQFwpTiDjVMhB2ETXMrhXsq4Ol/qdtx7dDAEzqT4jJD29ZC8lMs8safbZFv06Art+K3KSF0YDCCuIBCnj+Co6c+8xPU+Z8NnpNNlr3FFi9CUJNDNo1AkHEFIZEUHOzEBjeVTpQpiQU+02IE3cIpnHUJvxVDN7SugaiT3J10cO33aTqk6C8A0RdHw3tx9BRCLn6+63UtzmaDfN+DszmKtEEUhPRDchdJwvfifagLzbFszbYwxMRvxNmp9f6TIm2MsV9Y+4W1U6y1IQwFwpNBYGUSEcjYEYawORghIbPA1jF/DdbmRqGsi0F5K+Zu0cMS7n5B7gdAbjbl4D2QmwHPOeQ6ED9JIFdMxXkBjoLYYUuBg8TSDUeBIrg5pg4lZsBPCrkQ6md/Ae4X4CbCrYDke8tElsUwAnMH0zBWjhEbnXWlpWKFNwLuPCsjH28XmSxvhdvNHczRFnZGUKVeWjr/gty3QW42y+k9kJsOhFhALoTbgn0NKwQVCxCGoHXELKGDegV5SjYEe28l5UINic8JuTHY/uKg+wWzBTCLuMSCQDqsDrYx3VDEkAYzEYV0S1OZZja+OgOzkBG0BLPpFKl8sI3pdko781Sqt0JuupttkPchAidm9sB+Ae9bgDebfPke4J2WCFoBXkgSQTqURGASQrKlxFQXNgWly4QMAMuQaZUrT9b9tMALQ4sDCL5g928Ju1SZHJKiQMI1YucXBG3ZBIIyIRWaGwaxN0i3adhdm5aZj75A/tscNHcWWZxvBeFX9jaH4nNAYpid2ZcvRP4ARM7mfL8Hke0cUdjBkB8DdWvAoYaIpUE0HgRSYceCNBkGCZAbEdkGSfPTInKMxe/G5Dci1ocltBTh2sa7ITuKaYZDiuIL1AuCVW0tLjBDGXZ0pAhn2GYWFOuwDcy4tVpPKC+iYSnjHOTb7DlZxvIp5U6Sm/5WBN+qj2XjxRdofxxor5SxeA9qZ6I656jNISzTERAvTxlUWBGIGQoxrEO9J3Agc2tz/kGM2p/YZmxDrs2XHP33hFyL6QKEaAWhxzYCkwWOv0oNouEklNogG9xyaTm6oIpPgaMuabTjq4UdYgcaJZ63t7vu3tLnFwC/DYALcx1fCcCZ1IE5AOuYSZNoXGEbnHWWTXVHQFVEiJYA3Q9sy1vEo31qofkXB+Avp93WcIyFkjZscANqXEGqqYmhLg5kaUF0sq1r9uucdvP6YsV25KQC2XssyMUdzOVekI4BVb5Mxx8CuYX5tlvWHMoJ/QXThE6lzSC5C5KdqYWVhJwk26BxeUwoL7aVs077TqaVhz4X1EL+bxy8MQXbz1aiCGramRhbCi4qiQRVlEAQoGVAtU4Ru++zSeZ/SomipGhHiuTn1ChSUDRXtylSGrfBmGtCtSasxfnJUJbVgSr3f2WNos1zsDaL6/V1muJf/gCLD+dHIKhiTWD1LdgPGgg8lshkBG6cg9UiqkWTsaDeySm5us2sbKzt8+qjM2+4xexBdjM4t8D4CHGFiAuwHOmEQgk5mElIdDc2np7CIg1FZRp+oZpVv1gxKuZgClXyIKbPJOD7hBrI4PxkUjgISr5BwcSPKUZ1JEGCoV5+wYxfsehTPoOd8qO75pznFRcq2CZFB+vmT3nLV8mqr5JVRSWrEg3gv7lg1ey7l+Kn13DYAXGC+CJ5GXMymZm6qFYs5MP/awqoLonlRiyZ/3vaYg+2xkseaCxwt9znaZQJCOTwy5heBp2I71ATBJiHoq/dQaLJJLgIv4+J9zrTlyYVa//xx38AzAH2S3BrAAA=",__.d.StiWizardDashboardsHelper=DXa}__.l.StiDashboardImages=class{};{class GXa{clone(){return this[Stimulsoft.System.StiObject.stimulsoft]().memberwiseClone()}meta(){return[new StiStringNullOrEmptyMeta("Name"),new StiStringNullOrEmptyMeta("Expression")]}saveToJsonObject(t){return StiMetaHelper.saveToJsonObject(t,this)}loadFromJsonObject(t){StiMetaHelper.loadFromJsonObject(t,this)}loadFromXml(t){StiMetaHelper.loadFromXml(t,this)}static loadFromJson(t){let e=new GXa;return e.loadFromJsonObject(t),e}static loadFromXml(t){let e=new GXa;return e.loadFromXml(t),e}saveToString(){return this.saveToJsonObject(StiJsonSaveMode.Report).serialize()}getStringRepresentation(){if(StiString.isNullOrWhiteSpace(this.name))return Loc.get("FormStyleDesigner","NotSpecified");return StiString.isNullOrWhiteSpace(this.expression)?this.name:this.name+` - `+this.expression}constructor(){this.name="",this.expression=""}}__.g.StiDashboardDrillDownParameter=GXa}__.y.StiDashboardDrillDownParameterConverter=class{},__.y.StiDashboardInteractionConverter=class{},__.y.StiDashboardInteractionCreator=class{static new2(t){switch(t){case"Chart":return new __.g.StiChartDashboardInteraction;case"Table":return new __.g.StiTableDashboardInteraction;case"TableColumn":return new __.g.StiTableColumnDashboardInteraction;case"RegionMap":return new __.g.StiRegionMapDashboardInteraction;case"Text":return new __.g.StiTextDashboardInteraction;case"Image":return new __.g.StiImageDashboardInteraction;case"Gauge":return new __.g.StiGaugeDashboardInteraction;case"Indicator":return new __.g.StiIndicatorDashboardInteraction;case"Shape":return new __.g.StiShapeDashboardInteraction;case"Progress":return new __.g.StiProgressDashboardInteraction;case"OnlineMap":return new __.g.StiOnlineMapDashboardInteraction;case"PivotTable":return new __.g.StiPivotTableDashboardInteraction;case"PivotTableItem":return new __.g.StiPivotTableItemDashboardInteraction;case"PivotTableSummary":return new __.g.StiPivotTableSummaryDashboardInteraction;case"Cards":return new __.g.StiCardsDashboardInteraction;case"Filter":return new __.g.StiFilterDashboardInteraction;case"CardsColumn":return new __.g.StiCardsColumnDashboardInteraction;default:throw new StiTypeNotRecognizedException(t)}}},__.y.StiDashboardInteractionJsonConverter=class{},__.y.StiTableDashboardInteractionConverter=class extends __.y.StiDashboardInteractionConverter{};let StiWebContentElement=__._.StiWebContentElement,StiButtonElement=__.F.StiButtonElement,StiShapeElement=__.aa.StiShapeElement,StiComboBoxElement=__.T.StiComboBoxElement,StiListBoxElement=__.Q.StiListBoxElement,StiTreeViewBoxElement=__.J.StiTreeViewBoxElement,StiTreeViewElement=__.K.StiTreeViewElement,StiDatePickerElement=__.R.StiDatePickerElement,StiTableElement=__.L.StiTableElement,StiCardsElement=__.G.StiCardsElement,StiProgressElement=__.N.StiProgressElement,StiOnlineMapElement=__.P.StiOnlineMapElement,StiRegionMapElement=__.M.StiRegionMapElement,StiImageElement=__.Z.StiImageElement,StiGaugeElement=__.U.StiGaugeElement,StiChartElement=__.I.StiChartElement,StiNumberBoxElement=__.S.StiNumberBoxElement,StiRangeSelectorElement=__.X.StiRangeSelectorElement,StiDashboard=__.e.StiDashboard;{class PXa{}__.m.StiDashboardOptions=PXa,__.m.Services=class{static get elements(){return null==this._elements&&(this._elements=[StiDashboard,StiButtonElement,StiCardsElement,StiGaugeElement,StiImageElement,StiWebContentElement,StiIndicatorElement,StiRegionMapElement,StiOnlineMapElement,StiPanelElement,StiPivotTableElement,StiProgressElement,StiTableElement,StiTextElement,StiShapeElement,StiComboBoxElement,StiListBoxElement,StiTreeViewBoxElement,StiTreeViewElement,StiDatePickerElement,StiNumberBoxElement,StiRangeSelectorElement],Stimulsoft.Report.Chart.StiChartAssembly.isAssemblyLoaded)&&this._elements.push(StiChartElement),this._elements}}}{class QXa{static fetchAll(){return __.m.Services.elements}static load(){Stimulsoft["StiOptions"].Services.components.push(...this.fetchAll())}}(__.m.StiDashboardElementsLoader=QXa).load()}let StiHeatmapArea=Stimulsoft.Report.Chart.StiHeatmapArea,StiDataIndicatorValue=Stimulsoft.Data.Engine.StiDataIndicatorValue,StiDoughnutArea=Stimulsoft.Report.Chart.StiDoughnutArea,IStiClusteredColumnArea=Stimulsoft.Report.Chart.IStiClusteredColumnArea,IStiColumnShape3D=Stimulsoft.Report.Chart.IStiColumnShape3D,IStiClusteredColumnArea3D=Stimulsoft.Report.Chart.IStiClusteredColumnArea3D,IStiAxisArea3D=Stimulsoft.Report.Chart.IStiAxisArea3D,StiPie3dSeries=Stimulsoft.Report.Chart.StiPie3dSeries,StiClusteredBarArea=Stimulsoft.Report.Chart.StiClusteredBarArea,StiConstantLines_StiOrientation=Stimulsoft.Report.Chart.StiConstantLines_StiOrientation,StiLegendVisibility=__.I.StiLegendVisibility,StiPieSeries=Stimulsoft.Report.Chart.StiPieSeries,StiRadarArea=Stimulsoft.Report.Chart.StiRadarArea,StiMarker=Stimulsoft.Report.Chart.StiMarker,IStiGanttArea=Stimulsoft.Report.Chart.IStiGanttArea,StiChartLabelsStyle=__.I.StiChartLabelsStyle,IStiPieSeriesLabels=Stimulsoft.Report.Chart.IStiPieSeriesLabels,IStiOutsidePieLabels=Stimulsoft.Report.Chart.IStiOutsidePieLabels,IStiCenterPieLabels=Stimulsoft.Report.Chart.IStiCenterPieLabels,IStiYRightAxis=Stimulsoft.Report.Chart.IStiYRightAxis,StiXChartAxisTitle=__.I.StiXChartAxisTitle,IStiClusteredBarArea=Stimulsoft.Report.Chart.IStiClusteredBarArea,IStiAllowApplyBrushNegative=Stimulsoft.Report.Chart.IStiAllowApplyBrushNegative,IStiAllowApplyColorNegative=Stimulsoft.Report.Chart.IStiAllowApplyColorNegative,IStiSeriesLabels=Stimulsoft.Report.Chart.IStiSeriesLabels,IStiDoughnutSeries=Stimulsoft.Report.Chart.IStiDoughnutSeries,IStiPictorialSeries=Stimulsoft.Report.Chart.IStiPictorialSeries,IStiAreaSeries3D=Stimulsoft.Report.Chart.IStiAreaSeries3D,IStiParetoSeries=Stimulsoft.Report.Chart.IStiParetoSeries,IStiPieSeries=Stimulsoft.Report.Chart.IStiPieSeries,StiYChartAxis=__.I.StiYChartAxis,StiXChartAxis=__.I.StiXChartAxis,IStiAxisArea=Stimulsoft.Report.Chart.IStiAxisArea,IStiStackedBaseLineSeries=Stimulsoft.Report.Chart.IStiStackedBaseLineSeries,IStiBaseLineSeries=Stimulsoft.Report.Chart.IStiBaseLineSeries,IStiFunnelSeries=Stimulsoft.Report.Chart.IStiFunnelSeries,StiBoxAndWhiskerHelper=Stimulsoft.Report.Chart.StiBoxAndWhiskerHelper,StiShowSeriesLabels=Stimulsoft.Report.Chart.StiShowSeriesLabels,IStiShowZerosSeries=Stimulsoft.Report.Chart.IStiShowZerosSeries,StiShowEmptyCellsAs=Stimulsoft.Report.Chart.StiShowEmptyCellsAs,StiChartHelper=Stimulsoft.Report.Chart.StiChartHelper,IStiFontIconsSeries=Stimulsoft.Report.Chart.IStiFontIconsSeries,IStiRoundValuesArea=Stimulsoft.Report.Chart.IStiRoundValuesArea,StiScatterSeries=Stimulsoft.Report.Chart.StiScatterSeries,IStiScatterArea=Stimulsoft.Report.Chart.IStiScatterArea,StiValueComparer=Stimulsoft.Base.Helpers.StiValueComparer,IStiShowNullsSeriesAs=Stimulsoft.Report.Chart.IStiShowNullsSeriesAs,IStiShowZerosSeriesAs=Stimulsoft.Report.Chart.IStiShowZerosSeriesAs,IStiRangeSeries=Stimulsoft.Report.Chart.IStiRangeSeries,StiHeatmapSeries=Stimulsoft.Report.Chart.StiHeatmapSeries;{class StiChartElementBuilder extends __.i.StiElementBuilder{async render(i,r){this.storedCulture=StiCultureHelper.set(i.report);try{let t=new Stimulsoft.Report.Components["StiChart"];if(t.horSpacing=i.area.horSpacing,t.vertSpacing=i.area.vertSpacing,t.isDashboard=!0,t.page=i.page,t.previousAnimations=i.previousAnimations,t.sortAnimation=i.sortAnimation,i.sortAnimation=!1,StiChartElementBuilder.setStyle(i,t),t.series.clear(),null==r)return t;
|
|
10
|
-
await this.renderElements(i,t,r),await this.renderArea(i,t),await this.renderLegend(i,t),await this.renderSeriesLabels(i,t),await StiChartElementBuilder.renderConstantLines(i,t),StiChartElementBuilder.renderStrips(i,t),this.simplifyValues(t),t.applyStyle(),t.allowApplyStyle=!1;let e=StiDashboardExpressionHelper.getBackColor(i,i.backColor);return Color.transparent.equals(e)||(t.brush=new StiSolidBrush(e)),t}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}async renderElements(u,S,m){let h=S?.report,t=this.getSeriesMeterIndex(m),e=this.getSeriesKeyValues(m,t),r=this.getArgumentMeterIndexes(m),c=this.getArgumentKeys(u,m),l=this.getValueMeters(m),n=e.length;await this.calculateIndicatorValue(u);for(let a of e){let i=-1!=t&&1<n?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(t,this.toString(a)):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),o=new Dictionary;for(let e of c){let t=StiChartElementBuilder.getDetailRows(i,e,r);o.add(e,t)}let e=0;for(let t of l){let r=this.getValueMeterIndexes(m)[e],n=this.renderSeries(u,t,this.toReadableString(a,h),S);if(null==n)continue;await StiChartElementBuilder.renderConditions(this.toString(a),n,u,t),StiChartElementBuilder.renderTrendLines(n,u,t),n.values=StiArray.create(Number,c.length);let l=0;for(let i of c){let t=o.get(i)[Stimulsoft.System.StiObject.stimulsoft]().toList(),e=List.getValueOrFirstOrDefault(t.getArrayItem(r).firstOrDefault());(e?.[Stimulsoft.System.StiObject.stimulsoft]().is(DateTime)||e?.[Stimulsoft.System.StiObject.stimulsoft]().is(TimeSpan))&&(n.core.isDateTimeValues=!0),n.values[l]=t.getArrayItem(r).firstOrDefaultAsNullableNumber(),l++}n.originalArguments=c.slice(),n.arguments=this.proccessSelectArguments(c,u,n,h);let s=n.as(IStiFunnelSeries);if(null!=s){let e=n.values.slice(),i=n.arguments.slice(),r=n.originalArguments.slice(),t=e.map((t,e)=>({value:t,index:e})).sort((t,e)=>(t.value||0)-(e.value||0)).map(t=>t.index);t.reverse(),s.values=t.map(t=>e[t]),s.arguments=t.map(t=>i[t]),s.originalArguments=t.map(t=>r[t])}else if(n.is(IStiParetoSeries)){let i=[],r=[],l=[];for(let e=0;e<n.values.length;e++){let t=n.values[e];if(!(0<t))continue;i.push(t),null!=n.arguments&&e<n.arguments.length?r.push(n.arguments[e]):r.push(e+1),null!=n.originalArguments&&e<n.originalArguments.length?l.push(n.originalArguments[e]):l.push(e+1)}let t=i.map((t,e)=>({value:t,index:e})).sort((t,e)=>(t.value||0)-(e.value||0)).map(t=>t.index);t.reverse(),n.valuesStart=null,n.values=t.map(t=>i[t]),n.arguments=t.map(t=>r[t]),n.originalArguments=t.map(t=>l[t])}e++,await StiChartElementBuilder.processTopNElements(u,n),Stimulsoft.Report.Chart["StiHistogramHelper"].checkValuesAndArguments(n,u.argumentFormat),await this.renderSeriesInteraction(n,u,c.length,this.toString(a))}}StiBoxAndWhiskerHelper.checkArgument(S),StiChartHelper.checkWaterfallTotals(S)}proccessSelectArguments(t,e,l,i){let r=l.as(StiScatterSeries);if(null!=r){let r=[];for(let i=0;i<l.originalArguments.length;i++){let t=l.originalArguments[i],e=null!=t&&0<t.length?t[0]:t;r.push(e)}return r}return t.map(t=>this.getString(e.argumentFormat,t,i))}static async processTopNElements(i,l){if(i.topN.mode==StiDataTopNMode.None)return;let n=[],t=(l.values.length>l.arguments.length?l.values:l.arguments).length;for(let r=0;r<t;r++){let t=r<l.values.length?l.values[r]:null,e=r<l.arguments.length?l.arguments[r]:null,i=r<l.originalArguments.length?l.originalArguments[r]:null;n.push({key:e,key1:i,value:t})}let r=(n=i.topN.mode==StiDataTopNMode.Bottom?n[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>t.value):n[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>t.value)).slice(0,i.topN.count);if(n.length>i.topN.count&&i.topN.showOthers){l.originalTopNValues=n.slice(i.topN.count).map(t=>t.value);let t=n.slice(i.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNumber(t.value)),e=StiString.isNullOrEmpty(i.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(i.topN.othersText,i);r.push({key:e,key1:e,value:t})}i.isBarChart&&r.reverse(),l.originalArguments=r.map(t=>t.key1),l.arguments=r.map(t=>t.key),l.values=r.map(t=>StiValueHelper.tryToNullableNumber(t.value))}static setStyle(t,e){if(t.style!=StiElementStyleIdent.Custom)return void(e.style=StiDashboardStyleHelper.getChartStyle(t));let i=t.report.styles.getCustomChartStyle(t.customStyleName);if(null!=i)return e.style=i,void(e.customStyleName=t.customStyleName);e.style=StiDashboardStyleHelper.getChartStyle2(StiElementStyleIdent.Blue)}static getDetailRows(t,i,r){if(!r.length)return t;return t.filter(e=>{let t=r.map(t=>e[t]);return StiValueComparer.equalValues(t,i)})}renderSeries(t,e,i,r){let l=e,n=StiChartSeriesCreator.neww2(e.seriesType);return StiChartElementBuilder.renderSeriesYAxis(t,l,n),StiChartElementBuilder.renderSeriesLine(l,n),StiChartElementBuilder.renderSeriesShowZeros(l,n),StiChartElementBuilder.renderSeriesShowNulls(l,n),n.coreTitle=this.getSeriesTitle(t,i,e),n.core.seriesColors=null!=t.seriesColors&&0<t.seriesColors.length?t.seriesColors:null,n.isDashboard=!0,this.renderSeriesNegativeColor(t,n,r.series.count),this.renderSeriesParetoColor(t,n,r.series.count),this.renderMarker(t,n),StiChartElementBuilder.renderSeriesLighting(n),StiChartElementBuilder.renderSeriesIcon(t,n),StiChartElementBuilder.renderSeriesPie3d(t,n),n.is(IStiColumnShape3D)&&(n.columnShape=t.columnShape),r.series.add(n),n}static renderSeriesPie3d(t,e){e.is(StiPie3dSeries)&&t.options3D?.[Stimulsoft.System.StiObject.stimulsoft]().is(StiPie3dOptions)&&(e.options3D=t.options3D[Stimulsoft.System.StiObject.stimulsoft]().as(StiPie3dOptions))}static renderSeriesYAxis(t,e,i){e.is(StiValueChartMeter)&&1<t.values.length&&(i.yAxis=e.yAxis)}static renderSeriesLine(r,l){if(null!=r){let t=l.as(IStiBaseLineSeries);if(null!=t)return t.lineStyle=r.lineStyle,void(t.lineWidth=r.lineWidth);let e=l.as(IStiStackedBaseLineSeries),i=(null!=e&&(e.lineStyle=r.lineStyle,e.lineWidth=r.lineWidth),l.as(IStiAreaSeries3D));null!=i&&(i.lineStyle=r.lineStyle,i.lineWidth=r.lineWidth)}}static renderSeriesShowZeros(t,e){let i=e.as(IStiShowZerosSeries);if(null==i)return;i.showZeros=t.showZeros==StiEmptyCellsAs.Zero;let r=e.as(IStiBaseLineSeries);if(null==r)return;t.showZeros==StiEmptyCellsAs.Gap&&(r.showZerosAs=StiShowEmptyCellsAs.Gap),t.showZeros==StiEmptyCellsAs.ConnectPointsWithLine&&(r.showZerosAs=StiShowEmptyCellsAs.ConnectPointsWithLine)}static renderSeriesShowNulls(t,e){let i=e.as(IStiShowNullsSeries);if(null==i)return;i.showNulls=t.showNulls==StiEmptyCellsAs.Zero;let r=e.as(IStiBaseLineSeries);if(null==r)return;t.showNulls==StiEmptyCellsAs.Gap&&(r.showNullsAs=StiShowEmptyCellsAs.Gap),t.showNulls==StiEmptyCellsAs.ConnectPointsWithLine&&(r.showNullsAs=StiShowEmptyCellsAs.ConnectPointsWithLine)}static renderSeriesLighting(t){t.is(IStiPieSeries)&&(t.lighting=!1),t.is(IStiDoughnutSeries)&&(t.lighting=!1)}static renderSeriesIcon(t,e){let i=e.as(IStiFontIconsSeries);null!=i&&(e.is(IStiPictorialSeries)&&null==t.icon?i.icon=Stimulsoft.Report.Helpers.StiFontIcons.QuarterFull:i.icon=t.icon)}renderMarker(t,e){let i,r=null!=e?e.as(IStiBaseLineSeries):null,l=null!=e?e.as(IStiStackedBaseLineSeries):null;null!=r?i=null!=r.marker?r.marker.as(StiMarker):null:null!=l&&(i=null!=l.marker?l.marker.as(StiMarker):null),null!=i&&(i.size=t.marker.size,i.angle=t.marker.angle,i.type=t.marker.type,i.extendedVisible=t.marker.visible)}renderSeriesNegativeColor(t,e,i){if(null==t.negativeSeriesColors||t.negativeSeriesColors.length<=0)return;while(i>=t.negativeSeriesColors.length)i-=t.negativeSeriesColors.length;let r=e.as(IStiAllowApplyBrushNegative),l=(null!=r&&(r.allowApplyBrushNegative=!0,r.brushNegative=new StiSolidBrush(t.negativeSeriesColors[i])),e.as(IStiAllowApplyColorNegative));null!=l&&(l.allowApplyColorNegative=!0,l.lineColorNegative=t.negativeSeriesColors[i])}renderSeriesParetoColor(t,e,i){if(null==t.paretoSeriesColors||t.paretoSeriesColors.length<=0)return;while(i>=t.paretoSeriesColors.length)i-=t.paretoSeriesColors.length;let r=e.as(IStiParetoSeries);null!=r&&(r.allowApplyLineColor=!0,r.lineColor=t.paretoSeriesColors[i])}async renderArea(t,e){let i=StiDashboardExpressionHelper.getBackColor(t,t.backColor);Color.transparent.equals(i)||(e.area.brush=255==i.a?new StiSolidBrush(i):new StiEmptyBrush),(t.isPieChart||t.isPie3dChart||t.isDoughnutChart||t.isFunnelChart||t.isSunburstChart||t.isPictorialStackedChart)&&(e.area.allowApplyStyle=!1,e.area.borderColor=Color.transparent),e.area.colorEach=StiChartElementBuilder.getColorEach(t),e.area.is(IStiRoundValuesArea)&&(e.area.as(IStiRoundValuesArea).roundValues=t.roundValues),await this.renderAxisAxes3d(t,e),await this.renderAxisAxes(t,e),StiChartElementBuilder.renderRadarAxis(t,e),this.renderAreaIndicator(t,e)}static getColorEach(t){return!!(t.isPieChart||t.isPie3dChart||t.isDoughnutChart||t.isPictorialStackedChart)||null!=t.area&&t.area.colorEach}async renderAxisAxes3d(t,e){if(e.series.count<=0)return;let i=e.area.as(IStiClusteredColumnArea3D),r=(null!=i&&(i.sideBySide=t.area.sideBySide),e.area.as(IStiClusteredColumnArea));null!=r&&(r.sideBySide=t.area.sideBySide),await this.renderXAxis3D(t,e),await this.renderYAxis3D(t,e),await this.renderZAxis3D(t,e)}async renderAxisAxes(t,e){if(e.series.count<=0)return;let i=e.area.as(IStiAxisArea);if(null==i)return;StiChartElementBuilder.renderInterlacingHor(t,i),StiChartElementBuilder.renderInterlacingVert(t,i),StiChartElementBuilder.renderGridLinesHor(t,i),StiChartElementBuilder.renderGridLinesVert(t,i),i.reverseHor=t.area.reverseHor,i.reverseVert=t.area.reverseVert,await this.renderXAxis(t,e,!1),await this.renderYAxis(t,e,!1),t.xTopAxis.visible&&await this.renderXAxis(t,e,!0),t.yRightAxis.visible?await this.renderYAxis(t,e,!0):await StiChartElementBuilder.renderYRightAxis(t,e)}static renderInterlacingHor(t,e){t.area.interlacingHor.visible&&!Color.transparent.equals(t.area.interlacingHor.color)&&(e.interlacingHor.interlacedBrush=new StiSolidBrush(t.area.interlacingHor.color)),e.interlacingHor.visible=t.area.interlacingHor.visible}static renderInterlacingVert(t,e){t.area.interlacingVert.visible&&!Color.transparent.equals(t.area.interlacingVert.color)&&(e.interlacingVert.interlacedBrush=new StiSolidBrush(t.area.interlacingVert.color)),e.interlacingVert.visible=t.area.interlacingVert.visible}static renderGridLinesHor(t,e){t.area.gridLinesHor.visible&&!Color.transparent.equals(t.area.gridLinesHor.color)&&(e.gridLinesHor.color=t.area.gridLinesHor.color),e.gridLinesHor.visible=t.area.gridLinesHor.visible,e.gridLinesHor.style=StiPenStyle.Solid}static renderGridLinesVert(t,e){t.area.gridLinesVert.visible&&!Color.transparent.equals(t.area.gridLinesVert.color)&&(e.gridLinesVert.color=t.area.gridLinesVert.color),e.gridLinesVert.visible=t.area.gridLinesVert.visible,e.gridLinesVert.style=StiPenStyle.Solid}async renderXAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(null==i)return;let r=i.xAxis,l=t.xAxis,n=(await StiChartElementBuilder.renderAxis3D(t,r,l),StiDrillDownHelper.isDrillAvailable(t)&&t.drillDownCurrentLevel<t.drillDownLevelCount?t.arguments.slice(t.drillDownCurrentLevel,t.drillDownCurrentLevel+1):t.arguments),s=n.map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct();await StiChartElementBuilder.renderXAxisTitleText3D(t,r,l,s),r.visible=l.visible,l.showEdgeValues==StiAutoBool.Auto&&(r.showEdgeValues=!1)}async renderYAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(null==i)return;let r=i.yAxis,l=t.yAxis,n=(await StiChartElementBuilder.renderAxis3D(t,r,l),(t.dataMode==StiDataMode.ManuallyEnteringData?t.chartValuesList():t.arguments).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct());r.visible=n.length&&l.visible,await StiChartElementBuilder.renderYAxisTitleText3D(t,r,l,n),r.visible=l.visible,null!=t.valueFormat&&(r.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e))}async renderZAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(!i)return;let r=i.zAxis,l=t.xAxis;await StiChartElementBuilder.renderAxis3D(t,r,l)}static async renderXAxisTitleText3D(t,e,i,r){if(!i.title.visible)return;e.title.text=""===i.title.text?r.join(" / "):await StiReportParser.parseAsync(i.title.text,t)}static async renderYAxisTitleText3D(t,e,i,r){if(!i.title.visible)return;e.title.text=""===i.title.text?r.join(" / "):await StiReportParser.parseAsync(i.title.text,t)}async renderXAxis(t,e,i){let r=e.area.as(IStiAxisArea);if(null==r)return;let l=i?r.xTopAxis:r.xAxis,n=i?t.xTopAxis:t.xAxis,s=e.area.is(IStiClusteredBarArea),o=StiDrillDownHelper.isDrillAvailable(t)&&t.drillDownCurrentLevel<t.drillDownLevelCount?t.arguments.slice(t.drillDownCurrentLevel,t.drillDownCurrentLevel+1):t.arguments,a=(s?t.values:o).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct(),u=(await StiChartElementBuilder.renderAxis(t,l,n),l.ticks.visible=0<a.length,l.visible=n.visible,await StiChartElementBuilder.renderXAxisTitleText(t,l,n,a),e.series.list.every(t=>t.is(IStiBaseLineSeries)||t.is(IStiStackedBaseLineSeries))),S=(n.startFromZero==StiAutoBool.Auto&&(l.startFromZero=!u),e.series.list.every(t=>t.core.isDateTimeValues));S&&r.is(StiClusteredBarArea)&&(l.startFromZero=!1),n.showEdgeValues==StiAutoBool.Auto&&(l.showEdgeValues=u),l.labels.placement==StiLabelsPlacement.AutoRotation&&(l.labels.textAlignment=StiHorAlignment.Left),null!=t.valueFormat&&r.is(IStiClusteredBarArea)&&(l.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e)),null!=t.argumentFormat&&r.is(IStiScatterArea)&&(l.labels.formatService=t.argumentFormat),StiChartElementBuilder.renderAxisLineColor(t,l)}async renderYAxis(t,e,i){let r=e.area.as(IStiAxisArea);if(null==r)return;let l=i?r.yRightAxis:r.yAxis,n=i?t.yRightAxis:t.yAxis,s=e.area.is(IStiGanttArea)||e.area.is(IStiClusteredBarArea),o=(s&&t.dataMode!=StiDataMode.ManuallyEnteringData?t.arguments:t.chartValuesList()).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct(),a=(await StiChartElementBuilder.renderAxis(t,l,n),l.visible=o.length&&n.visible,await StiChartElementBuilder.renderYAxisTitleText(t,l,n,o),null==t.valueFormat||r.is(IStiClusteredBarArea)||r.is(StiHeatmapArea)||(l.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e)),e.series.list.every(t=>t.core.isDateTimeValues));a&&(r.yAxis.startFromZero=!1),StiChartElementBuilder.renderAxisLineColor(t,l)}static renderXRadarAxis(t,e){let i=e.area.as(StiRadarArea);if(null==i)return;this.renderXRadarAxisLabels(t,t.area.xAxis.labels,i.xAxis.labels),this.renderAxisRange(i.xAxis.range,t.xAxis),null!=t.valueFormat&&(i.yAxis.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e));let r=StiDashboardStyleHelper.getForeColor(t);this.renderRadarXAxisLabelsColor(t,i.xAxis.labels,t.xAxis,r),i.xAxis.visible=t.xAxis.visible}static renderXRadarAxisLabels(t,e,i){i.font=this.getSmallStyleFont(t,e.font),i.textBefore=e.textBefore,i.textAfter=e.textAfter,i.allowApplyStyle=!1}static renderYRadarAxis(t,e){let i=e.area.as(StiRadarArea);if(null==i)return;this.renderYRadarAxisLabels(t,t.area.yAxis.labels,i.yAxis.labels),this.renderAxisRange(i.yAxis.range,t.yAxis);let r=StiDashboardStyleHelper.getForeColor(t);this.renderRadarYAxisLabelsColor(t,i.yAxis.labels,t.yAxis,r),i.yAxis.visible=t.yAxis.visible}static renderYRadarAxisLabels(t,e,i){i.font=this.getSmallStyleFont(t,e.font),i.textBefore=e.textBefore,i.textAfter=e.textAfter,i.step=e.step,i.angle=e.angle,i.textAlignment=e.textAlignment,i.wordWrap=e.wordWrap,i.width=e.width,i.allowApplyStyle=!1}static renderRadarXAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&e.color!=Color.transparent||(e.color=r)}static renderRadarYAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&e.color!=Color.transparent||(e.color=r)}static checkValueFormat(t,r){let l=t.as(StiNumberFormatService);if(null!=l&&0<(l.state&Stimulsoft.Report.Components.StiTextFormatState.Abbreviation)&&0==(l.state&Stimulsoft.Report.Components.StiTextFormatState.DecimalDigits)){let e=l.clone(),i=null;for(let t=0;t<r.series.count;t++){let e=r.series.getByIndex(t);for(let t of e.values)(null==i||i>t)&&(i=t)}if(null!=i&&0!=i){let t=0;if((i=Math.abs(i))<5){while(Math.round(i)%10==0)i*=10,t++;t+=2}e.useLocalSetting=!1,e.decimalDigits=t}return e}return t}static async renderYRightAxis(t,e){let i=e.area.as(IStiAxisArea);if(null==i)return;await this.renderAxis(t,i.yRightAxis,t.yRightAxis),this.renderAxisLineColor(t,i.yRightAxis)}static async renderXAxisTitleText(t,e,i,r){if(!i.title.visible)return;e.title.text=StiString.isNullOrEmpty(i.title.text)?StiString.join(" / ",r):await StiReportParser.parseAsync(i.title.text,t)}static async renderYAxisTitleText(t,e,i,r){if(!i.title.visible)return;e.title.text=StiString.isNullOrEmpty(i.title.text)?StiString.join(" / ",r):await StiReportParser.parseAsync(i.title.text,t)}static renderAxisLineColor(t,e){if(t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.lineColor))return e.allowApplyStyle=!1,void(e.allowApplyStyle=!1);StiDashboardStyleHelper.isDarkStyle(t.dashboard)&&(e.allowApplyStyle=!1,e.lineColor=StiDashboardStyleHelper.getForeColor(t))}static renderRadarAxis(t,e){if(e.series.count<=0)return;let i=e.area.as(StiRadarArea);if(null==i)return;this.renderXRadarAxis(t,e),this.renderYRadarAxis(t,e)}renderAreaIndicator(t,e){let i=e.area.as(StiDoughnutArea);if(null==i)return;let r=t?.report,l=null==this.indicatorValueValue?"":this.getString(t.valueFormat,this.indicatorValueValue.toString(),r),n=(i.indicator.value.value=l,i.indicator.value.color=t.area.indicator.value.color,t.area.indicator.title.text);i.indicator.title.text=n,i.indicator.title.color=t.area.indicator.title.color,i.indicator.visible=!StiString.isNullOrEmpty(l)||!StiString.isNullOrEmpty(n)}static async renderAxis3D(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t);this.renderAxisTitle3D(t,e,i,r),await this.renderAxisLabels3D(t,e,i),this.renderAxisLabelsColor3D(t,e,i,r)}static renderAxisTitle3D(t,e,i,r){let l=this.getTitleAxisChart(i),n=e.title;n.font=this.getStyleFont(t,l.font),StiChartElementBuilder.renderAxisLabelsTitleColor3D(t,n,l,r),l instanceof StiXChartAxisTitle&&(n.direction=l.direction),l instanceof StiYChartAxisTitle&&(n.direction=l.direction)}static async renderAxis(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t);this.renderAxisTitle(t,e,i,r),await this.renderAxisLabels(t,e,i),this.renderAxisStartFromZero(e,i),this.renderAxisShowEdgeValues(e,i),this.renderAxisRange(e.range,i),this.renderAxisLabelsColor(t,e,i,r)}static renderAxisTitle(t,e,i,r){let l=this.getTitleAxisChart(i),n=e.title;n.alignment=l.alignment,n.position=l.position,n.font=this.getStyleFont(t,l.font),this.renderAxisLabelsTitleColor(t,n,l,r),l.is(StiXChartAxisTitle)&&(n.direction=l.direction),l.is(StiYChartAxisTitle)&&(n.direction=l.direction)}static async renderAxisLabels3D(t,e,i){e.labels.angle=i.labels.angle,e.labels.textAfter=await StiReportParser.parseAsync(i.labels.textAfter,t),e.labels.textBefore=await StiReportParser.parseAsync(i.labels.textBefore,t),e.labels.font=StiChartElementBuilder.getSmallStyleFont(t,i.labels.font),e.labels.width=i.labels.width,e.labels.wordWrap=i.labels.wordWrap}static async renderAxisLabels(t,e,i){e.labels.angle=i.labels.angle,e.is(IStiYRightAxis)&&t.isParetoChart||(e.labels.textAfter=await StiReportParser.parseAsync(i.labels.textAfter,t)),e.labels.textAlignment=i.labels.textAlignment,e.labels.textBefore=await StiReportParser.parseAsync(i.labels.textBefore,t),e.labels.font=StiChartElementBuilder.getSmallStyleFont(t,i.labels.font),e.labels.placement=i.labels.placement,e.labels.step=i.labels.step,e.labels.wordWrap=i.labels.wordWrap,e.labels.width=i.labels.width}static renderAxisStartFromZero(e,i){if(i.is(StiXChartAxis)){let t=i;null!=t&&t.startFromZero!=StiAutoBool.Auto&&(e.startFromZero=t.startFromZero!=StiAutoBool.False)}if(i.is(StiYChartAxis)){let t=i;null!=t&&(e.startFromZero=t.startFromZero)}}static renderAxisShowEdgeValues(e,i){if(i.is(StiXChartAxis)){let t=i;null!=t&&t.showEdgeValues!=StiAutoBool.Auto&&(e.showEdgeValues=t.showEdgeValues!=StiAutoBool.False)}}static renderAxisRange(t,e){e[Stimulsoft.System.StiObject.stimulsoft]().getType()!=StiXChartAxis&&e[Stimulsoft.System.StiObject.stimulsoft]().getType()!=StiYChartAxis||(t.auto=e.range.auto,t.maximum=e.range.maximum,t.minimum=e.range.minimum)}static renderAxisLabelsTitleColor(t,e,i,r){if(!Color.transparent.equals(i.color))return void(e.color=i.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.color)||(e.color=r)}static renderAxisLabelsTitleColor3D(t,e,i,r){if(!Color.transparent.equals(i.color))return void(e.color=i.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.color)||(e.color=r)}static renderAxisLabelsColor3D(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.labels.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.labels.color)||(e.labels.color=r)}static renderAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.labels.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.labels.color)||(e.labels.color=r)}static getTitleAxisChart(t){if(t.is(StiXChartAxis))return t.title;if(t.is(StiYChartAxis))return t.title;return null}async renderLegend(t,e){e.legend.horAlignment=StiChartElementBuilder.getChartLegendHotAlignment(t),e.legend.vertAlignment=StiChartElementBuilder.getChartLegendVertAlignment(t),e.legend.title=await StiReportParser.parseAsync(t.legend.title.text,t),e.legend.titleFont=StiChartElementBuilder.getStyleFont(t,t.legend.title.font),e.legend.allowApplyStyle=!1,e.legend.font=StiChartElementBuilder.getSmallStyleFont(t,t.legend.labels.font),e.legend.visible=StiChartElementBuilder.getChartLegendVisible(t,e),e.legend.columns=t.legend.columns,e.legend.direction=t.legend.direction;let i=StiDashboardStyleHelper.getForeColor(t);StiChartElementBuilder.renderLegendTitleColor(t,e,i),StiChartElementBuilder.renderLegendLabelsColor(t,e,i)}static getChartLegendHotAlignment(t){if(t.isHeatmapChart)return StiLegendHorAlignment.RightOutside;return t.legend.horAlignment}static getChartLegendVertAlignment(t){if(t.isHeatmapChart)return StiLegendVertAlignment.Center;return t.legend.vertAlignment}static getChartLegendVisible(t,e){if(1==e.series.count&&!e.series.getByIndex(0).is(StiPieSeries)&&!e.series.getByIndex(0).is(StiHeatmapSeries))return t.legend.visibility==StiLegendVisibility.Always;return t.legend.visibility!=StiLegendVisibility.False}static renderLegendTitleColor(t,e,i){if(!Color.transparent.equals(t.legend.title.color))return void(e.legend.titleColor=t.legend.title.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.legend.titleColor)||(e.legend.titleColor=i)}static renderSeriesLabelsLegendValueType(t,e){let i=0;e.series.list.filter(t=>null!=t.arguments).forEach(t=>{i+=t.arguments.filter(t=>null!=t).length}),null==t.legend.labels.valueType?0<i&&1<e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitleArgument:1==i&&1==e.series.count&&(t.isPieChart||t.isPie3dChart||t.isDoughnutChart)?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitle:0<i&&1==e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.Argument:0==i&&1<e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitle:e.seriesLabels.legendValueType=t.isBubbleChart?StiSeriesLabelsValueType.Weight:StiSeriesLabelsValueType.Value:e.seriesLabels.legendValueType=t.legend.labels.valueType}static renderLegendLabelsColor(t,e,i){if(!Color.transparent.equals(t.legend.labels.color))return void(e.legend.labelsColor=t.legend.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.legend.labelsColor)||(e.legend.labelsColor=i)}static async renderConditions(t,e,i,r){let l=null!=i.chartConditions?i.chartConditions.filter(t=>t.keyValueMeter==r.key):null,n=(null!=l&&await this.renderValueConditions(i,e,l),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.EndValue):null),s=(null!=n&&await this.renderEndValueConditions(i,e,n),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.Argument):null),o=(null!=s&&await this.renderArgumentConditions(i,e,s),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.Series):null);null!=o&&await this.renderSeriesConditions(i,e,o,t)}static async renderValueConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Value,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderEndValueConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.ValueEnd,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderArgumentConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Argument,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderSeriesConditions(i,r,t,l){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;this.getConditionResult(t?.toString(),l,e.condition)&&(r.legendColor=e.color,r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Argument,Stimulsoft.Report.Components.StiFilterDataType.String,Stimulsoft.Report.Components.StiFilterCondition.BeginningWith,"",e.markerType,e.markerAngle)))}}static getConditionResult(i,r,e){let t=!1;if(null!=r){let t=r;if(null!=t&&null!=i){r[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(r=r.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=r);try{switch(e){case Stimulsoft.Report.Components.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case Stimulsoft.Report.Components.StiFilterCondition.Containing:{let t=r.toString(),e=i.toString();return-1!=t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.NotContaining:{let t=r.toString(),e=i.toString();return-1==t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.BeginningWith:{let t=r.toString(),e=i.toString();return t.startsWith(e)}case Stimulsoft.Report.Components.StiFilterCondition.EndingWith:{let t=r.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}static async renderConstantLines(r,l){for(let i of r.constantLines){let t=!StiString.isNullOrEmpty(i.text),e=new Stimulsoft.Report.Chart["StiConstantLines"];e.allowApplyStyle=!1,e.text=i.text,e.axisValue=await StiReportParser.parseAsync(i.axisValue,r),e.lineColor=i.lineColor,e.lineStyle=i.lineStyle,e.lineWidth=i.lineWidth,e.titleVisible=t,e.orientation=r.isBarChart?StiConstantLines_StiOrientation.Vertical:StiConstantLines_StiOrientation.Horizontal,e.position=i.position,l.constantLines.add(e)}}static renderStrips(t,i){if(!t.strips||0===t.strips.length)return;i.strips.clear();for(let e of t.strips){let t=new Stimulsoft.Report.Chart["StiStrips"];t.allowApplyStyle=!1,t.text=e.text,t.minValue=e.minValue,t.maxValue=e.maxValue,t.titleColor=e.titleColor,t.stripBrush=e.stripBrush,t.orientation=e.orientation,i.strips.add(t)}}static renderTrendLines(e,t,i){let r=t.trendLines?.filter(t=>t.keyValueMeter==i.key);e.trendLines.clear();for(let t of r)e.trendLines.add(this.getTrendLine(t,e.chart))}static getTrendLine(e,i){switch(e.type){case StiChartTrendLineType.None:return new Stimulsoft.Report.Chart["StiTrendLineNone"];case StiChartTrendLineType.Exponential:{let t=new Stimulsoft.Report.Chart["StiTrendLineExponential"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}case StiChartTrendLineType.Linear:{let t=new Stimulsoft.Report.Chart["StiTrendLineLinear"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}case StiChartTrendLineType.Logarithmic:{let t=new Stimulsoft.Report.Chart["StiTrendLineLogarithmic"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}}}async renderSeriesLabels(e,i){if(!(e.isPieChart||e.isPie3dChart||e.isFunnelChart||e.isPictorialStackedChart||e.isDoughnutChart||e.isTreemapChart||e.isAxisAreaChart||e.isSunburstChart||e.isRadarChart||e.isWaterfallChart||e.isAxisAreaChart3D||e.isLineChart3D))return void(i.seriesLabels.visible=!1);if(i.allowApplyStyle=!1,e.isPieChart?StiChartElementBuilder.renderPieLabelsPosition(e,i):e.isPie3dChart?StiChartElementBuilder.renderPie3dLabelsPosition(e,i):e.isDoughnutChart||e.isSunburstChart?StiChartElementBuilder.renderDoughnutLabelsPosition(e,i):e.isFunnelChart?StiChartElementBuilder.renderFunnelLabelsPosition(e,i):e.isPictorialStackedChart?StiChartElementBuilder.renderPictorialStackedLabelsPosition(e,i):e.isTreemapChart?StiChartElementBuilder.renderTreemapLabelsPosition(e,i):e.isHeatmapChart?StiChartElementBuilder.renderHeatmapLabelsPosition(e,i):e.isWaterfallChart?StiChartElementBuilder.renderWaterfallLabelsPosition(e,i):e.isStackedChart?StiChartElementBuilder.renderStackedLabelsPosition(e,i):e.isRadarChart?StiChartElementBuilder.renderRadarLabelsPosition(e,i):e.isAxisAreaChart?StiChartElementBuilder.renderAxisLabelsPosition(e,i):e.isAxisAreaChart3D?StiChartElementBuilder.renderClusteredColumn3DLabelsPosition(e,i):e.isLineChart3D&&this.renderLine3DLabelsPosition(e,i),i.seriesLabels.core.applyStyle(i.style),await StiChartElementBuilder.applyPropertiesToSeriesLabels(e,i.seriesLabels.as(IStiSeriesLabels)),e.isStackedChart)for(let t of i.series.list)t.seriesLabels.as(IStiSeriesLabels).core.applyStyle(i.style),await StiChartElementBuilder.applyPropertiesToSeriesLabels(e,t.seriesLabels.as(IStiSeriesLabels));e.isPieChart||e.isPie3dChart||e.isDoughnutChart||e.isSunburstChart?(StiChartElementBuilder.renderPieLabelsStyle(e,i),StiChartElementBuilder.renderPieLabelsAutoRotate(e,i),StiChartElementBuilder.renderSeriesLabelsLegendValueType(e,i)):e.isFullStackedChart?(StiChartElementBuilder.renderLabelsStyle(e,i),i.seriesLabels.showInPercent=!0):StiChartElementBuilder.renderLabelsStyle(e,i),StiChartElementBuilder.renderLabelsColor(e,i),StiChartElementBuilder.renderLabelsTextFormat(e,i),StiChartElementBuilder.renderLabelsShowZeros(i),StiChartElementBuilder.renderLabelsShowNulls(i)}static renderLabelsShowZeros(r){for(let i of r.series.list){let t=i.as(IStiShowZerosSeriesAs);if(null!=t)return void(r.seriesLabels.showZeros=t.showZerosAs==StiShowEmptyCellsAs.Zero);let e=i.as(IStiShowZerosSeries);if(null!=e)return void(r.seriesLabels.showZeros=e.showZeros)}}static renderLabelsShowNulls(r){for(let i of r.series.list){let t=i.as(IStiShowNullsSeriesAs);if(null!=t)return void(r.seriesLabels.showNulls=t.showNullsAs==StiShowEmptyCellsAs.Zero);let e=i.as(IStiShowNullsSeries);if(null!=e)return void(r.seriesLabels.showNulls=e.showNulls)}}static async applyPropertiesToSeriesLabels(t,e){e.preventIntersection=t.isAxisAreaChart,e.textAfter=await StiReportParser.parseAsync(t.labels.textAfter,t),e.textBefore=await StiReportParser.parseAsync(t.labels.textBefore,t),e.font=StiChartElementBuilder.getSmallStyleFont(t,t.labels.font),e.showNulls=!1,e.showZeros=!1,e.width=t.labels.width,e.wordWrap=t.labels.wordWrap}static renderPieLabelsAutoRotate(t,e){let i=e.seriesLabels.as(IStiCenterPieLabels);null!=i&&(i.autoRotate=t.labels.autoRotate)}static renderLabelsColor(t,e){let i=e.seriesLabels.as(IStiSeriesLabels),r=e.seriesLabels.as(IStiOutsidePieLabels);Color.transparent.equals(t.labels.foreColor)?(i.labelColor=Color.gray,i.labelColor=StiDashboardStyleHelper.isDarkStyle2(t.style)?Color.fromArgb2(50,50,50):null!=e?.style?.core?e.style.core.seriesLabelsColor:Color.gray,null!=r&&(r.lineColor=null!=e?.style?.core?e.style.core.seriesLabelsLineColor:Color.gray)):(i.labelColor=t.labels.foreColor,null!=r&&(r.lineColor=t.labels.foreColor))}static renderLabelsTextFormat(t,e){e.seriesLabels.formatService=t.valueFormat}static renderFunnelLabelsPosition(t,e){switch(t.labels.funnelPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideLeftFunnelLabels"];break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterFunnelLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideRightFunnelLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPictorialStackedLabelsPosition(t,e){switch(t.labels.pictorialStackedPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideLeftPictorialStackedLabels"];break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPictorialStackedLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideRightPictorialStackedLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderTreemapLabelsPosition(t,e){switch(t.labels.treemapPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterTreemapLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderHeatmapLabelsPosition(t,e){switch(t.labels.heatmapPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterHeatmapLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPieLabelsPosition(t,e){switch(t.labels.piePosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPieLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndPieLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsidePieLabels"];break;case StiChartLabelsPosition.TwoColumns:e.seriesLabels=new Stimulsoft.Report.Chart["StiTwoColumnsPieLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPie3dLabelsPosition(t,e){switch(t.labels.pie3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPie3dLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndPie3dLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderStackedLabelsPosition(l,t){switch(l.labels.axisPosition){case StiChartLabelsPosition.Total:{let i=[],r=new Hashtable;for(let e of t.series.list){let t=r.get(e[Stimulsoft.System.StiObject.stimulsoft]().getType());null==t&&(t=[],i.push(t),r.add(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),t)),t.push(e)}for(let t of i){let e=t[t.length-1];t.filter(t=>t!=e).forEach(t=>{t.showSeriesLabels=StiShowSeriesLabels.FromSeries,t.seriesLabels.visible=!1}),e.showSeriesLabels=StiShowSeriesLabels.FromSeries,e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"],e.isTotalLabel=!0,e.seriesLabels.formatService=l.valueFormat}break}default:StiChartElementBuilder.renderAxisLabelsPosition(l,t);break}}static renderRadarLabelsPosition(t,e){switch(t.labels.radarPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderWaterfallLabelsPosition(t,e){switch(t.labels.axisPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;case StiChartLabelsPosition.InsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideBaseAxisLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndAxisLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels"];break;case StiChartLabelsPosition.OutsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideBaseAxisLabels"];break;case StiChartLabelsPosition.OutsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideEndAxisLabels"];break;case StiChartLabelsPosition.Value:e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderAxisLabelsPosition(t,e){switch(t.labels.axisPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;case StiChartLabelsPosition.InsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideBaseAxisLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndAxisLabels"];break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiLeftAxisLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels"];break;case StiChartLabelsPosition.OutsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideBaseAxisLabels"];break;case StiChartLabelsPosition.OutsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideEndAxisLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiRightAxisLabels"];break;case StiChartLabelsPosition.Value:e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderClusteredColumn3DLabelsPosition(t,e){switch(t.labels.clusteredColumn3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels3D"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels3D"];break;default:e.seriesLabels.visible=!1;break}}renderLine3DLabelsPosition(t,e){switch(t.labels.line3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels3D"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels3D"];break;default:e.seriesLabels.visible=!1;break}}static renderDoughnutLabelsPosition(t,e){switch(t.labels.doughnutPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPieLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsidePieLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPieLabelsStyle(t,e){let i=e.seriesLabels.as(IStiPieSeriesLabels);switch(t.labels.style){case StiChartLabelsStyle.PercentOfTotal:i.showInPercent=!0,i.valueType=StiSeriesLabelsValueType.Value;break;case StiChartLabelsStyle.Category:i.showInPercent=!1,i.valueType=t.arguments.length?StiSeriesLabelsValueType.Argument:StiSeriesLabelsValueType.SeriesTitle;break;case StiChartLabelsStyle.CategoryPercentOfTotal:i.showInPercent=!0,i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.CategoryValue:i.showInPercent=!1,i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.Value:i.showInPercent=!1,i.valueType=StiSeriesLabelsValueType.Value;break}}static renderLabelsStyle(t,e){let i=e.seriesLabels;switch(t.labels.style){case StiChartLabelsStyle.PercentOfTotal:i.valueType=StiSeriesLabelsValueType.Value;break;case StiChartLabelsStyle.Category:i.valueType=t.arguments.length?StiSeriesLabelsValueType.Argument:StiSeriesLabelsValueType.SeriesTitle;break;case StiChartLabelsStyle.CategoryPercentOfTotal:i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.CategoryValue:i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.Value:i.valueType=StiSeriesLabelsValueType.Value;break}}async renderSeriesInteraction(l,n,t,i){if(l.chart.isDesigning)return;let r=n?.report,s=0,e=n.dashboardInteraction;if(e.onHover==StiInteractionOnHover.ShowToolTip){l.toolTips=StiArray.create(String,t);for(let e of l.arguments){let t="";s<l.values.length&&null!=l.values[s]&&(t=l.values[s].toString()),l.toolTips[s]=await this.getToolTip(l.chart.style,n,null,n.dashboardInteraction.toolTip,this.getString(n.argumentFormat,e,r),this.getString(n.valueFormat,t,r),"",i),s++}}s=0,l.hyperlinks=StiArray.create(String,t);for(let r of l.arguments){let t="",e="",i=(s<l.values.length&&null!=l.values[s]&&(t=l.values[s].toString()),l.as(IStiRangeSeries));null!=i&&s<i.valuesEnd.length&&(e=i.valuesEnd[s]?.toString()),s<l.hyperlinks.length&&(l.hyperlinks[s]=await this.getHyperlink(n,l,n.dashboardInteraction.hyperlink,r?.toString(),t,e,l.titleValue,s)),s++}l.drillDownEnabled=!0}async getToolTip(i,t,e,r,l,n,s,o){if(null==l&&(l=""),null==o&&(o=""),StiString.isNullOrWhiteSpace(r)){null==l||StiString.isNullOrEmpty(l)||(l=l.split('"').join('\\"'));let t='"StiColor":"{0}","StiValue":"{1}","StiArgument":"{2}"{3}',e=await this.getToolTipStyle(i);return"{"+StiString.format(t,"#ffffff",n,l,e)+"}"}return this.getHyperlink(t,e,r,l,n,s,o,0)}async getToolTipStyle(t){let e=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBrush(t.core.toolTipBrush),i=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBrush(t.core.toolTipTextBrush),r=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBorder2(t.core.toolTipBorder),l=t.core.toolTipCornerRadius.toString();return`,"StiToolTipCornerRadius":"${l}","StiToolTipBrush":"${e}","StiToolTipTextBrush":"${i}","StiToolTipBorder":"${r}"`}async getHyperlink(l,t,e,i,r,n,s,o){null==i&&(i=""),null==s&&(s="");let a=new Hashtable,u=(a.add("Argument",i),a.add("Value",r),a.add("EndValue ",n),a.add("Series",s),t?.originalArguments[o]);if(StiArray.isArray(u)&&1<u.length){let r=0;u.forEach(t=>{let e=l.arguments[r],i=`Argument_`+this.getIdentFromArgument(e,r+1);a.containsKey(i)||a.add(i,t),r++})}return StiReportParser.parseAsync(e,l,!1,a)}getIdentFromArgument(t,e){if(!StiString.isNullOrWhiteSpace(t.label))return StiNameValidator.correctName(t.label);let i=StiExpressionHelper.getFirstArgumentFromExpression(t.expression),r=i.indexOf(".");if(-1!=r&&(i=i.substr(r+1)),!StiString.isNullOrEmpty(i))return i;return e.toString()}getTitle(t){return StiLabelHelper.getLabel(t)}getSeriesTitle(t,e,i){if(t.values.length<2)return e;let r=StiLabelHelper.getLabel(i),l=StiString.isNullOrWhiteSpace(r)?null:r;if(null==l)return e;return StiString.isNullOrWhiteSpace(e)?l:e+` - `+l}getArgumentIndex(t,e){let i=this.getArgumentMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}simplifyValues(t){let e=0;while(e<t.series.count){let i=t.series.getByIndex(e);if(800<i.values.length){let e=this.getShorterListPoints(i);i.values=[],i.arguments=[];for(let t=0;t<e.length;t++)i.values[t]=e[t].x,i.arguments[t]=e[t].y}e++}}getShorterListPoints(e){let i=[];for(let t=0;t<e.values.length;t++)i[t]=new Point(e.values[t],t);let r=[.3,.6,1,5,9,15,20,25,30,40],l=null,n=null;for(let t=0;t<r.length;t++){if((l=Stimulsoft.Report.Chart["StiSimplifyHelper"].simplify(i,t,!0)).length/i.length<.02&&l.length<900&&null!=n){l=n;break}n=l}return l}getString(i,r,l){if(null==r)return"";if(StiArray.isArray(r)){let e=[];for(let t of r)e.push(this.getFormatValue(i,t,l));return StiString.join(" - ",e)}return this.getFormatValue(i,r,l)}getFormatValue(t,e,i){if(null==e)return"";if(e instanceof DateTime)return t.is2(StiDateFormatService)||t.is2(StiTimeFormatService)||t.is2(StiCustomFormatService)?t.format(e):e.toShortDateString();let r=i?.getParsedCulture();if(StiExtValueConverter.isEligable(e,r))return StiExtValueConverter.convert(e,r);if(null!=t)return t.format(e);return e.toString()}async calculateIndicatorValue(i){if(null==i.indicatorValue||null!=i.indicatorValue&&StiString.isNullOrEmpty(i.indicatorValue.expression))return;let r=StiElementDataCache.getKey(i);if(StiDataIndicatorValue.existsInCache(r))this.indicatorValueValue=StiDataIndicatorValue.getFromCache(r);else{let t=i.clone(!0),e=(t.values=[],t.arguments=[],await StiElementDataCache.getOrCreate(t));null!=e&&(this.indicatorValueValue=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(0).tryCastToNullableNumber().sum(),StiDataIndicatorValue.addToCache(r,this.indicatorValueValue))}}static create(t){if(t.isSunburstChart)return new __.i.StiSunburstChartElementBuilder;if(t.isHeatmapChart)return new __.i.StiHeatmapChartElementBuilder;if(t.isBubbleChart)return new __.i.StiBubbleChartElementBuilder;if(t.isRange)return new __.i.StiRangeChartElementBuilder;if(t.isFinancial)return new __.i.StiFinancialChartElementBuilder;if(t.isFullStackedChart||t.isStackedChart||t.isRibbonChart)return new __.i.StiStackedChartElementBuilder;return new StiChartElementBuilder}static scaleFont(t,e,i=.05){if(Math.abs(1-e)<=i)return;t.labels.font=StiFontUtils.changeFontSize(t.labels.font,t.labels.font.size*e),t.legend.font=StiFontUtils.changeFontSize(t.legend.font,t.legend.font.size*e);let r=t.area.as(IStiAxisArea);null!=r&&(r.xAxis.labels.font=StiFontUtils.changeFontSize(r.xAxis.labels.font,r.xAxis.labels.font.size*e),r.xTopAxis.labels.font=StiFontUtils.changeFontSize(r.xTopAxis.labels.font,r.xTopAxis.labels.font.size*e),r.yAxis.labels.font=StiFontUtils.changeFontSize(r.yAxis.labels.font,r.yAxis.labels.font.size*e),r.yRightAxis.labels.font=StiFontUtils.changeFontSize(r.yRightAxis.labels.font,r.yRightAxis.labels.font.size*e))}static getStyleFont(t,e){return StiDashboardStyleHelper.getElementFontFromStyle(t,e)}static getSmallStyleFont(t,e){let i=StiDashboardStyleHelper.getElementFontFromStyle(t);if(null==i)return e;let r=StiDashboardStyleHelper.getElementFontFromStyle(t),l=8*r.size/13,n=t.cachedSmallFont;if(null!=n&&n.name==r.name&&n.style==r.style&&n.size==l)return n;return t.cachedSmallFont=StiFontUtils.changeFontSize(r,l),t.cachedSmallFont}getValueMeterIndexes(e){if(null==e)return null;return this.getValueMeters(e).map(t=>e.meters.indexOf(t))}getArgumentMeterIndexes(e){if(null==e)return null;return this.getArgumentMeters(e).map(t=>e.meters.indexOf(t))}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesChartMeter));return null!=e?t.meters.indexOf(e):-1}getArgumentKeys(t,e){if(null==e)return null;let i=this.getArgumentMeters(e),r=i.map(t=>e.meters.indexOf(t)),l=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy2(e=>r.map(t=>e[t]),new StiArrayEqualityComparer);return l.select(t=>t.key)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiValueChartMeter))}getArgumentMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiArgumentChartMeter))}}__.i.StiChartElementBuilder=StiChartElementBuilder}let IStiBubbleSeries=Stimulsoft.Report.Chart.IStiBubbleSeries,IStiFinancialSeries=(__.i.StiBubbleChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,h),e=this.getValueMeters(m),c=t.length;for(let a of t){let o=0;for(let s of e){let t=this.getValueMeterIndexes(m)[o],e=this.renderSeries(u,s,a,S);if(null==e)continue;let i=-1!=h&&1<c?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(h,a):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),r=(await __.i.StiChartElementBuilder.renderConditions(this.toString(a),e,u,s),e.values=i.getArrayItem(t).tryCastToNullableNumber(),this.getArgumentIndex(m,t)),l=(-1!=r&&(e.arguments=i.getArrayItem(r)),e.weights=null,this.getWeightIndex(m,t));if(-1!=l&&(e.weights=i.getArrayItem(l).tryCastToNumber()),null==e.weights){e.weights=[];for(let t=0;t<e.arguments.length;t++)e.weights[t]=10}o++;let n=Math.min(e.values.length,e.arguments.length);await this.renderSeriesInteraction(e,u,n,a)}}}renderSeries(t,e,i,r){let l=new Stimulsoft.Report.Chart["StiBubbleSeries"];return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(s,t,e,o){let a=s.as(IStiBubbleSeries);if(null==a)return;let u=t.dashboardInteraction;if(u.onHover==StiInteractionOnHover.ShowToolTip){s.toolTips=StiArray.create(String,e);for(let n=0;n<e;n++){let i="",r="",l="";if(n<s.values.length&&null!=s.values[n]&&(i=s.values[n].toString()),n<s.arguments.length&&null!=s.arguments[n]&&(r=``+s.arguments[n]),n<a.weights.length&&(l=a.weights[n].toString()),StiString.isNullOrEmpty(u.toolTip)){let t='"StiColor":"{0}","StiValue":"{1}","StiArgument":"{2}","StiWeight":"{3}"{4}',e=await this.getToolTipStyle(s.chart.style);s.toolTips[n]="{"+StiString.format(t,"#ffffff",i,r,l,e)+"}"}else s.toolTips[n]=await this.getHyperlink2(t,u.toolTip,r,i,l,o)}}s.drillDownEnabled=!0}async getHyperlink2(t,e,i,r,l,n){null==i&&(i=""),null==n&&(n="");let s=new Hashtable;return s.add("Argument",i),s.add("Value",r),s.add("Weight",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getWeightIndex(t,e){if(null==t)return-1;let i=this.getWeightMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getWeightMeterIndexes(e){if(null==e)return null;return this.getWeightMeters(e).map(t=>e.meters.indexOf(t))}getWeightMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiWeightChartMeter))}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiYChartMeter))}getArgumentMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiXChartMeter))}},Stimulsoft.Report.Chart.IStiFinancialSeries),StiHeatmapHelper=(__.i.StiFinancialChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(h,c,d){let p=c?.report,g=this.getSeriesMeterIndex(d),t=this.getSeriesKeys(d,g),e=this.getValueMeters(d),b=t.length;for(let m of t){let S=0;for(let u of e){let t=this.getValueMeterIndexes(d)[S],e=this.renderSeries(h,u,m,c),i=e.as(IStiFinancialSeries);if(null==e||null==i)continue;let r=-1!=g&&1<b?d.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(g,m):d.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),l=(i.valuesOpen=r.getArrayItem(t).tryCastToNullableNumber(),i.valuesClose=null,this.getCloseValueIndex(d,t));if(-1!=l&&(i.valuesClose=r.getArrayItem(l).tryCastToNullableNumber()),null==i.valuesClose){i.valuesClose=[];for(let t=0;t<e.argument.length;t++)i.valuesClose[t]=10}i.valuesLow=null;let n=this.getLowValueIndex(d,t);if(-1!=n&&(i.valuesLow=r.getArrayItem(n).tryCastToNullableNumber()),null==i.valuesLow){i.valuesLow=[];for(let t=0;t<e.argument.length;t++)i.valuesLow[t]=10}i.valuesHigh=null;let s=this.getHighValueIndex(d,t);if(-1!=s&&(i.valuesHigh=r.getArrayItem(s).tryCastToNullableNumber()),null==i.valuesHigh){i.valuesHigh=[];for(let t=0;t<e.argument.length;t++)i.valuesHigh[t]=10}let o=this.getArgumentIndex(d,t),a=(-1!=o&&(e.arguments=r.getArrayItem(o).select(t=>this.getString(h.argumentFormat,t,p))),S++,Math.min(e.values.length,e.arguments.length));await this.renderSeriesInteraction(e,h,a,m)}}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.as(StiOpenValueChartMeter).seriesType);return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(a,t,e,i){let u=a.as(IStiFinancialSeries);if(null==u)return;let r=t.dashboardInteraction;if(r.onHover==StiInteractionOnHover.ShowToolTip){a.toolTips=StiArray.create(String,e);for(let o=0;o<e;o++){let t="",e="",i="",r="",l="",n=(o<u.valuesOpen.length&&null!=u.valuesOpen[o]&&(t=u.valuesOpen[o].toString()),o<u.valuesClose.length&&(e=u.valuesClose[o].toString()),o<u.valuesLow.length&&(i=u.valuesLow[o].toString()),o<u.valuesHigh.length&&(r=u.valuesHigh[o].toString()),o<a.arguments.length&&null!=a.arguments[o]&&(l=``+a.arguments[o]),'"StiColor":"{0}","StiOpenValue":"{1}","StiCloseValue":"{2}","StiLowValue":"{3}","StiHighValue":"{4}","StiArgument":"{5}"{6}'),s=await this.getToolTipStyle(a.chart.style);a.toolTips[o]="{"+StiString.format(n,"#ffffff",t,e,i,r,l,s)+"}"}}a.drillDownEnabled=!0}async renderArea(t,h){await super.renderArea(t,h);let c=null,d=null;for(let m=0;m<h.series.count;m++){let t=h.series.getByIndex(m).as(IStiFinancialSeries);if(null==t)continue;let e=t.valuesOpen[Stimulsoft.System.StiObject.stimulsoft]().min(),i=t.valuesClose[Stimulsoft.System.StiObject.stimulsoft]().min(),r=t.valuesLow[Stimulsoft.System.StiObject.stimulsoft]().min(),l=t.valuesHigh[Stimulsoft.System.StiObject.stimulsoft]().min(),n=t.valuesOpen[Stimulsoft.System.StiObject.stimulsoft]().max(),s=t.valuesClose[Stimulsoft.System.StiObject.stimulsoft]().max(),o=t.valuesLow[Stimulsoft.System.StiObject.stimulsoft]().max(),a=t.valuesHigh[Stimulsoft.System.StiObject.stimulsoft]().max(),u=[e,i,r,l][Stimulsoft.System.StiObject.stimulsoft]().min(),S=[n,s,o,a][Stimulsoft.System.StiObject.stimulsoft]().max();null==c&&(c=u),null==d&&(d=S),c=Math.min(c,u),d=Math.max(d,S)}let e=h.area.as(IStiAxisArea),i=(e.yAxis.range.auto=!1,e.yAxis.range.minimum=c,e.yAxis.range.maximum=d,e.yAxis.range.maximum-e.yAxis.range.minimum);e.yAxis.labels.step=2<i?Math.round(i/10):StiMath.round2(i/10,4)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiOpenValueChartMeter))}getCloseValueIndex(t,e){if(null==t)return-1;let i=this.getCloseMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getCloseMeterIndexes(e){if(null==e)return null;return this.getCloseMeters(e).map(t=>e.meters.indexOf(t))}getCloseMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiCloseValueChartMeter))}getLowValueIndex(t,e){if(null==t)return-1;let i=this.getLowMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getLowMeterIndexes(e){if(null==e)return null;return this.getLowMeters(e).map(t=>e.meters.indexOf(t))}getLowMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiLowValueChartMeter))}getHighValueIndex(t,e){if(null==t)return-1;let i=this.getHighMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getHighMeterIndexes(e){if(null==e)return null;return this.getHighMeters(e).map(t=>e.meters.indexOf(t))}getHighMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiHighValueChartMeter))}},Stimulsoft.Report.Chart.StiHeatmapHelper),StiShape=(__.i.StiHeatmapChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=S?.report,c=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,c),e=this.getValueMeters(m),d=t.length;for(let a of t){let o=0;for(let s of e){let t=this.getValueMeterIndexes(m)[o],e=this.renderSeries(u,s,a,S),i=e.as(StiHeatmapSeries);if(null==e||null==i)continue;let r=-1!=c&&1<d?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(c,a):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),l=(e.values=r.getArrayItem(t).tryCastToNullableNumber(),this.getXValueIndex(m,t)),n=(i.xValues=-1!=l?r.getArrayItem(l).select(t=>this.getString(u.argumentFormat,t,h)):[""],this.getYValueIndex(m,t));i.yValues=-1!=n?r.getArrayItem(n).select(t=>this.getString(u.argumentFormat,t,h)):[""],o++,await this.renderSeriesInteraction(e,u,e.values.length,a)}}}renderSeries(t,e,i,r){let l=new Stimulsoft.Report.Chart["StiHeatmapSeries"];return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(o,t,e,i){if(o.chart.isDesigning)return;let a=o.as(StiHeatmapSeries);if(null==a)return;let r=o.core,u=r.getHeatmapColors(),l=r.getAllValues(),S=l[Stimulsoft.System.StiObject.stimulsoft]().min(),m=l[Stimulsoft.System.StiObject.stimulsoft]().max(),h=t.dashboardInteraction.as(StiChartDashboardInteraction);if(h.onHover==StiInteractionOnHover.ShowToolTip){o.toolTips=StiArray.create(String,e);for(let s=0;s<e;s++){let r=0,l="",n="";if(s<a.values.length&&null!=a.values[s]&&(r=a.values[s]),s<a.xValues.length&&(l=a.xValues[s].toString()),s<a.yValues.length&&(n=a.yValues[s].toString()),StiString.isNullOrEmpty(h.toolTip)){let t='{{"StiColor":"{0}","StiValue":"{1}","StiXValue":"{2}","StiYValue":"{3}"{4}}}',e=await this.getToolTipStyle(o.chart.style),i=StiHeatmapHelper.getColorFromRange(u,S,m,r);o.toolTips[s]=StiString.format(t,ColorTranslator.toHtml(i),r,l,n,e)}else o.toolTips[s]=await this.getHyperlink3(t,h.toolTip,r.toString(),l,n,i)}}o.drillDownEnabled=!0}async getHyperlink3(t,e,i,r,l,n){null==n&&(n="");let s=new Hashtable;return s.add("Value",i),s.add("XValue",r),s.add("YValue",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getYValueIndex(t,e){if(null==t)return-1;let i=this.getYMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getYMeterIndexes(e){if(null==e)return null;return this.getYMeters(e).map(t=>e.meters.indexOf(t))}getYMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiYChartMeter))}getXValueIndex(t,e){if(null==t)return-1;let i=this.getXMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getXMeterIndexes(e){if(null==e)return null;return this.getXMeters(e).map(t=>e.meters.indexOf(t))}getXMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiXChartMeter))}},__.i.StiRangeChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=S?.report,c=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,c),d=t.length,i=this.getValueMeters(m),p=this.getArgumentMeterIndexes(m),g=this.getArgumentKeys(u,m);for(let a of t){let o=0;for(let e of i){let r=this.getValueMeterIndexes(m)[o],i=this.renderSeries(u,e,a,S);if(null==i)continue;await __.i.StiChartElementBuilder.renderConditions(a,i,u,e);let l=-1!=c&&1<d?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(c,this.toString(a)):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),n=(i.values=StiArray.create(Number,g.length),0);for(let e of g){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,p);n<i.values.length&&(i.values[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableNumber()),n++}i.core.isDateTimeValues=List.getValueOrFirstOrDefault(l.getArrayItem(r).toList().firstOrDefault())instanceof DateTime;let s=i.as(IStiRangeSeries);if(null!=s){s.valuesEnd=StiArray.create(Number,g.length);let i=this.getEndValueIndex(m,r);if(null==s.valuesEnd&&(s.valuesEnd=List.repeat(10,g.length)),-1!=i){n=0;for(let e of g){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,p);n<s.valuesEnd.length&&(s.valuesEnd[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableNumber()),n++}}}i.originalArguments=g,i.arguments=g.map(t=>this.getString(u.argumentFormat,t,h)),o++;let t=Math.min(i.values.length,i.arguments.length);await this.renderSeriesInteraction(i,u,t,a)}}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.seriesType),n=(l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,e);return __.i.StiChartElementBuilder.renderSeriesLine(n,l),__.i.StiChartElementBuilder.renderSeriesShowNulls(n,l),this.renderMarker(t,l),r.series.add(l),l}async renderSeriesInteraction(l,n,t,s){let o=n?.report,a=l.as(IStiRangeSeries);if(null==a)return;let e=n.dashboardInteraction.as(StiChartDashboardInteraction);if(e.onHover==StiInteractionOnHover.ShowToolTip){l.toolTips=StiArray.create(String,t);for(let r=0;r<t;r++){let t="",e="",i="";r<l.values.length&&null!=l.values[r]&&(t=(l.core.isDateTimeValues?DateTime.fromOADate(l.values[r]):l.values[r]).toString()),null!=a.valuesEnd&&r<a.valuesEnd.length&&(e=(l.core.isDateTimeValues?DateTime.fromOADate(a.valuesEnd[r]):a.valuesEnd[r])?.toString()),r<l.arguments.length&&null!=l.arguments[r]&&(i=``+l.arguments[r]),l.toolTips[r]=await this.getToolTip2(l.chart.style,n,n.dashboardInteraction.toolTip,this.getString(n.argumentFormat,i,o),this.getString(n.valueFormat,t,o),this.getString(n.valueFormat,e,o),s)}}l.drillDownEnabled=!0}async getToolTip2(i,t,e,r,l,n,s){if(null==r&&(r=""),null==s&&(s=""),StiString.isNullOrWhiteSpace(e)){null==r||StiString.isNullOrEmpty(r)||(r=r.split('"').join('\\"'));let t='"StiColor":"{0}","StiValue":"{1} - {3}","StiArgument":"{2}"{4}',e=await this.getToolTipStyle(i);return"{"+StiString.format(t,"#ffffff",l,r,n,e)+"}"}return this.getHyperlink2(t,e,r,l,n,s)}async getHyperlink2(t,e,i,r,l,n){null==i&&(i=""),null==n&&(n="");let s=new Hashtable;return s.add("Argument",i),s.add("Value",r),s.add("EndValue",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiStartValueChartMeter))}getEndValueIndex(t,e){if(null==t)return-1;let i=this.getEndValueMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getEndValueMeterIndexes(e){if(null==e)return null;return this.getEndValueMeters(e).map(t=>e.meters.indexOf(t))}getEndValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiEndValueChartMeter))}},Stimulsoft.Report.Components.StiShape),IStiStackedColumnSeries=(__.i.StiShapeElementBuilder=class{render(t){let e=new StiShape;return e.shapeType=t.shapeType,e.brush=t.fill,e.borderColor=t.stroke,e.size=t.size,e}},Stimulsoft.Report.Chart.IStiStackedColumnSeries),IStiStackedBarSeries=Stimulsoft.Report.Chart.IStiStackedBarSeries,IStiRibbonSeries=Stimulsoft.Report.Chart.IStiRibbonSeries;{class n50 extends __.i.StiChartElementBuilder{async renderElements(o,a,u){let S=a?.report,m=this.getSeriesMeterIndex(u),t=this.getSeriesKeys(u,m),h=this.getArgumentMeterIndexes(u),c=this.getArgumentKeys(o,u),i=this.getValueMeters(u),d=[],p=t.length;for(let s of t){let e=0;for(let t of i){d.push(s);let i=this.getValueMeterIndexes(u)[e],r=this.renderSeries(o,t,s,a);if(null==r)continue;await __.i.StiChartElementBuilder.renderConditions(s,r,o,t),__.i.StiChartElementBuilder.renderTrendLines(r,o,t);let l=-1!=m&&1<p?u.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(m,s):u.rows,n=(r.values=StiArray.create(Number,c.length),0);for(let e of c){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,h);n<r.values.length&&(r.values[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableNumber()),n++}r.originalArguments=c,r.arguments=c.map(t=>this.getString(o.argumentFormat,t,S)),e++}}await n50.processTopNStackedChart(o,a);for(let e=0;e<d.length;e++){if(a.series.count<e)break;let t=a.series.getByIndex(e);if(null==t)return;await this.renderSeriesInteraction(t,o,c.length,d[e])}}static getDataTable(t){let i=new DataTable,e=new DataColumn("Id",Number),r=(i.columns.add(e),new DataColumn("Argument",Object));i.columns.add(r);for(let e=0;e<t.length;e++){let t=new DataColumn("Value-"+e.toString(),Number);i.columns.add(t)}let l=new DataColumn("OriginalArguments",Object),n=(i.columns.add(l),new DataColumn("ValueSum",Number)),s=(i.columns.add(n),this.getCountRow(t));for(let t=0;t<s;t++){let t=i.newRow();i.rows.add(t)}return i}static getCountRow(e){let i=0;for(let t of e)i=Math.max(i,t.arguments.length);return i}static async getArguments(t,e){if(t.length<=e.topN.count)return t;let i=t.slice(0,e.topN.count);if(e.topN.showOthers){let t=StiString.isNullOrEmpty(e.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(e.topN.othersText,e);i.push(t)}return i}static getValues(e,i){if(e.length<=i.topN.count)return e;let r=e.slice(0,i.topN.count);if(i.topN.showOthers){let t=e.slice(i.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum();r.push(t)}return r}static async processTopNStackedChart(l,t){if(l.topN.mode==StiDataTopNMode.None)return;let n=t.series.list;if(!n.some(t=>t.is(IStiStackedBaseLineSeries)||t.is(IStiStackedColumnSeries)||t.is(IStiStackedBarSeries)||t.is(IStiRibbonSeries)))return;let s=n50.getDataTable(n);if(s.rows.count<1)return;for(let r=0;r<s.rows.count;r++){0<n.length&&n[0].arguments.length>r?s.rows.getByIndex(r).setValue(1,n[0].arguments[r]):s.rows.getByIndex(r).setValue(1,null),0<n.length&&n[0].originalArguments.length>r?s.rows.getByIndex(r).setValue(s.columns.count-2,n[0].originalArguments[r]):s.rows.getByIndex(r).setValue(s.columns.count-2,null);let i=0;for(let e=0;e<n.length;e++)if(0<n.length&&n[e].values.length>r){let t=n[e].values[r];s.rows.getByIndex(r).setValue(e+2,t),i+=t}else s.rows.getByIndex(r).setValue(e+2,null);s.rows.getByIndex(r).setValue(s.columns.count-1,i)}s.defaultView.sort=l.topN.mode==StiDataTopNMode.Top?"ValueSum desc":"ValueSum asc",s=s.defaultView.toTable();let o=0;for(let r of n){let t=n50.getListByColumnName(s,"OriginalArguments"),e=(r.originalArguments=await n50.getArguments(t,l),n50.getListByColumnName(s,"Argument")),i=(r.arguments=await n50.getArguments(e,l),n50.getListByColumnName(s,"Value-"+o.toString()));r.values=n50.getValues(i,l),r.is(IStiStackedBarSeries)&&(r.originalArguments=r.originalArguments.reverse(),r.arguments=r.arguments.reverse(),r.values=r.values.reverse()),o++}}static getListByColumnName(t,i){let r=[];for(let e of t.rows.list){let t=e.gett(i);r.push(t)}return r}}__.i.StiStackedChartElementBuilder=n50}__.i.StiSunburstChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(e,l,n){let i=this.getArgumentMeters(n),s=this.getValueMeters(n)[0],o=this.getValueMeterIndexes(n)[0];for(let t=0;t<i.length;t++){let i=this.getArgumentMeterIndexes(n)[t],r=this.renderSeries(e,s,"",l);if(null==r)continue;r.values=[],r.arguments=[],r.originalArguments=[];for(let e=0;e<n.rows.length;e++){r.values[e]=StiValueHelper.tryToNullableNumber(n.rows[e][o]);let t=n.rows[e][i];r.arguments[e]=t,r.originalArguments[e]=t}await this.renderSeriesInteraction(r,e,r.arguments.length,"")}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.seriesType);return l.core.seriesColors=null!=t.seriesColors&&0<t.seriesColors.length?t.seriesColors:null,l.isDashboard=!0,r.series.add(l),l}};{class Og0{static getVisualizer(t){return null}}Og0.typeToGdiVisualizer=new Hashtable,Og0.typeToWpfVisualizer=new Hashtable,Og0.lockObject={},__.n.StiVisualizer=Og0}__.n.StiGdiVisualizer=class extends __.n.StiVisualizer{render(t){}},__.n.StiGdiVisualizerAttribute=class{},__.u.StiIndicatorIconRangeValue=class{isBetween(t){return this.start<=t&&t<=this.end}constructor(t,e,i){this.start=t,this.end=e,this.icon=i}};let StiProgressInteractionData=Stimulsoft.Base.Context.StiProgressInteractionData,StiElementLocationHelper=__.h.StiElementLocationHelper,StiPieSegmentGeom=(__.v.StiProgressVisual=class extends __.j.StiVisual{getDisplayText(t,e){switch(this.element.valueType){case StiProgressValueType.Percentage:return StiTextFormatHelper.formatAsPercentage2(this.element?.report,this.element.textFormat,e);case StiProgressValueType.Value:return StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.value);case StiProgressValueType.ValueTarget:return StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.value)+` / `+StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.target);case StiProgressValueType.None:default:return""}}getMaxValue(){return this.iterations.map(t=>Math.abs(t.value)).concat([0])[Stimulsoft.System.StiObject.stimulsoft]().max()}getTargetValues(){let e=this.getMaxValue(),i=[];for(let t of this.iterations)i.push(null!=t.target?t.target:e);return i}getTextValues(){let r=[],l=this.getTargetValues();for(let i=0;i<this.iterations.length;i++){let t=l[i],e=0!=t?Math.abs(this.iterations[i].value)/t:0;r.push(StiTextFormatHelper.formatAsPercentage2(this.element.report,this.element.textFormat,e))}return r}getColor(t){return this.element.colorEach?this.getColors(this.iterations.length)[t]:this.style.bandColor}getColors(t){let s=[],e=(null!=this.element.seriesColors&&0<this.element.seriesColors.length?this.element:this.style).seriesColors,i=0,o=0;for(let n=0;n<t;n++){let l=null==e||0==e.length?Color.fromArgb(255,52,152,219):e[i];if(0!=o){let t=Math.min(l.a+o,255),e=Math.min(l.r+o,255),i=Math.min(l.g+o,255),r=Math.min(l.b+o,255);s[n]=Color.fromArgb(t,e,i,r)}else s[n]=l;++i==e.length&&(i=0,o=50)}return s}getContentRectangle(e){if(1<this.iterations.length){let t=StiElementLocationHelper.getLocationRectangles(e,this.iterations.length,this.element);e=StiElementLocationHelper.getSumRectangle(t)}return e}getConditionResult(r,e){let l=null;switch(e.field){case StiProgressFieldCondition.Value:l=r.value;break;case StiProgressFieldCondition.Series:l=r.series;break;case StiProgressFieldCondition.Target:l=r.target;break;case StiProgressFieldCondition.Percentage:{let t=this.getVariation(r),e=new StiPercentageFormatService,i=(e.decimalDigits=3,StiTextFormatHelper.formatAsPercentage2(this.element.report,e,t));l=i.replace("%","")[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break}}let t=!1,i=this.getConditionValue(e);if(null!=l){let t=l=e.field!=StiProgressFieldCondition.Value&&e.field!=StiProgressFieldCondition.Target&&e.field!=StiProgressFieldCondition.Percentage?l:null==l?0:l[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(null!=t&&null!=i){l[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(l=l.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=l);try{switch(e.condition){case Stimulsoft.Report.Components.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case Stimulsoft.Report.Components.StiFilterCondition.Containing:{let t=l.toString(),e=i.toString();return-1!=t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.NotContaining:{let t=l.toString(),e=i.toString();return-1==t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.BeginningWith:{let t=l.toString(),e=i.toString();return t.startsWith(e)}case Stimulsoft.Report.Components.StiFilterCondition.EndingWith:{let t=l.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}processColor(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.Color)&&this.getConditionResult(e,t))return t.color;return t}getVariation(t){let e=t.value,i=t.target;return e/i}getConditionValue(t){if(StiString.isNullOrEmpty(t.value))return null;switch(t.field){case StiProgressFieldCondition.Value:case StiProgressFieldCondition.Target:case StiProgressFieldCondition.Percentage:return t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();default:return t.value.toString()}}processForeColor(e,t=null){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.TextColor)&&this.getConditionResult(e,t))return t.textColor;return StiDashboardStyleHelper.getForeColor(this.element,t)}processTrackColor(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.TrackColor)&&this.getConditionResult(e,t))return t.trackColor;return t}processFontStyle(t,e){let i=this.processFontBold(t.bold,e),r=this.processFontItalic(t.italic,e),l=this.processFontUnderline(t.underline,e),n=this.processFontStrikeout(t.strikeout,e),s=FontStyle.Regular;return i&&(s^=FontStyle.Bold),r&&(s^=FontStyle.Italic),l&&(s^=FontStyle.Underline),n&&(s^=FontStyle.Strikeout),s}processFontStrikeout(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleStrikeout)&&this.getConditionResult(e,t))return t.font.strikeout;return t}processFontUnderline(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleUnderline)&&this.getConditionResult(e,t))return t.font.underline;return t}processFontItalic(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleItalic)&&this.getConditionResult(e,t))return t.font.italic;return t}processFontBold(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleBold)&&this.getConditionResult(e,t))return t.font.bold;return t}processFontName(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.Font)&&this.getConditionResult(e,t))return t.font.name;return t}getInteractionDataGeom(t){if(this.element.isDesigning)return null;let e=new StiProgressInteractionData,i=(e.value=t.value,e.seriesText=t.series,e.target=t.target,new StiInteractionDataGeom);return i.interactionToolTip=this.getToolTip(e),i.interactionHyperlink=this.getHyperlink(e),i.interactionData=e,i}getToolTip(t){let e=this.element.dashboardInteraction?.toolTip;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}getHyperlink(t){let e=this.element.dashboardInteraction?.hyperlink;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}parseConstants(e,i){if(!StiString.isNullOrEmpty(e)){let t=new Hashtable;return t.set("Value",i.value),t.set("Series",i.seriesText),t.set("Target",i.target),StiReportParser.parse(e,this.element,!1,t)}return e}constructor(t,e){super(),this.minElementSide=2,this.minFontSize=3,this.element=t,this.iterations=e,this.style=StiDashboardStyleHelper.getProgressStyle(this.element)}},Stimulsoft.Base.Context.StiPieSegmentGeom),StiArcSegmentGeom=(__.v.StiPieProgressVisual=class extends __.v.StiProgressVisual{async draw(S,m){if(0==this.iterations.length)return;let h=StiElementLocationHelper.getLocationRectangles(m,this.iterations.length,this.element);if(h.length<1)return;let c=h[0],t=c.width<c.height?c.width:c.height,e=StiDashboardStyleHelper.getElementFontFromStyle(this.element),d=this.getTitleHeight(t,e.size),p=c.width,g=null,i=new Font(e.fontFamily.name,1,e.style,e.unit);for(let e of this.iterations){if(StiString.isNullOrEmpty(e.series))continue;let t=StiStringFormatHelper.getFontSize(S,new Rectangle(0,0,p,d),e.series,i);(null==g||g>t)&&(g=t)}null!=g&&g<e.size&&(d=this.getTitleHeight(t,g));let r=this.element.valueType==StiProgressValueType.None?1:2,b=(t-d*r)/2*.8,C=(g<this.minFontSize&&(g=0,d=0,b=t/2*.8),2*b),f=this.getTargetValues(),y=!1;S.pushClip(m);for(let u=0;u<this.iterations.length;u++){let t=f[u],e=this.iterations[u],i=h[u];if(!y&&(1<i.right-m.right||1<i.bottom-m.bottom)&&(y=!0),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);S.fillRectangle3(new StiSolidBrush(Color.transparent),new StiSolidBrush(t),i,this.getInteractionDataGeom(this.iterations[0]))}let r=i.x+i.width/2,l=i.y+d+(c.height-d)/2,n=new Point(r,l),s=new Rectangle(n.x-b,n.y-b,C,C),o=new Rectangle(s.x+s.width/2-p/2,s.top-d,p,d),a=this.processColor(this.getColor(u),this.iterations[u]);this.drawPieProgress(S,s,o,t,e,g,a)}if(y){let t=StiElementScale.factor(this.element);this.drawArrowMore(S,m,t)}S.popClip()}drawPieProgress(h,c,d,p,g,b,t){let e=this.processTrackColor(this.style.trackColor,g),i=(h.fillEllipse2(e,c,null),0!=p?360/p*Math.abs(g.value):p),r=(360<i&&(i=360),[new StiPieSegmentGeom(c,-90,i,null,null,null)]);if(h.fillPath(t,r,c,null),b>=this.minFontSize){let o=StiDashboardStyleHelper.getElementFontFromStyle(this.element),a=this.processFontName(o.fontFamily.name,g),u=this.processFontStyle(o,g),t=new Font(a,b,u),e=new StiFontGeom(t.fontFamily.name,b,t.style,t.unit),i=StiRotationMode.CenterCenter,r=new Point,l={ref:StiRotationMode.CenterCenter},n={ref:new Point},S=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,d,l,n),i=l.ref,r=n.ref,this.processForeColor(g)),s=(h.drawRotatedString4(g.series,e,S,r,StiStringFormatHelper.getStringFormatGeom(h),i,0,!0),0!=p?Math.abs(g.value)/p:0),m=this.getDisplayText(g,s);if(m&&0<m.length){let t=new Rectangle(c.x,c.bottom+.2*b,c.width,b),e=StiRotationMode.CenterCenter,i=new Point,r={ref:StiRotationMode.CenterCenter},l={ref:new Point},n=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,t,r,l),e=r.ref,i=l.ref,.9*b),s=new StiFontGeom(a,n,u,o.unit);h.drawRotatedString4(m,s,S,i,StiStringFormatHelper.getStringFormatGeom(h),e,0,!0)}}}getTitleHeight(t,e){let i=e/13;return t/4*(i=4<i?4:i)}constructor(t,e){super(t,e)}},Stimulsoft.Base.Context.StiArcSegmentGeom);__.v.StiCircleProgressVisual=class extends __.v.StiPieProgressVisual{async draw(d,p){if(0==this.iterations.length)return;let g=StiElementLocationHelper.getLocationRectangles(p,this.iterations.length,this.element);if(g.length<1)return;let b=.8,C=g[0],t=C.width<C.height?C.width:C.height,f=StiDashboardStyleHelper.getElementFontFromStyle(this.element),y=this.getTitleHeight(t,f.size),w=C.width,M=this.getTargetValues(),I=null,i=new Font(f.fontFamily.name,1,f.style,f.unit);for(let e of this.iterations.filter(t=>!StiString.isNullOrEmpty(t.series))){let t=StiStringFormatHelper.getFontSize(d,new Rectangle(0,0,w,y),e.series,i);(null==I||I>t)&&(I=t)}let T=(t-(y=null!=I&&I<f.size?this.getTitleHeight(t,I):y))/2*.8,x=null,n=new Rectangle(C.x-T*b,C.y-.79*T,2*T*b,2*T*b),s=new Font(this.element.font.name,1,FontStyle.Bold,GraphicsUnit.Pixel);for(let l=0;l<this.iterations.length;l++){let t=M[l],e=0!=t?Math.abs(this.iterations[l].value)/t:0,i=this.getDisplayText(this.iterations[l],e),r=StiStringFormatHelper.getFontSize(d,n,i,s);(null==x||x>r)&&(x=r)}I<this.minFontSize&&(y=0,I=0,T=t/2*.8);let D=2*T,F=T/5,v=T-F,A=2*v,E=!1;d.pushClip(p);for(let c=0;c<this.iterations.length;c++){let e=g[c];if(!E&&(1<e.right-p.right||1<e.bottom-p.bottom)&&(E=!0),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);d.fillRectangle3(new StiSolidBrush(Color.transparent),new StiSolidBrush(t),e,this.getInteractionDataGeom(this.iterations[0]))}let t=e.x+e.width/2,i=e.y+y+(C.height-y)/2,m=new Point(t,i),h=new Rectangle(m.x-T,m.y-T,D,D),r=new Rectangle(m.x-v,m.y-v,A,A);if(!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);d.fillRectangle3(Color.transparent,t,e,this.getInteractionDataGeom(this.iterations[c]))}let l=this.processTrackColor(this.style.trackColor,this.iterations[c]),n=new StiPenGeom(l,F),o=(d.drawEllipse(n,h.x+F/2,h.y+F/2,h.width-F,h.height-F),M[c]),s=0!=o?360/o*Math.abs(this.iterations[c].value):0,a=-90,u=(360<s&&(s=360),[]),S=(u.push(new StiArcSegmentGeom(h,a,s)),u.push(new StiLineSegmentGeom(this.getPoint(m,T,a+s),this.getPoint(m,v,a+s))),u.push(new StiArcSegmentGeom(r,a+s,-s)),u.push(new StiLineSegmentGeom(this.getPoint(m,v,a),this.getPoint(m,T,a))),this.processColor(this.getColor(c),this.iterations[c]));if(d.fillPath(S,u,h,null),x>=this.minFontSize){let t=new Rectangle(m.x-T*b,m.y-.79*T,2*T*b,2*T*b),e=0!=o?Math.abs(this.iterations[c].value)/o:0,i=this.getDisplayText(this.iterations[c],e),r=new Font(this.element.font.name,x,FontStyle.Bold,GraphicsUnit.Pixel),l=this.processFontStyle(r,this.iterations[c]),n=new StiFontGeom(r.name,r.size,l,r.unit),s=this.processForeColor(this.iterations[c]);d.drawRotatedString5(i,n,s,t,StiStringFormatHelper.getStringFormatGeom(d),StiRotationMode.CenterCenter,0,!0)}if(I>=this.minFontSize){let t=new Rectangle(m.x-w/2,h.top-y,w,y),e=new Font(f.fontFamily.name,I,f.style,f.unit),i=this.processFontName(e.fontFamily.name,this.iterations[c]),r=this.processFontStyle(e,this.iterations[c]),l=new Font(i,e.size,r),n=new StiFontGeom(l.fontFamily.name,I,l.style,l.unit),s=StiRotationMode.CenterCenter,o=new Point,a={ref:StiRotationMode.CenterCenter},u={ref:new Point},S=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,t,a,u),s=a.ref,o=u.ref,this.processForeColor(this.iterations[c]));d.drawRotatedString4(this.iterations[c].series,n,S,o,StiStringFormatHelper.getStringFormatGeom(d),s,0,!0)}}if(E){let t=StiElementScale.factor(this.element);this.drawArrowMore(d,p,t)}d.popClip()}getPoint(t,e,i){let r=Math.PI*i/180;return new Point(t.x+Math.cos(r)*e,t.y+Math.sin(r)*e)}constructor(t,e){super(t,e)}},__.v.StiDataBarsProgressVisual=class extends __.v.StiProgressVisual{async draw(p,t){if(0==this.iterations.length)return;let e=.06*t.width,g=(e<4&&(e=4),new Rectangle(t.x+e/2,t.y+e/2,t.width-e,t.height-e)),b=g.height/this.iterations.length,C=(b<this.minElementSide&&(b=this.minElementSide),1<this.iterations.length?.95*b:b),f=g.width,l=this.getTextValues(),y=this.getTargetValues(),w=StiDashboardStyleHelper.getElementFontFromStyle(this.element),M=null,n=new Font(w.fontFamily.name,1,w.style,w.unit);for(let r=0;r<this.iterations.length;r++){let t=``+this.iterations[r].series+l[r],e=new Rectangle(g.x,g.y+b*r+.07*C,f,.86*C),i=StiStringFormatHelper.getFontSize(p,e,t,n);(null==M||M>i)&&(M=i)}let I=this.element.font.size/18*M,T=(I>M&&(I=M),new Font(w.fontFamily.name,I,w.style,w.unit)),x=(p.pushClip(g),1<this.iterations.length?.05*b/(this.iterations.length-1):0);for(let d=0;d<this.iterations.length;d++){let t=this.processFontName(T.fontFamily.name,this.iterations[d]),e=this.processFontStyle(T,this.iterations[d]),n=new Font(t,T.size,e),i=y[d],r=g.y+(b+x)*d,s=new Rectangle(g.x,r,f,C),l=this.processTrackColor(this.style.trackColor,this.iterations[d]),o=(p.fillRectangle(l,s,this.getInteractionDataGeom(this.iterations[d])),0!=i?Math.abs(this.iterations[d].value)/i:0),a=this.getDisplayText(this.iterations[d],o),u=this.processForeColor(this.iterations[d]);if(M>=this.minFontSize&&a&&0<a.length){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(a,t),i=new Rectangle(s.right-e.width,s.top,e.width,s.height);p.drawRotatedString5(a,t,u,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}let S=this.iterations[d].series;if(M>=this.minFontSize){let t=new StiFontGeom(w.fontFamily.name,I,n.style,n.unit),e=p.measureString(S,t),i=new Rectangle(s.left,s.top+.05*s.height,e.width,s.height);u=this.processForeColor(this.iterations[d]),p.drawRotatedString5(S,t,u,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}let m=0!=i?f/i*this.iterations[d].value:0,h=(m>s.width&&(m=s.width),new Rectangle(g.x,r,m,C)),c=(p.pushClip(h),this.processColor(this.getColor(d),this.iterations[d]));if(p.fillRectangle(c,h,this.getInteractionDataGeom(this.iterations[d])),this.element.report.isDesigning||(null==c&&(c=Color.transparent),p.fillRectangle3(c,Color.fromArgb3(100,Color.white),h,this.getInteractionDataGeom(this.iterations[d]))),M>=this.minFontSize&&a&&0<a.length){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(a,t),i=new Rectangle(s.right-e.width,s.top,e.width,s.height),r=this.isColorLight(c)?Color.white:u,l=this.processForeColor(this.iterations[d],r);p.drawRotatedString5(a,t,l,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}if(M>=this.minFontSize){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(S,t),i=new Rectangle(s.left,s.top+.05*s.height,e.width,s.height),r=this.isColorLight(c)?Color.white:u,l=this.processForeColor(this.iterations[d],r);p.drawRotatedString5(S,t,l,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}p.popClip()}p.popClip()}isColorLight(t){return 0<600-t.r-t.g-t.b}constructor(t,e){super(t,e)}};{let t;(t=>{t[t["Pdf"]=0]="Pdf",t[t["Excel"]=1]="Excel",t[t["Data"]=2]="Data",t[t["Image"]=3]="Image",t[t["Html"]=4]="Html",t[t["Document"]=5]="Document"})(t=__.f.StiDashboardExportFormat||(__.f.StiDashboardExportFormat={}))}let StiPageOrientation=Stimulsoft.Report.Components.StiPageOrientation,PaperKind=Stimulsoft.System.Drawing.Printing.PaperKind,IStiDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiDashboardExportSettings,StiExportSettings=Stimulsoft.Report.Export.StiExportSettings,IStiSizeExportSettings=(__.z.StiDashboardExportSettings=class extends StiExportSettings{constructor(){super(...arguments),this.renderBorders=!0,this.orientation=StiPageOrientation.Landscape,this.paperSize=PaperKind.A4,this.openAfterExport=!0,this.viewportWidth=0,this.viewportHeight=0}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}implements(){let t=[IStiDashboardExportSettings];return(this.implements=()=>t)()}get isDesignMode(){return this.is(__.z.StiSvgDashboardExportSettings)&&this.as(__.z.StiSvgDashboardExportSettings).designMode}getExportFormat(){return __.B.StiExportFormatHelper.convert(this.format)}toParameters(){let t=super.toParameters();return t.Format=Enum.getName(__.f.StiDashboardExportFormat,this.format),t.Orientation=Enum.getName(StiPageOrientation,this.orientation),t.PaperSize=Enum.getName(StiPageOrientation,this.paperSize),t}},__.z.IStiDashboardScaleMode=new Stimulsoft.System.Interface("IStiDashboardScaleMode"),__.z.IStiSizeExportSettings=new Stimulsoft.System.Interface("IStiSizeExportSettings"),__.z.IStiSizeExportSettings),StiDashboardScaleMode=Stimulsoft.Report.Dashboard.StiDashboardScaleMode,IStiDashboardScaleMode=__.z.IStiDashboardScaleMode,StiImageType=Stimulsoft.Report.Export.StiImageType,IStiImageDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiImageDashboardExportSettings,IStiHtmlDashboardExportSettings=(__.z.StiImageDashboardExportSettings=class extends __.z.StiDashboardExportSettings{implements(){let t=super.implements().concat([IStiSizeExportSettings,IStiImageDashboardExportSettings,IStiDashboardScaleMode]);return(this.implements=()=>t)()}get width(){return this._width}set width(t){this._width=t,this.paperSize=PaperKind.Custom}get height(){return this._height}set height(t){this._height=t,this.paperSize=PaperKind.Custom}toParameters(){let t=super.toParameters();return t.Format=Enum.getName(__.f.StiDashboardExportFormat,this.format),t.ImageType=Enum.getName(StiImageType,this.imageType),t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t.Width=0,t.Height=0,t}constructor(t){super(),this.format=__.f.StiDashboardExportFormat.Image,this.imageType=StiImageType.Svg,this.scale=100,this.scaleMode=StiDashboardScaleMode.ViewSize,null!=t?this.imageType=t:this.renderSinglePage=!0}},__.z.StiSvgDashboardExportSettings=class extends __.z.StiImageDashboardExportSettings{constructor(){super(...arguments),this.imageType=StiImageType.Svg,this.renderEmptyContent=!0}},Stimulsoft.Report.Dashboard.Export.IStiHtmlDashboardExportSettings);__.z.StiHtmlDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Html,this.imageQuality=200,this.scale=100,this.enableAnimation=!0,this.scaleMode=StiDashboardScaleMode.ViewSize}implements(){let t=super.implements().concat([IStiHtmlDashboardExportSettings,__.z.IStiDashboardScaleMode]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}};{class StiExportTool{async render(t,e,i,r){}static getTool(t){let e=this.typeToTool.get(t);if(null!=e)return e;let i=StiExportToolAttribute.attributes.get(t[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),r=null!=i?i.exportToolTypeName:null;if(null==r)return null;return e=StiActivator.createObject2(r),this.typeToTool.set(t,e),e}static isAllowOpacity(t){return t.is(__.z.StiImageDashboardExportSettings)||t.is(__.z.StiHtmlDashboardExportSettings)||t.is(__.z.StiPdfDashboardExportSettings)||t.is(__.z.StiExcelDashboardExportSettings)}static getScaleFactor(t,e){if(0<e.viewportWidth&&0<e.viewportHeight)return Math.min(t.page.width/e.viewportWidth,t.page.height/e.viewportHeight);return 1}}StiExportTool.typeToTool=new Hashtable,__.A.StiExportTool=StiExportTool}let StiHtmlDashboardExportSettings=__.z.StiHtmlDashboardExportSettings,StiTitleMeasureHelper=__.h.StiTitleMeasureHelper,StiSvgDashboardExportSettings=__.z.StiSvgDashboardExportSettings,StiImageDashboardExportSettings=__.z.StiImageDashboardExportSettings,StiExportTool=__.A.StiExportTool,IStiBorder=(__.B.StiTitleExportHelper=class{static async render(t,e,i){let r=t.as(IStiTitleElement),l=__.p.StiElementControlPainter.getBorderContentRect(new Rectangle(0,0,e.width,e.height),e.border),n=null!=r?r.title:null,s=this.getTitleText(t);if(null==n||!n.visible||StiString.isNullOrEmpty(s)||__.B.StiExportSettingsHelper.isDataExport(i))return l;let o=StiExportTool.getScaleFactor(e,i),a=StiTitleMeasureHelper.measureTitle3(null,l,r.title,s),u=(a.height=a.height*o,a.height>l.height/2&&(a.height=l.height/2),1);if(n.sizeMode==StiTextSizeMode.Fit||n.sizeMode==StiTextSizeMode.FitAndWordWrap){let t=a.width>l.width?l.width/a.width:1,e=a.height>l.height?l.height/a.height:1;u=Math.min(Math.abs(t),Math.abs(e))}let S=this.getTitleForeColor(t),m=Color.transparent.equals(S)?StiDashboardStyleHelper.getTitleForeColor(t):S,h=this.getTitleFont(t),c=1==u?h:StiFontUtils.changeFontSize(h,h.size*u),d=i.is(StiImageDashboardExportSettings)&&i.imageType==StiImageType.Svg||i.is(StiSvgDashboardExportSettings)||i.is(StiHtmlDashboardExportSettings),p=this.getTitleBackColor(t),g=Color.transparent.equals(p)?StiDashboardStyleHelper.getBackColor(t,null,d):p,b=StiDashboardStyleHelper.getBackColor(t,null,!0),C=(g.equals(b)&&(g=Color.transparent),i.format==__.f.StiDashboardExportFormat.Html&&t.is(IStiChartElement)&&(l.x+=3,l.y+=3),new StiText),f=(C.name=t.name+`_Title`,C.allowHtmlTags=!0,C.clientRectangle=new Rectangle(l.x,l.y,l.width,a.height),C.text=await StiReportParser.parseAsync(s,t),C.font=c,C.horAlignment=this.convert(n.horAlignment),C.trimming=n.sizeMode==StiTextSizeMode.Trimming?StringTrimming.EllipsisCharacter:StringTrimming.None,C.wordWrap=n.sizeMode==StiTextSizeMode.WordWrap||n.sizeMode==StiTextSizeMode.FitAndWordWrap,C.vertAlignment=StiVertAlignment.Center,C.textBrush=new StiSolidBrush(m),C.brush=new StiSolidBrush(g),l.height-=C.height,l.y+=C.height,n[Stimulsoft.System.StiObject.stimulsoft]().as(IStiTitlePadding)?.padding),y=(null!=f&&(l.y+=f.top+f.bottom,l.height-=f.top+f.bottom,C.left+=f.left,C.width-=f.left+f.right,C.top+=f.top),t.as(IStiCornerRadius)?.cornerRadius);return null!=y&&((0<y.topLeft||0<y.topRight)&&(C.cornerRadius=new StiCornerRadius(y.topLeft,y.topRight,0,0)),0<y.topLeft&&(C.margins.left=Math.max(C.margins.left,y.topLeft/2)),0<y.topRight)&&(C.margins.right=Math.max(C.margins.right,y.topRight/2)),e.components.add(C),l}static getTitleBackColor(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleBackColor;if(t.is(IStiTitleElement))return t.title.backColor;return Color.transparent}static getTitleForeColor(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleForeColor;if(t.is(IStiTitleElement))return t.title.foreColor;return Color.black}static getTitleFont(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleFont;if(t.is(IStiTitleElement))return t.title.font;return null}static getTitleText(e){if(e.is(IStiTitleElement)){if(e.is(StiChartElement)&&e.showViewTitle){let t=e.userViewStates.find(t=>t.key==e.selectedViewStateKey);if(null!=t)return t.name}return e.title.text}return null}static convert(t){switch(t){case StiHorAlignment.Left:return StiTextHorAlignment.Left;case StiHorAlignment.Center:return StiTextHorAlignment.Center;case StiHorAlignment.Right:return StiTextHorAlignment.Right;default:throw new StiTypeNotRecognizedException(t)}}},__.B.StiLayoutExportHelper=class{static excludeMargin(e,i){if(e.is(IStiMargin)){let t=e.margin;if(!t.isEmpty)return new Rectangle(i.x+t.left,i.y+t.top,Math.max(1,i.width-t.left-t.right),Math.max(1,i.height-t.top-t.bottom))}return i}static excludePadding(e,i,r){if(e.is(IStiPadding)){let t=e.padding;if(!t.isEmpty)return new Rectangle(i.x+t.left*r,i.y+t.top*r,Math.max(1,i.width-t.left*r-t.right*r),Math.max(1,i.height-t.top*r-t.bottom*r))}return i}static excludeCornerRadius(n,s,o){if(n.is(IStiCornerRadius)){let t=n.cornerRadius;if(t.isDefault())return s;let e=Math.max(t.topLeft*o/2,t.bottomLeft*o/2),i=Math.max(t.topLeft*o/2,t.topRight*o/2),r=Math.max(t.topRight*o/2,t.bottomRight*o/2),l=Math.max(t.bottomLeft*o/2,t.bottomRight*o/2);return new Rectangle(s.x+e,s.y+i,Math.max(1,s.width-e-r),Math.max(1,s.height-i-l))}return s}},Stimulsoft.Report.Components.IStiBorder),StiExportFormat=(__.B.StiBorderExportHelper=class{static render(t,e,i){t.is(IStiSimpleBorder)&&e.is(IStiBorder)&&i.renderBorders&&(e.border=t.border2.getBorder(),e.border.topmost=!0)}},__.B.StiBackColorExportHelper=class{static render(t,e){e.is(IStiBackColor)&&(e.backColor=StiDashboardStyleHelper.getBackColor(t))}},Stimulsoft.Report.StiExportFormat),IStiExcelDashboardExportSettings=(__.B.StiExportFormatHelper=class{static convert(t){switch(t){case __.f.StiDashboardExportFormat.Pdf:return StiExportFormat.Pdf;case __.f.StiDashboardExportFormat.Excel:return StiExportFormat.Excel;case __.f.StiDashboardExportFormat.Html:return StiExportFormat.Html;case __.f.StiDashboardExportFormat.Data:return StiExportFormat.Data;case __.f.StiDashboardExportFormat.Image:return StiExportFormat.Image;case __.f.StiDashboardExportFormat.Document:return StiExportFormat.Document;default:throw new StiTypeNotRecognizedException(t)}}},Stimulsoft.Report.Dashboard.Export.IStiExcelDashboardExportSettings),IStiPdfDashboardExportSettings=(__.z.StiExcelDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Excel,this.imageQuality=200,this.scaleMode=StiDashboardScaleMode.ViewSize}implements(){let t=super.implements().concat([IStiSizeExportSettings,IStiExcelDashboardExportSettings,__.z.IStiDashboardScaleMode]);return(this.implements=()=>t)()}get width(){return this._width}set width(t){this._width=t,this.paperSize=PaperKind.Custom}get height(){return this._height}set height(t){this._height=t,this.paperSize=PaperKind.Custom}toParameters(){let t=super.toParameters();return t.Width=0,t.Height=0,t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}},Stimulsoft.Report.Dashboard.Export.IStiPdfDashboardExportSettings),StiDataType=(__.z.StiPdfDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Pdf,this.imageQuality=200,this.scaleMode=StiDashboardScaleMode.PaperSize}implements(){let t=super.implements().concat([IStiPdfDashboardExportSettings,IStiDashboardScaleMode]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}},Stimulsoft.Report.Export.StiDataType),IStiDataDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiDataDashboardExportSettings,StiHtmlChartType=(__.z.StiDataDashboardExportSettings=class extends __.z.StiDashboardExportSettings{implements(){let t=super.implements().concat([IStiDataDashboardExportSettings]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.DataType=Stimulsoft.System.Enum.getName(StiDataType,this.dataType),t}constructor(t){super(),this.format=__.f.StiDashboardExportFormat.Data,this.dataType=StiDataType.Csv,null!=t&&(this.dataType=t)}},Stimulsoft.Report.Export.StiHtmlChartType),StiHtmlExportSettings=Stimulsoft.Report.Export.StiHtmlExportSettings,StiDataExportSettings=Stimulsoft.Report.Export.StiDataExportSettings,StiImageExportSettings=Stimulsoft.Report.Export.StiImageExportSettings,StiSvgExportSettings=Stimulsoft.Report.Export.StiSvgExportSettings,StiDataDashboardExportSettings=__.z.StiDataDashboardExportSettings,StiExcelDashboardExportSettings=__.z.StiExcelDashboardExportSettings,StiPdfDashboardExportSettings=__.z.StiPdfDashboardExportSettings,StiDashboardExportSettings=__.z.StiDashboardExportSettings,StiDataExportMode=Stimulsoft.Report.Export.StiDataExportMode,StiPdfExportSettings=Stimulsoft.Report.Export.StiPdfExportSettings,StiExcelExportSettings=Stimulsoft.Report.Export.StiExcelExportSettings,XmlTextWriter=(__.B.StiExportSettingsHelper=class{static getExportSettings(i){switch(i.format){case __.f.StiDashboardExportFormat.Pdf:{let t=new StiPdfExportSettings;return t.imageQuality=1,t.imageResolution=i.imageQuality,t}case __.f.StiDashboardExportFormat.Excel:{let t=new StiExcelExportSettings;return t.imageQuality=1,t.imageResolution=i.imageQuality,t}case __.f.StiDashboardExportFormat.Data:{let t=new StiDataExportSettings;return t.dataType=i.dataType,t.dataExportMode=StiDataExportMode.DataAndHeadersFooters,t.skipColumnHeaders=!0,t}case __.f.StiDashboardExportFormat.Image:{let e=i.imageType;switch(e){case StiImageType.Svg:return new StiSvgExportSettings;default:{let t=new StiImageExportSettings;return t.imageType=e,t.imageZoom=i.scale/100,t.imageResolution=100,t}}}case __.f.StiDashboardExportFormat.Html:{let t=new StiHtmlExportSettings;return t.imageResolution=i.imageQuality,t.useEmbeddedImages=!0,t.zoom=i.scale/100,t.addPageBreaks=!1,t.chartType=i.enableAnimation?StiHtmlChartType.AnimatedVector:StiHtmlChartType.Vector,t}case __.f.StiDashboardExportFormat.Document:return null;default:throw new StiTypeNotRecognizedException(i.format)}}static getDashboardExportSettings(t){if(t instanceof StiDashboardExportSettings)return t;let e=null==t?StiExportFormat.Document:t.getExportFormat(),i=this.getDashboardExportSettings2(e);switch(e){case StiExportFormat.Html:i.enableAnimation=t.chartType==StiHtmlChartType.AnimatedVector;break}return i}static getDashboardExportSettings2(t){switch(t){case StiExportFormat.Pdf:return new StiPdfDashboardExportSettings;case StiExportFormat.Excel:return new StiExcelDashboardExportSettings;case StiExportFormat.Data:return new StiDataDashboardExportSettings;case StiExportFormat.Csv:return new StiDataDashboardExportSettings(StiDataType.Csv);case StiExportFormat.Dbf:return new StiDataDashboardExportSettings(StiDataType.Dbf);case StiExportFormat.Xml:return new StiDataDashboardExportSettings(StiDataType.Xml);case StiExportFormat.Json:return new StiDataDashboardExportSettings(StiDataType.Json);case StiExportFormat.Dif:return new StiDataDashboardExportSettings(StiDataType.Dif);case StiExportFormat.Sylk:return new StiDataDashboardExportSettings(StiDataType.Sylk);case StiExportFormat.Image:return new StiImageDashboardExportSettings;case StiExportFormat.ImageBmp:return new StiImageDashboardExportSettings(StiImageType.Bmp);case StiExportFormat.ImageGif:return new StiImageDashboardExportSettings(StiImageType.Gif);case StiExportFormat.ImagePng:return new StiImageDashboardExportSettings(StiImageType.Png);case StiExportFormat.ImageTiff:return new StiImageDashboardExportSettings(StiImageType.Tiff);case StiExportFormat.ImageJpeg:return new StiImageDashboardExportSettings(StiImageType.Jpeg);case StiExportFormat.ImageEmf:return new StiImageDashboardExportSettings(StiImageType.Emf);case StiExportFormat.ImagePcx:return new StiImageDashboardExportSettings(StiImageType.Pcx);case StiExportFormat.ImageSvgz:return new StiImageDashboardExportSettings(StiImageType.Svgz);case StiExportFormat.ImageSvg:return new StiSvgDashboardExportSettings;case StiExportFormat.Html:return new StiHtmlDashboardExportSettings;case StiExportFormat.Document:return null;default:throw new StiTypeNotRecognizedException(t)}}static isDataExport(t){return t.is(StiDataDashboardExportSettings)||t.is(StiExcelDashboardExportSettings)&&t.exportDataOnly}},Stimulsoft.System.Xml.XmlTextWriter),StiImage=Stimulsoft.Report.Components.StiImage;{class StiElementExportTool extends __.A.StiExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;await this.renderContent(t,e,i.clone())}async renderContent(t,e,i){let r=new StiImage(i),l=(r.name=t.name+`_Content`,r.stretch=!0,r.aspectRatio=!1,await this.draw(t,i));r.imageToDraw=l,e.components.add(r)}async drawElement(e,t){let i=new Image,r=new XmlTextWriter(Encoding.UTF8),l=new StiSvgData;if(l.x=0,l.y=0,l.width=t.width,l.height=t.height,l.component=e.as(StiComponent),e.is(IStiBackColor)){let t=StiDashboardStyleHelper.getBackColor(e);t.a<255&&(t=Color.white),r.writeStartElement("rect"),r.writeAttributeString("x","0"),r.writeAttributeString("y","0"),r.writeAttributeString("height",l.height.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")),r.writeAttributeString("width",l.width.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")),r.writeAttributeString("style",StiContextSvgHelper.writeFillBrush(r,t,new RectangleD(0,0,l.width,l.height))),r.writeEndElement()}if(e.is(StiProgressElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createProgressVisualSvgHelper();null!=t&&await t.writeProgress(r,l)}else if(e.is(StiIndicatorElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createIndicatorVisualSvgHelper();null!=t&&await t.writeIndicator(r,l)}else if(e.is(StiRangeSelectorElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createRangeSelectorVisualSvgHelper();null!=t&&await t.writeRangeSelector(r,l)}else if(e.is(StiCardsElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createCardsVisualSvgHelper();null!=t&&await t.writeCards(r,l)}else if(e.is(StiGaugeElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createGaugeVisualSvgHelper();null!=t&&await t.writeGauge(r,l,!1)}let n=Stimulsoft.Report.Resources.StimulsoftFont.getBase64Content(),s="<style>@font-face {font-family: 'Stimulsoft';src: url(data:font/ttf;base64,"+n+") format('truetype');font-weight: normal;font-style: normal;}</style>",o=StiString.format('<svg xmlns="http://www.w3.org/2000/svg" width="{0}" height="{1}"><defs>{3}</defs><rect x="0" y="0" width="{0}" height="{1}" style="fill: white;"/>{2}</svg>',l.width.toString(),l.height.toString(),r.textWriter.getStringBuilder().toString(),s);return i.svg=o,await i.convertAsync(Stimulsoft.System.Drawing.Imaging.ImageFormat.Jpeg),i}async draw(e,t){if(e.is(StiImageElement)){let t=await e.imageToDraw;return null!=t&&(t.url=e.imageHyperlink),t}let i=new Rectangle(0,0,Math.trunc(t.width),Math.trunc(t.height));if(e.is(StiIndicatorElement)||e.is(StiProgressElement)||e.is(StiGaugeElement)||e.is(StiCardsElement)||e.is(StiRangeSelectorElement))return this.drawElement(e,i);let r=new Image;try{if(e.is(IStiBackColor)){let t=StiDashboardStyleHelper.getBackColor(e);t.a<255&&(t=Color.white)}await this.paintContent(null,i,e)}catch(t){}return r}async paintContent(t,e,i){try{await this.paintAtom(t,e.clone(),i)}catch(t){}finally{}}async paintAtom(t,e,i){let r=null;if(i.isQuerable&&null==(r=await StiElementExportTool.getDataTable(i)))return}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}renderEmptyDataMessage(e,i,r,t){if(!t.is(StiSvgDashboardExportSettings)||t.renderEmptyContent)return!1;if(e.is(IStiRegionMapElement)&&e.dataFrom==StiMapSource.Manual)return!1;if(e.is(IStiImageElement)&&(null!=e.image||null!=e.icon||!StiString.isNullOrEmpty(e.imageHyperlink)))return!1;if(e.is(IStiWebContentElement)&&(!StiString.isNullOrEmpty(e.url)||!StiString.isNullOrEmpty(e.embedCode)))return!1;if(0<e.getMeters().length||e.as(IStiManuallyEnteredData)?.dataMode==StiDataMode.ManuallyEnteringData)return!1;let l=r.size,n=new Font("Arial",9),s=e.is(IStiWebContentElement)?Loc.get("FormStyleDesigner","NotSpecified"):e.is(IStiImageElement)?Loc.get("Dashboard","ImageNotSpecified"):Loc.get("Dashboard","DragDropDataFromDictionary"),o=Graphics.measureString(s,n);if(r.y+=r.height/2-48,r.height=Math.min(32,r.height),48<=l.width&&64<=l.height){r.y+=l.width>o.width+16?16:32;let t=new StiImage(new Rectangle(r.width/2-16,r.y,32,32));t.name=e.name+`_EmptyImage`,t.horAlignment=StiHorAlignment.Center,t.image=Stimulsoft.Base.Drawing.StiImageConverter.stringToImage(this.getEmptyDataImage(e)),i.components.add(t)}if(l.width>o.width+16&&32<=l.height){r.y+=32;let t=new StiText(r);t.name=e.name+`_EmptyText`,t.horAlignment=StiTextHorAlignment.Center,t.vertAlignment=StiVertAlignment.Center,t.font=n,t.text=s,t.textBrush=new StiSolidBrush(Color.darkGray),i.components.add(t)}return!0}format(t,e){if(null!=e&&null!=t){if(e instanceof DateTime&&!(t.textFormat.is2(StiDateFormatService)||t.textFormat.is2(StiTimeFormatService)||t.textFormat.is2(StiCustomFormatService)))return e.toShortDateString();return StiExtValueConverter.isEligable(e,t?.report?.culture)?StiExtValueConverter.convert(e,t?.report?.culture):t.textFormat.format(e)}return""}getEmptyDataImage(t){if(t.is(Stimulsoft.Report.Dashboard.IStiTableElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTIzODI0M0M3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTIzODI0M0I3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9Pfr+wAAAINJREFUeNrsl8EJwCAQBD2xoOu/Ce1CrgqDEIJGMQQMm8fuRxbmsRzzUUopDpmQUsIOOF/UGSS0TVUHYnahnZxvi5m5Vf+C6wbknC+ovrXPspOTGCPUAe/ACSth7vI8MW+5wQFE4APgEtIBOkAH6AAdoAN0gAN+I6HALoD+HcMdOAQYAAB9hUYI2ET/AAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiCardsElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUIzNTA2OThGNDM4MTFFQjg0MDZGNjlFNzQyNzdDRTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUIzNTA2OTdGNDM4MTFFQjg0MDZGNjlFNzQyNzdDRTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mjc2NTY1N2UtZjU3OS03OTQxLWIwYTgtZGU3MjdiYjI3MDhhIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OWZmYzA0NGMtNTQyYS03NTRkLWI0YzUtOTIwZWRkMTVlYjRlIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/5jbrAAAAG1JREFUeNrslzEOgDAMAxOU/+T/z8iLzMLACkZyAXvqUvWUNCclAYQyW4hTMyN7vLujjvPdPiR5V98CAxjAAHWeSWaeWQCZiOqhSl6tAvwJDbCcB9iABbCIKJlYRAb4jIiYJfG9Isrfb8e7AAMAInAVUndCPVIAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiChartElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGNJREFUeNpi/P//P8NAAsaBdgATiDh//vz/AXXAgIfAQAIWYhXiiiZDQ0PG0SigSxTQKnpGo2DUAYMrF9CisCFk5mgUjDpg1AGjDhh1wKgDRh0A7hsOVNcMVCUzjvjeMUCAAQAQtyafO9RmPQAAAABJRU5ErkJggg==";if(t.is(Stimulsoft.Report.Dashboard.IStiGaugeElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzczNjEzRTU3MzI1MTFFN0I4QTBFMzE1MDQyQjZBNDQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzczNjEzRTQ3MzI1MTFFN0I4QTBFMzE1MDQyQjZBNDQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+or3oxAAAA/1JREFUeNrEV9tOU0EU3S2UW4AWStsQ7oYaCA8QEj9BeOdB+AVRg36JxesvoA++i59gFB4hJnK/2AttgXBpKXWvcfZx2pz29IJxJZOec3rOWmv27Nkz48rn8/Q/0Vjpi+vr6x7+meX2kNsDbve4+fTfKW4/uX3l9oXb56mpqWwlvC6nCLAwRJ5zW/R6vYGOjg5qbW2l5uZmamhoUO/kcjm6vr6my8tLOjs7o3Q6HefHb7lF2EiqZgMsvgCSgYGBEItTY2NlAbu5uaFYLEa/GDDPJlaqMsDC6Nrrrq6ux8FgkPBOW1sbZTIZSqVSqpdXV1dKaHJykjY2NqipqYna29vJ5/Opa+D8/JwSiQQlk8n3fPuMjeQcDWjxj4FAYK6vr089AwlCDsLj4+OC95kU3xQ8Y+PU29trGTk4OEBEPvHlo2ITdjGNmOKnp6eqV5ubmzQ6OqpIMRQtLS3WkIyNjVnROTk5QY+RBzQ4OKi+1VxzbGKZf5+WjAD3ZJ7dr+BDl8tF8Xic9vf3aXh4WBEi7OFwmNxud8nxh5GjoyNlAoA4d0hd7+zs4PkCR+GDvO8uyvZXfr9fiaM3EJek6u7uVlm+u7tbNgERoaGhIerp6bHCDy4A3NDQWoUGkK2hUCiIREIvRAhEaJh+IAfZn+Quj/7+fvWdDBMiDW5o6Gn91wA7QrYsSqgQwtvbW5VMIBLoHqj/pVdOJsbHx1WH9vb21DOtsag1rQjMoMjALV6W8UMmF2e3ABHCkDgBPT88PFTJCW5oQAuaBQYQYlVTdc8gJtPIHF95DxHa2tpS+VG21rOgGBduzTFrGphGeZXiAWD62EGGQTJ+e3ubnMq5cAm31po2DdxHoQEkrKh8dujs7LTWACFFJMpBuIRba4VNA14hlZCaIiZQAzAlTVxcXDgOgw23t3gaVgwYQK2wqplxXS3EQBpLqulW7u2AMRwZGSGPx6Mar5aOq6MNd9pcC37weh6QGp/NZlVYsQSXAnJhYmKiol7KEEmiY+8ATTMC3yRBZJqh9t8VhAuV0EjG76aBVazx5pRB4UAk6gU4wGVya63VAgPsMoGxQrGRwoEKVi+EQwobNFgrhn2jZYCXxwz/vME2SkowphtKsqyItQDfggNcUta1xjutWTANI7zKRVFY4BR7AjNzqwUSD/sJAFzgBDdrwEGkYLGQtra2Ns+lNS/gD/L1gMXy0WjUugc3ayyYmgUGtIk3HLr8XQOc4C7Ws6uES9hAYidzVzA2pUtVb8ux+sn8dQKWaFQ5VMeat+U2B5NlbKOwk6nhYBJFr6s+mNgczV5we8Kl2V/h0Syhj2Yv6zqalTiczhiHU9mjJY3DKSrcqszzug+n/xq/BRgAggASny2TUqcAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiImageElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEJDMzU4OUE3MzI1MTFFN0EzMDFCNjJCNzkyMjQxMjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEJDMzU4OTk3MzI1MTFFN0EzMDFCNjJCNzkyMjQxMjIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HvDPrgAAAe5JREFUeNrMV8luwkAMdUIECBAgEPsqDpz5/6/gxgmxbwLEJiR2yjNNBSW0mTJhaikaYqL4zbP9nNHO5zOpNKNaraoF8LmqokEzAVClUnlrZJN5nRSb4cRL5/M5DYdD2m635PF4KJlMUjgctnxWdyJ4s9mkzWZD6DCsuIf/LQCwcxG/dACgXcQvHQByLuKXDgAFJ+KXDgDVXiwWyev1kqZpvOL+WRc40oYI9iyg4wyI2v9TwtPpRKPRiKbTKd/HYjGKx+OcT8cZQPB6vU77/Z7K5TJf6F/4jsej8wx0Oh0KBoOUSCS+fPl8nhlpNBpUKpVI16+Yl8sl9Xo9ltt0Om276H4EMJvNeHW73bTb7cjlcnGg1WrFgRAwl8vReDzm36ZB6wE6lUrJmYatVuuan8tukRbTUBc+n89SVsES0pTNZu+eHwwGXD+RSIRrCZuy3QW3wU3rdrsUCAQoFAo9/DeZTDggrN/vc0oPhwPXFADWarWHqSjchkhFu93m7vD7/ZZM4DJr5dYABul6WQfADF6UyWQsh4xJ+zP9lyJE2A1qpVAokGEYfwbxkhKiGNENGDZWlNsB8bIUr9drbkswYaWWv4GQMgsWiwVrxW0L2gVxlzwZZ4NoNCr0wWJ8PyiomoYaKTJN9elY+QfJhwADAEAG9ixyyux6AAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiIndicatorElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0VGMkNEQjVCRkM3MTFFNzg1ODA5NENGODgxNjBBRTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0VGMkNEQjRCRkM3MTFFNzg1ODA5NENGODgxNjBBRTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmUxMzY0MDEtMWIwOS1jODQ1LTg3Y2EtOWFlMjkyOGJiNjhiIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MmUxNzdhMzEtOWZlZS0xMWU3LWIxNzMtZTY1ODBhMDllOGE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TLktDAAAAdBJREFUeNrUl7FKA0EQhi/BXq61jEZSBhIUW429FlqofSKCrbHXcKkFQdNoa3wBMU8gCeQJrrCwCiSdIMj5D/zCeBzJZe82iQsftzc7m5mbnZ3dZIIgcObZss6c29K4wX6/n4qRYrFoLQLbxE4EJrQMaLC/BYJZ58A+2CR7s05Cidy1em+YRjNrOKcGCkpWoCxrIwdWwIaiDJYj9G7AFeiCN8VHUgfOwUXMDxLHdoi0JqgnXYJL0DJYqhbnJs4B2V6n4HkK423OCdJKwm9wDDoxdF/BCeekugu+wEMMvUfqWtmGazF0Vm3WgXwMnXWbDugIDMAZGUwZpUQR+OT+lv4tkb7HsbwtB1zwwrIrxWWkxkbc8wXquDaO4yE4mqDzHkPn75k+7zvhxAjgWnaAxx3wcbUqK7kUnApf6xhrhvRdFq4qxnyjHMCPySH0FF5TyD0aLzMfPMgqwKXxDozKjSnHd+MkFCNVrn9YPoSRnirPFSJO9CiT569j0zsAA7vgPmIop5zylSynEjY8tpj/C0wd8FVe6K/2Vc1wIiKSmgNy3rtY25LaCZJ4bRorUSbPnvEuGJMbTTrRZQmu07jDpC3BuYDOHC50Ifq3SZha+xFgANyufsKlz/2MAAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiListBoxElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMDEzNGViZC0wY2ZmLTczNDMtOWIwMi1jNTkzNzdiMWRiMjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA5MTJDN0Q4NTYwMTFFOEI3N0JBNjlFRDdGQ0IwOEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA5MTJDN0M4NTYwMTFFOEI3N0JBNjlFRDdGQ0IwOEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDAxMzRlYmQtMGNmZi03MzQzLTliMDItYzU5Mzc3YjFkYjIyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwMTM0ZWJkLTBjZmYtNzM0My05YjAyLWM1OTM3N2IxZGIyMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsGuI54AAACuSURBVHja7FeJCcAgDNTiEI7h/kvoGG5hm4JQQm2jGAOSgyKKyR3m0dpSipHEYYShAlxKSVbA9clmYYyxzMCIH7DRJHR4oScpQwi/e3LO9+i9pwmgOKUCyKuAlgi2EGByPGcPwRsZrOFTYAsB1c9eVTDS1qeGoNcWBO/biFp+sA1bFUC54VJc2oiA7EmI50vuAixg+V3wRayP0goLzyLpPmBFT0B/zVSAtIBTgAEAMM3EXL6e7tsAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiPivotTableElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA25pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTE1MUMzNDA5RkFDMTFFN0JERThGRDhBNTZGM0ZDN0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTE1MUMzM0Y5RkFDMTFFN0JERThGRDhBNTZGM0ZDN0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTIzODI0M0I3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTIzODI0M0M3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7WOnt0AAABPUlEQVR42uxXSW6EMBBsQxASJ8R2YPkD/38FT0BCgMRygSMCZsrKJCQZlGHAQJTpk90culyuajdsHEc6MiQ6ON6mmyiKdqMjDEP2A8D7B+HFrwc96RXMoZyycy+/gPbzifAF4LwinLPj1jZd7IKXBpZEnueUZdlzV7A20jSlsiz5ehgG8n1/PwBJklBd16QoCt9XVUV49oMg2OcKUNyyLDIMg7qu42vkdtOA4zhfKMcaud0AuK77UE64C0C/LMtiXXATHCienhLKb9uWNE0T1wdgtZvgpsX7vqc4jjkDpmmKYQBNBj6H1SRJ+mg4KNo0DQcBF+i6LgbAdJwviuKT0isYVVU5K7+dfhUAUA4QYMG2bfI8b9vX8JFAUYgNIBhjs1bbdB74Hmiv91rs352I1ozdzwT79z+nhwO4CDAAvLyCJQ9KIGkAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiProgressElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTI4QjI4RjdCRjUxMTFFNzk4RThFMTk3MzM2QTVEREYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTI4QjI4RjZCRjUxMTFFNzk4RThFMTk3MzM2QTVEREYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZTI4MmVmYWItOTQwYy1mYjQwLTg5OTctNzNiNzU1Nzk1ZmY1IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MmUxNzdhMzEtOWZlZS0xMWU3LWIxNzMtZTY1ODBhMDllOGE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xEa5MgAAAoxJREFUeNrEV7lOA0EMJeESFXcQLeIoiZBoEKIjKZEoIL/AFUJHR0FDRxDXJxAoEC1Ji0SBQKHjEh/ATRkQCs+SNzhmsrvZbMDS02jHM7bX4xnbgXw+X/OfVOd2YTabrccQBcaBYaAnHA63YJ7Yb8A9cAZkgGPwPt3IDTh5AApaMCSAWaBT8qCkhg3Q9ARsA0msebOTH3RQHsNwBaxo5Q7UwXuuWEZ5R4BNtRg2gZkKj7gL2IO8MYwL8MaXowdY+UEJ5TfAKjAKdANNjG6eW+U1mkjWAcu2jwEsoj+fNwhZ5jPNORxbI8fMmoG9jf3zJQ3A5mkMKbXphAzCxstyfA9Zgxi22DOSYpC1/8sAjvZrICQWnwIT2PDoJQAgkwL3CBgR0w/AgHU7ZAwklHKiWa/K+ZrS3jk1HWJdP0EISxv4nhedOQRkK33pWMay/jHWWfBARN1ziuSkjy9uUt2OTtZZZICklFO0l+mFnCG4o9KAIcXMVCHvpNX3kDSg3/Dg+E236ruv8BTDRc2K+V4FA7TM5oIBpoxGme4vKGhnnc9k9HLQ7nx8pj5TTFgGnCtmpAoGaJkX0gB9RWKc1XwhlhUzXUtpwLNg9sv32gdKqKtOOeK4YAAi/oNTp6Q1WB724e8HDbXBDussyoZJTpVFBQSnVK/Kae+Omn6UeSYo7j3l57haTHn8kP/Cy58fqlqAKC4rZVNJtmXI4VZJtm65zkYxpdklTyWZKkonDQKumUcBdAe88Hwb0MtXjcq6AcNe8saUroyNjYmPZblFu6XKctvOiJuKDUOp5pYoqBehOFVpa7bEcdHuUvEzt2brTq1ZwG13LJrTiNWcAq3MfhXNKT1qaadgLduAatG3AAMAxAf6UcvGQQYAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiTreeViewElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNGFhYjFiMC1lZTZlLTJkNDctYWZlMi1lYmQzYmI3MzJkNWQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUE2RkJGN0VBNjVFMTFFODk5OTVCRERFOTIwOEI5N0UiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUE2RkJGN0RBNjVFMTFFODk5OTVCRERFOTIwOEI5N0UiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTI3NTcwYzItM2MyZS05NDQxLTgzZjctYmYwM2ZkODU5YjRjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTkyYWNjNTItYTY0OS0xMWU4LWJmZGYtYWIxMTU1OWY5YTkwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WYlYxgAAAMBJREFUeNrsllEKwCAMQ9fhgbz/KbyRQ7Agm0pLbWRgQJhfi68xSDnna6dCu0kpfdzEGAlmoP6wNYQlIFGPUhVBDLxHYqUUOifcF0I+XcHsHT7WLcEMNzAJGuYWdILm1g9iAqUfeMEJCKUdG63OACmXjoBXP4QRgdaE57U8PXB6ANEDhMrA9L6bCXj1gIhAMcSm2u8VIuuz3EpGlQGPfjARGBgiKAFrP6h6wOOdgMjA9F3wrwwMRqJqvuU9YNUjwABgJX86W1bOxQAAAABJRU5ErkJggg==";if(t.is(Stimulsoft.Report.Dashboard.IStiWebContentElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAACIUlEQVR42u2XsYoCQQyGfS0fQHu1slIQFES0sBEbF8ROUDtB2UpFtBIsfQUbH0Ks1wfI8YfLMYyzM7OuesVdYDhcvOTb5E8mZjL/9m3ZbJY+eYwAPtZsNmm73VIaexrgeDxSoVCg4XBIxWKRP38MIIoiDnq9Xh9g5NlbAZbLJQfTDeUAyHQ69QZJDADHuVwuNgCeJylLYgA4RwZcBhCIFCDn8/k1AHCEFJvscDjQaDSyitWUtUQAprReLhfqdDpUr9epWq0ySJxuUDr8hYgTAyAwUip2u92o3+9TuVym+XzOgcMw5M/3+91bH14A+EdpOzjfbDZUqVRoMBjQfr/n4HJ6vR4tFgunPlAWvJAXwGQyYfLT6cRv2O12HwLL2e12/B2Uxmbwh7Z1Aghtq9XiGku6bWc2m7EuXFPUqwRCCseNRsMZXA5EGSdIbw2opDCIbjweewGs12ujIPEy6hS1Auhth7rCKersAwGRYiybxOwE0EnFoHA4dgVHS6JktVrtJwvwB0F7DSIZo/r0gjNkYbVaGQPjOboE30G7SnARs+7PSwP6GDUJEmUJgoDngxpYXV5Ml5OzC+BIHaNi7XabW1ICl0olLo9pCupifuou0MeoCBKB0R0YzXFmuxETX8dyIyKlyIBr4sUtLy/dCW3LST6ft25HqbZiOEafI8Wm7dhneUkFYLtmpe3Uu/9tAGlW9ZcCqPNeXV6eAvjVn2Z/1r4A4YX01RrCMf0AAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiRangeSelectorElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADpSURBVHgB7ZTfDYIwEMavhAF0A9hAmEBHcALdADbQEWACdRLfSfizgYzgAIT6NVSe2ppIjS/3Sy6X9Fqu3N1XIoZhGObPCFewbdsVXCalPMJHsF4IcYUvkyR5kgcCciRH4vs4jmsk3aVpKoZh2GMtVuv6cr8DCU6wiylW13UBO5MHrBXQZS+Nh4KgQFUO5IF5BpqmedDU5xlVdttB7Jf0PT2+HTt3qAuhBZEpVlXVRl94Ma4W3OAyUywMw1zHF2Mt8VsF6HVHk+w6XREly61Shg8pfnwHIMNcD1wE69WfqyH09Q4wDMMwzAsoJ2xWhyOiiwAAAABJRU5ErkJggg==";return null}}__.A.StiElementExportTool=StiElementExportTool}let StiChartElementBuilder=__.i.StiChartElementBuilder,StiGaugeVisualSvgHelper=(__.A.StiChartElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r,l){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let n=t.as(StiChartElement),s=null,o=(0<n.chartValuesList().length&&(s=await __.A.StiElementExportTool.getDataTable(n)),await StiChartElementBuilder.create(n).render(n,s)),a=StiExportTool.getScaleFactor(e,r);StiChartElementBuilder.scaleFont(o,a);for(let t=0;t<o.series.count;t++){if(null==l||t>=l.length)break;o.series.getByIndex(t).valuesStart=l[t]}o.name=t.name+`_Content`,o.clientRectangle=i.clone(),e.components.add(o)}},__.h.StiGaugeVisualSvgHelper),StiImageElementExportTool=(__.A.StiGaugeElementExportTool=class extends __.A.StiElementExportTool{async render(t,s,e,i){if(this.renderEmptyDataMessage(t,s,e.clone(),i))return;let o=t.as(StiGaugeElement),a=await __.A.StiElementExportTool.getDataTable(t),u=(new StiGaugeElementBuilder).render2(o,e.size,a);if(1!=(await u()).length||i.is(StiExcelDashboardExportSettings)||i.is(StiPdfDashboardExportSettings)){if(0<(await u()).length)if(i.isDesignMode||i.format!=__.f.StiDashboardExportFormat.Html)await this.renderContent(t,s,e.clone());else{let r=0,l=StiElementLocationHelper.getLocationRectangles(e,(await u()).length,o),n=l[0].clone();for(let i of await(u=(new StiGaugeElementBuilder).render2(o,n.size,a))()){let t=l[r].clone(),e={ref:0};StiString.isNullOrEmpty(i.series)||(await this.renderSingleGaugeTitleFromIteration(o,s,i,t,n,u,r,e),t.height-=e.ref,t.y+=e.ref),this.renderSingleGaugeFromIteration(o,s,i,t,r),r++}}}else this.renderSingleGaugeFromIteration(o,s,(await u())[0],e)}renderSingleGaugeFromIteration(t,e,i,r,l=0){let n=i.gauge;n.name=t.name+`_Content`+l,n.clientRectangle=r,n.style=StiDashboardStyleHelper.getGaugeStyle(t),n.customStyleName=t.customStyleName,n.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,!0)),e.components.add(n)}async renderSingleGaugeTitleFromIteration(s,o,t,a,e,i,u,S){let m=t.series,h=StiDashboardStyleHelper.getFont(s),r=await StiGaugeVisualSvgHelper.getTitleHeight(null,i,a,s,null),c=await StiGaugeVisualSvgHelper.getTitleMinFontSize(null,i,h,e.width,e.height);if(S.ref=r||0,null!=r){let t=new Rectangle(a.x,a.y,a.width,S.ref),e=StiFontUtils.changeFontSize(h,c),i=StiTitleMeasureHelper.measureTitle4(null,t,h,m),r=(t.height=i.height,StiDashboardExpressionHelper.getForeColor(s,s.foreColor)),l=Color.transparent.equals(r)?StiDashboardStyleHelper.getForeColor(s):r,n=new StiText(t);n.name=s.name+`_ContentTitle`+u,n.brush=new StiSolidBrush(Color.transparent),n.text=m,n.font=e,n.textBrush=new StiSolidBrush(l),n.horAlignment=StiTextHorAlignment.Center,o.components.add(n)}}},__.A.StiImageElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;await this.renderContent(t,e,i.clone())}async renderContent(t,e,s){let o=t.as(StiImageElement),a=await this.draw(o,s.clone());if(o.aspectRatio&&null!=a){let t=s.width/a.width,e=s.height/a.height,i=(t=e=t<e?t:e,a.width*(t=e)),r=a.height*e,l=this.calculateHorAlignmentPosition(o,s,i),n=this.calculateVertAlignmentPosition(o,s,r);s=new Rectangle(l,n,i,r)}let i=new StiImage(s);i.name=o.name+`_Content`,i.stretch=!0,i.aspectRatio=!1,i.imageToDraw=a,e.components.add(i)}calculateHorAlignmentPosition(t,e,i){switch(t.horAlignment){case StiHorAlignment.Left:return e.x;case StiHorAlignment.Right:return e.right-i;default:return e.x+(e.width-i)/2}}calculateVertAlignmentPosition(t,e,i){switch(t.vertAlignment){case StiVertAlignment.Top:return e.y;case StiVertAlignment.Bottom:return e.bottom-i;default:return e.y+(e.height-i)/2}}},__.A.StiImageElementExportTool),StiGaugeElementExportTool=__.A.StiGaugeElementExportTool,StiChartElementExportTool=__.A.StiChartElementExportTool,StiExportSettingsHelper=__.B.StiExportSettingsHelper,StiExportFormatHelper=__.B.StiExportFormatHelper,StiElementExportTool=__.A.StiElementExportTool,StiTitleExportHelper=__.B.StiTitleExportHelper,StiBackColorExportHelper=__.B.StiBackColorExportHelper,StiBorderExportHelper=__.B.StiBorderExportHelper,StiLayoutExportHelper=__.B.StiLayoutExportHelper,IStiReport=Stimulsoft.Base.IStiReport;{class em0{static exportAsync(e,i,r){setTimeout(async function(){let t=await em0.export(i,r);e(t)})}static export(t,e){let i;return i=e instanceof StiDashboardExportSettings?e:e instanceof StiExportSettings?__.B.StiExportSettingsHelper.getDashboardExportSettings(e):__.B.StiExportSettingsHelper.getDashboardExportSettings2(e),this.exportToStream(t,i)}static async exportToStream(e,i){let n=new StiReport,r=(n.isDocument=!0,n.reportUnit=StiReportUnitType.HundredthsOfInch,n.renderedPages.getByIndex(0)),t=(r.orientation=i.orientation,r.paperSize=i.paperSize,(i.is(StiExcelDashboardExportSettings)||i.is(StiDataDashboardExportSettings)||i.is(StiImageDashboardExportSettings))&&(r.margins=new StiMargins(0)),i),l=("width"in i&&null!=t&&0<t.width&&0<t.height&&(r.width=t.width,r.height=t.height),e.as(IStiDashboardWatermark)?.dashboardWatermark),s=(r.tagValue=l,null==r.tagValue&&(r.tagValue="*Dashboards*"),null);if(e.is(IStiReport))await this.renderCellReportAsync(e,n,r,i);else if(e.is(IStiDashboard)){let t=e.as(IStiDashboard);(s=t.report).currentPage=s.pages.indexOf(t.page),await this.renderCellDashboardAsync(e,r,i)}else if(e.is(IStiElement)){let t=e.as(IStiElement);(s=t.report).currentPage=s.pages.indexOf(t.page),await this.renderCellElement(e,n,r,i)}n.parentReport=s;for(let r of n.renderedPages.list)r.components.list.filter(t=>t.is(StiContainer)).forEach(t=>{let e=r.components.indexOf(t)+1,i=t.getComponentsList();for(let t=0;t<i.length;t++)i[t].page=r,i[t].setDirectDisplayRectangle(i[t].componentToPage(i[t].displayRectangle)),r.components.insert(e+t,i[t]);t.components.clear()});if(0<n.renderedPages.count&&!(Stimulsoft.Base.VsJxR.QpoDT.zQAfv()||(Stimulsoft.Base.VsJxR.QpoDT.LDUKC()||Stimulsoft.Base.VsJxR.QpoDT.emjwY())&&Stimulsoft.System.NodeJs.isStandaloneVersion)){let t=n.renderedPages.getByIndex(0),e=t.report.unit.convertFromHInches(200),i=t.report.unit.convertFromHInches(52),r=new Rectangle((t.width-e)/2,t.height-i,e,i),l=new StiImage(r);l.stretch=!0,l.printable=!1,l.image=Stimulsoft.Report.Export.StiExportUtils.getAdditionalData2(192),l.name=Stimulsoft.Report.StiNameValidator.correctName(Stimulsoft.System.Guid.newGuidString().substring(0,8)),l.componentPlacement="pf.PageFooterBand",t.components.add(l)}let o,a=null==i?StiExportFormat.Document:StiExportFormatHelper.convert(i.format);if(a==StiExportFormat.Document)o=Stimulsoft.System.Text.Encoding.UTF8.getBytes(n.saveDocumentToJsonString());else{let t=StiExportSettingsHelper.getExportSettings(i),e=await n.exportDocumentAsync2(a,null,t);o="string"==typeof e?Stimulsoft.System.Text.Encoding.UTF8.getBytes(e):"undefined"!=typeof Buffer&&Buffer.isBuffer(e)?e.toJSON().data:e}return o}static async renderCellReportAsync(t,e,i,r){let l=t.as(IStiReport).fetchPages().filter(t=>t.is(IStiDashboard));for(let t=0;t<l.length;t++)0<t&&(i=i.clone(!0,!1),e.renderedPages.add(i)),this.setUpPage(i,l[t],r),await this.renderDashboardAsync(i,l[t],r)}static async renderCellDashboardAsync(t,e,i){this.setUpPage(e,t,i),await this.renderDashboardAsync(e,t.as(IStiDashboard),i)}static async renderCellElement(t,e,i,r){let l=t.as(IStiElement);l.is(IStiRegionMapElement)&&e.dictionary.resources.addRange(l.report.dictionary.resources),e.reportAlias=l.name,this.setUpPage(i,t,r),await this.renderSingleElementAsync(i,l,r)}static async renderDashboardAsync(e,t,i){if(null==t)return;null!=i&&(i.renderSinglePage=!0,i.renderSingleElement=!1);let r=t.as(StiDashboard),l=await r.getElements(!1)[Stimulsoft.System.StiObject.stimulsoft]().filterAsync(async t=>t.isEnabledAsync()),n=1,s=1;if(i.is(IStiDashboardScaleMode)){let t=i.as(IStiDashboardScaleMode).scaleMode;switch(t){case StiDashboardScaleMode.PaperSize:n=e.width/r.width,s=e.height/r.height;break;case StiDashboardScaleMode.ViewSize:{let t=Math.min(e.width/i.viewportWidth,e.height/i.viewportHeight);n=i.viewportWidth/r.width*t,s=i.viewportHeight/r.height*t;break}case StiDashboardScaleMode.DesignSize:n=s=Math.min(e.width/r.width,e.height/r.height);break}}e.brush=new StiSolidBrush(StiDashboardStyleHelper.getDashboardBackColor(t,!1)),await this.renderElementsAsync(e,l,n,s,i)}static async renderSingleElementAsync(t,e,i){if(null==e||!await e.isEnabledAsync())return;null!=i&&(i.renderSingleElement=!0);let r=StiExportSettingsHelper.isDataExport(i),l=(r||(t.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(e))),e.as(StiComponent)),n=t.width/l.width,s=t.height/l.height,o=await this.renderElementAsync(t,e,n,s,i);if(o.left=0,o.top=0,!r){let t=e.margin;o.left=t.left,o.top=t.top}}static setUpPage(i,r,l){if(l.is(StiPdfDashboardExportSettings)&&(i.orientation=l.as(StiPdfDashboardExportSettings).orientation,i.paperSize=l.as(StiPdfDashboardExportSettings).paperSize),(l.is(StiExcelDashboardExportSettings)||l.is(StiDataDashboardExportSettings)||l.is(StiHtmlDashboardExportSettings)||l.is(StiImageDashboardExportSettings))&&(i.margins=new StiMargins(0)),l.is(IStiDashboardScaleMode)){let t=l.as(IStiDashboardScaleMode).scaleMode,e=(t==StiDashboardScaleMode.PaperSize?(l.viewportWidth=i.width,l.viewportHeight=i.height):0!=l.viewportWidth&&0!=l.viewportHeight&&t==StiDashboardScaleMode.ViewSize||(l.viewportWidth=r.as(StiComponent).width,l.viewportHeight=r.as(StiComponent).height),l.as(IStiSizeExportSettings));null!=e&&0<e.width&&0<e.height&&(l.viewportWidth=e.width,l.viewportHeight=e.height),l.is(StiPdfDashboardExportSettings)||(i.width=l.viewportWidth,i.height=l.viewportHeight)}let t=r.as(IStiDashboardWatermark)?.dashboardWatermark;i.tagValue=t,null==i.tagValue&&(i.tagValue="*Dashboards*"),null!=t&&(t.textEnabled&&(i.watermark.text=t.text,i.watermark.textBrush=new StiSolidBrush(t.textColor),i.watermark.font=t.textFont,i.watermark.angle=t.textAngle,i.watermark.showBehind=!0),t.imageEnabled)&&(i.watermark.image=t.image,i.watermark.aspectRatio=t.imageAspectRatio,i.watermark.imageAlignment=t.imageAlignment,i.watermark.imageMultipleFactor=t.imageMultipleFactor,i.watermark.imageStretch=t.imageStretch,i.watermark.imageTiling=t.imageTiling,i.watermark.imageTransparency=t.imageTransparency,i.watermark.showImageBehind=!0)}static async renderElementsAsync(r,e,l,n,s){null!=s&&(s.renderSingleElement=!1);for(let t of e){let e=await this.renderElementAsync(r,t,l,n,s),i=t.as(StiPanelElement);if(null!=i){let t=i.getComponents().list.filter(t=>t.is(IStiElement));await this.renderElementsAsync(e,t,l,n,s)}}}static async renderElementAsync(t,e,i,r,l,n,s={ref:new Stimulsoft.System.Drawing.Rectangle},o=[]){let a=e.as(StiComponent),u=StiExportSettingsHelper.isDataExport(l),S=Math.round(a.left*i),m=Math.round(a.top*r),h=Math.round(a.right*i),c=Math.round(a.bottom*r),d=new Rectangle(S,m,h-S,c-m);if(u||(d=StiLayoutExportHelper.excludeMargin(e,d)),a.parent.is(StiPanelElement)){let t=a.parent;d.x-=t.margin.left,d.y-=t.margin.top}let p=new StiPanel(d),g=(p.name=e.name,StiExportTool.isAllowOpacity(l));if(u||(p.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(e,null,g)),p.cornerRadius=e.as(IStiCornerRadius)?.cornerRadius),t.components.add(p),null!=p.report&&null!=e.report&&(p.report.styles.clear(),p.report.styles.addRange(e.report.styles)),d=await StiTitleExportHelper.render(e,p,l),!u){StiBorderExportHelper.render(e,p,l),StiBackColorExportHelper.render(e,p);let t=StiElementExportTool.getScaleFactor(p,l);d=StiLayoutExportHelper.excludePadding(e,d,t),d=StiLayoutExportHelper.excludeCornerRadius(e,d,t),s.ref=d}let b=StiExportTool.getTool(Type.getType(e));return(b=null==b?new StiElementExportTool:b)[Stimulsoft.System.StiObject.stimulsoft]().is(StiChartElementExportTool)&&l.is(StiHtmlDashboardExportSettings)?(e.previousAnimations=o,await b.render(e,p,d.clone(),l,n)):b[Stimulsoft.System.StiObject.stimulsoft]().is(StiGaugeElementExportTool)&&l.is(StiHtmlDashboardExportSettings)?(e.previousAnimations=o,await b.render(e,p,d.clone(),l)):!b[Stimulsoft.System.StiObject.stimulsoft]().is(StiImageElementExportTool)&&null!=l&&1==l.isDesignMode&&e[Stimulsoft.System.StiObject.stimulsoft]().is(IStiOnlineMapElement)||await b.render(e,p,d.clone(),l),p}}__.f.StiDashboardExportTools=em0}let StiBorderElementHelper=Stimulsoft.Report.Dashboard.Helpers.StiBorderElementHelper,SolidBrush=(__.p.StiElementControlPainter=class{static getBorderContentRect(t,e){return StiBorderElementHelper.getBorderContentRect3(t.clone(),e,StiScale.factor,!1)}},__.p.StiLocHelper=class{static get locAll(){return`(${Loc.get("Report","RangeAll")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("& ","")})`}},Stimulsoft.System.Drawing.SolidBrush),StiTableElementConditionHelper=__.L.StiTableElementConditionHelper,StringFormat=Stimulsoft.System.Drawing.StringFormat,StringFormatFlags=Stimulsoft.System.Drawing.StringFormatFlags,StiIndicatorCellPainter=(__.D.StiIndicatorCellPainter=class{static async draw(t,e,i,r,l,n,s,o,a,u=!0){let S=await StiTableElementConditionHelper.getIconCondition(n.key,i,r,l),m=(null!=S&&S.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(t,S,e,s),e=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(e,S)),this.getCellText(i,n,o));await this.draw2(t,e.clone(),i,r,l,n,s,o,a,m,u)}static async draw2(i,r,l,t,e,n,s,o,a,u,S=!0){let m=this.measureText(s,u,l.font),h=this.calculateIndicatorRect(r.clone(),n,s,m);if(await this.drawIndicator(i,l,t,e,n,h,o,a),S){let t=this.calculateTextRect(r.clone(),n),e=this.getColor(n,o,a);this.drawText(i,t,n,s,u,l.font,e)}}static async drawIndicator(s,o,a,u,S,m,h,c){let d=Math.min(m.width,m.height);if(null==h||0==h)s.fillRectangle(new RectangleD(m.x+(m.width-d)/2,m.y+(m.height-4)/2,d,5),Color.lightGray);else{let t=.75*d,e=(m=new Rectangle(m.x+(m.width-d)/2,m.y+(m.height-t)/2,d,t)).width/2,i,r,l,n=(l=0<h?(i=new Point(m.left+e,m.top),r=new Point(m.left,m.bottom),new Point(m.right,m.bottom)):(i=new Point(m.left+e,m.bottom),r=new Point(m.left,m.top),new Point(m.right,m.top)),0<h?c.cellIndicatorPositive:c.cellIndicatorNegative);n=await StiTableElementConditionHelper.processForeColor(n,S.key,o,a,u),s.fillPolygon([i,r,l],new SolidBrush(n))}}static drawText(t,e,i,r,l,n,s){if(StiString.isNullOrWhiteSpace(l))return;e.width-=2;let o=new StringFormat,a=StiElementConsts.Table.Font.getGdiFont(r,null,n);o.lineAlignment=StringAlignment.Center,o.alignment=this.toAlignment(i),o.trimming=StringTrimming.None,o.formatFlags|=StringFormatFlags.NoWrap,t.drawString(l,a,s,e.clone(),o)}static measureText(t,e,i){if(StiString.isNullOrWhiteSpace(e))return 0;let r=StiElementConsts.Table.Font.getGdiFont(t,null,i);return StiTextDrawing.measureString(null,e,r).width}static calculateIndicatorRect(e,t,i,r){let l=16*i;switch(this.getHorAlignment(t)){case StiHorAlignment.Left:e=new Rectangle(e.x,e.y,l,e.height);break;case StiHorAlignment.Right:e=new Rectangle(e.right-l,e.y,l,e.height);break;case StiHorAlignment.Center:{let t=r+l;e=new Rectangle(e.right-(e.width-t)/2-l,e.y,l,e.height);break}}return e.inflate(-4*i,-4*i),e}static getCellText(t,e,i){if(null==i)return"";return StiTextFormatHelper.formatAsPercentage2(t.report,e.textFormat,i)}static calculateTextRect(t,e){let i=t.width/4;switch(this.getHorAlignment(e)){case StiHorAlignment.Left:return new Rectangle(t.x+i,t.y,t.width-i,t.height);case StiHorAlignment.Right:return new Rectangle(t.x,t.y,t.width-i,t.height);case StiHorAlignment.Center:return new Rectangle(t.x,t.y,t.width,t.height)}return t}static getColor(t,e,i){if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(0<e)return i.cellIndicatorPositive;if(e<0)return i.cellIndicatorNegative;return i.cellIndicatorNeutral}static toAlignment2(t){if(t[Stimulsoft.System.StiObject.stimulsoft]().is(StringAlignment))return t;let e=t[Stimulsoft.System.StiObject.stimulsoft]().as(IStiHorAlignment);if(null==e)return StringAlignment.Center;return this.toAlignment(e.horAlignment)}static toAlignment(t){switch(t){case StiHorAlignment.Left:return StringAlignment.Near;case StiHorAlignment.Center:return StringAlignment.Center;case StiHorAlignment.Right:return StringAlignment.Far}return StringAlignment.Center}static getHorAlignment(t){let e=t;return null!=e?e.horAlignment:StiHorAlignment.Right}},__.D.StiIndicatorCellPainter),StiDataSortRuleHelper=Stimulsoft.Data.Engine.StiDataSortRuleHelper;{class StiTableElementGdiPainter{static getBackgroundColor(t,e,i,r){return null==e||e.data.backColor.equals(Color.transparent)?r?i.alternatingCellBackColor:i.cellBackColor:r?StiDashboardStyleHelper.isDarkStyle3(t)?StiColorUtils.light(e.data.backColor,25):StiColorUtils.dark(e.data.backColor,25):e.data.backColor}static measureColumn(t,e,i,r,l){let n,s=StiElementConsts.Table.getHeight(i.font,i.zoom);if(r.is2(StiSparklinesColumn))n=this.measureSparklinesCell(i,0,i.zoom);else if(r.is2(StiIndicatorColumn))n=this.measureIndicatorCell(t,i,r,l,i.zoom);else if(r.is2(StiDataBarsColumn))n=this.measureDataBarsCell(t,i,r,l,i.zoom);else if(r.is2(StiBubbleColumn))n=this.measureBubbleCell(t,i,r,l,i.zoom);else if(StiImageHelper.isImage(l))return new Size(0,StiElementConsts.Table.getHeight(i.font,i.zoom));return new Size(n.width,Math.max(n.height,s))}static getArrowSize(t,e){let i=StiElementConsts.Table.getHeight(t.headerFont,t.zoom),r=StiDataSortRuleHelper.getSortDirection(t.userSorts,e.key);if(r!=StiDataSortDirection.None)return new Size(1.5*i,i);return Size.empty}static getRightImageRect(t,e,i){let r=i.width*t.zoom,l=i.height*t.zoom;return new Rectangle(e.right-3-r,e.y+(e.height-l)/2,r,l)}static measureSparklinesCell(t,e,i){return new Size(Math.max(e,80*i),0)}static measureIndicatorCell(t,e,i,r,l){let n=i,s=StiIndicatorCellPainter.getCellText(e,n,StiValueHelper.tryToNullableNumber(r)),o=this.measureCell2(t,s,e.font,i);return o.width=(o.width+4)*l*1.25,o}static measureDataBarsCell(t,e,i,r,l){let n=StiTextFormatHelper.formatBasedOnColumnType(e,i,r),s=this.measureCell2(t,n,e.font,i);return s.width*=l,i.horAlignment!=StiHorAlignment.Center&&(s.width*=2),i.is(StiDataBarsColumn)&&0<i.width&&(s.width=l*i.width),s}static measureBubbleCell(i,r,l,n,t){let s=StiElementConsts.Table.getHeight(r.font,r.zoom);if(l.horAlignment==StiHorAlignment.Center)return s-=2,new Size(s,StiElementConsts.Table.getHeight(r.font));{let t=StiTextFormatHelper.formatBasedOnColumnType(r,l,n),e=this.measureCell2(i,t,r.font,l);return e.width+=s,e}}static measureCommonCell(t,e,i,r,l,n){let s=StiTextFormatHelper.formatBasedOnColumnType(e,i,r),o=new Size(l,0);return StiImageHelper.isImage(s)||((o=this.measureCell2(t,s,e.font,i)).width*=n,o.height*=n),o}static measureHeader(t,e){return this.measureHeader2(null,t,e)}static measureHeader2(t,e,i){let r=StiLabelHelper.getLabel(i),l=this.measureCell2(t,r,e.headerFont,i);return l.width+=36,l}static measureCell(t,e,i){return this.measureCell2(null,t,e,i)}static measureCell2(t,e,i,r){let l=new Size(8,StiElementConsts.Table.getHeight(i));if(StiString.isNullOrEmpty(e))return l;let n=new __.D.StiTableColumnSizeHelper(i,r),s=i[Stimulsoft.System.StiObject.stimulsoft]().getHashCode().toString()+e+n.getUniqueCode().toString();if(this.captionSizeCache.contains(s)){let t=this.captionSizeCache.get(s);return l.width=t.width,l.height=t.height,l}let o=0!=n.width?n.width:n.maxWidth,a=Graphics.measureString(e,i,o);return a.width=n.getColumnWidth(a.width),a.height=n.getColumnHeight(a.height),l.width=a.width,l.height=a.height,this.captionSizeCache.set(s,a),l}static measureHeaders(e,t){let r=StiElementConsts.Table.Font.getGdiFont(1,null,t),l=new Size(8,StiElementConsts.Table.getHeight(r));for(let t of e){let e=new Size(8,0),i=StiLabelHelper.getLabel(t);if(!StiString.isNullOrEmpty(i)){let t=Graphics.measureString(i,r,1e6);e.width+=t.width}l.width+=e.width}return l.width}}StiTableElementGdiPainter.captionSizeCache=new Hashtable,__.q.StiTableElementGdiPainter=StiTableElementGdiPainter}__.D.StiBubbleCellPainter=class{static async draw(l,t,e,i,r,n,s,o,a,u,S,m,h=!0){if(0==o)return;let c=StiTextFormatHelper.formatBasedOnColumnType(e,n,o),d=(0<a&&(a=0),u<0&&(u=0),n.horAlignment),p=t,g=await StiTableElementConditionHelper.getIconCondition(n.key,e,i,r),b=(null!=g&&g.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(l,g,p,s),p=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(p,g)),p.inflate(-2,-2),this.calculateTextRect(e,p,n)),C=(p=this.calculateBubbleRect(e,p,n,Math.abs(o),a,u),StiDashboardStyleHelper.getTableStyle(e)),f=this.getForeColor(e,n,C,S,m);if(h&&d!=StiHorAlignment.Center&&l.drawString(c,e.font,f,b,null),0<p.width&&0<p.height){let t=n.as(StiBubbleColumn),e=t.allowCustomColors?t.positiveColor:C.cellDataBarsPositive,i=t.allowCustomColors?t.negativeColor:C.cellDataBarsNegative,r=new SolidBrush(o<0?i:e);l.fillEllipse(p,r)}}static getForeColor(t,e,i,r,l){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(r)return i.alternatingCellForeColor;return l?null!=i?i.selectedCellForeColor:StiElementConsts.Table.Font.Color:null!=i?i.cellForeColor:StiElementConsts.Table.Font.Color}static calculateBubbleRect(t,e,i,r,l,n){let s=i;if(null==s)return e;let o=StiElementConsts.Table.getHeight(t.font,t.zoom),a=(o-=2,Math.max(Math.abs(l),Math.abs(n))),u=Math.abs(o*r/a);switch(s.horAlignment){case StiHorAlignment.Left:return new RectangleD(e.right-o+(o-u)/2,e.y+(e.height-u)/2,u,u);case StiHorAlignment.Center:return new RectangleD(e.x+(e.width-u)/2,e.y+(e.height-u)/2,u,u);case StiHorAlignment.Right:return new RectangleD(e.x+(o-u)/2,e.y+(e.height-u)/2,u,u)}return e}static calculateTextRect(e,i,t){let r=t;if(null!=r){let t=StiElementConsts.Table.getHeight(e.font,e.zoom);switch(r.horAlignment){case StiHorAlignment.Left:i=new RectangleD(i.x,i.y,i.width-t,i.height);break;case StiHorAlignment.Right:i=new RectangleD(i.x+t,i.y,i.width-t,i.height);break}}return i.inflate(-2,-2),i}static getCellText(t,e,i){return StiTextFormatHelper.formatBasedOnColumnType(t,e,i)}},__.D.StiColorScaleCellPainter=class{static getScaleColor(e,i,r,t,l,n){let s=(r-i)/2,o=(e=Math.min(e,r),e=Math.max(e,i),0),a,u,S=t.cellBackColor;if(s<e){let t=r-s;u=0!=t?(o=(e-s)/t,a=Color.fromArgb3(255,S),Color.fromArgb3(255,n)):(a=Color.lightGray,Color.lightGray)}else{let t=s-i;u=0!=t?(o=e/t,a=Color.fromArgb3(255,l),Color.fromArgb3(255,S)):(a=Color.lightGray,Color.lightGray)}let m=(u.a-a.a)*o+a.a,h=(u.r-a.r)*o+a.r,c=(u.g-a.g)*o+a.g,d=(u.b-a.b)*o+a.b;return m=Math.min(m,255),h=Math.min(h,255),c=Math.min(c,255),d=Math.min(d,255),m=Math.max(m,0),h=Math.max(h,0),c=Math.max(c,0),d=Math.max(d,0),Color.fromArgb(Math.round(m),Math.round(h),Math.round(c),Math.round(d))}};let StiSvgGeomWriter=Stimulsoft.Report.Export.StiSvgGeomWriter,StiSvgHelper=Stimulsoft.Report.Export.StiSvgHelper,StiDataBarsDirection=(__.D.StiConditionIconPainter=class{static async drawIcon(h,c,d,p){if(!c||c.iconAlignment===StiIconAlignment.None)return;let t=c.customIcon;if(t){let m=StiImageHelper.getImageFromObject(t);if(m){let t=new RectangleD,e=(c.iconAlignment===StiIconAlignment.Left?t=new RectangleD(d.left,d.top,d.height,d.height):c.iconAlignment===StiIconAlignment.Right&&(t=new RectangleD(d.right-d.height,d.top,d.height,d.height)),m.width),i=m.height,r=t.width/e,l=t.height/i,n=Math.min(r,l),s=e*n,o=i*n,a=(t.width-s)/2,u=(t.height-o)/2,S=new RectangleD;S.x=t.x+a,S.y=t.y+u,S.width=s,S.height=o,S.inflate(-2*p,-2*p),h.drawImage(m,S)}}else{let t=new RectangleD,e=(c.iconAlignment===StiIconAlignment.Left?t=new RectangleD(d.left,d.top,d.height,d.height):c.iconAlignment===StiIconAlignment.Right&&(t=new RectangleD(d.right-d.height,d.top,d.height,d.height)),await StiFontIconsHelper.convertFontIconToImageAsync(c.icon,c.iconColor,t.width,t.height,"0.9em"));h.drawImage(e,t)}}static adjustCellContentRectWithIcon(t,e){if(e.iconAlignment===StiIconAlignment.Left)return new RectangleD(t.left+t.height,t.top,t.width-t.height,t.height);if(e.iconAlignment===StiIconAlignment.Right)return new RectangleD(t.left,t.top,t.width-t.height,t.height);return t}static async getImageWithConditionIcon(t,e,i){let r=t.iconAlignment===StiIconAlignment.Left?new RectangleD(e.x,e.y,e.height,e.height):new RectangleD(e.right-e.height,e.y,e.height,e.height),l=new XmlTextWriter(Encoding.UTF8),n=(l.indentation=-1,l.writeStartElement("svg"),l.writeAttributeString("version","1.1"),l.writeAttributeString("baseProfile","full"),l.writeAttributeString("xmlns","http://www.w3.org/2000/svg"),l.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),l.writeAttributeString("xmlns:ev","http://www.w3.org/2001/xml-events"),l.writeAttributeString("height",StiSvgHelper.toUnits(r.height)),l.writeAttributeString("width",StiSvgHelper.toUnits(r.width)),l.writeStartElement("rect"),l.writeAttributeString("x","0"),l.writeAttributeString("y","0"),l.writeAttributeString("width",StiSvgHelper.toUnits(r.width)),l.writeAttributeString("height",StiSvgHelper.toUnits(r.height)),l.writeAttributeString("style",StiSvgHelper.writeFillBrush(l,t.backColor,r)),l.writeEndElement(),new StiSvgGeomWriter(l)),s=(await this.drawIcon(n,t,new RectangleD(0,0,r.width,r.height),1),l.writeFullEndElement(),l.flush(),new StiImage(r)),o=(s.name=i+`_ConditionIcon`,l.textWriter.getStringBuilder().toString());return s.image=StiImageConverter.stringToImage(Stimulsoft.System.Convert.toBase64String(o)),s}},__.L.StiDataBarsDirection),StiDataBarsBrushType=__.L.StiDataBarsBrushType,StiGradientBrush=Stimulsoft.Base.Drawing.StiGradientBrush,IStiControlElement=(__.D.StiDataBarsCellPainter=class{static async draw(t,e,i,r,l,n,s,o,a,u,S,m,h=!0,c=StiDataBarsDirection.LeftToRight,d=StiDataBarsBrushType.Solid){let p=await StiTableElementConditionHelper.getIconCondition(n.key,i,r,l),g=(null!=p&&p.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(t,p,e,s),e=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(e,p)),StiTextFormatHelper.formatBasedOnColumnType(i,n,o));await this.draw2(t,e,o,a,u,s,g,i,r,l,n,S,m,h,c,d)}static async draw2(l,t,n,e,i,r,s,o,a,u,S,m,h,c=!0,d=StiDataBarsDirection.LeftToRight,p=StiDataBarsBrushType.Solid){if(null==n||0==n)return;let g=S,b=(StiString.isNullOrWhiteSpace(g.minimum)||(e=StiValueHelper.tryToNumber(StiReportParser.parse2(g.minimum,o.report))),StiString.isNullOrWhiteSpace(g.maximum)||(i=StiValueHelper.tryToNumber(StiReportParser.parse2(g.maximum,o.report))),e=Math.min(e,0),!1),C=((i=Math.max(i,0))<n&&(b=!0,n=i),n<e&&(b=!0,n=e),S.horAlignment),f=t,y=(f.inflate(-2,-2),this.calculateTextRect(f,S)),w=(f=this.calculateDataBarsRect(f,S),StiDashboardStyleHelper.getTableStyle(o)),M=this.getColorPositive(w,g),I=this.getNegativeColor(w,g),T=this.getOverlappedColor(w,g),x=this.getFillColor(w,g),D=this.getForeColor(o,S,w,m,h),F=(c&&l.drawString(s,o.font,D,y,null),C!=StiHorAlignment.Center&&l.fillRectangle(f,x),i+Math.abs(e)),v=f.width*Math.abs(e)/F,A=f.width*n/F,E=f.width*Math.abs(n)/F,R=0;if(d==StiDataBarsDirection.LeftToRight?f.x+=n<0?v-E:v:(R=180,f.x=n<0?f.right-v:f.right-v-E),f.width=E,n<0&&(R+=180),0<f.width&&0<f.height){if(p==StiDataBarsBrushType.Gradient){let r;if(r=d==StiDataBarsDirection.LeftToRight?0<n?new RectangleD(t.left+v,t.top,A,t.height):new RectangleD(t.left,t.top,v,t.height):n<0?new RectangleD(t.left+A,t.top,v,t.height):new RectangleD(t.left,t.top,A,t.height),0<f.width&&f.width<1&&(f.width=1),0<r.width&&r.width<1&&(r.width=1),0<r.width&&0<f.width){let t=n<0?I:M,e=StiColorUtils.light(t,200),i=(r.x-=.1*r.width,r.width+=.2*r.width,new StiGradientBrush(t,e,R));l.fillRectangle(f,i)}}else{let t=n<0?I:M;t=await StiTableElementConditionHelper.processForeColor(t,S.key,o,a,u),l.fillRectangle(f,t)}if(b){let t=0<=n?new RectangleD(f.right-6*r,f.y,6*r,f.height):new RectangleD(f.x,f.y,6*r,f.height);l.fillRectangle(t,T)}C==StiHorAlignment.Center&&l.drawString(s,o.font,Color.white,y,null)}}static getOverlappedColor(t,e){return e.overlappedColor.equals(Color.transparent)?t.cellDataBarsOverlapped:e.overlappedColor}static getColorPositive(t,e){return e.positiveColor.equals(Color.transparent)?t.cellDataBarsPositive:e.positiveColor}static getNegativeColor(t,e){return e.negativeColor.equals(Color.transparent)?t.cellDataBarsNegative:e.negativeColor}static getFillColor(t,e){return e.fillColor.equals(Color.transparent)?Color.fromArgb3(40,t.cellDataBarsPositive):e.fillColor}static getForeColor(t,e,i,r,l){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(r)return i.alternatingCellForeColor;return l?null!=i?i.selectedCellForeColor:StiElementConsts.Table.Font.Color:null!=i?i.cellForeColor:StiElementConsts.Table.Font.Color}static calculateDataBarsRect(t,e){let i=e;if(null==i)return t;switch(i.horAlignment){case StiHorAlignment.Left:return new RectangleD(t.right-t.width/2,t.y,t.width/2,t.height);case StiHorAlignment.Right:return new RectangleD(t.x,t.y,t.width/2,t.height)}return t}static calculateTextRect(t,e){let i=e;if(null!=i)switch(i.horAlignment){case StiHorAlignment.Left:t=new RectangleD(t.x,t.y,t.width/2,t.height);break;case StiHorAlignment.Right:t=new RectangleD(t.right-t.width/2,t.y,t.width/2,t.height);break}return t.inflate(-2,-2),t}},__.D.StiSparklinesCellPainter=class{static draw(t,e,i,r,l){}static castToArray(t){return StiArray.isArray(t)?t:null}},__.D.StiTableColumnSizeHelper=class{getUniqueCode(){let t=0;return t=397*(t=397*(t=397*(t=397*t^this.width)^this.minWidth)^this.maxWidth)^this.wordWrap[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}getColumnWidth(t,e=!1){if(0!=this.width&&!e)return this.width;if(!this.isMeasurable)return t;return t<this.minWidth&&(t=this.minWidth),t=0!=this.maxWidth&&t>this.maxWidth?this.maxWidth:t}getColumnHeight(t){if(!this.isMeasurable)return t;if(this.maxHeight<t)return this.maxHeight;return t}static isWordWrap(t){let e=t.as(IStiTableColumnSize);if(null==e?.size)return!1;return e.size.wordWrap}constructor(t,e){this.width=0,this.minWidth=30,this.maxWidth=300,this.maxHeight=0,this.wordWrap=!1,this.fontUniqueCode=0,this.isMeasurable=!1;let i=(this.column=e).as(IStiTableColumnSize);if(null==i?.size)return;this.isMeasurable=!0,this.fontUniqueCode=t.getHashCode();let r=i.size;this.width=r.width,this.minWidth=r.minWidth,this.maxWidth=r.maxWidth,this.maxHeight=r.wordWrap?Number.MAX_VALUE:Math.round(StiElementConsts.getFontHeight(t))+1,this.wordWrap=r.wordWrap}},Stimulsoft.Report.Dashboard.IStiControlElement),StiLocHelper=__.p.StiLocHelper,StiComboBoxHelper=__.T.StiComboBoxHelper;{class qu0 extends __.A.StiElementExportTool{async render(l,n,s,t){if(0==l.getMeters().length)return;let o=await StiElementDataCache.tryToGetOrCreate(l);if(null==o)return;let e=t.is(StiSvgDashboardExportSettings)&&t.designMode,r=l.as(StiComboBoxElement),a=qu0.getNameMeterIndex(o),u=qu0.getKeyMeterIndex(o),i=e&&null!=r&&!StiString.isNullOrEmpty(r.initialValue),S=StiExportTool.isAllowOpacity(t),m=new Hashtable;if(1<o.meters.length)for(let e of o.rows){let t=e[1]?.[Stimulsoft.System.StiObject.stimulsoft]().toString();StiString.isNullOrWhiteSpace(t)||m.set(t,e[0])}let h=l,c=l,d="";if(h.selectionMode==StiItemSelectionMode.One)if(0<c.userFilters.length)d=c.userFilters[0].value,d=m.get(d)??d;else if(h.showAllValue)d=StiLocHelper.locAll;else{let t=o.rows[0];null!=t&&0<t.length&&null!=t[0]&&(d=t[0].toString())}if(i)if(r.initialValue.includes(";"))d=r.initialValue;else{let t=qu0.getRow(r,o,u);if(null==t)return;let e=-1!=a?t[a]:null,i=-1!=u?t[u]:null;null==e&&null==i||(d=(e||i).toString())}if(this.renderElement(n,l,s,this.format(l.as(IStiControlElement),d),S),h.selectionMode==StiItemSelectionMode.Multi&&!i){let e=s,r=0;if(l.is(IStiComboBoxElement)&&(r=l.maxSelectedItems),0<c.userFilters.length){let i=c.userFilters;if(i.every(t=>t.condition==StiDataFilterCondition.NotEqualTo)){i=[];for(let t of o.rows){let e=t[1]?.[Stimulsoft.System.StiObject.stimulsoft]().toString();if(c.userFilters.some(t=>t.value==e))continue;i.push(new StiDataFilterRule(null,null,StiDataFilterCondition.EqualTo,e))}}for(let t of i){if(!(e.x+e.width<=s.x+s.width)){while(1<n.components.count)n.components.removeAt(1);this.renderItem(n,l,s,StiString.format(Loc.get("Dashboard","NSelected"),0<r?r:c.userFilters.length));break}(e=this.renderItem(n,l,e,this.format(l.as(IStiControlElement),m.get(t.value)??t.value))).x+=e.width+4}}else if(h.showAllValue)this.renderItem(n,l,s,StiLocHelper.locAll);else{let t=this.getValuesCount(l,o);this.renderItem(n,l,s,StiString.format(Loc.get("Dashboard","NSelected"),0<r?r:t))}}}getValuesCount(t,e){let i=t.as(StiComboBoxElement),r=StiComboBoxHelper.fetchItems(i,e,i.showBlanks);return null!=r?r.length:0}renderElement(t,e,i,r,l){let n=StiDashboardStyleHelper.getForeColor(e),s=StiDashboardStyleHelper.getBackColor(e,null,l),o=(n=this.checkNegativeColor(r,n,e),new StiText(i));o.name=e.name+`_ComboBox`,o.allowHtmlTags=!0,o.vertAlignment=StiVertAlignment.Center,o.horAlignment=StiTextHorAlignment.Left,o.textBrush=new StiSolidBrush(n),o.brush=new StiSolidBrush(s),o.text=this.format(e.as(IStiControlElement),r),o.font=StiDashboardStyleHelper.getFont(e),t.components.add(o)}renderItem(t,e,i,r){let l=StiDashboardStyleHelper.getControlStyle(e),n=this.checkNegativeColor(r,l.selectedForeColor,e),s=new StiText,o=(s.name=e.name+`_ComboBoxItem`,s.allowHtmlTags=!0,s.vertAlignment=StiVertAlignment.Center,s.horAlignment=StiTextHorAlignment.Center,s.textBrush=new StiSolidBrush(n),s.brush=new StiSolidBrush(l.selectedBackColor),s.text=this.format(e.as(IStiControlElement),r),s.font=StiDashboardStyleHelper.getFont(e),t.components.add(s),Graphics.measureString(r,s.font));return s.clientRectangle=new Rectangle(i.x,i.y,o.width+4,i.height)}static getNameMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>"StiNameComboBoxMeter"==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName());return null!=e?t.meters.indexOf(e):-1}static getKeyMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>"StiKeyComboBoxMeter"==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName());return null!=e?t.meters.indexOf(e):-1}static getRow(e,t,i){if(StiString.isNullOrEmpty(e.initialValue)||-1==i)return t.rows[0];return t.rows.find(t=>t[i]?.toString()==e.initialValue)}checkNegativeColor(e,i,t){if(t.is(IStiTextFormat)&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)){let t=StiValueHelper.tryToNumber(e);return null==t||0<=t?i:Stimulsoft.StiOptions.Engine.negativeColor}return i}}__.A.StiComboBoxElementExportTool=qu0}let StiDatePickerHelper=__.R.StiDatePickerHelper,StiOvalShapeType=Stimulsoft.Report.Components.StiOvalShapeType,StiListBoxHelper=(__.A.StiDatePickerElementExportTool=class extends __.A.StiElementExportTool{async render(e,i,r,t){let l=e;if(null==l.getValueMeter())return;this.storedCulture=null;try{let t=e.report?.getParsedCulture();StiString.isNullOrWhiteSpace(t)||(this.storedCulture=CultureInfo.currentCulture,CultureInfo.currentCulture=new CultureInfo(t)),l.viewMode==StiDateViewMode.DatePicker?await this.createContentForDatePickerViewMode(l,i,r):await this.createContentForSliderViewMode(l,i,r)}finally{null!=this.storedCulture&&(CultureInfo.currentCulture=this.storedCulture)}}async createContentForDatePickerViewMode(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t),l=StiDashboardStyleHelper.getBackColor(t),n=new StiText(i);n.name=t.name+`_Content`,n.allowHtmlTags=!0,n.vertAlignment=StiVertAlignment.Center,n.textBrush=new StiSolidBrush(r),n.brush=new StiSolidBrush(l),n.text=(await this.getDateTimeString(t)).replace("<<>>"," - "),n.font=StiDashboardStyleHelper.getFont(t),e.components.add(n)}async createContentForSliderViewMode(s,o,a){let u=await this.getDateTimeString(s),t=StiDashboardStyleHelper.getControlStyle(s),S=StiDashboardStyleHelper.getForeColor(s,t.foreColor),m=t.selectedBackColor,h=t.glyphColor,c=t.separatorColor,d=StiDashboardStyleHelper.getFont(s),p=1.4*s.font.size,g=2,b=2,C=a.height/2-2*g,f=a.height-C-2*b,y=4,w=f+C/2+b-y-1;if(s.selectionMode==StiDateSelectionMode.Single){let t=5,e=a.width/2-2*t-C/2-b,i=new StiShape(new Rectangle(a.x+t,w,e,y)),r=(i.name=s.name+`_LineLeft`,i.shapeType=new StiRectangleShapeType,i.brush=new StiSolidBrush(m),i.borderColor=Color.transparent,i.style=StiPenStyle.None,i.size=0,o.components.add(i),new StiShape(new Rectangle(a.x+a.width-e-t,w,e,y))),l=(r.name=s.name+`_LineRight`,r.shapeType=new StiRectangleShapeType,r.brush=new StiSolidBrush(m),r.borderColor=Color.transparent,r.style=StiPenStyle.None,r.size=0,o.components.add(r),new StiShape(new Rectangle(a.x+a.width/2-C/2,f,C,C))),n=(l.name=s.name+`_Circle`,l.shapeType=new StiOvalShapeType,l.brush=new StiSolidBrush(c),l.borderColor=h,l.size=b,o.components.add(l),new StiText(new Rectangle(a.x,a.y,a.width,p)));n.name=s.name+`_Text`,n.text=this.format(s,u),n.font=d,n.textBrush=new StiSolidBrush(S),n.brush=new StiSolidBrush(Color.transparent),n.horAlignment=StiTextHorAlignment.Center,o.components.add(n)}else{let t=C+2*b,e=new StiShape(new Rectangle(a.x+t,w,a.width-2*t,y)),i=(e.name=s.name+`_Line`,e.shapeType=new StiRectangleShapeType,e.brush=new StiSolidBrush(m),e.borderColor=Color.transparent,e.style=StiPenStyle.None,e.size=0,o.components.add(e),new StiShape(new Rectangle(a.x+g,f,C,C))),r=(i.name=s.name+`_LeftCircle`,i.shapeType=new StiOvalShapeType,i.brush=new StiSolidBrush(c),i.borderColor=h,i.size=b,o.components.add(i),new StiShape(new Rectangle(a.right-C-g,f,C,C))),l=(r.name=s.name+`_RightCircle`,r.shapeType=new StiOvalShapeType,r.brush=new StiSolidBrush(c),r.borderColor=h,r.size=b,o.components.add(r),u.split("<<>>")),n=new StiText(new Rectangle(a.x,a.y,a.width/2,p));if(n.name=s.name+`_LeftText`,n.text=this.format(s,l[0]),n.font=d,n.textBrush=new StiSolidBrush(S),n.brush=new StiSolidBrush(Color.transparent),o.components.add(n),1<l.length){let t=new StiText(new Rectangle(a.x+a.width/2,a.y,a.width/2,p));t.name=s.name+`_RightText`,t.text=this.format(s,l[1]),t.font=d,t.textBrush=new StiSolidBrush(S),t.brush=new StiSolidBrush(Color.transparent),t.horAlignment=StiTextHorAlignment.Right,o.components.add(t)}}}async getDateTimeString(i){let e=StiDatePickerHelper.getDefaultValue(i);if(StiVariableExpressionHelper.isVariableSpecifiedAsExpression(i,i?.valueMeter?.expression)){let t=StiDatePickerHelper.getVariableSpecifiedAsValue(i)?.as(StiVariable);if(Range.isRangeType(t?.type)&&i.initialRangeSelectionSource==StiInitialDateRangeSelectionSource.Selection){let t={ref:null},e={ref:null};return StiDatePickerHelper.calculateRangeFromInitial(i.initialRangeSelection,t,e),this.getRangeVariableString(i,new DateTimeRange(t.ref,e.ref))}return null!=e&&e[Stimulsoft.System.StiObject.stimulsoft]().is(DateTimeRange)?this.getRangeVariableString(i,e):this.format(i,e)}if(0<i.userFilters.length){let t=this.format(i,i.userFilters[0].value);return i.selectionMode!=StiDateSelectionMode.AutoRange&&i.selectionMode!=StiDateSelectionMode.Range||(t+=`<<>>`+this.format(i,i.userFilters[0].value2)),t}return i.selectionMode==StiDateSelectionMode.AutoRange||i.selectionMode==StiDateSelectionMode.Single?this.getAutoRangeColumnString(i):i.selectionMode==StiDateSelectionMode.Range?this.getRangeColumnString(i):this.format(i,e)}getRangeVariableString(t,e){let i=e?.[Stimulsoft.System.StiObject.stimulsoft]().as(DateTimeRange);return this.format(t,i?.fromObject)+`<<>>`+this.format(t,i?.toObject)}async getAutoRangeColumnString(i){let t=await StiElementDataCache.tryToGetOrCreate(i);if(null==t)return"";let r=t.rows.map(t=>t[0]).filter(t=>null!=t&&t instanceof DateTime);if(r.length){let t=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().min(),e=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().max();return this.format(i,t)+`<<>>`+this.format(i,e)}return""}getRangeColumnString(t){let e={ref:null},i={ref:null};return StiDatePickerHelper.calculateRangeFromInitial(t.initialRangeSelection,e,i),this.format(t,e.ref)+`<<>>`+this.format(t,i.ref)}},__.Q.StiListBoxHelper),StiCheckBox=Stimulsoft.Report.Components.StiCheckBox,StiCheckStyle=Stimulsoft.Report.Components.StiCheckStyle,IStiShape=Stimulsoft.Report.Components.IStiShape;{class Kw0 extends __.A.StiElementExportTool{async render(t,l,e,i){if(this.renderEmptyDataMessage(t,l,e.clone(),i))return;let n=l.report,s=l.page,o=t.as(StiListBoxElement),a=l.clone(!0,!1),r=(i.renderSinglePage||(e.height=Number.MAX_VALUE),StiExportTool.isAllowOpacity(i)),u=StiExportTool.getScaleFactor(l,i),S=(await this.renderItems(a,e.clone(),t,r,u),0),m=l.top;0<a.components.count&&(m+=a.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top));while(1){let t=a.getComponentsList(),r=0;for(let i of t){let t=i.bottom,e=i.left;i.is(IStiShape)&&(t+=StiElementConsts.ListBox.ItemHeight/3),null!=o?(o.orientation==StiItemOrientation.Vertical&&t<=l.height||o.orientation==StiItemOrientation.Horizontal&&e<=l.width||0==r)&&(a.components.remove(i),l.components.add(i)):t<=l.height&&(a.components.remove(i),l.components.add(i)),r++}if(i.renderSinglePage||0==a.components.count)break;let e=a.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top);a.getComponentsList().forEach(t=>t.top=t.top-e+1),n.renderedPages.count<=++S&&n.renderedPages.add(s.clone(!0,!1)),s=n.renderedPages.getByIndex(S),l=l.clone(!0,!1),i.renderSingleElement?(l.top=0,l.left=0):l.top=m,s.components.add(l)}for(let t of l.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=n,t.page=s})}static getCheckStyle(t,e){let i=t,r=t.is(StiListBoxElement)&&t.as(StiListBoxElement).selectionMode==StiItemSelectionMode.One&&t.as(StiListBoxElement).selectionType==StiListBoxSelectionType.RadioButton,l=r?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle,n=r?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle;if(0==i.userFilters.length)return r?n:l;if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse))return n;let s=e?.toString(),o=e?.value?.toString();if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo))return i.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo&&(t.value==s||t.value==o))?l:n;if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.NotEqualTo))return i.userFilters.some(t=>t.condition==StiDataFilterCondition.NotEqualTo&&(t.value==s||t.value==o))?n:l;return n}async renderItems(r,l,n,s,o){let t=await StiElementDataCache.tryToGetOrCreate(n);if(null==t)return;let e=n,a=StiListBoxHelper.fetchItems(e,t,e.showBlanks);if(null!=a){let t=a.map(t=>null==t?"":null==t.label&&null!=t.value&&t.value instanceof DateTime?t.value.toShortDateString():t.toString()),e=a.map(t=>Kw0.getCheckStyle(n,t)),i=a.map(t=>!1);this.renderItems2(r,l.clone(),n,t,e,i,s,o)}}renderItems2(n,s,o,a,u,S,m,h){let c=o,d=c.selectionMode==StiItemSelectionMode.Multi,p=c.selectionMode==StiItemSelectionMode.One&&o.is(StiListBoxElement)&&o.as(StiListBoxElement).selectionType==StiListBoxSelectionType.RadioButton,g=d||p,b=o.is(IStiListBoxElement)&&o.orientation==StiItemOrientation.Horizontal,C=o,f=StiDashboardStyleHelper.getFont(o),y=(f=null!=f?StiFontUtils.changeFontSize(f,f.size*h):new Font("Arial",8),b?this.getHorizontalItemAutoWidth(c,f,a,s.width,g):s.width),w=b?s.height:StiElementConsts.ListBox.ItemHeight,M=s.x,I=s.y;if(c.showAllValue){b&&0==y&&(y=this.measureItemWidth(StiLocHelper.locAll,f,g));let t=new Rectangle(M,I,y,w),e=p?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle;0<C.userFilters.length&&(e=p?StiCheckStyle.NoneCircle:C.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse)?StiCheckStyle.NoneRectangle:StiCheckStyle.DotRectangle),this.renderItem(n,t,o,StiLocHelper.locAll,e,b?StiBorderSides.Right:StiBorderSides.Bottom,d,p,!1,m,h),b?M+=y+1:I+=w+1}if(null!=a){let r=0,l=0;if(0<(l=o.is(IStiListBoxElement)?o.maxSelectedItems:l)&&null!=u){let e=0,i=p?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle,r=p?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle;for(let t=0;t<u.length;t++)u[t]==r&&(e<l?e++:u[t]=i)}for(let i=0;i<a.length;i++){b&&0==y&&(y=this.measureItemWidth(a[i],f,g));let t=new Rectangle(M+r,I,y-r,w),e=u[i];if(p&&0==C.userFilters.length&&!c.showAllValue&&0==i&&(e=StiCheckStyle.DotCircle),this.renderItem(n,t,o,a[i],e,StiBorderSides.None,d,p,S[i],m,h),S[i]&&(r+=StiElementConsts.ListBox.CheckBoxWidth),b?M+=y+1:I+=w+1,b&&M>=s.right||!b&&I>=s.bottom)break}}}getHorizontalItemAutoWidth(t,e,i,r,l){let n=0,s=0;if(null!=i)while(n<r&&s<i.length)n+=this.measureItemWidth(i[s],e,l),s++;return t.showAllValue&&(this.measureItemWidth(StiLocHelper.locAll,e,l),s++),n<r&&0<s?r/s:0}measureItemWidth(t,e,i){let r=StiElementConsts.Table.Font.getGdiFont(1,null,e),l=Graphics.measureString(t,r,1e6),n=l.width;return i&&(n+=StiElementConsts.ListBox.CheckBoxWidth),n}renderItem(e,i,r,t,l,n,s,o,a,u,S){if(s||o){let t=r.is(IStiListBoxElement)&&r.orientation==StiItemOrientation.Horizontal;Kw0.renderCheckControl(e,i.clone(),r,l,t?StiBorderSides.None:n,o,u,S),i.x+=StiElementConsts.ListBox.CheckBoxWidth*S,i.width-=StiElementConsts.ListBox.CheckBoxWidth*S}let m=StiDashboardStyleHelper.getForeColor(r),h=StiDashboardStyleHelper.getBackColor(r,null,u),c=StiDashboardStyleHelper.getFont(r),d=(c=null!=c?StiFontUtils.changeFontSize(c,c.size*S):new Font("Arial",8),m=this.checkNegativeColor(t,m,r),this.format(r.as(IStiControlElement),t)),p=new StiText(i),g=(p.name=r.name+`_Item`,p.allowHtmlTags=!0,p.margins=s||o?new StiMargins(1,0,0,0):StiMargins.empty,p.border=n!=StiBorderSides.None?new StiBorder(n,Color.gray,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),p.brush=new StiSolidBrush(h),p.horAlignment=StiTextHorAlignment.Left,p.vertAlignment=StiVertAlignment.Center,p.text=d,p.textBrush=new StiSolidBrush(m),p.wordWrap=!1,p.font=c,r.as(IStiControlElement));null==g||g.textFormat.is(StiGeneralFormatService)||(p.excelDataValue=d),e.components.add(p)}static renderCheckControl(t,e,i,r,l,n,s,o){let a=StiDashboardStyleHelper.getForeColor(i),u=StiDashboardStyleHelper.getBackColor(i,null,s),S=(e=new Rectangle(e.x,e.y,StiElementConsts.ListBox.CheckBoxWidth*o,e.height),new StiCheckBox(e));S.name=i.name+`_ItemCheckBox`,S.border=l!=StiBorderSides.None?new StiBorder(l,Color.gray,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),S.contourColor=Color.transparent,S.textBrush=new StiSolidBrush(a),S.brush=new StiSolidBrush(u),S.checkStyleForTrue=r,S.checkStyleForFalse=n?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle,S.checkedValue=r!=StiCheckStyle.NoneRectangle&&r!=StiCheckStyle.NoneCircle,t.components.add(S)}checkNegativeColor(e,i,t){if(t.is(IStiTextFormat)&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)){let t=StiValueHelper.tryToNumber(e);return null==t||0<=t?i:Stimulsoft.StiOptions.Engine.negativeColor}return i}}__.A.StiListBoxElementExportTool=Kw0}let StiVerticalLinePrimitive=Stimulsoft.Report.Components.StiVerticalLinePrimitive,StiFlowchartSortShapeType=Stimulsoft.Report.Components.StiFlowchartSortShapeType;{class cz0 extends __.A.StiElementExportTool{async render(t,e,i,r){let l=t.as(StiNumberBoxElement);if(null==l.getValueMeter())return;l.viewMode==StiNumberViewMode.NumberBox?await this.createContentForNumberBoxViewMode(l,e,i,r):await this.createContentForSliderViewMode(l,e,i)}async createContentForNumberBoxViewMode(l,n,s,t){let o=s.height+2*s.y,a=__.A.StiExportTool.isAllowOpacity(t),u=await StiNumberBoxHelper.getInitialValue(l);if(u[Stimulsoft.System.StiObject.stimulsoft]().getType()==Stimulsoft.Report.DecimalRange){let t=new Rectangle(s.x,s.y,s.width/2,s.height),e=1,i=new Rectangle(t.right,o/4,e,o/2),r=new Rectangle(t.right,s.y,s.width/2,s.height);this.paintItem(n,l,t,u.from,a),this.paintSeparator(n,l,i),this.paintItem(n,l,r,u.to,a)}else if(Stimulsoft.System.Type.isNumericType(Stimulsoft.System.Type.getType(u))){let t=u,e=10,i=new Rectangle(s.right-e-3,o/3,e,o/3);this.paintItem(n,l,s,t,a),this.paintNavButtons(n,l,i)}}async createContentForSliderViewMode(c,d,p){let t=StiDashboardStyleHelper.getControlStyle(c),g=StiDashboardStyleHelper.getForeColor(c,t.foreColor),b=t.selectedBackColor,C=t.glyphColor,f=t.separatorColor,y=StiDashboardStyleHelper.getFont(c),w=1.4*c.font.size,M=2,I=2,T=p.height/2-2*M,x=T+2*I,D=p.height-T-2*I,F=4,v=8,A=D+T/2+I-F-1,E=4,R=await StiNumberBoxHelper.getInitialValue(c);if(R&&R instanceof Stimulsoft.Report.DecimalRange){let t=R,e=p.width-2*v-2*x-2*M,i=v+.2*e+M,r=i+x,l=r+.6*e+M,n=l+x+M,s=new StiShape(new Rectangle(p.x+v,A,.2*e,F)),o=(s.name=c.name+`_LeftLine`,s.shapeType=new StiRectangleShapeType,s.brush=new StiSolidBrush(f),s.borderColor=Color.transparent,s.style=StiPenStyle.None,s.size=0,d.components.add(s),new StiShape(new Rectangle(p.x+i+2,D,T,T))),a=(o.name=c.name+`_LeftCircle`,o.shapeType=new StiOvalShapeType,o.brush=new StiSolidBrush(f),o.borderColor=C,o.size=I,d.components.add(o),new StiShape(new Rectangle(p.x+r,A,.6*e,F))),u=(a.name=c.name+`_MiddleLine`,a.shapeType=new StiRectangleShapeType,a.brush=new StiSolidBrush(b),a.borderColor=Color.transparent,a.style=StiPenStyle.None,a.size=0,d.components.add(a),new StiShape(new Rectangle(p.x+l+2,D,T,T))),S=(u.name=c.name+`_RightCircle`,u.shapeType=new StiOvalShapeType,u.brush=new StiSolidBrush(f),u.borderColor=C,u.size=I,d.components.add(u),new StiShape(new Rectangle(p.x+n,A,.2*e,F))),m=(S.name=c.name+`_RightLine`,S.shapeType=new StiRectangleShapeType,S.brush=new StiSolidBrush(f),S.borderColor=Color.transparent,S.style=StiPenStyle.None,S.size=0,d.components.add(S),new StiText(new Rectangle(p.x+E,p.y+E,p.width/2-E,w))),h=(m.name=c.name+`_LeftText`,m.text=t.from!=t.to?cz0.formatValue(c,t.from):"20",m.font=y,m.textBrush=new StiSolidBrush(g),m.brush=new StiSolidBrush(Color.transparent),d.components.add(m),new StiText(new Rectangle(p.x+p.width/2,p.y+E,p.width/2-E,w)));h.name=c.name+`_RightText`,h.text=t.from!=t.to?cz0.formatValue(c,t.to):"80",h.font=y,h.textBrush=new StiSolidBrush(g),h.brush=new StiSolidBrush(Color.transparent),h.horAlignment=StiTextHorAlignment.Right,d.components.add(h)}else if("number"==typeof R){let t=StiValueHelper.tryToNumber(R),e=p.width-2*v-x-2*M,i=v+.2*e+M,r=new StiShape(new Rectangle(p.x+v,A,.2*e,F)),l=(r.name=c.name+`_LeftLine`,r.shapeType=new StiRectangleShapeType,r.brush=new StiSolidBrush(f),r.borderColor=Color.transparent,r.style=StiPenStyle.None,r.size=0,d.components.add(r),new StiShape(new Rectangle(p.x+i+2,D,T,T))),n=(l.name=c.name+`_MiddleCircle`,l.shapeType=new StiOvalShapeType,l.brush=new StiSolidBrush(f),l.borderColor=C,l.size=I,d.components.add(l),new StiShape(new Rectangle(p.x+i+x+M,A,.8*e,F))),s=(n.name=c.name+`_RightLine`,n.shapeType=new StiRectangleShapeType,n.brush=new StiSolidBrush(f),n.borderColor=Color.transparent,n.style=StiPenStyle.None,n.size=0,d.components.add(n),new StiText(new Rectangle(p.x,p.y+E,p.width,w)));s.name=c.name+`_MiddleText`,s.text=0!=t?cz0.formatValue(c,t):"20",s.font=y,s.textBrush=new StiSolidBrush(g),s.brush=new StiSolidBrush(Color.transparent),s.horAlignment=StiTextHorAlignment.Center,d.components.add(s)}}paintItem(t,e,i,r,l){let n=StiDashboardStyleHelper.getForeColor(e),s=StiDashboardStyleHelper.getBackColor(e,null,l),o=new StiText(i);o.name=e.name+`_NumberBox`,o.allowHtmlTags=!0,o.vertAlignment=StiVertAlignment.Center,o.horAlignment=Enum.parse(StiTextHorAlignment,Enum.getName(StiHorAlignment,e.horAlignment)),o.textBrush=new StiSolidBrush(n),o.brush=new StiSolidBrush(s),o.text=cz0.formatValue(e,r),o.font=StiDashboardStyleHelper.getFont(e),t.components.add(o)}paintSeparator(t,e,i){let r=new StiVerticalLinePrimitive(i);r.name=e.name+`_NumberBoxSep`,r.color=cz0.getSeparatorColor(e),t.components.add(r)}paintNavButtons(t,e,i){let r=new StiShape(i);r.name=e.name+`_NumberBoxButtons`,r.shapeType=new StiFlowchartSortShapeType,r.borderColor=StiDashboardStyleHelper.getForeColor(e),t.components.add(r)}static formatValue(t,e){return t.textFormat.format(e)}static getSeparatorColor(t){return StiDashboardStyleHelper.getSeparatorColor(t)}}__.A.StiNumberBoxElementExportTool=cz0}let StiOnlineMapHelper=__.h.StiOnlineMapHelper,StiMapMode=Stimulsoft.Report.Maps.StiMapMode,StiDockStyle=(__.A.StiOnlineMapElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let l=await StiElementDataCache.tryToGetOrCreate(t),n=StiOnlineMapHelper.calculateMapData(l,t),s=t,o=new StiMap;if(o.stretch=!0,o.page=s.page,o.dataTable=l,e.report.dictionary=s.report.dictionary,o.latitude=s.latitude?.expression,o.longitude=s.longitude?.expression,o.mapMode=StiMapMode.Online,o.provider=s.provider,n.pushpins)o.pushPins=`[${n.pushpins?.map(t=>`"pp=${t.lon},${t.lat};60"`).join(",")}]`;else if(n.osmLocations)try{let t=await fetch("https://reports.stimulsoft.com/1/maplocation",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.osmLocations}),e=await t.json(),i=JSON.parse(e.Result);o.pushPins=`[${i.filter(t=>t.center&&t.found).map(t=>`"pp=${t.center.replace("[","").replace("]","").split(",").reverse().join(",")};60"`).join(",")}]`}catch{o.pushPins="[pp=0,0;60]"}else o.pushPins="[pp=0,0;60]";o.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,r.is(StiSvgDashboardExportSettings)||r.is(StiHtmlDashboardExportSettings))),o.left=i.left,o.top=i.top,o.width=i.width,o.height=i.height,e.components.add(o)}},__.A.StiPanelElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){let l=StiDashboardStyleHelper.getBackColor(t),n=new StiContainer(i);n.name=t.name+`_Content`,n.brush=new StiSolidBrush(l),e.components.add(n)}},Stimulsoft.Report.Components.StiDockStyle),StiCrossTabBuilder=Stimulsoft.Report.Engine.StiCrossTabBuilder,StiCrossTabParams=Stimulsoft.Report.CrossTab.StiCrossTabParams,StiPivotTableHelper=__.h.StiPivotTableHelper;{class VA0 extends __.A.StiElementExportTool{async render(l,n,s,o){if(this.renderEmptyDataMessage(l,n,s.clone(),o))return;let a=n.report,e=l.as(StiPivotTableElement),u=n.page,t=o.is(StiSvgDashboardExportSettings)&&o.designMode,i=StiExportSettingsHelper.isDataExport(o),S=StiExportTool.getScaleFactor(n,o),m=null,r=1!=StiScale.factor||1!=S,h=null==(m=r?m:StiPivotTableToCrossTabCache.get(e));if(h||r){let t=await StiElementDataCache.tryToGetOrCreate(e);null==t&&(t=new StiDataTable),m=await StiPivotTableHelper.convertToCrossTab(e,t,S),r||(StiPivotTableToCrossTabCache.put(e,m),StiPivotToConvertedStateCache.putFalse(e))}StiPivotTableHelper.applyStyle(e,m,i),t&&(VA0.renderForWebDesigner(m,e),StiPivotTableToCrossTabCache.remove(e)),VA0.convertSizes(e,m,!r);let c=m.crossTabInfo.cross,d=c.widths[Stimulsoft.System.StiObject.stimulsoft]().sum(),p=c.heights[Stimulsoft.System.StiObject.stimulsoft]().sum();if(d<=s.width&&p<=s.height||t||o.renderSinglePage)StiBorderExportHelper.render(l,n,o),StiBackColorExportHelper.render(l,n),VA0.renderCells(n,s,s,null,m,t);else if(o.is(StiExcelDashboardExportSettings)){!o.renderSingleElement&&0!=a.renderedPages.getByIndex(0).components.count||a.renderedPages.removeAt(0),u=new StiPage;let t=new StiPanel,e=(t.name=l.name,t.clientRectangle=new Rectangle(0,0,d,p),u.components.add(t),a.renderedPages.add(u),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),await StiTitleExportHelper.render(l,t,o)),i=(a.renderedPages.remove(u),2*d-e.width+e.left+1),r=2*p-e.height+e.top+1;(u=new StiPage).width=i,u.height=r,(t=new StiPanel).name=l.name,t.clientRectangle=new Rectangle(0,0,i,r),u.components.add(t),a.renderedPages.add(u),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),e=await StiTitleExportHelper.render(l,t,o),u.unlimitedHeight=!0,VA0.renderCells(t,e,e,null,m,!1)}else{let r=u.clone(!0,!1),t=(a.renderedPages.add(r),n.clone(!0,!1)),e=(t.left=0,t.top=0,t.width=r.width,t.height=r.height,s=new Rectangle(0,0,r.width,r.height),r.components.add(t),n=t,!o.renderSingleElement&&0!=a.renderedPages.getByIndex(0).components.count||a.renderedPages.removeAt(0),StiBorderExportHelper.render(l,n,o),StiBackColorExportHelper.render(l,n),await StiTitleExportHelper.render(l,n,o)),i=(e=StiLayoutExportHelper.excludePadding(l,e,S),e=StiLayoutExportHelper.excludeCornerRadius(l,e,S),new Rectangle(e.left,e.top,e.width+d,e.height+p));u.unlimitedHeight=!0,VA0.renderCells(n,i,e,null,m,!1);for(let i=0;i<r.segmentPerWidth;i++)for(let e=0;e<r.segmentPerHeight;e++)if(0!=i||0!=e){let t=n.clone(!0,!1);t.left=i*u.width,t.top=e*u.height,t.width=u.width,t.height=u.height,r.components.insert(0,t),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),await StiTitleExportHelper.render(l,t,o)}}for(let t of n.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=a,t.page=u})}static renderForWebDesigner(t,e){let i=e.columns.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report)),r=e.rows.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report)),l=e.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report));if(!(1<i.length||1<r.length))return;let n=t.crossTabInfo.cross.cells,s=0,o=[],a=[],u=null,S=null,m=e.summaryDirection==StiSummaryDirection.LeftToRight?l.length:1,h=e.summaryDirection==StiSummaryDirection.UpToDown?l.length:1,c=StiPivotTableHelper.getHeadersBounds(n);for(let i=0;i<n.length;i++){let e=n[i][0];for(e.cellType==StiCellType.LeftTopLineMain&&((u=new WA0).cell=e,u.x=i,u.width=e.width),e.cellType==StiCellType.RightTopLineMain&&((S=new WA0).cell=e,S.x=i),s=0;s<n[i].length;s++)if((e=n[i][s]).cellType==StiCellType.CornerColMain||e.cellType==StiCellType.CornerRowMain){let t=new WA0;t.cell=e,t.x=i,t.y=s,t.width=e.width,t.height=e.height,o.push(t)}}if(-1<c.top){let l=-1;for(let r=0;r<n.length;r++){let i=n[r][c.top];if(i.cellType==StiCellType.HeaderColMain||i.cellType==StiCellType.HeaderColTotalMain){l=-1==l?r:l;let t=c.bottom-c.top+(1<m?0:1),e=new WA0;if(e.cell=i,e.x=l,e.y=c.top,e.height=t,e.width=m,o.push(e),i.text=(1<t&&i.cellType!=StiCellType.HeaderColTotalMain?"> ":"")+i.text,a.push(r+i.width-1),1<m)for(let e=r+i.width-m;e<r+i.width;e++){let t=new WA0;t.cell=n[e][c.bottom],t.x=l,t.y=c.bottom,o.push(t),a.push(e),l++}else l++}}}if(-1<c.left){let r=-1;for(s=0;s<n[0].length;s++){let i=n[0][s];if(i.cellType==StiCellType.HeaderRowMain||i.cellType==StiCellType.HeaderRowTotalMain){r=-1==r?s:r;let t=c.right+(1<h?0:1),e=new WA0;if(e.cell=i,e.x=0,e.y=r,e.height=h,e.width=t,e.cellRow=1==h?s+i.height-1:-1,o.push(e),i.text=(1<t&&i.cellType!=StiCellType.HeaderRowTotalMain?"> ":"")+i.text,1<h)for(let e=s+i.height-h;e<s+i.height;e++){let t=new WA0;t.cell=n[c.right][e],t.x=c.right,t.y=r,t.cellRow=e,o.push(t),r++}else r++}}}null!=u&&(u.width=c.right-c.left+1,o.push(u)),null!=S&&(S.width=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.x)-c.right,o.push(S));let d=StiDashboardStyleHelper.getPivotTableStyle(e),p=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.y)+1,g=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.x)+1,b=StiArray.create2(StiCell,g,p);for(let r of o)if(b[r.x][r.y]=r.cell,r.cell.width=r.width,r.cell.height=r.height,0<=r.cellRow)for(s=r.y;s<r.y+r.height;s++){let i=c.right+1;for(let t=r.width;t<n.length;t++)if(0<=a.indexOf(t)){b[i++][s]=n[t][r.cellRow+s-r.y],b[i-1][s].field.border.side=t==n.length-1?StiBorderSides.None:StiBorderSides.Right;let e=b[i-1][s];if(null!=e&&null!=e.field&&e.field.brush.is(StiSolidBrush)){let t=e.field.brush.color;(t.equals(d.alternatingCellBackColor)||t.equals(d.cellBackColor))&&(e.field.brush=new StiSolidBrush(s%2!=0?d.alternatingCellBackColor:d.cellBackColor),e.field.textBrush=new StiSolidBrush(s%2!=0?d.alternatingCellForeColor:d.cellForeColor))}null!=e&&null!=e.field&&(e.field.brush=null!=e.field.conditionBrush?e.field.conditionBrush:e.field.brush,e.field.textBrush=null!=e.field.conditionTextBrush?e.field.conditionTextBrush:e.field.textBrush)}}n=StiArray.create2(StiCell,g,0);for(let e=0;e<g;e++){n[e]=StiArray.create(StiCell,p);for(let t=0;t<p;t++)n[e][t]=null!=b[e][t]?b[e][t]:new StiCell,null!=n[e][t].field&&e==g-1&&(n[e][t].field.border.side|=StiBorderSides.Top),0<t&&(n[e][t].parentCell=n[e][t])}let C=StiArray.create(Number,p),f=StiArray.create(Number,g);StiArray.copy(t.crossTabInfo.cross.heights,0,C,p),StiArray.copy(t.crossTabInfo.cross.widths,0,f,g),t.crossTabInfo.cross.cells=n,t.crossTabInfo.cross.widths=f,t.crossTabInfo.cross.heights=C,t.crossTabInfo.cross.doAutoSize()}static renderCells(t,e,i,r,l,n){l.page.unlimitedHeight=!0,t.canBreak=!0,t.dockStyle=StiDockStyle.None;let s=new StiCrossTabParams,o=(s.startColumn=0,s.startRow=0,s.destinationContainer=t,s.destinationRectangle=i,s.forceNoBreak=n,new StiCrossTabBuilder);o.renderCrossTabUnlimitedBreakable(s,l,t,e.clone())}static convertSizes(t,e,i){let r=e.crossTabInfo.cross,l=t.report.unit;StiPivotToConvertedStateCache.isConverted(t)&&i||(this.convert(r.heights,l),this.convert(r.widths,l),this.convert(r.coordX,l),this.convert(r.coordY,l),i&&StiPivotToConvertedStateCache.putTrue(t))}static convert(e,i){for(let t=0;t<e.length;t++)e[t]=i.convertToHInches(e[t])}}__.A.StiPivotTableElementExportTool=VA0;class WA0{constructor(){this.x=0,this.y=0,this.width=1,this.height=1,this.cellRow=-1}}}__.A.StiRangeSelectorElementExportTool=class extends __.A.StiElementExportTool{async paintContent(t,e,i){try{}catch(t){}finally{}}},__.A.StiRegionMapElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let l=t,n=StiDashboardStyleHelper.getElementFontFromStyle(t,l.font),s=new StiMap;if(s.stretch=!0,s.page=l.page,s.mapType=l.mapType,s.dataFrom=l.dataFrom,s.language=l.language,s.mapStyle=StiDashboardStyleHelper.getMapStyleIdent(l),s.componentStyle=l.customStyleName,s.mapIdent=l.mapIdent,s.mapMode=StiMapMode.Choropleth,s.showValue=l.showValue,s.shortValue=l.shortValue,s.showZeros=l.showZeros,s.showBubble=l.showBubble,s.colorEach=l.colorEach,s.show3D=l.show3D,s.displayNameType=l.showName,s.colorDataColumn=null==l.colorMeter?"":l.colorMeter.expression,s.groupDataColumn=null==l.groupMeter?"":l.groupMeter.expression,s.valueDataColumn=null==l.valueMeter?"":l.valueMeter.expression,s.nameDataColumn=null==l.nameMeter?"":l.nameMeter.expression,s.keyDataColumn=null==l.keyMeter?"":l.keyMeter.expression,s.mapData=l.mapData,s.labels=new StiMapLabels(n,l.labels.foreColor,l.labels.shadowColor,l.labels.showShadow),s.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,r.is(StiSvgDashboardExportSettings)||r.is(StiHtmlDashboardExportSettings))),s.left=i.left,s.top=i.top,s.width=i.width,s.height=i.height,s.valueFormat=l.valueFormat,l.dataFrom==StiMapSource.DataColumns){let t=await StiElementDataCache.tryToGetOrCreate(l);s.dataTable=t,e.report.dictionary=l.report.dictionary}e.components.add(s)}},__.A.StiShapeElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){let l=t.as(StiShapeElement),n=new StiShape;n.shapeType=l.shapeType,n.size=l.size,n.borderColor=l.stroke,n.brush=l.fill,n.page=l.page,n.left=i.left,n.top=i.top,n.width=i.width,n.height=i.height,e.components.add(n)}};let StiTableElementPagingHelper=Stimulsoft.Report.Dashboard.Helpers.StiTableElementPagingHelper,StiTableColumnVisibilityHelper=Stimulsoft.Report.Dashboard.StiTableColumnVisibilityHelper,StiBubbleCellPainter=__.D.StiBubbleCellPainter,StiSparklinesCellPainter=__.D.StiSparklinesCellPainter,StiSparkline=Stimulsoft.Report.Components.StiSparkline,StiSystemVariableObject=Stimulsoft.Data.Functions.StiSystemVariableObject,StiTableElementGdiPainter=__.q.StiTableElementGdiPainter,StiTableElementHelper=__.h.StiTableElementHelper,StiDataBarsCellPainter=__.D.StiDataBarsCellPainter,StiColorScaleCellPainter=__.D.StiColorScaleCellPainter,StiTextQuality=Stimulsoft.Report.Components.StiTextQuality,StiConditionIconPainter=__.D.StiConditionIconPainter,TimeOnly=Stimulsoft.System.TimeOnly,DateOnly=Stimulsoft.System.DateOnly;{class aD0 extends __.A.StiElementExportTool{async render(t,l,e,n){if(null==n||this.renderEmptyDataMessage(t,l,e.clone(),n))return;let s=l.report,o=l.page,i=n.is(StiSvgDashboardExportSettings)&&n.as(StiSvgDashboardExportSettings).designMode,r=t.as(StiTableElement),a=null==n?__.f.StiDashboardExportFormat.Document:n.format,u=StiExportSettingsHelper.isDataExport(n),S=n.renderSingleElement&&(a==__.f.StiDashboardExportFormat.Excel||a==__.f.StiDashboardExportFormat.Html||a==__.f.StiDashboardExportFormat.Image),m=(n.renderSinglePage&&!S||(e.height=Number.MAX_VALUE),delete r.cacheStyle,l.clone(!0,!1)),h=StiExportTool.getScaleFactor(l,n),c=(await aD0.renderCells(m,e,r,h,a,u,i),S&&aD0.fitToTable(t,l,e,n,m.components.list,u),0),d=l.top,p=(0<m.components.count&&(d+=m.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top)),0),g=0;while(1){let i=!1,r=Number.MAX_VALUE;for(let e=0;e<m.components.length;e++){let t=m.components.getByIndex(e);if(t.bottom<=p)continue;t.bottom<=p+l.height-g?(t.left<l.width||n.format==__.f.StiDashboardExportFormat.Data)&&(t.top=t.top-p+g,l.components.add(t),t.right>l.width)&&n.format!=__.f.StiDashboardExportFormat.Data&&(t.width=Math.max(0,l.width-t.left)):(i=!0,r=Math.min(r,t.top))}if(p=r,g=1,null!=n&&n.renderSinglePage||!i)break;s.renderedPages.count<=++c&&s.renderedPages.add(o.clone(!0,!1)),o=s.renderedPages.getByIndex(c),l=l.clone(!0,!1),null!=n&&n.renderSingleElement?u||(l.top=t.as(IStiMargin).margin.top,l.left=t.as(IStiMargin).margin.left):l.top=d,o.components.add(l)}for(let t of l.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=s,t.page=o})}static async renderCellsForViewer(t,i,h){let c=t.as(StiTableElement);if(null==c)return null;let d=await StiElementDataCache.getOrCreate(c);if(null==d)return null;d=this.processDataTableWithTopN(d);let p=1,g=[],b=StiElementConsts.Table.getHeight(c.getDataFont(),p),C=d.meters.filter(t=>t.is(StiTableColumn)),e=null!=C.find(t=>t.showTotalSummary),f=(delete c.cacheStyle,0),y=0<c.rowsPerPage,w=0,M=d.rows.length-1;if(y){let t=null!=i&&null!=i[c.key]?i[c.key]:1,e=Math.ceil(d.rows.length/c.rowsPerPage);t>e&&(t=e),w=(t-1)*c.rowsPerPage,M=Math.min(t*c.rowsPerPage-1,d.rows.length-1)}for(let m of C){m.cache={};let t=await this.getColumnVisibilityState(m,c.report);if(!t){f++;continue}let s=aD0.measureHeader(c,m,p);if(m.is(StiSparklinesColumn))s=aD0.measureSparklinesCell(p,s);else if(0<d.rows.length){for(let r=w;r<=M;r++){let t=d.rows[r],e=t[f],i;i=m.is2(StiIndicatorColumn)?aD0.measureIndicatorCell(c,m,p,e):m.is2(StiDataBarsColumn)?aD0.measureDataBarsCell(c,m,p,e):aD0.measureCommonCell(c,m,p,e,s).width,s=Math.max(s,i)}if(m.showTotalSummary){let t=StiTableElementHelper.calculateTotal(m,f,d),e=this.measureFooter(c,m,p,t);s=Math.max(s,e)}}let o=StiTableElementHelper.minDataColumnValue(m,d,f),a=StiTableElementHelper.maxDataColumnValue(m,d,f),u=y&&h?w:0,S=y&&h?M:d.rows.length-1;if(0<d.rows.length)for(let n=u;n<=S;n++){if(g.length<=S-u&&g.push([]),y&&!h&&(n<w||n>M))continue;let r=d.rows[n],e=this.processRowValue(n,r[f],m),t=new Rectangle(0,0,s,b),i=new StiPanel,l=(await aD0.renderCell(i,t,c,r,C.map(t=>t.key),m,p,e,o,a,1==(1&n),__.f.StiDashboardExportFormat.Html,!1),{});if(0<c.tableConditions.length&&0<i.components.length){let t=i.components.getByIndex(0);t.is(StiText)||(t.is(IStiBrush)&&(l["backColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.as(IStiBrush).brush))),t.is(IStiTextBrush)&&(l["textColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.as(IStiTextBrush).textBrush))))}if("boolean"==typeof e)l["boolValue"]=e;else for(let t of i.components.list)if(t.is(StiText)){if(l["text"]=t.text,l["textColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.textBrush)),l["backColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.brush)),l["textWidth"]=t.width,l["textHeight"]=t.height,0<c.tableConditions.length){let t=c.as(IStiFont)?.font,e=0<c.tableConditions.length?await StiTableElementConditionHelper.processFontStyle(t,m.key,c,r,C.map(t=>t.key)):FontStyle.Regular,i=(t=new Font(t.fontFamily.name,t.size,e),{});i["bold"]=t.bold,i["italic"]=t.italic,i["underline"]=t.underline,i["strikeout"]=t.strikeout,l["textFontStyle"]=i}if(null!=e){let t=null;null!=(t=e instanceof DateTime||e instanceof DateOnly?e.toString("MM'/'dd'/'yyyy"):e instanceof TimeOnly?e.toString("HH':'mm':'ss"):e.toString())&&t!=l["text"]&&(l["value"]=t)}}else t.is(StiImage)?(l["image"]=null!=t.imageToDraw?Stimulsoft.Base.Drawing.StiImageConverter.imageToString(t.imageToDraw):null,l["imageWidth"]=t.width,l["imageHeight"]=t.height,0<c.tableConditions.length&&(l["iconAlignment"]=Enum.getName(StiIconAlignment,c.tableConditions[0].iconAlignment).toLowerCase())):t.is(StiSparkline)&&(l["sparkline"]=Stimulsoft.Report.Export.StiHtmlExportService.getSparklineData(null,t,t.width,t.height),l["sparklineWidth"]=t.width,l["sparklineHeight"]=t.height);null==l["boolValue"]&&null==l["text"]&&null==l["image"]&&(l["text"]=e),g[h?n-u:n].push(l)}if(e){g.length<d.rows.length+1&&g.push([]);let e={};if(e["text"]="",m.showTotalSummary){let t=StiTableElementHelper.calculateTotal(m,f,d);e["text"]=m.summaryType==StiSummaryColumnType.Count?StiMath.trunc(t).toString():StiTextFormatHelper.formatBasedOnColumnType(c,m,t)}g[g.length-1].push(e)}f++}return g}static fitToTable(r,l,n,t,s,e){if(0==s.length)return;if(n.width=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.right),n.height=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.bottom),!e){let t=r[Stimulsoft.System.StiObject.stimulsoft]().as(IStiPadding).padding,e=(n.width=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.right)+t.right,n.height=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.bottom)+t.bottom,0<l.components.count?l.components.list[l.components.count-1].as(StiText):null),i=(null!=e&&(e.width=n.width),r.as(IStiMargin).margin);n.width+=i.left+i.right,n.height+=i.top+i.bottom}t.format,__.f.StiDashboardExportFormat.Image,l.width=l.page.width=n.width,l.height=l.page.height=n.height}static async renderCells(u,S,m,h,c,d,r){let p=await StiElementDataCache.tryToGetOrCreate(m);if(null==p)return;p=this.processDataTableWithTopN(p);let e=StiElementConsts.Table.getHeight(m.getColumnFont(),h),t=StiElementConsts.Table.getHeight(m.getDataFont(),h),i=p.meters.filter(t=>t.is(StiTableColumn)),l=null!=i.find(t=>t.showTotalSummary),n=r?0:m.currentPageIndex,s=0!=m.rowsPerPage&&-1!=n&&c!=__.f.StiDashboardExportFormat.Excel,o=1,g=(s&&(o=StiTableElementPagingHelper.getNumberOfPages(p.rows.length,m.rowsPerPage))<=1&&(s=!1),p.rows);if(s){let t=g.slice(m.rowsPerPage*n).slice(0,m.rowsPerPage);t.length?g=t:s=!1}let b=l?StiElementConsts.Table.getHeight(m.getTotalFont(),h):0,a=s?StiElementConsts.Table.getHeight(m.getTotalFont(),h):0,C=b+a,f=[],y=[],w=0,M=i.map(t=>t.key);for(let r of i){r.cache={};let i=0,t=await this.getColumnVisibilityState(r,m.report);if(t&&(i=this.measureHeader(m,r,h),r.showTotalSummary)){let t=StiTableElementHelper.calculateTotal(r,w,p),e=this.measureFooter(m,r,h,t);i=Math.max(i,e)}f.push(i),w++}let I=S.y+e;if(I<S.bottom-C){for(let s of g){let n=t;w=-1;for(let l of i){w++;let t=await StiTableColumnVisibilityHelper.getVisible(l,m.report);if(!t)continue;let r=f[w];if(l.is(StiSparklinesColumn))r=this.measureSparklinesCell(h,r);else{let e=s[w],i;if(l.is2(StiIndicatorColumn))i=this.measureIndicatorCell(m,l,h,e);else if(l.is2(StiDataBarsColumn))i=this.measureDataBarsCell(m,l,h,e);else if(l.is2(StiBubbleColumn))i=aD0.measureBubbleCell(m,l,h,e);else{let t=this.measureCommonCell(m,l,h,e,r);i=t.width,n=Math.max(t.height,n)}r=Math.max(r,i)}f[w]=r}if(I+n>S.bottom-C&&(n=S.bottom-C-I)<1.2&&(n=1.2),y.push(n),(I+=n)>=S.bottom-C)break}y.push(t)}if(m.sizeMode==StiTableSizeMode.Fit){let e=S.width/f[Stimulsoft.System.StiObject.stimulsoft]().sum(),t=((1<e||!r)&&(f=f.map(t=>t*e)),-1);for(let n of g){if(++t>=y.length)break;w=-1;let l=y[t];for(let r of i){if(w++,r.is2(StiIndicatorColumn)||r.is2(StiDataBarsColumn))continue;if(r.is(IStiTableColumnSize)&&null!=r.size){let t=r,e=t.size.width,i=(t.size.width=f[w]-4,this.measureCommonCell(m,r,h,n[w],t.size.width));l=Math.max(i.height,l),t.size.width=e}}y[t]=l}}let T=S.x;w=0;for(let a of i){let t=await this.getColumnVisibilityState(a,m.report);if(!t){w++;continue}let o=f[w];if(c==__.f.StiDashboardExportFormat.Excel&&(o*=1.1),I=S.y,c!=__.f.StiDashboardExportFormat.Data){let t=new Rectangle(T,I,o,e);this.renderHeader(u,t,m,a,h,c,d),I+=t.height}if(I<=S.bottom-C){let l=StiTableElementHelper.minDataColumnValue(a,p,w),n=StiTableElementHelper.maxDataColumnValue(a,p,w),s=0;for(let r of g){let t=Math.ceil(y[s]),e=this.processRowValue(s,r[w],a),i=new Rectangle(T,I,o,t);if(await this.renderCell(u,i,m,r,M,a,h,e,l,n,1==(1&s),c,d),I+=t,s++,I>=S.bottom-C)break}}if(c!=__.f.StiDashboardExportFormat.Data&&!d&&l){let t=new Rectangle(T,r?S.bottom-C:I,o,b);this.renderFooter(u,t,m,a,w,h,p)}T+=o,w++}if(c!=__.f.StiDashboardExportFormat.Data&&!d&&s){let t=StiString.format(StiLocalization.get("Report","PageNofM"),n+1,o),e=T-S.x,i=new Rectangle(S.x,(r?S.bottom-C:I)+b,e,a);this.renderCurrentPageNumber(u,i,m,h,t)}}static processDataTableWithTopN(t){let e=t.meters.filter(t=>t.is(StiTableColumn)),r=t.rows,l=0;for(let i of e){let t=i.topN,e=this.processTopNElements(r,t,l);r=e.map(t=>t),l++}let i=new StiDataTable;return i.meters.push(...e),i.rows.push(...r),i}static processTopNElements(t,e,i){if(e.mode==StiDataTopNMode.None)return t;let r=[];for(let e of t){let t=StiValueHelper.tryToNumber(e[i]);r.push({key:t,value:e})}e.mode==StiDataTopNMode.Bottom?r.sort((t,e)=>t.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(e.key)):r.sort((t,e)=>e.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(t.key));let l=r.slice(0,e.count).map(t=>t.value);return l}static measureSparklinesCell(t,e){return Math.max(e,80*t)}static measureHeader(t,e,i){return StiTableElementGdiPainter.measureHeader(t,e).width*i}static measureFooter(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r);return StiTableElementGdiPainter.measureCell(l,t.getTotalFont(),e).width*i}static measureIndicatorCell(t,e,i,r){let l=e.as(StiIndicatorColumn),n=StiIndicatorCellPainter.getCellText(t,l,StiValueHelper.tryToNullableNumber(r)),s=StiTableElementGdiPainter.measureCell(n,t.getDataFont(),e).width*i;return s*=1.25}static measureDataBarsCell(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),n=StiTableElementGdiPainter.measureCell(l,t.getDataFont(),e).width*i;return e.horAlignment!=StiHorAlignment.Center&&(n*=2),n=e.is(StiDataBarsColumn)&&0<e.width?i*e.width:n}static measureBubbleCell(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),n=StiTableElementGdiPainter.measureCell(l,t.getDataFont(),e).width*i,s=StiElementConsts.Table.getHeight(t.getDataFont(),i);if(e.horAlignment==StiHorAlignment.Center)return s;return n+=s}static measureCommonCell(t,e,i,r,l){if(StiImageHelper.isImage(r))return new Size(l,0);let n=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),s=StiTableElementGdiPainter.measureCell(n,t.getDataFont(),e);return s.width*=i,s.height*=i,s}static renderHeader(t,e,i,r,l,n,s){let o=null!=r?StiLabelHelper.getLabel(r):"",a=StiString.isNullOrWhiteSpace(o)?i.name+`_Column`:StiNameValidator.correctName(o),u=StiDashboardStyleHelper.getTableStyle(i),S=0!=i.columns.indexOf(r)&&e.left<t.width&&!s,m=i.columns.indexOf(r)!=i.columns.length-1&&e.right<=t.width&&!s,h=(S?StiBorderSides.Left:StiBorderSides.None)|(m?StiBorderSides.Right:StiBorderSides.None),c=s?Color.black:this.getHeaderForeColor(i),d=s?Color.transparent:this.getHeaderBackColor(i),p=s?new Font("Arial",10,FontStyle.Bold):i.getColumnFont(),g=new StiText(e);g.name=a,g.allowHtmlTags=!0,g.autoWidth=!1,g.horAlignment=this.getHeaderAlignment(r),g.vertAlignment=StiVertAlignment.Center,g.wordWrap=!1,g.border=new StiBorder(h,u.lineColor,1,StiPenStyle.Solid),g.brush=new StiSolidBrush(d),g.font=StiElementConsts.Table.Font.getGdiFont(l,null,p),g.text=o,g.textFormat=null!=r.textFormat?r.textFormat.clone():null,g.textBrush=new StiSolidBrush(c),g.componentPlacement=`h.`+i.name,t.components.add(g)}static getHeaderAlignment(t){if(t.headerAlignment==StiHorAlignment.Left)return StiTextHorAlignment.Left;if(t.headerAlignment==StiHorAlignment.Right)return StiTextHorAlignment.Right;return StiTextHorAlignment.Center}static renderFooter(t,e,i,r,l,n,s){let o=this.getFooterForeColor(i),a=this.getFooterBackColor(i),u=i.getTotalFont(),S="",m=0,h=(r.showTotalSummary&&(m=StiTableElementHelper.calculateTotal(r,l,s),S=r.summaryType==StiSummaryColumnType.Count?StiMath.trunc(m).toString():StiTextFormatHelper.formatBasedOnColumnType(i,r,m)),StiTextHorAlignment.Right),c=(r.summaryAlignment==StiHorAlignment.Left?h=StiTextHorAlignment.Left:r.summaryAlignment==StiHorAlignment.Center&&(h=StiTextHorAlignment.Center),new StiText(e)),d=(c.name=i.name+`_FooterCell`,null!=r.textFormat&&r.textFormat.is(StiGeneralFormatService)?null:S);null!=r.textFormat&&(r.textFormat.is(StiCurrencyFormatService)||r.textFormat.is(StiNumberFormatService)||r.textFormat.is(StiPercentageFormatService))&&(d=m.toString()),c.border=this.getBorderSides(t,e,i,r,StiBorderSides.All),c.brush=new StiSolidBrush(a),c.excelDataValue=d,c.font=StiElementConsts.Table.Font.getGdiFont(n,null,u),c.horAlignment=h,c.vertAlignment=StiVertAlignment.Center,c.text=S,c.textBrush=new StiSolidBrush(o),c.textFormat=null!=r.textFormat?r.textFormat.clone():null,c.wordWrap=!1,c.componentPlacement=`f.`+i.name,t.components.add(c)}static renderCurrentPageNumber(t,e,i,r,l){let n=this.getFooterForeColor(i),s=this.getFooterBackColor(i),o=i.getTotalFont(),a=new StiText(e);a.name=i.name+`_CurrentPage`,a.brush=new StiSolidBrush(s),a.font=StiElementConsts.Table.Font.getGdiFont(r,null,o),a.horAlignment=StiTextHorAlignment.Center,a.vertAlignment=StiVertAlignment.Center,a.margins=new StiMargins(0,0,1,0),a.textQuality=StiTextQuality.Typographic,a.text=l,a.textBrush=new StiSolidBrush(n),a.wordWrap=!1,a.componentPlacement=`f.`+i.name,t.components.add(a)}static async renderCell(t,e,i,r,l,n,s,o,a,u,S,m,h){let c=StiDashboardStyleHelper.getTableStyle(i),d=this.getForeColor(i,n,c,S),p=StiTableElementGdiPainter.getBackgroundColor(i,i.cells,c,null!=S&&S);p=0<i.tableConditions.length?await StiTableElementConditionHelper.processBackColor(p,n.key,i,r,l):p,h?await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.None,Color.black,Color.transparent,m,!0):n.is2(StiDataBarsColumn)||n.is2(StiSparklinesColumn)||n.is2(StiIndicatorColumn)||n.is2(StiBubbleColumn)?await this.renderGraphicCell(t,e,i,r,l,n,s,o,a,u,p,c,null!=S&&S,m):n.is2(StiColorScaleColumn)?await this.drawColorScaleColumn(t,e,i,r,l,n,s,o,a,u,c,m):StiImageHelper.isImage(o)?this.renderImageCell(t,e,i,n,o,p,m):"boolean"==typeof o?await this.renderBoolCell2(t,e,i,r,l,n,s,o,d,p,m):await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.All,d,p,m,!1,null,!0,!0)}static processRowValue(t,e,i){let r=i.textFormat,l=(e?.[Stimulsoft.System.StiObject.stimulsoft]().is(StiSystemVariableObject)&&(e=e==StiSystemVariableObject.Line&&null!=r?r.format(t+1):Funcs.getSystemVariable(e?.[Stimulsoft.System.StiObject.stimulsoft]().as(StiSystemVariableObject),t+1)),i.ident==StiMeterIdent.SparklinesColumn);return e=ListExt.isList(e)&&!StiImageHelper.isImage(e)?l?ListExt.toList(e):ListExt.toList(e)?.firstOrDefault():e}static async renderGraphicCell(s,o,a,u,S,m,e,h,i,r,c,d,l,n){let p="",g=o,b=this.getForeColor(a,m,d,l),C=new XmlTextWriter(Encoding.UTF8);if(C.indentation=-1,C.writeStartElement("svg"),C.writeAttributeString("version","1.1"),C.writeAttributeString("baseProfile","full"),C.writeAttributeString("xmlns","http://www.w3.org/2000/svg"),C.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),C.writeAttributeString("xmlns:ev","http://www.w3.org/2001/xml-events"),C.writeAttributeString("height",StiSvgHelper.toUnits(o.height)),C.writeAttributeString("width",StiSvgHelper.toUnits(o.width)),C.writeStartElement("rect"),C.writeAttributeString("x","0"),C.writeAttributeString("y","0"),C.writeAttributeString("width",StiSvgHelper.toUnits(o.width)),C.writeAttributeString("height",StiSvgHelper.toUnits(o.height)),C.writeAttributeString("style",StiSvgHelper.writeFillBrush(C,c,o)),C.writeEndElement(),m.is2(StiSparklinesColumn)){let t=StiSparklinesCellPainter.castToArray(h),e=t?.map(t=>t?.[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),i=m.as(StiSparklinesColumn),r=o,l=await StiTableElementConditionHelper.getIconCondition(m.key,a,u,S),n=(null!=l&&l.iconAlignment!=StiIconAlignment.None&&(l.iconAlignment==StiIconAlignment.Right?r=new Rectangle(o.x,o.y,o.width-o.height,o.height):l.iconAlignment==StiIconAlignment.Left&&(r=new Rectangle(o.x+o.height,o.y,o.width-o.height,o.height))),new StiSparkline(r));if(n.values=e,n.positiveColor=i.allowCustomColors?i.positiveColor:d.cellSparkline,n.negativeColor=i.allowCustomColors?i.negativeColor:d.cellWinLossNegative,n.showFirstLastPoints=i.showFirstLastPoints,n.showHighLowPoints=i.showHighLowPoints,n.type=i.type,n.brush=new StiSolidBrush(c),n.componentPlacement=`d.`+a.name,s.components.add(n),null!=l&&l.iconAlignment!=StiIconAlignment.None){let t=await StiConditionIconPainter.getImageWithConditionIcon(l,o,a.name);s.components.add(t)}return}let f=new StiSvgGeomWriter(C),y=StiBorderSides.None,w="GraphicCell",M=new Rectangle(0,0,o.width,o.height),I=m.horAlignment;if(m.is2(StiDataBarsColumn)){await StiDataBarsCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNumber(h),i,r,l,!1,!1),n!=__.f.StiDashboardExportFormat.Data&&(g=StiDataBarsCellPainter.calculateTextRect(o.clone(),m)).inflate(2,2),p=StiTextFormatHelper.formatBasedOnColumnType(a,m,h),b=StiDataBarsCellPainter.getForeColor(a,m,d,l,!1);let t=StiValueHelper.tryToNumber(h);t<0&&StiNegativeColorChecker.isNegativeInRed(m.textFormat)&&(b=Stimulsoft.StiOptions.Engine.negativeColor),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.Right,w="DataBarsCell"}else if(m.is2(StiIndicatorColumn))await StiIndicatorCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNullableNumber(h),d,!1),g=StiIndicatorCellPainter.calculateTextRect(o.clone(),m),p=StiIndicatorCellPainter.getCellText(a,m,StiValueHelper.tryToNullableNumber(h)),b=StiIndicatorCellPainter.getColor(m,StiValueHelper.tryToNullableNumber(h),d),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.None,w="IndicatorCell";else if(m.is2(StiBubbleColumn)){await StiBubbleCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNullableNumber(h),i,r,l,!1,!1),n!=__.f.StiDashboardExportFormat.Data&&(g=StiBubbleCellPainter.calculateTextRect(a,o.clone(),m)).inflate(2,2),p=StiBubbleCellPainter.getCellText(a,m,StiValueHelper.tryToNullableNumber(h)),b=StiDataBarsCellPainter.getForeColor(a,m,d,l,!1),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.None,w="BubbleCell";let t=m[Stimulsoft.System.StiObject.stimulsoft]().as(IStiHorAlignment);null!=t&&(t.horAlignment==StiHorAlignment.Center&&n!=__.f.StiDashboardExportFormat.Data&&(p=null),t.horAlignment==StiHorAlignment.Left&&(I=StiHorAlignment.Right),t.horAlignment==StiHorAlignment.Right)&&(I=StiHorAlignment.Left)}if(C.writeFullEndElement(),C.flush(),n!=__.f.StiDashboardExportFormat.Data&&!m.is2(StiSparklinesColumn)){let t=new StiImage(o),e=(t.name=a.name+`_`+w,t.border=this.getBorderSides(s,o,a,m,StiBorderSides.All),t.stretch=!0,t.aspectRatio=m.is2(StiIndicatorColumn)||m.is2(StiBubbleColumn),C.textWriter.getStringBuilder().toString());t.image=StiImageConverter.stringToImage(Stimulsoft.System.Convert.toBase64String(e)),t.brush=new StiSolidBrush(c),t.horAlignment=I,s.components.add(t)}n!=__.f.StiDashboardExportFormat.Data&&StiString.isNullOrEmpty(p)||await this.renderTextCell(s,g,a,u,S,m,e,h,y,b,c,n,!1,!1,!0,!1)}static async drawColorScaleColumn(t,e,i,r,l,n,s,o,a,u,S,m){let h=n.as(StiColorScaleColumn),c=this.getForeColor(i,n,S,!1),d=StiColorScaleCellPainter.getScaleColor(StiValueHelper.tryToNumber(o),a,u,S,h.minimumColor,h.maximumColor),p=i.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(c,d,n.key,i,r,l):{foreColor:c,backColor:d};await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.All,p.foreColor,p.backColor,m,!1,null,!0,!0)}static async renderBoolCell2(r,l,n,s,o,a,t,u,S,m,e){if(e==__.f.StiDashboardExportFormat.Data)await this.renderTextCell(r,l,n,s,o,a,t,u,StiBorderSides.None,S,m,e,!1);else{let t=0<n.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(S,m,a.key,n,s,o):{foreColor:S,backColor:m},e=u?StiCheckStyle.CheckRectangle:StiCheckStyle.NoneRectangle,i=new StiCheckBox(l);i.name=n.name+`_Cell`,i.border=this.getBorderSides(r,l,n,a,StiBorderSides.All),i.contourColor=Color.transparent,i.textBrush=new StiSolidBrush(t.foreColor),i.brush=new StiSolidBrush(t.backColor),i.checkStyleForTrue=e,i.checkStyleForFalse=StiCheckStyle.NoneRectangle,i.checkedValue=e!=StiCheckStyle.NoneRectangle,i.excelDataValue=u.toString(),i.componentPlacement=`d.`+n.name,r.components.add(i)}}static async renderTextCell(e,i,l,n,s,t,r,o,a,u,S,m,h,c=null,d=!1,p=!1){let g=null,b=null,C=(!d||h||null==(b=await StiTableElementConditionHelper.getIconCondition(t.key,l,n,s))||b.iconAlignment==StiIconAlignment.None||h||m==__.f.StiDashboardExportFormat.Html||(b.iconAlignment==StiIconAlignment.Left?g=new StiMargins(i.height,0,0,0):b.iconAlignment==StiIconAlignment.Right&&(g=new StiMargins(0,i.height,0,0))),StiTextFormatHelper.formatBasedOnColumnType(l,t,o)),f=h?this.defaultExportDataOnlyFont:l.getDataFont(),y=(t.is(StiDimensionColumn)&&t.showHyperlink&&(f=new Font(f.fontFamily.name,f.size,f.style|FontStyle.Underline)),await StiTableElementConditionHelper.processFontStyle(f,t.key,l,n,s)),w=(f.style!=y&&(f=new Font(f.fontFamily.name,f.size,y)),StiValueHelper.tryToNumber(o));if(w<0&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)&&(u=Stimulsoft.StiOptions.Engine.negativeColor),t.is(StiSparklinesColumn)){let t=StiSparklinesCellPainter.castToArray(o),e=t?.map(t=>t.toString());C=StiString.join(" ",e)}let M=0<l.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(u,S,t.key,l,n,s):{foreColor:u,backColor:S},I=StiTitleExportHelper.convert(t.horAlignment),T=(t.is(StiBubbleColumn)&&(I=StiTextHorAlignment.Right),t.as(IStiTableColumnSize)),x=(null!=T?.size&&null==c&&(c=T.size.wordWrap),null);if(t.is(StiDimensionColumn)&&t.showHyperlink&&!StiString.isNullOrWhiteSpace(t.hyperlinkPattern)){let r=new Stimulsoft.System.Collections.Hashtable;r.add("Value",o);for(let i=0;i<s.length;i++){let t=l.columns.find(t=>t.key==s[i]),e="Row."+StiNameValidator.correctName(t.label,!0);r.add(e,n[i]?.toString())}x=await Stimulsoft.Report.Dashboard.StiReportParser.parseAsync(t.hyperlinkPattern,l,!1,r)}let D=null!=t.textFormat&&t.textFormat.is(StiGeneralFormatService)?null:C,F=(null!=o&&null!=t.textFormat&&(t.textFormat.is(StiCurrencyFormatService)||t.textFormat.is(StiNumberFormatService)||t.textFormat.is(StiPercentageFormatService))&&(D=o.toString()),new StiMargins(2,2,1,0)),v=(null!=g&&(F=new StiMargins(F.left+g.left,F.right+g.right,F.top+g.top,F.bottom+g.bottom)),new StiText(i));if(v.name=l.name+`_Cell`,v.border=this.getBorderSides(e,i,l,t,a),v.brush=new StiSolidBrush(M.backColor),v.excelDataValue=D,v.font=StiElementConsts.Table.Font.getGdiFont(r,null,f),v.horAlignment=I,v.vertAlignment=StiVertAlignment.Center,v.margins=F,v.text=C,v.textBrush=new StiSolidBrush(M.foreColor),v.textFormat=null!=t.textFormat?t.textFormat.clone():null,v.wordWrap=0!=c,v.componentPlacement=`d.`+l.name,v.trimming=StringTrimming.EllipsisCharacter,v.hyperlinkValue=x,e.components.add(v),null!=b&&b.iconAlignment!=StiIconAlignment.None&&p){let t=await StiConditionIconPainter.getImageWithConditionIcon(b,i,l.name);e.components.add(t)}}static renderImageCell(t,e,i,r,l,n,s){if(s==__.f.StiDashboardExportFormat.Data)return;let o=StiImageHelper.getImageFromObject(l);if(null==o)return;let a=new StiImage(e);a.name=i.name+`_Cell`,a.border=this.getBorderSides(t,e,i,r,StiBorderSides.All),a.brush=new StiSolidBrush(n),a.stretch=!0,a.aspectRatio=!0,a.imageToDraw=o,a.horAlignment=r.horAlignment,t.components.add(a)}static async renderBoolCell(t,e,i,r,l,n,s,o,a,u,S){if(S==__.f.StiDashboardExportFormat.Data)return void await this.renderTextCell(t,e,i,r,l,n,s,o,a,null,u,S,!1);let m=0!=i.columns.indexOf(n),h=i.columns.indexOf(n)!=i.columns.length-1,c=(m?StiBorderSides.Left:StiBorderSides.None)|(h?StiBorderSides.Right:StiBorderSides.None),d=StiDashboardStyleHelper.getTableStyle(i),p=new StiImage(e);p.name=i.name+`_Cell`,p.border=a?new StiBorder(c,d.lineColor,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),p.brush=new StiSolidBrush(u),p.horAlignment=StiHorAlignment.Center,p.vertAlignment=StiVertAlignment.Center,t.components.add(p)}static async getColumnVisibilityState(t,e){if(t.visibility==StiTableColumnVisibility.TrueAndHidden)return!1;return StiTableColumnVisibilityHelper.getVisible(t,e)}static getForeColor(t,e,i,r){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(e.is(StiDimensionColumn)&&e.showHyperlink)return StiColor.get("165dc8");let l=StiDashboardExpressionHelper.getForeColor(t,t.cells.data.foreColor);if(!Color.transparent.equals(l))return l;return null!=i?r?i.alternatingCellForeColor:i.cellForeColor:StiElementConsts.Table.Font.Color}static getHeaderBackColor(t){if(!t.cells.columns.backColor.equals(Color.transparent))return t.cells.columns.backColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.headerBackColor}static getHeaderForeColor(t){if(!Color.transparent.equals(t.cells.columns.foreColor))return t.cells.columns.foreColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.headerForeColor}static getFooterForeColor(t){if(!Color.transparent.equals(t.footerForeColor))return t.footerForeColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.footerForeColor}static getFooterBackColor(t){if(!t.cells.totals.backColor.equals(Color.transparent))return t.cells.totals.backColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.footerBackColor}static getBorderSides(t,e,i,r,l){let n=StiDashboardStyleHelper.getTableStyle(i),s=0!=(l&StiBorderSides.Left)&&0!=i.columns.indexOf(r)&&e.left<t.width,o=0!=(l&StiBorderSides.Right)&&i.columns.indexOf(r)!=i.columns.length-1&&e.right<=t.width,a=(s?StiBorderSides.Left:StiBorderSides.None)|(o?StiBorderSides.Right:StiBorderSides.None),u=a!=StiBorderSides.None?1:0,S=a!=StiBorderSides.None?n.lineColor:Color.transparent;return new StiBorder(a,S,u,StiPenStyle.Solid)}}aD0.defaultExportDataOnlyFont=new Font("Arial",10),__.A.StiTableElementExportTool=aD0}let StiAutoSizeHtmlTextHelper=__.h.StiAutoSizeHtmlTextHelper;{class XK0 extends __.A.StiElementExportTool{async render(t,e,l,i){if(this.renderEmptyDataMessage(t,e,l.clone(),i))return;let n=t.as(StiTextElement),s="";if(n.isReportParserExpression||StiExpressionHelper.isTimeExpression(n.text)||XK0.isExpressionWithVariables(n.text,n.report))s=await StiReportParser.parseAsync(n.text,n,!1);else if(n.isQuerable){let t=await StiElementDataCache.tryToGetOrCreate(n),e=(t?.rows[0]??[]).map(t=>StiValueHelper.tryToString(t));null!=e&&(s=StiExpressionHelper.replaceExpressionBlocksByValues(n.text,e))}else s=n.text;!StiString.isNullOrEmpty(s)&&s.toLowerCase()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(" ","").includes("javascript:")&&(s=s.toLowerCase()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("javascript",""));let o=i.format==__.f.StiDashboardExportFormat.Excel||i.format==__.f.StiDashboardExportFormat.Html?.96:1,r=StiExportTool.getScaleFactor(e,i);if(s=this.changeFontSize(s,r*o),n.sizeMode==StiTextSizeMode.Fit||n.sizeMode==StiTextSizeMode.FitAndWordWrap){let r,t=3;do{let t=StiAutoSizeHtmlTextHelper.measure(null,l.clone(),s,n),e=t.width>l.width?l.width/t.width:1,i=l.height<t.height?l.height/t.height:1;r=Math.min(Math.abs(e),Math.abs(i)),(r=n.sizeMode==StiTextSizeMode.FitAndWordWrap&&.8<t.width/l.width&&i<.5?1-.7*(1-r):r)<1&&(s=this.changeFontSize(s,.99*r))}while(r<1&&0<t--);o<1&&(s=this.changeFontSize(s,o))}let a=new StiText(l);a.name=t.name+`_Content`,a.allowHtmlTags=!0,a.vertAlignment=n.vertAlignment,a.horAlignment=n.horAlignment,a.text=s,a.textBrush=new StiSolidBrush(StiDashboardStyleHelper.getForeColor(n)),a.trimming=n.sizeMode==StiTextSizeMode.Trimming?StringTrimming.EllipsisCharacter:StringTrimming.None,a.wordWrap=n.sizeMode==StiTextSizeMode.WordWrap||n.sizeMode==StiTextSizeMode.FitAndWordWrap,a.rightToLeft=n.rightToLeft,e.components.add(a)}changeFontSize(t,e){if(null==t||!t.startsWith("<font ")||t.indexOf(' size="')<0)return t;let i=t.indexOf(' size="')+7,r=t.substring(i),l=(r=r.substring(0,r.indexOf('"')))[Stimulsoft.System.StiObject.stimulsoft]().toNumber();return null==l&&(l=12),l=Math.ceil(l*e*10)/10,t.substring(0,i)+l.toString().replace(",",".")+t.substring(i+r.length)}static isExpressionWithVariables(e,i){if(!StiString.isNullOrEmpty(e)&&StiExpressionHelper.isExpression(e)){if(0<i?.variables?.count)for(let t of i.variables.keys)if(e.toLowerCase().includes(t.toLowerCase()))return!0;if(0<i?.dictionary.variables.count)for(let t of i.dictionary.variables.list)if(e.toLowerCase().includes(t.name.toLowerCase()))return!0}return!1}}__.A.StiTextElementExportTool=XK0}__.A.StiTreeViewBoxElementExportTool=class extends __.A.StiComboBoxElementExportTool{async render(t,e,i,r){return super.render(t,e,i,r)}getValuesCount(t,e){let i=t.as(IStiTreeViewBoxElement),r=StiTreeViewHelper.fetchItems(e,i.showBlanks);return null!=r?r.length:0}};let StiShapeDirection=Stimulsoft.Report.Components.StiShapeDirection,StiTriangleShapeType=Stimulsoft.Report.Components.StiTriangleShapeType;{class EL0 extends __.A.StiListBoxElementExportTool{async render(t,e,i,r){return super.render(t,e,i,r)}getCheckStyle(e,i){let t=e;if(0==t.userFilters.length)return StiCheckStyle.CheckRectangle;if(t.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse))return StiCheckStyle.NoneRectangle;if(null!=i.items){let t=i.items.map(t=>this.getCheckStyle(e,t));if(t.every(t=>t==StiCheckStyle.CheckRectangle))return StiCheckStyle.CheckRectangle;if(t.every(t=>t==StiCheckStyle.NoneRectangle))return StiCheckStyle.NoneRectangle;return StiCheckStyle.DotRectangle}if(t.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo&&t.value==i.toString()))return StiCheckStyle.CheckRectangle;return StiCheckStyle.NoneRectangle}async renderItems(t,e,i,r,l){let n=await StiElementDataCache.tryToGetOrCreate(i);if(null==n)return;let s=!1,o=i.as(IStiTreeViewElement),a=StiTreeViewHelper.fetchItems(n,o.showBlanks),u=(1==a?.length&&0<a[0].items?.length&&(a=a.concat(a[0].items),s=!0),a?.map(t=>null==t?"":null!=t.key&&t.key instanceof DateTime?t.key.toShortDateString():t.toString())),S=a?.map(t=>this.getCheckStyle(i,t)),m=a?.map(t=>s&&t==a[0]);this.renderItems2(t,e.clone(),i,u,S,m,r,l)}renderItem(t,e,i,r,l,n,s,o,a,u,S){r!=StiLocHelper.locAll&&(EL0.renderExpander(t,e.clone(),i,a),e.x+=StiElementConsts.ListBox.CheckBoxWidth/2,e.width-=StiElementConsts.ListBox.CheckBoxWidth/2),super.renderItem(t,e.clone(),i,r,l,n,s,o,a,u,S)}static renderExpander(t,e,i,r){e=new Rectangle(e.x,e.y+e.height/2-e.height/8,StiElementConsts.ListBox.CheckBoxWidth/3,e.height/4);let l=new StiShape(e);l.name=i.name+`_ItemExpander`,l.shapeType=new StiTriangleShapeType(r?StiShapeDirection.Down:StiShapeDirection.Right),l.brush=new StiSolidBrush(Color.dimGray),l.style=StiPenStyle.None,t.components.add(l)}}__.A.StiTreeViewElementExportTool=EL0}let StiHorizontalLinePrimitive=Stimulsoft.Report.Components.StiHorizontalLinePrimitive,StiWebContent=Stimulsoft.Report.Components.StiWebContent;__.A.StiWebContentElementExportTool=class extends __.A.StiElementExportTool{async render(e,r,l,t){if(this.renderEmptyDataMessage(e,r,l.clone(),t))return;let n=e.as(StiWebContentElement),s=StiString.isNullOrEmpty(n.url)?"EmbedCode":"URL",o=StiString.isNullOrEmpty(n.url)?n.embedCode:n.url;if(t?.is(StiSvgDashboardExportSettings)&&t.designMode){let t=30,e=1,i=20;this.paintHeader(r,n,new Rectangle(l.x,l.top,l.width,t),s),this.paintSeparator(r,n,new Rectangle(l.x+i,l.top+t,l.width-2*i,e)),this.paintWebContent(r,n,new Rectangle(l.x,l.top+t+e,l.width,t),o,!0)}else{let t=new StiWebContent(l);t.name=e.name+"_Content",t.embedCode=n.embedCode,t.url=n.url,t.page=r.page,r.components.add(t)}}paintHeader(t,e,i,r){let l=StiDashboardStyleHelper.getForeColor(e),n=new StiText(i);n.name=e.name+`__WebContentHeader`,n.vertAlignment=StiVertAlignment.Center,n.horAlignment=StiTextHorAlignment.Left,n.textBrush=new StiSolidBrush(l),n.brush=new StiSolidBrush(Color.transparent),n.margins=new StiMargins(20,0,0,0),n.text=r,n.font=new Font("Arial",8,FontStyle.Bold),t.components.add(n)}paintSeparator(t,e,i){let r=StiDashboardStyleHelper.getForeColor(e),l=new StiHorizontalLinePrimitive(i);l.name=e.name+`_WebContentSep`,l.color=r,t.components.add(l)}paintWebContent(t,e,i,r,l=!1){let n=StiDashboardStyleHelper.getForeColor(e),s=new StiText(i);s.name=e.name+`__WebContentContent`,s.vertAlignment=l?StiVertAlignment.Center:StiVertAlignment.Top,s.horAlignment=StiTextHorAlignment.Left,s.textBrush=new StiSolidBrush(n),s.brush=new StiSolidBrush(Color.transparent),s.margins=new StiMargins(l?20:0,0,0,0),s.text=r,s.font=new Font("Arial",8,FontStyle.Bold),s.allowHtmlTags=!l,t.components.add(s)}};{class YM0{static run(S,m){if(void 0===S)return void YM0.run(Stimulsoft,"Stimulsoft");if("Stimulsoft.ExternalLibrary"==m||"Stimulsoft.Blockly"==m||"Stimulsoft.StiOptions"==m)return;m=m.replace("Stimulsoft.System","System");for(let u in S){if(u[0]!==u[0].toUpperCase())continue;let t=S[u],e=typeof t,i=t instanceof Stimulsoft.System.Interface,r="object"==e,l="function"==e;if(!r&&!l||null==t)continue;let n=l?t.getTypeName?.()??u:u,s=l?t.getNamespace?.()??m:m,o=s+`.`+n,a=o.startsWith("Stimulsoft.Report.StiOptions");(i||l||a)&&(YM0.setProperty(t,"typeName",n),YM0.setProperty(t,"namespace",s),YM0.setProperty(t,"fullName",o)),"System.Collections.Generic"==s&&YM0.setProperty(t,"isGenericTypeDefinition",!0),r&&!i&&YM0.run(t,o)}}static setProperty(e,i,t){try{Object.defineProperty(e,i,{value:t,writable:!1,configurable:!0,enumerable:!1})}catch(t){console.warn(`Failed to set property '${i}' on '${e.constructor.name}':`,t)}}}__.c.StiTypesHelper=YM0}__.c.StiTypesHelper.run();export{Stimulsoft};
|
|
10
|
+
await this.renderElements(i,t,r),await this.renderArea(i,t),await this.renderLegend(i,t),await this.renderSeriesLabels(i,t),await StiChartElementBuilder.renderConstantLines(i,t),StiChartElementBuilder.renderStrips(i,t),this.simplifyValues(t),t.applyStyle(),t.allowApplyStyle=!1;let e=StiDashboardExpressionHelper.getBackColor(i,i.backColor);return Color.transparent.equals(e)||(t.brush=new StiSolidBrush(e)),t}finally{__.h.StiCultureHelper.restore(this.storedCulture)}}async renderElements(u,S,m){let h=S?.report,t=this.getSeriesMeterIndex(m),e=this.getSeriesKeyValues(m,t),r=this.getArgumentMeterIndexes(m),c=this.getArgumentKeys(u,m),l=this.getValueMeters(m),n=e.length;await this.calculateIndicatorValue(u);for(let a of e){let i=-1!=t&&1<n?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(t,this.toString(a)):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),o=new Dictionary;for(let e of c){let t=StiChartElementBuilder.getDetailRows(i,e,r);o.add(e,t)}let e=0;for(let t of l){let r=this.getValueMeterIndexes(m)[e],n=this.renderSeries(u,t,this.toReadableString(a,h),S);if(null==n)continue;await StiChartElementBuilder.renderConditions(this.toString(a),n,u,t),StiChartElementBuilder.renderTrendLines(n,u,t),n.values=StiArray.create(Number,c.length);let l=0;for(let i of c){let t=o.get(i)[Stimulsoft.System.StiObject.stimulsoft]().toList(),e=List.getValueOrFirstOrDefault(t.getArrayItem(r).firstOrDefault());(e?.[Stimulsoft.System.StiObject.stimulsoft]().is(DateTime)||e?.[Stimulsoft.System.StiObject.stimulsoft]().is(TimeSpan))&&(n.core.isDateTimeValues=!0),n.values[l]=t.getArrayItem(r).firstOrDefaultAsNullableNumber(),l++}n.originalArguments=c.slice(),n.arguments=this.proccessSelectArguments(c,u,n,h);let s=n.as(IStiFunnelSeries);if(null!=s){let e=n.values.slice(),i=n.arguments.slice(),r=n.originalArguments.slice(),t=e.map((t,e)=>({value:t,index:e})).sort((t,e)=>(t.value||0)-(e.value||0)).map(t=>t.index);t.reverse(),s.values=t.map(t=>e[t]),s.arguments=t.map(t=>i[t]),s.originalArguments=t.map(t=>r[t])}else if(n.is(IStiParetoSeries)){let i=[],r=[],l=[];for(let e=0;e<n.values.length;e++){let t=n.values[e];if(!(0<t))continue;i.push(t),null!=n.arguments&&e<n.arguments.length?r.push(n.arguments[e]):r.push(e+1),null!=n.originalArguments&&e<n.originalArguments.length?l.push(n.originalArguments[e]):l.push(e+1)}let t=i.map((t,e)=>({value:t,index:e})).sort((t,e)=>(t.value||0)-(e.value||0)).map(t=>t.index);t.reverse(),n.valuesStart=null,n.values=t.map(t=>i[t]),n.arguments=t.map(t=>r[t]),n.originalArguments=t.map(t=>l[t])}e++,await StiChartElementBuilder.processTopNElements(u,n),Stimulsoft.Report.Chart["StiHistogramHelper"].checkValuesAndArguments(n,u.argumentFormat),await this.renderSeriesInteraction(n,u,c.length,this.toString(a))}}StiBoxAndWhiskerHelper.checkArgument(S),StiChartHelper.checkWaterfallTotals(S)}proccessSelectArguments(t,e,l,i){let r=l.as(StiScatterSeries);if(null!=r){let r=[];for(let i=0;i<l.originalArguments.length;i++){let t=l.originalArguments[i],e=null!=t&&0<t.length?t[0]:t;r.push(e)}return r}return t.map(t=>this.getString(e.argumentFormat,t,i))}static async processTopNElements(i,l){if(i.topN.mode==StiDataTopNMode.None)return;let n=[],t=(l.values.length>l.arguments.length?l.values:l.arguments).length;for(let r=0;r<t;r++){let t=r<l.values.length?l.values[r]:null,e=r<l.arguments.length?l.arguments[r]:null,i=r<l.originalArguments.length?l.originalArguments[r]:null;n.push({key:e,key1:i,value:t})}let r=(n=i.topN.mode==StiDataTopNMode.Bottom?n[Stimulsoft.System.StiObject.stimulsoft]().orderBy(t=>t.value):n[Stimulsoft.System.StiObject.stimulsoft]().orderByDescending(t=>t.value)).slice(0,i.topN.count);if(n.length>i.topN.count&&i.topN.showOthers){l.originalTopNValues=n.slice(i.topN.count).map(t=>t.value);let t=n.slice(i.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum(t=>StiValueHelper.tryToNumber(t.value)),e=StiString.isNullOrEmpty(i.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(i.topN.othersText,i);r.push({key:e,key1:e,value:t})}i.isBarChart&&r.reverse(),l.originalArguments=r.map(t=>t.key1),l.arguments=r.map(t=>t.key),l.values=r.map(t=>StiValueHelper.tryToNullableNumber(t.value))}static setStyle(t,e){if(t.style!=StiElementStyleIdent.Custom)return void(e.style=StiDashboardStyleHelper.getChartStyle(t));let i=t.report.styles.getCustomChartStyle(t.customStyleName);if(null!=i)return e.style=i,void(e.customStyleName=t.customStyleName);e.style=StiDashboardStyleHelper.getChartStyle2(StiElementStyleIdent.Blue)}static getDetailRows(t,i,r){if(!r.length)return t;return t.filter(e=>{let t=r.map(t=>e[t]);return StiValueComparer.equalValues(t,i)})}renderSeries(t,e,i,r){let l=e,n=StiChartSeriesCreator.neww2(e.seriesType);return StiChartElementBuilder.renderSeriesYAxis(t,l,n),StiChartElementBuilder.renderSeriesLine(l,n),StiChartElementBuilder.renderSeriesShowZeros(l,n),StiChartElementBuilder.renderSeriesShowNulls(l,n),n.coreTitle=this.getSeriesTitle(t,i,e),n.core.seriesColors=null!=t.seriesColors&&0<t.seriesColors.length?t.seriesColors:null,n.isDashboard=!0,this.renderSeriesNegativeColor(t,n,r.series.count),this.renderSeriesParetoColor(t,n,r.series.count),this.renderMarker(t,n),StiChartElementBuilder.renderSeriesLighting(n),StiChartElementBuilder.renderSeriesIcon(t,n),StiChartElementBuilder.renderSeriesPie3d(t,n),n.is(IStiColumnShape3D)&&(n.columnShape=t.columnShape),r.series.add(n),n}static renderSeriesPie3d(t,e){e.is(StiPie3dSeries)&&t.options3D?.[Stimulsoft.System.StiObject.stimulsoft]().is(StiPie3dOptions)&&(e.options3D=t.options3D[Stimulsoft.System.StiObject.stimulsoft]().as(StiPie3dOptions))}static renderSeriesYAxis(t,e,i){e.is(StiValueChartMeter)&&1<t.values.length&&(i.yAxis=e.yAxis)}static renderSeriesLine(r,l){if(null!=r){let t=l.as(IStiBaseLineSeries);if(null!=t)return t.lineStyle=r.lineStyle,void(t.lineWidth=r.lineWidth);let e=l.as(IStiStackedBaseLineSeries),i=(null!=e&&(e.lineStyle=r.lineStyle,e.lineWidth=r.lineWidth),l.as(IStiAreaSeries3D));null!=i&&(i.lineStyle=r.lineStyle,i.lineWidth=r.lineWidth)}}static renderSeriesShowZeros(t,e){let i=e.as(IStiShowZerosSeries);if(null==i)return;i.showZeros=t.showZeros==StiEmptyCellsAs.Zero;let r=e.as(IStiBaseLineSeries);if(null==r)return;t.showZeros==StiEmptyCellsAs.Gap&&(r.showZerosAs=StiShowEmptyCellsAs.Gap),t.showZeros==StiEmptyCellsAs.ConnectPointsWithLine&&(r.showZerosAs=StiShowEmptyCellsAs.ConnectPointsWithLine)}static renderSeriesShowNulls(t,e){let i=e.as(IStiShowNullsSeries);if(null==i)return;i.showNulls=t.showNulls==StiEmptyCellsAs.Zero;let r=e.as(IStiBaseLineSeries);if(null==r)return;t.showNulls==StiEmptyCellsAs.Gap&&(r.showNullsAs=StiShowEmptyCellsAs.Gap),t.showNulls==StiEmptyCellsAs.ConnectPointsWithLine&&(r.showNullsAs=StiShowEmptyCellsAs.ConnectPointsWithLine)}static renderSeriesLighting(t){t.is(IStiPieSeries)&&(t.lighting=!1),t.is(IStiDoughnutSeries)&&(t.lighting=!1)}static renderSeriesIcon(t,e){let i=e.as(IStiFontIconsSeries);null!=i&&(e.is(IStiPictorialSeries)&&null==t.icon?i.icon=Stimulsoft.Report.Helpers.StiFontIcons.QuarterFull:i.icon=t.icon)}renderMarker(t,e){let i,r=null!=e?e.as(IStiBaseLineSeries):null,l=null!=e?e.as(IStiStackedBaseLineSeries):null;null!=r?i=null!=r.marker?r.marker.as(StiMarker):null:null!=l&&(i=null!=l.marker?l.marker.as(StiMarker):null),null!=i&&(i.size=t.marker.size,i.angle=t.marker.angle,i.type=t.marker.type,i.extendedVisible=t.marker.visible)}renderSeriesNegativeColor(t,e,i){if(null==t.negativeSeriesColors||t.negativeSeriesColors.length<=0)return;while(i>=t.negativeSeriesColors.length)i-=t.negativeSeriesColors.length;let r=e.as(IStiAllowApplyBrushNegative),l=(null!=r&&(r.allowApplyBrushNegative=!0,r.brushNegative=new StiSolidBrush(t.negativeSeriesColors[i])),e.as(IStiAllowApplyColorNegative));null!=l&&(l.allowApplyColorNegative=!0,l.lineColorNegative=t.negativeSeriesColors[i])}renderSeriesParetoColor(t,e,i){if(null==t.paretoSeriesColors||t.paretoSeriesColors.length<=0)return;while(i>=t.paretoSeriesColors.length)i-=t.paretoSeriesColors.length;let r=e.as(IStiParetoSeries);null!=r&&(r.allowApplyLineColor=!0,r.lineColor=t.paretoSeriesColors[i])}async renderArea(t,e){let i=StiDashboardExpressionHelper.getBackColor(t,t.backColor);Color.transparent.equals(i)||(e.area.brush=255==i.a?new StiSolidBrush(i):new StiEmptyBrush),(t.isPieChart||t.isPie3dChart||t.isDoughnutChart||t.isFunnelChart||t.isSunburstChart||t.isPictorialStackedChart)&&(e.area.allowApplyStyle=!1,e.area.borderColor=Color.transparent),e.area.colorEach=StiChartElementBuilder.getColorEach(t),e.area.is(IStiRoundValuesArea)&&(e.area.as(IStiRoundValuesArea).roundValues=t.roundValues),await this.renderAxisAxes3d(t,e),await this.renderAxisAxes(t,e),StiChartElementBuilder.renderRadarAxis(t,e),this.renderAreaIndicator(t,e)}static getColorEach(t){return!!(t.isPieChart||t.isPie3dChart||t.isDoughnutChart||t.isPictorialStackedChart)||null!=t.area&&t.area.colorEach}async renderAxisAxes3d(t,e){if(e.series.count<=0)return;let i=e.area.as(IStiClusteredColumnArea3D),r=(null!=i&&(i.sideBySide=t.area.sideBySide),e.area.as(IStiClusteredColumnArea));null!=r&&(r.sideBySide=t.area.sideBySide),await this.renderXAxis3D(t,e),await this.renderYAxis3D(t,e),await this.renderZAxis3D(t,e)}async renderAxisAxes(t,e){if(e.series.count<=0)return;let i=e.area.as(IStiAxisArea);if(null==i)return;StiChartElementBuilder.renderInterlacingHor(t,i),StiChartElementBuilder.renderInterlacingVert(t,i),StiChartElementBuilder.renderGridLinesHor(t,i),StiChartElementBuilder.renderGridLinesVert(t,i),i.reverseHor=t.area.reverseHor,i.reverseVert=t.area.reverseVert,await this.renderXAxis(t,e,!1),await this.renderYAxis(t,e,!1),t.xTopAxis.visible&&await this.renderXAxis(t,e,!0),t.yRightAxis.visible?await this.renderYAxis(t,e,!0):await StiChartElementBuilder.renderYRightAxis(t,e)}static renderInterlacingHor(t,e){t.area.interlacingHor.visible&&!Color.transparent.equals(t.area.interlacingHor.color)&&(e.interlacingHor.interlacedBrush=new StiSolidBrush(t.area.interlacingHor.color)),e.interlacingHor.visible=t.area.interlacingHor.visible}static renderInterlacingVert(t,e){t.area.interlacingVert.visible&&!Color.transparent.equals(t.area.interlacingVert.color)&&(e.interlacingVert.interlacedBrush=new StiSolidBrush(t.area.interlacingVert.color)),e.interlacingVert.visible=t.area.interlacingVert.visible}static renderGridLinesHor(t,e){t.area.gridLinesHor.visible&&!Color.transparent.equals(t.area.gridLinesHor.color)&&(e.gridLinesHor.color=t.area.gridLinesHor.color),e.gridLinesHor.visible=t.area.gridLinesHor.visible,e.gridLinesHor.style=StiPenStyle.Solid}static renderGridLinesVert(t,e){t.area.gridLinesVert.visible&&!Color.transparent.equals(t.area.gridLinesVert.color)&&(e.gridLinesVert.color=t.area.gridLinesVert.color),e.gridLinesVert.visible=t.area.gridLinesVert.visible,e.gridLinesVert.style=StiPenStyle.Solid}async renderXAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(null==i)return;let r=i.xAxis,l=t.xAxis,n=(await StiChartElementBuilder.renderAxis3D(t,r,l),StiDrillDownHelper.isDrillAvailable(t)&&t.drillDownCurrentLevel<t.drillDownLevelCount?t.arguments.slice(t.drillDownCurrentLevel,t.drillDownCurrentLevel+1):t.arguments),s=n.map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct();await StiChartElementBuilder.renderXAxisTitleText3D(t,r,l,s),r.visible=l.visible,l.showEdgeValues==StiAutoBool.Auto&&(r.showEdgeValues=!1)}async renderYAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(null==i)return;let r=i.yAxis,l=t.yAxis,n=(await StiChartElementBuilder.renderAxis3D(t,r,l),(t.dataMode==StiDataMode.ManuallyEnteringData?t.chartValuesList():t.arguments).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct());r.visible=n.length&&l.visible,await StiChartElementBuilder.renderYAxisTitleText3D(t,r,l,n),r.visible=l.visible,null!=t.valueFormat&&(r.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e))}async renderZAxis3D(t,e){let i=e.area.as(IStiAxisArea3D);if(!i)return;let r=i.zAxis,l=t.xAxis;await StiChartElementBuilder.renderAxis3D(t,r,l)}static async renderXAxisTitleText3D(t,e,i,r){if(!i.title.visible)return;e.title.text=""===i.title.text?r.join(" / "):await StiReportParser.parseAsync(i.title.text,t)}static async renderYAxisTitleText3D(t,e,i,r){if(!i.title.visible)return;e.title.text=""===i.title.text?r.join(" / "):await StiReportParser.parseAsync(i.title.text,t)}async renderXAxis(t,e,i){let r=e.area.as(IStiAxisArea);if(null==r)return;let l=i?r.xTopAxis:r.xAxis,n=i?t.xTopAxis:t.xAxis,s=e.area.is(IStiClusteredBarArea),o=StiDrillDownHelper.isDrillAvailable(t)&&t.drillDownCurrentLevel<t.drillDownLevelCount?t.arguments.slice(t.drillDownCurrentLevel,t.drillDownCurrentLevel+1):t.arguments,a=(s?t.values:o).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct(),u=(await StiChartElementBuilder.renderAxis(t,l,n),l.ticks.visible=0<a.length,l.visible=n.visible,await StiChartElementBuilder.renderXAxisTitleText(t,l,n,a),e.series.list.every(t=>t.is(IStiBaseLineSeries)||t.is(IStiStackedBaseLineSeries))),S=(n.startFromZero==StiAutoBool.Auto&&(l.startFromZero=!u),e.series.list.every(t=>t.core.isDateTimeValues));S&&r.is(StiClusteredBarArea)&&(l.startFromZero=!1),n.showEdgeValues==StiAutoBool.Auto&&(l.showEdgeValues=u),l.labels.placement==StiLabelsPlacement.AutoRotation&&(l.labels.textAlignment=StiHorAlignment.Left),null!=t.valueFormat&&r.is(IStiClusteredBarArea)&&(l.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e)),null!=t.argumentFormat&&r.is(IStiScatterArea)&&(l.labels.formatService=t.argumentFormat),StiChartElementBuilder.renderAxisLineColor(t,l)}async renderYAxis(t,e,i){let r=e.area.as(IStiAxisArea);if(null==r)return;let l=i?r.yRightAxis:r.yAxis,n=i?t.yRightAxis:t.yAxis,s=e.area.is(IStiGanttArea)||e.area.is(IStiClusteredBarArea),o=(s&&t.dataMode!=StiDataMode.ManuallyEnteringData?t.arguments:t.chartValuesList()).map(this.getTitle)[Stimulsoft.System.StiObject.stimulsoft]().distinct(),a=(await StiChartElementBuilder.renderAxis(t,l,n),l.visible=o.length&&n.visible,await StiChartElementBuilder.renderYAxisTitleText(t,l,n,o),null==t.valueFormat||r.is(IStiClusteredBarArea)||r.is(StiHeatmapArea)||(l.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e)),e.series.list.every(t=>t.core.isDateTimeValues));a&&(r.yAxis.startFromZero=!1),StiChartElementBuilder.renderAxisLineColor(t,l)}static renderXRadarAxis(t,e){let i=e.area.as(StiRadarArea);if(null==i)return;this.renderXRadarAxisLabels(t,t.area.xAxis.labels,i.xAxis.labels),this.renderAxisRange(i.xAxis.range,t.xAxis),null!=t.valueFormat&&(i.yAxis.labels.formatService=StiChartElementBuilder.checkValueFormat(t.valueFormat,e));let r=StiDashboardStyleHelper.getForeColor(t);this.renderRadarXAxisLabelsColor(t,i.xAxis.labels,t.xAxis,r),i.xAxis.visible=t.xAxis.visible}static renderXRadarAxisLabels(t,e,i){i.font=this.getSmallStyleFont(t,e.font),i.textBefore=e.textBefore,i.textAfter=e.textAfter,i.allowApplyStyle=!1}static renderYRadarAxis(t,e){let i=e.area.as(StiRadarArea);if(null==i)return;this.renderYRadarAxisLabels(t,t.area.yAxis.labels,i.yAxis.labels),this.renderAxisRange(i.yAxis.range,t.yAxis);let r=StiDashboardStyleHelper.getForeColor(t);this.renderRadarYAxisLabelsColor(t,i.yAxis.labels,t.yAxis,r),i.yAxis.visible=t.yAxis.visible}static renderYRadarAxisLabels(t,e,i){i.font=this.getSmallStyleFont(t,e.font),i.textBefore=e.textBefore,i.textAfter=e.textAfter,i.step=e.step,i.angle=e.angle,i.textAlignment=e.textAlignment,i.wordWrap=e.wordWrap,i.width=e.width,i.allowApplyStyle=!1}static renderRadarXAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&e.color!=Color.transparent||(e.color=r)}static renderRadarYAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&e.color!=Color.transparent||(e.color=r)}static checkValueFormat(t,r){let l=t.as(StiNumberFormatService);if(null!=l&&0<(l.state&Stimulsoft.Report.Components.StiTextFormatState.Abbreviation)&&0==(l.state&Stimulsoft.Report.Components.StiTextFormatState.DecimalDigits)){let e=l.clone(),i=null;for(let t=0;t<r.series.count;t++){let e=r.series.getByIndex(t);for(let t of e.values)(null==i||i>t)&&(i=t)}if(null!=i&&0!=i){let t=0;if((i=Math.abs(i))<5){while(Math.round(i)%10==0)i*=10,t++;t+=2}e.useLocalSetting=!1,e.decimalDigits=t}return e}return t}static async renderYRightAxis(t,e){let i=e.area.as(IStiAxisArea);if(null==i)return;await this.renderAxis(t,i.yRightAxis,t.yRightAxis),this.renderAxisLineColor(t,i.yRightAxis)}static async renderXAxisTitleText(t,e,i,r){if(!i.title.visible)return;e.title.text=StiString.isNullOrEmpty(i.title.text)?StiString.join(" / ",r):await StiReportParser.parseAsync(i.title.text,t)}static async renderYAxisTitleText(t,e,i,r){if(!i.title.visible)return;e.title.text=StiString.isNullOrEmpty(i.title.text)?StiString.join(" / ",r):await StiReportParser.parseAsync(i.title.text,t)}static renderAxisLineColor(t,e){if(t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.lineColor))return e.allowApplyStyle=!1,void(e.allowApplyStyle=!1);StiDashboardStyleHelper.isDarkStyle(t.dashboard)&&(e.allowApplyStyle=!1,e.lineColor=StiDashboardStyleHelper.getForeColor(t))}static renderRadarAxis(t,e){if(e.series.count<=0)return;let i=e.area.as(StiRadarArea);if(null==i)return;this.renderXRadarAxis(t,e),this.renderYRadarAxis(t,e)}renderAreaIndicator(t,e){let i=e.area.as(StiDoughnutArea);if(null==i)return;let r=t?.report,l=null==this.indicatorValueValue?"":this.getString(t.valueFormat,this.indicatorValueValue.toString(),r),n=(i.indicator.value.value=l,i.indicator.value.color=t.area.indicator.value.color,t.area.indicator.title.text);i.indicator.title.text=n,i.indicator.title.color=t.area.indicator.title.color,i.indicator.visible=!StiString.isNullOrEmpty(l)||!StiString.isNullOrEmpty(n)}static async renderAxis3D(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t);this.renderAxisTitle3D(t,e,i,r),await this.renderAxisLabels3D(t,e,i),this.renderAxisLabelsColor3D(t,e,i,r)}static renderAxisTitle3D(t,e,i,r){let l=this.getTitleAxisChart(i),n=e.title;n.font=this.getStyleFont(t,l.font),StiChartElementBuilder.renderAxisLabelsTitleColor3D(t,n,l,r),l instanceof StiXChartAxisTitle&&(n.direction=l.direction),l instanceof StiYChartAxisTitle&&(n.direction=l.direction)}static async renderAxis(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t);this.renderAxisTitle(t,e,i,r),await this.renderAxisLabels(t,e,i),this.renderAxisStartFromZero(e,i),this.renderAxisShowEdgeValues(e,i),this.renderAxisRange(e.range,i),this.renderAxisLabelsColor(t,e,i,r)}static renderAxisTitle(t,e,i,r){let l=this.getTitleAxisChart(i),n=e.title;n.alignment=l.alignment,n.position=l.position,n.font=this.getStyleFont(t,l.font),this.renderAxisLabelsTitleColor(t,n,l,r),l.is(StiXChartAxisTitle)&&(n.direction=l.direction),l.is(StiYChartAxisTitle)&&(n.direction=l.direction)}static async renderAxisLabels3D(t,e,i){e.labels.angle=i.labels.angle,e.labels.textAfter=await StiReportParser.parseAsync(i.labels.textAfter,t),e.labels.textBefore=await StiReportParser.parseAsync(i.labels.textBefore,t),e.labels.font=StiChartElementBuilder.getSmallStyleFont(t,i.labels.font),e.labels.width=i.labels.width,e.labels.wordWrap=i.labels.wordWrap}static async renderAxisLabels(t,e,i){e.labels.angle=i.labels.angle,e.is(IStiYRightAxis)&&t.isParetoChart||(e.labels.textAfter=await StiReportParser.parseAsync(i.labels.textAfter,t)),e.labels.textAlignment=i.labels.textAlignment,e.labels.textBefore=await StiReportParser.parseAsync(i.labels.textBefore,t),e.labels.font=StiChartElementBuilder.getSmallStyleFont(t,i.labels.font),e.labels.placement=i.labels.placement,e.labels.step=i.labels.step,e.labels.wordWrap=i.labels.wordWrap,e.labels.width=i.labels.width}static renderAxisStartFromZero(e,i){if(i.is(StiXChartAxis)){let t=i;null!=t&&t.startFromZero!=StiAutoBool.Auto&&(e.startFromZero=t.startFromZero!=StiAutoBool.False)}if(i.is(StiYChartAxis)){let t=i;null!=t&&(e.startFromZero=t.startFromZero)}}static renderAxisShowEdgeValues(e,i){if(i.is(StiXChartAxis)){let t=i;null!=t&&t.showEdgeValues!=StiAutoBool.Auto&&(e.showEdgeValues=t.showEdgeValues!=StiAutoBool.False)}}static renderAxisRange(t,e){e[Stimulsoft.System.StiObject.stimulsoft]().getType()!=StiXChartAxis&&e[Stimulsoft.System.StiObject.stimulsoft]().getType()!=StiYChartAxis||(t.auto=e.range.auto,t.maximum=e.range.maximum,t.minimum=e.range.minimum)}static renderAxisLabelsTitleColor(t,e,i,r){if(!Color.transparent.equals(i.color))return void(e.color=i.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.color)||(e.color=r)}static renderAxisLabelsTitleColor3D(t,e,i,r){if(!Color.transparent.equals(i.color))return void(e.color=i.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.color)||(e.color=r)}static renderAxisLabelsColor3D(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.labels.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.labels.color)||(e.labels.color=r)}static renderAxisLabelsColor(t,e,i,r){if(!Color.transparent.equals(i.labels.color))return void(e.labels.color=i.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.labels.color)||(e.labels.color=r)}static getTitleAxisChart(t){if(t.is(StiXChartAxis))return t.title;if(t.is(StiYChartAxis))return t.title;return null}async renderLegend(t,e){e.legend.horAlignment=StiChartElementBuilder.getChartLegendHotAlignment(t),e.legend.vertAlignment=StiChartElementBuilder.getChartLegendVertAlignment(t),e.legend.title=await StiReportParser.parseAsync(t.legend.title.text,t),e.legend.titleFont=StiChartElementBuilder.getStyleFont(t,t.legend.title.font),e.legend.allowApplyStyle=!1,e.legend.font=StiChartElementBuilder.getSmallStyleFont(t,t.legend.labels.font),e.legend.visible=StiChartElementBuilder.getChartLegendVisible(t,e),e.legend.columns=t.legend.columns,e.legend.direction=t.legend.direction;let i=StiDashboardStyleHelper.getForeColor(t);StiChartElementBuilder.renderLegendTitleColor(t,e,i),StiChartElementBuilder.renderLegendLabelsColor(t,e,i)}static getChartLegendHotAlignment(t){if(t.isHeatmapChart)return StiLegendHorAlignment.RightOutside;return t.legend.horAlignment}static getChartLegendVertAlignment(t){if(t.isHeatmapChart)return StiLegendVertAlignment.Center;return t.legend.vertAlignment}static getChartLegendVisible(t,e){if(1==e.series.count&&!e.series.getByIndex(0).is(StiPieSeries)&&!e.series.getByIndex(0).is(StiHeatmapSeries))return t.legend.visibility==StiLegendVisibility.Always;return t.legend.visibility!=StiLegendVisibility.False}static renderLegendTitleColor(t,e,i){if(!Color.transparent.equals(t.legend.title.color))return void(e.legend.titleColor=t.legend.title.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.legend.titleColor)||(e.legend.titleColor=i)}static renderSeriesLabelsLegendValueType(t,e){let i=0;e.series.list.filter(t=>null!=t.arguments).forEach(t=>{i+=t.arguments.filter(t=>null!=t).length}),null==t.legend.labels.valueType?0<i&&1<e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitleArgument:1==i&&1==e.series.count&&(t.isPieChart||t.isPie3dChart||t.isDoughnutChart)?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitle:0<i&&1==e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.Argument:0==i&&1<e.series.count?e.seriesLabels.legendValueType=StiSeriesLabelsValueType.SeriesTitle:e.seriesLabels.legendValueType=t.isBubbleChart?StiSeriesLabelsValueType.Weight:StiSeriesLabelsValueType.Value:e.seriesLabels.legendValueType=t.legend.labels.valueType}static renderLegendLabelsColor(t,e,i){if(!Color.transparent.equals(t.legend.labels.color))return void(e.legend.labelsColor=t.legend.labels.color);t.style==StiElementStyleIdent.Custom&&!Color.transparent.equals(e.legend.labelsColor)||(e.legend.labelsColor=i)}static async renderConditions(t,e,i,r){let l=null!=i.chartConditions?i.chartConditions.filter(t=>t.keyValueMeter==r.key):null,n=(null!=l&&await this.renderValueConditions(i,e,l),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.EndValue):null),s=(null!=n&&await this.renderEndValueConditions(i,e,n),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.Argument):null),o=(null!=s&&await this.renderArgumentConditions(i,e,s),null!=i.chartConditions?i.chartConditions.filter(t=>t.field==StiChartConditionalField.Series):null);null!=o&&await this.renderSeriesConditions(i,e,o,t)}static async renderValueConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Value,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderEndValueConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.ValueEnd,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderArgumentConditions(i,r,t){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Argument,e.dataType,e.condition,t,e.markerType,e.markerAngle))}}static async renderSeriesConditions(i,r,t,l){for(let e of t){let t=e.isExpression?await StiReportParser.parseAsync(`{${e.value}}`,i):e.value;this.getConditionResult(t?.toString(),l,e.condition)&&(r.legendColor=e.color,r.conditions.add(new Stimulsoft.Report.Chart["StiChartCondition"](e.color,Stimulsoft.Report.Components.StiFilterItem.Argument,Stimulsoft.Report.Components.StiFilterDataType.String,Stimulsoft.Report.Components.StiFilterCondition.BeginningWith,"",e.markerType,e.markerAngle)))}}static getConditionResult(i,r,e){let t=!1;if(null!=r){let t=r;if(null!=t&&null!=i){r[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(r=r.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=r);try{switch(e){case Stimulsoft.Report.Components.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case Stimulsoft.Report.Components.StiFilterCondition.Containing:{let t=r.toString(),e=i.toString();return-1!=t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.NotContaining:{let t=r.toString(),e=i.toString();return-1==t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.BeginningWith:{let t=r.toString(),e=i.toString();return t.startsWith(e)}case Stimulsoft.Report.Components.StiFilterCondition.EndingWith:{let t=r.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}static async renderConstantLines(r,l){for(let i of r.constantLines){let t=!StiString.isNullOrEmpty(i.text),e=new Stimulsoft.Report.Chart["StiConstantLines"];e.allowApplyStyle=!1,e.text=i.text,e.axisValue=await StiReportParser.parseAsync(i.axisValue,r),e.lineColor=i.lineColor,e.lineStyle=i.lineStyle,e.lineWidth=i.lineWidth,e.titleVisible=t,e.orientation=r.isBarChart?StiConstantLines_StiOrientation.Vertical:StiConstantLines_StiOrientation.Horizontal,e.position=i.position,l.constantLines.add(e)}}static renderStrips(t,i){if(!t.strips||0===t.strips.length)return;i.strips.clear();for(let e of t.strips){let t=new Stimulsoft.Report.Chart["StiStrips"];t.allowApplyStyle=!1,t.text=e.text,t.minValue=e.minValue,t.maxValue=e.maxValue,t.titleColor=e.titleColor,t.stripBrush=e.stripBrush,t.orientation=e.orientation,i.strips.add(t)}}static renderTrendLines(e,t,i){let r=t.trendLines?.filter(t=>t.keyValueMeter==i.key);e.trendLines.clear();for(let t of r)e.trendLines.add(this.getTrendLine(t,e.chart))}static getTrendLine(e,i){switch(e.type){case StiChartTrendLineType.None:return new Stimulsoft.Report.Chart["StiTrendLineNone"];case StiChartTrendLineType.Exponential:{let t=new Stimulsoft.Report.Chart["StiTrendLineExponential"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}case StiChartTrendLineType.Linear:{let t=new Stimulsoft.Report.Chart["StiTrendLineLinear"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}case StiChartTrendLineType.Logarithmic:{let t=new Stimulsoft.Report.Chart["StiTrendLineLogarithmic"];return t.allowApplyStyle=!1,t.lineColor=Color.transparent.equals(e.lineColor)?i.style.core.trendLineColor:e.lineColor,t.lineStyle=e.lineStyle,t.lineWidth=e.lineWidth,t.showShadow=!1,t}}}async renderSeriesLabels(e,i){if(!(e.isPieChart||e.isPie3dChart||e.isFunnelChart||e.isPictorialStackedChart||e.isDoughnutChart||e.isTreemapChart||e.isAxisAreaChart||e.isSunburstChart||e.isRadarChart||e.isWaterfallChart||e.isAxisAreaChart3D||e.isLineChart3D))return void(i.seriesLabels.visible=!1);if(i.allowApplyStyle=!1,e.isPieChart?StiChartElementBuilder.renderPieLabelsPosition(e,i):e.isPie3dChart?StiChartElementBuilder.renderPie3dLabelsPosition(e,i):e.isDoughnutChart||e.isSunburstChart?StiChartElementBuilder.renderDoughnutLabelsPosition(e,i):e.isFunnelChart?StiChartElementBuilder.renderFunnelLabelsPosition(e,i):e.isPictorialStackedChart?StiChartElementBuilder.renderPictorialStackedLabelsPosition(e,i):e.isTreemapChart?StiChartElementBuilder.renderTreemapLabelsPosition(e,i):e.isHeatmapChart?StiChartElementBuilder.renderHeatmapLabelsPosition(e,i):e.isWaterfallChart?StiChartElementBuilder.renderWaterfallLabelsPosition(e,i):e.isStackedChart?StiChartElementBuilder.renderStackedLabelsPosition(e,i):e.isRadarChart?StiChartElementBuilder.renderRadarLabelsPosition(e,i):e.isAxisAreaChart?StiChartElementBuilder.renderAxisLabelsPosition(e,i):e.isAxisAreaChart3D?StiChartElementBuilder.renderClusteredColumn3DLabelsPosition(e,i):e.isLineChart3D&&this.renderLine3DLabelsPosition(e,i),i.seriesLabels.core.applyStyle(i.style),await StiChartElementBuilder.applyPropertiesToSeriesLabels(e,i.seriesLabels.as(IStiSeriesLabels)),e.isStackedChart)for(let t of i.series.list)t.seriesLabels.as(IStiSeriesLabels).core.applyStyle(i.style),await StiChartElementBuilder.applyPropertiesToSeriesLabels(e,t.seriesLabels.as(IStiSeriesLabels));e.isPieChart||e.isPie3dChart||e.isDoughnutChart||e.isSunburstChart?(StiChartElementBuilder.renderPieLabelsStyle(e,i),StiChartElementBuilder.renderPieLabelsAutoRotate(e,i),StiChartElementBuilder.renderSeriesLabelsLegendValueType(e,i)):e.isFullStackedChart?(StiChartElementBuilder.renderLabelsStyle(e,i),i.seriesLabels.showInPercent=!0):StiChartElementBuilder.renderLabelsStyle(e,i),StiChartElementBuilder.renderLabelsColor(e,i),StiChartElementBuilder.renderLabelsTextFormat(e,i),StiChartElementBuilder.renderLabelsShowZeros(i),StiChartElementBuilder.renderLabelsShowNulls(i)}static renderLabelsShowZeros(r){for(let i of r.series.list){let t=i.as(IStiShowZerosSeriesAs);if(null!=t)return void(r.seriesLabels.showZeros=t.showZerosAs==StiShowEmptyCellsAs.Zero);let e=i.as(IStiShowZerosSeries);if(null!=e)return void(r.seriesLabels.showZeros=e.showZeros)}}static renderLabelsShowNulls(r){for(let i of r.series.list){let t=i.as(IStiShowNullsSeriesAs);if(null!=t)return void(r.seriesLabels.showNulls=t.showNullsAs==StiShowEmptyCellsAs.Zero);let e=i.as(IStiShowNullsSeries);if(null!=e)return void(r.seriesLabels.showNulls=e.showNulls)}}static async applyPropertiesToSeriesLabels(t,e){e.preventIntersection=t.isAxisAreaChart,e.textAfter=await StiReportParser.parseAsync(t.labels.textAfter,t),e.textBefore=await StiReportParser.parseAsync(t.labels.textBefore,t),e.font=StiChartElementBuilder.getSmallStyleFont(t,t.labels.font),e.showNulls=!1,e.showZeros=!1,e.width=t.labels.width,e.wordWrap=t.labels.wordWrap}static renderPieLabelsAutoRotate(t,e){let i=e.seriesLabels.as(IStiCenterPieLabels);null!=i&&(i.autoRotate=t.labels.autoRotate)}static renderLabelsColor(t,e){let i=e.seriesLabels.as(IStiSeriesLabels),r=e.seriesLabels.as(IStiOutsidePieLabels);Color.transparent.equals(t.labels.foreColor)?(i.labelColor=Color.gray,i.labelColor=StiDashboardStyleHelper.isDarkStyle2(t.style)?Color.fromArgb2(50,50,50):null!=e?.style?.core?e.style.core.seriesLabelsColor:Color.gray,null!=r&&(r.lineColor=null!=e?.style?.core?e.style.core.seriesLabelsLineColor:Color.gray)):(i.labelColor=t.labels.foreColor,null!=r&&(r.lineColor=t.labels.foreColor))}static renderLabelsTextFormat(t,e){e.seriesLabels.formatService=t.valueFormat}static renderFunnelLabelsPosition(t,e){switch(t.labels.funnelPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideLeftFunnelLabels"];break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterFunnelLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideRightFunnelLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPictorialStackedLabelsPosition(t,e){switch(t.labels.pictorialStackedPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideLeftPictorialStackedLabels"];break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPictorialStackedLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideRightPictorialStackedLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderTreemapLabelsPosition(t,e){switch(t.labels.treemapPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterTreemapLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderHeatmapLabelsPosition(t,e){switch(t.labels.heatmapPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterHeatmapLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPieLabelsPosition(t,e){switch(t.labels.piePosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPieLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndPieLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsidePieLabels"];break;case StiChartLabelsPosition.TwoColumns:e.seriesLabels=new Stimulsoft.Report.Chart["StiTwoColumnsPieLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPie3dLabelsPosition(t,e){switch(t.labels.pie3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPie3dLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndPie3dLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderStackedLabelsPosition(l,t){switch(l.labels.axisPosition){case StiChartLabelsPosition.Total:{let i=[],r=new Hashtable;for(let e of t.series.list){let t=r.get(e[Stimulsoft.System.StiObject.stimulsoft]().getType());null==t&&(t=[],i.push(t),r.add(e[Stimulsoft.System.StiObject.stimulsoft]().getType(),t)),t.push(e)}for(let t of i){let e=t[t.length-1];t.filter(t=>t!=e).forEach(t=>{t.showSeriesLabels=StiShowSeriesLabels.FromSeries,t.seriesLabels.visible=!1}),e.showSeriesLabels=StiShowSeriesLabels.FromSeries,e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"],e.isTotalLabel=!0,e.seriesLabels.formatService=l.valueFormat}break}default:StiChartElementBuilder.renderAxisLabelsPosition(l,t);break}}static renderRadarLabelsPosition(t,e){switch(t.labels.radarPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderWaterfallLabelsPosition(t,e){switch(t.labels.axisPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;case StiChartLabelsPosition.InsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideBaseAxisLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndAxisLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels"];break;case StiChartLabelsPosition.OutsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideBaseAxisLabels"];break;case StiChartLabelsPosition.OutsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideEndAxisLabels"];break;case StiChartLabelsPosition.Value:e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderAxisLabelsPosition(t,e){switch(t.labels.axisPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels"];break;case StiChartLabelsPosition.InsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideBaseAxisLabels"];break;case StiChartLabelsPosition.InsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiInsideEndAxisLabels"];break;case StiChartLabelsPosition.Left:e.seriesLabels=new Stimulsoft.Report.Chart["StiLeftAxisLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels"];break;case StiChartLabelsPosition.OutsideBase:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideBaseAxisLabels"];break;case StiChartLabelsPosition.OutsideEnd:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideEndAxisLabels"];break;case StiChartLabelsPosition.Right:e.seriesLabels=new Stimulsoft.Report.Chart["StiRightAxisLabels"];break;case StiChartLabelsPosition.Value:e.seriesLabels=new Stimulsoft.Report.Chart["StiValueAxisLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderClusteredColumn3DLabelsPosition(t,e){switch(t.labels.clusteredColumn3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels3D"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels3D"];break;default:e.seriesLabels.visible=!1;break}}renderLine3DLabelsPosition(t,e){switch(t.labels.line3dPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterAxisLabels3D"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsideAxisLabels3D"];break;default:e.seriesLabels.visible=!1;break}}static renderDoughnutLabelsPosition(t,e){switch(t.labels.doughnutPosition){case StiChartLabelsPosition.None:e.seriesLabels.visible=!1;break;case StiChartLabelsPosition.Center:e.seriesLabels=new Stimulsoft.Report.Chart["StiCenterPieLabels"];break;case StiChartLabelsPosition.Outside:e.seriesLabels=new Stimulsoft.Report.Chart["StiOutsidePieLabels"];break;default:e.seriesLabels.visible=!1;break}}static renderPieLabelsStyle(t,e){let i=e.seriesLabels.as(IStiPieSeriesLabels);switch(t.labels.style){case StiChartLabelsStyle.PercentOfTotal:i.showInPercent=!0,i.valueType=StiSeriesLabelsValueType.Value;break;case StiChartLabelsStyle.Category:i.showInPercent=!1,i.valueType=t.arguments.length?StiSeriesLabelsValueType.Argument:StiSeriesLabelsValueType.SeriesTitle;break;case StiChartLabelsStyle.CategoryPercentOfTotal:i.showInPercent=!0,i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.CategoryValue:i.showInPercent=!1,i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.Value:i.showInPercent=!1,i.valueType=StiSeriesLabelsValueType.Value;break}}static renderLabelsStyle(t,e){let i=e.seriesLabels;switch(t.labels.style){case StiChartLabelsStyle.PercentOfTotal:i.valueType=StiSeriesLabelsValueType.Value;break;case StiChartLabelsStyle.Category:i.valueType=t.arguments.length?StiSeriesLabelsValueType.Argument:StiSeriesLabelsValueType.SeriesTitle;break;case StiChartLabelsStyle.CategoryPercentOfTotal:i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.CategoryValue:i.valueType=t.arguments.length?StiSeriesLabelsValueType.ArgumentValue:StiSeriesLabelsValueType.SeriesTitleValue;break;case StiChartLabelsStyle.Value:i.valueType=StiSeriesLabelsValueType.Value;break}}async renderSeriesInteraction(l,n,t,i){if(l.chart.isDesigning)return;let r=n?.report,s=0,e=n.dashboardInteraction;if(e.onHover==StiInteractionOnHover.ShowToolTip){l.toolTips=StiArray.create(String,t);for(let e of l.arguments){let t="";s<l.values.length&&null!=l.values[s]&&(t=l.values[s].toString()),l.toolTips[s]=await this.getToolTip(l.chart.style,n,null,n.dashboardInteraction.toolTip,this.getString(n.argumentFormat,e,r),this.getString(n.valueFormat,t,r),"",i),s++}}s=0,l.hyperlinks=StiArray.create(String,t);for(let r of l.arguments){let t="",e="",i=(s<l.values.length&&null!=l.values[s]&&(t=l.values[s].toString()),l.as(IStiRangeSeries));null!=i&&s<i.valuesEnd.length&&(e=i.valuesEnd[s]?.toString()),s<l.hyperlinks.length&&(l.hyperlinks[s]=await this.getHyperlink(n,l,n.dashboardInteraction.hyperlink,r?.toString(),t,e,l.titleValue,s)),s++}l.drillDownEnabled=!0}async getToolTip(i,t,e,r,l,n,s,o){if(null==l&&(l=""),null==o&&(o=""),StiString.isNullOrWhiteSpace(r)){null==l||StiString.isNullOrEmpty(l)||(l=l.split('"').join('\\"'));let t='"StiColor":"{0}","StiValue":"{1}","StiArgument":"{2}"{3}',e=await this.getToolTipStyle(i);return"{"+StiString.format(t,"#ffffff",n,l,e)+"}"}return this.getHyperlink(t,e,r,l,n,s,o,0)}async getToolTipStyle(t){let e=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBrush(t.core.toolTipBrush),i=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBrush(t.core.toolTipTextBrush),r=Stimulsoft.Base.StiJsonReportObjectHelper.Serialize.jBorder2(t.core.toolTipBorder),l=t.core.toolTipCornerRadius.toString();return`,"StiToolTipCornerRadius":"${l}","StiToolTipBrush":"${e}","StiToolTipTextBrush":"${i}","StiToolTipBorder":"${r}"`}async getHyperlink(l,t,e,i,r,n,s,o){null==i&&(i=""),null==s&&(s="");let a=new Hashtable,u=(a.add("Argument",i),a.add("Value",r),a.add("EndValue ",n),a.add("Series",s),t?.originalArguments[o]);if(StiArray.isArray(u)&&1<u.length){let r=0;u.forEach(t=>{let e=l.arguments[r],i=`Argument_`+this.getIdentFromArgument(e,r+1);a.containsKey(i)||a.add(i,t),r++})}return StiReportParser.parseAsync(e,l,!1,a)}getIdentFromArgument(t,e){if(!StiString.isNullOrWhiteSpace(t.label))return StiNameValidator.correctName(t.label);let i=StiExpressionHelper.getFirstArgumentFromExpression(t.expression),r=i.indexOf(".");if(-1!=r&&(i=i.substr(r+1)),!StiString.isNullOrEmpty(i))return i;return e.toString()}getTitle(t){return StiLabelHelper.getLabel(t)}getSeriesTitle(t,e,i){if(t.values.length<2)return e;let r=StiLabelHelper.getLabel(i),l=StiString.isNullOrWhiteSpace(r)?null:r;if(null==l)return e;return StiString.isNullOrWhiteSpace(e)?l:e+` - `+l}getArgumentIndex(t,e){let i=this.getArgumentMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}simplifyValues(t){let e=0;while(e<t.series.count){let i=t.series.getByIndex(e);if(800<i.values.length){let e=this.getShorterListPoints(i);i.values=[],i.arguments=[];for(let t=0;t<e.length;t++)i.values[t]=e[t].x,i.arguments[t]=e[t].y}e++}}getShorterListPoints(e){let i=[];for(let t=0;t<e.values.length;t++)i[t]=new Point(e.values[t],t);let r=[.3,.6,1,5,9,15,20,25,30,40],l=null,n=null;for(let t=0;t<r.length;t++){if((l=Stimulsoft.Report.Chart["StiSimplifyHelper"].simplify(i,t,!0)).length/i.length<.02&&l.length<900&&null!=n){l=n;break}n=l}return l}getString(i,r,l){if(null==r)return"";if(StiArray.isArray(r)){let e=[];for(let t of r)e.push(this.getFormatValue(i,t,l));return StiString.join(" - ",e)}return this.getFormatValue(i,r,l)}getFormatValue(t,e,i){if(null==e)return"";if(e instanceof DateTime)return t.is2(StiDateFormatService)||t.is2(StiTimeFormatService)||t.is2(StiCustomFormatService)?t.format(e):e.toShortDateString();let r=i?.getParsedCulture();if(StiExtValueConverter.isEligable(e,r))return StiExtValueConverter.convert(e,r);if(null!=t)return t.format(e);return e.toString()}async calculateIndicatorValue(i){if(null==i.indicatorValue||null!=i.indicatorValue&&StiString.isNullOrEmpty(i.indicatorValue.expression))return;let r=StiElementDataCache.getKey(i);if(StiDataIndicatorValue.existsInCache(r))this.indicatorValueValue=StiDataIndicatorValue.getFromCache(r);else{let t=i.clone(!0),e=(t.values=[],t.arguments=[],await StiElementDataCache.getOrCreate(t));null!=e&&(this.indicatorValueValue=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(0).tryCastToNullableNumber().sum(),StiDataIndicatorValue.addToCache(r,this.indicatorValueValue))}}static create(t){if(t.isSunburstChart)return new __.i.StiSunburstChartElementBuilder;if(t.isHeatmapChart)return new __.i.StiHeatmapChartElementBuilder;if(t.isBubbleChart)return new __.i.StiBubbleChartElementBuilder;if(t.isRange)return new __.i.StiRangeChartElementBuilder;if(t.isFinancial)return new __.i.StiFinancialChartElementBuilder;if(t.isFullStackedChart||t.isStackedChart||t.isRibbonChart)return new __.i.StiStackedChartElementBuilder;return new StiChartElementBuilder}static scaleFont(t,e,i=.05){if(Math.abs(1-e)<=i)return;t.labels.font=StiFontUtils.changeFontSize(t.labels.font,t.labels.font.size*e),t.legend.font=StiFontUtils.changeFontSize(t.legend.font,t.legend.font.size*e);let r=t.area.as(IStiAxisArea);null!=r&&(r.xAxis.labels.font=StiFontUtils.changeFontSize(r.xAxis.labels.font,r.xAxis.labels.font.size*e),r.xTopAxis.labels.font=StiFontUtils.changeFontSize(r.xTopAxis.labels.font,r.xTopAxis.labels.font.size*e),r.yAxis.labels.font=StiFontUtils.changeFontSize(r.yAxis.labels.font,r.yAxis.labels.font.size*e),r.yRightAxis.labels.font=StiFontUtils.changeFontSize(r.yRightAxis.labels.font,r.yRightAxis.labels.font.size*e))}static getStyleFont(t,e){return StiDashboardStyleHelper.getElementFontFromStyle(t,e)}static getSmallStyleFont(t,e){let i=StiDashboardStyleHelper.getElementFontFromStyle(t);if(null==i)return e;let r=StiDashboardStyleHelper.getElementFontFromStyle(t),l=8*r.size/13,n=t.cachedSmallFont;if(null!=n&&n.name==r.name&&n.style==r.style&&n.size==l)return n;return t.cachedSmallFont=StiFontUtils.changeFontSize(r,l),t.cachedSmallFont}getValueMeterIndexes(e){if(null==e)return null;return this.getValueMeters(e).map(t=>e.meters.indexOf(t))}getArgumentMeterIndexes(e){if(null==e)return null;return this.getArgumentMeters(e).map(t=>e.meters.indexOf(t))}getSeriesMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>t.is(StiSeriesChartMeter));return null!=e?t.meters.indexOf(e):-1}getArgumentKeys(t,e){if(null==e)return null;let i=this.getArgumentMeters(e),r=i.map(t=>e.meters.indexOf(t)),l=e.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().groupBy2(e=>r.map(t=>e[t]),new StiArrayEqualityComparer);return l.select(t=>t.key)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiValueChartMeter))}getArgumentMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiArgumentChartMeter))}}__.i.StiChartElementBuilder=StiChartElementBuilder}let IStiBubbleSeries=Stimulsoft.Report.Chart.IStiBubbleSeries,IStiFinancialSeries=(__.i.StiBubbleChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,h),e=this.getValueMeters(m),c=t.length;for(let a of t){let o=0;for(let s of e){let t=this.getValueMeterIndexes(m)[o],e=this.renderSeries(u,s,a,S);if(null==e)continue;let i=-1!=h&&1<c?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(h,a):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),r=(await __.i.StiChartElementBuilder.renderConditions(this.toString(a),e,u,s),e.values=i.getArrayItem(t).tryCastToNullableNumber(),this.getArgumentIndex(m,t)),l=(-1!=r&&(e.arguments=i.getArrayItem(r)),e.weights=null,this.getWeightIndex(m,t));if(-1!=l&&(e.weights=i.getArrayItem(l).tryCastToNumber()),null==e.weights){e.weights=[];for(let t=0;t<e.arguments.length;t++)e.weights[t]=10}o++;let n=Math.min(e.values.length,e.arguments.length);await this.renderSeriesInteraction(e,u,n,a)}}}renderSeries(t,e,i,r){let l=new Stimulsoft.Report.Chart["StiBubbleSeries"];return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(s,t,e,o){let a=s.as(IStiBubbleSeries);if(null==a)return;let u=t.dashboardInteraction;if(u.onHover==StiInteractionOnHover.ShowToolTip){s.toolTips=StiArray.create(String,e);for(let n=0;n<e;n++){let i="",r="",l="";if(n<s.values.length&&null!=s.values[n]&&(i=s.values[n].toString()),n<s.arguments.length&&null!=s.arguments[n]&&(r=``+s.arguments[n]),n<a.weights.length&&(l=a.weights[n].toString()),StiString.isNullOrEmpty(u.toolTip)){let t='"StiColor":"{0}","StiValue":"{1}","StiArgument":"{2}","StiWeight":"{3}"{4}',e=await this.getToolTipStyle(s.chart.style);s.toolTips[n]="{"+StiString.format(t,"#ffffff",i,r,l,e)+"}"}else s.toolTips[n]=await this.getHyperlink2(t,u.toolTip,r,i,l,o)}}s.drillDownEnabled=!0}async getHyperlink2(t,e,i,r,l,n){null==i&&(i=""),null==n&&(n="");let s=new Hashtable;return s.add("Argument",i),s.add("Value",r),s.add("Weight",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getWeightIndex(t,e){if(null==t)return-1;let i=this.getWeightMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getWeightMeterIndexes(e){if(null==e)return null;return this.getWeightMeters(e).map(t=>e.meters.indexOf(t))}getWeightMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiWeightChartMeter))}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiYChartMeter))}getArgumentMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiXChartMeter))}},Stimulsoft.Report.Chart.IStiFinancialSeries),StiHeatmapHelper=(__.i.StiFinancialChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(h,c,d){let p=c?.report,g=this.getSeriesMeterIndex(d),t=this.getSeriesKeys(d,g),e=this.getValueMeters(d),b=t.length;for(let m of t){let S=0;for(let u of e){let t=this.getValueMeterIndexes(d)[S],e=this.renderSeries(h,u,m,c),i=e.as(IStiFinancialSeries);if(null==e||null==i)continue;let r=-1!=g&&1<b?d.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(g,m):d.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),l=(i.valuesOpen=r.getArrayItem(t).tryCastToNullableNumber(),i.valuesClose=null,this.getCloseValueIndex(d,t));if(-1!=l&&(i.valuesClose=r.getArrayItem(l).tryCastToNullableNumber()),null==i.valuesClose){i.valuesClose=[];for(let t=0;t<e.argument.length;t++)i.valuesClose[t]=10}i.valuesLow=null;let n=this.getLowValueIndex(d,t);if(-1!=n&&(i.valuesLow=r.getArrayItem(n).tryCastToNullableNumber()),null==i.valuesLow){i.valuesLow=[];for(let t=0;t<e.argument.length;t++)i.valuesLow[t]=10}i.valuesHigh=null;let s=this.getHighValueIndex(d,t);if(-1!=s&&(i.valuesHigh=r.getArrayItem(s).tryCastToNullableNumber()),null==i.valuesHigh){i.valuesHigh=[];for(let t=0;t<e.argument.length;t++)i.valuesHigh[t]=10}let o=this.getArgumentIndex(d,t),a=(-1!=o&&(e.arguments=r.getArrayItem(o).select(t=>this.getString(h.argumentFormat,t,p))),S++,Math.min(e.values.length,e.arguments.length));await this.renderSeriesInteraction(e,h,a,m)}}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.as(StiOpenValueChartMeter).seriesType);return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(a,t,e,i){let u=a.as(IStiFinancialSeries);if(null==u)return;let r=t.dashboardInteraction;if(r.onHover==StiInteractionOnHover.ShowToolTip){a.toolTips=StiArray.create(String,e);for(let o=0;o<e;o++){let t="",e="",i="",r="",l="",n=(o<u.valuesOpen.length&&null!=u.valuesOpen[o]&&(t=u.valuesOpen[o].toString()),o<u.valuesClose.length&&(e=u.valuesClose[o].toString()),o<u.valuesLow.length&&(i=u.valuesLow[o].toString()),o<u.valuesHigh.length&&(r=u.valuesHigh[o].toString()),o<a.arguments.length&&null!=a.arguments[o]&&(l=``+a.arguments[o]),'"StiColor":"{0}","StiOpenValue":"{1}","StiCloseValue":"{2}","StiLowValue":"{3}","StiHighValue":"{4}","StiArgument":"{5}"{6}'),s=await this.getToolTipStyle(a.chart.style);a.toolTips[o]="{"+StiString.format(n,"#ffffff",t,e,i,r,l,s)+"}"}}a.drillDownEnabled=!0}async renderArea(t,h){await super.renderArea(t,h);let c=null,d=null;for(let m=0;m<h.series.count;m++){let t=h.series.getByIndex(m).as(IStiFinancialSeries);if(null==t)continue;let e=t.valuesOpen[Stimulsoft.System.StiObject.stimulsoft]().min(),i=t.valuesClose[Stimulsoft.System.StiObject.stimulsoft]().min(),r=t.valuesLow[Stimulsoft.System.StiObject.stimulsoft]().min(),l=t.valuesHigh[Stimulsoft.System.StiObject.stimulsoft]().min(),n=t.valuesOpen[Stimulsoft.System.StiObject.stimulsoft]().max(),s=t.valuesClose[Stimulsoft.System.StiObject.stimulsoft]().max(),o=t.valuesLow[Stimulsoft.System.StiObject.stimulsoft]().max(),a=t.valuesHigh[Stimulsoft.System.StiObject.stimulsoft]().max(),u=[e,i,r,l][Stimulsoft.System.StiObject.stimulsoft]().min(),S=[n,s,o,a][Stimulsoft.System.StiObject.stimulsoft]().max();null==c&&(c=u),null==d&&(d=S),c=Math.min(c,u),d=Math.max(d,S)}let e=h.area.as(IStiAxisArea),i=(e.yAxis.range.auto=!1,e.yAxis.range.minimum=c,e.yAxis.range.maximum=d,e.yAxis.range.maximum-e.yAxis.range.minimum);e.yAxis.labels.step=2<i?Math.round(i/10):StiMath.round2(i/10,4)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiOpenValueChartMeter))}getCloseValueIndex(t,e){if(null==t)return-1;let i=this.getCloseMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getCloseMeterIndexes(e){if(null==e)return null;return this.getCloseMeters(e).map(t=>e.meters.indexOf(t))}getCloseMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiCloseValueChartMeter))}getLowValueIndex(t,e){if(null==t)return-1;let i=this.getLowMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getLowMeterIndexes(e){if(null==e)return null;return this.getLowMeters(e).map(t=>e.meters.indexOf(t))}getLowMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiLowValueChartMeter))}getHighValueIndex(t,e){if(null==t)return-1;let i=this.getHighMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return i[e];return-1}getHighMeterIndexes(e){if(null==e)return null;return this.getHighMeters(e).map(t=>e.meters.indexOf(t))}getHighMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiHighValueChartMeter))}},Stimulsoft.Report.Chart.StiHeatmapHelper),StiShape=(__.i.StiHeatmapChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=S?.report,c=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,c),e=this.getValueMeters(m),d=t.length;for(let a of t){let o=0;for(let s of e){let t=this.getValueMeterIndexes(m)[o],e=this.renderSeries(u,s,a,S),i=e.as(StiHeatmapSeries);if(null==e||null==i)continue;let r=-1!=c&&1<d?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(c,a):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),l=(e.values=r.getArrayItem(t).tryCastToNullableNumber(),this.getXValueIndex(m,t)),n=(i.xValues=-1!=l?r.getArrayItem(l).select(t=>this.getString(u.argumentFormat,t,h)):[""],this.getYValueIndex(m,t));i.yValues=-1!=n?r.getArrayItem(n).select(t=>this.getString(u.argumentFormat,t,h)):[""],o++,await this.renderSeriesInteraction(e,u,e.values.length,a)}}}renderSeries(t,e,i,r){let l=new Stimulsoft.Report.Chart["StiHeatmapSeries"];return l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,r.series.add(l),l}async renderSeriesInteraction(o,t,e,i){if(o.chart.isDesigning)return;let a=o.as(StiHeatmapSeries);if(null==a)return;let r=o.core,u=r.getHeatmapColors(),l=r.getAllValues(),S=l[Stimulsoft.System.StiObject.stimulsoft]().min(),m=l[Stimulsoft.System.StiObject.stimulsoft]().max(),h=t.dashboardInteraction.as(StiChartDashboardInteraction);if(h.onHover==StiInteractionOnHover.ShowToolTip){o.toolTips=StiArray.create(String,e);for(let s=0;s<e;s++){let r=0,l="",n="";if(s<a.values.length&&null!=a.values[s]&&(r=a.values[s]),s<a.xValues.length&&(l=a.xValues[s].toString()),s<a.yValues.length&&(n=a.yValues[s].toString()),StiString.isNullOrEmpty(h.toolTip)){let t='{{"StiColor":"{0}","StiValue":"{1}","StiXValue":"{2}","StiYValue":"{3}"{4}}}',e=await this.getToolTipStyle(o.chart.style),i=StiHeatmapHelper.getColorFromRange(u,S,m,r);o.toolTips[s]=StiString.format(t,ColorTranslator.toHtml(i),r,l,n,e)}else o.toolTips[s]=await this.getHyperlink3(t,h.toolTip,r.toString(),l,n,i)}}o.drillDownEnabled=!0}async getHyperlink3(t,e,i,r,l,n){null==n&&(n="");let s=new Hashtable;return s.add("Value",i),s.add("XValue",r),s.add("YValue",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getYValueIndex(t,e){if(null==t)return-1;let i=this.getYMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getYMeterIndexes(e){if(null==e)return null;return this.getYMeters(e).map(t=>e.meters.indexOf(t))}getYMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiYChartMeter))}getXValueIndex(t,e){if(null==t)return-1;let i=this.getXMeterIndexes(t);if(null==i)return-1;if(!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getXMeterIndexes(e){if(null==e)return null;return this.getXMeters(e).map(t=>e.meters.indexOf(t))}getXMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiXChartMeter))}},__.i.StiRangeChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(u,S,m){let h=S?.report,c=this.getSeriesMeterIndex(m),t=this.getSeriesKeys(m,c),d=t.length,i=this.getValueMeters(m),p=this.getArgumentMeterIndexes(m),g=this.getArgumentKeys(u,m);for(let a of t){let o=0;for(let e of i){let r=this.getValueMeterIndexes(m)[o],i=this.renderSeries(u,e,a,S);if(null==i)continue;await __.i.StiChartElementBuilder.renderConditions(a,i,u,e);let l=-1!=c&&1<d?m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(c,this.toString(a)):m.rows[Stimulsoft.System.StiObject.stimulsoft]().toList(),n=(i.values=StiArray.create(Number,g.length),0);for(let e of g){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,p);n<i.values.length&&(i.values[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(r).firstOrDefaultAsNullableNumber()),n++}i.core.isDateTimeValues=List.getValueOrFirstOrDefault(l.getArrayItem(r).toList().firstOrDefault())instanceof DateTime;let s=i.as(IStiRangeSeries);if(null!=s){s.valuesEnd=StiArray.create(Number,g.length);let i=this.getEndValueIndex(m,r);if(null==s.valuesEnd&&(s.valuesEnd=List.repeat(10,g.length)),-1!=i){n=0;for(let e of g){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,p);n<s.valuesEnd.length&&(s.valuesEnd[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableNumber()),n++}}}i.originalArguments=g,i.arguments=g.map(t=>this.getString(u.argumentFormat,t,h)),o++;let t=Math.min(i.values.length,i.arguments.length);await this.renderSeriesInteraction(i,u,t,a)}}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.seriesType),n=(l.coreTitle=this.getSeriesTitle(t,i,e),l.isDashboard=!0,e);return __.i.StiChartElementBuilder.renderSeriesLine(n,l),__.i.StiChartElementBuilder.renderSeriesShowNulls(n,l),this.renderMarker(t,l),r.series.add(l),l}async renderSeriesInteraction(l,n,t,s){let o=n?.report,a=l.as(IStiRangeSeries);if(null==a)return;let e=n.dashboardInteraction.as(StiChartDashboardInteraction);if(e.onHover==StiInteractionOnHover.ShowToolTip){l.toolTips=StiArray.create(String,t);for(let r=0;r<t;r++){let t="",e="",i="";r<l.values.length&&null!=l.values[r]&&(t=(l.core.isDateTimeValues?DateTime.fromOADate(l.values[r]):l.values[r]).toString()),null!=a.valuesEnd&&r<a.valuesEnd.length&&(e=(l.core.isDateTimeValues?DateTime.fromOADate(a.valuesEnd[r]):a.valuesEnd[r])?.toString()),r<l.arguments.length&&null!=l.arguments[r]&&(i=``+l.arguments[r]),l.toolTips[r]=await this.getToolTip2(l.chart.style,n,n.dashboardInteraction.toolTip,this.getString(n.argumentFormat,i,o),this.getString(n.valueFormat,t,o),this.getString(n.valueFormat,e,o),s)}}l.drillDownEnabled=!0}async getToolTip2(i,t,e,r,l,n,s){if(null==r&&(r=""),null==s&&(s=""),StiString.isNullOrWhiteSpace(e)){null==r||StiString.isNullOrEmpty(r)||(r=r.split('"').join('\\"'));let t='"StiColor":"{0}","StiValue":"{1} - {3}","StiArgument":"{2}"{4}',e=await this.getToolTipStyle(i);return"{"+StiString.format(t,"#ffffff",l,r,n,e)+"}"}return this.getHyperlink2(t,e,r,l,n,s)}async getHyperlink2(t,e,i,r,l,n){null==i&&(i=""),null==n&&(n="");let s=new Hashtable;return s.add("Argument",i),s.add("Value",r),s.add("EndValue",l),s.add("Series",n),StiReportParser.parseAsync(e,t,!1,s)}getValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiStartValueChartMeter))}getEndValueIndex(t,e){if(null==t)return-1;let i=this.getEndValueMeterIndexes(t);if(null==i||!i.length)return-1;if(1==i.length)return i[0];if(e<i.length)return StiMath.trunc(i[e]);return-1}getEndValueMeterIndexes(e){if(null==e)return null;return this.getEndValueMeters(e).map(t=>e.meters.indexOf(t))}getEndValueMeters(t){if(null==t)return null;return t.meters.filter(t=>t.is(StiEndValueChartMeter))}},Stimulsoft.Report.Components.StiShape),IStiStackedColumnSeries=(__.i.StiShapeElementBuilder=class{render(t){let e=new StiShape;return e.shapeType=t.shapeType,e.brush=t.fill,e.borderColor=t.stroke,e.size=t.size,e}},Stimulsoft.Report.Chart.IStiStackedColumnSeries),IStiStackedBarSeries=Stimulsoft.Report.Chart.IStiStackedBarSeries,IStiRibbonSeries=Stimulsoft.Report.Chart.IStiRibbonSeries;{class n50 extends __.i.StiChartElementBuilder{async renderElements(o,a,u){let S=a?.report,m=this.getSeriesMeterIndex(u),t=this.getSeriesKeys(u,m),h=this.getArgumentMeterIndexes(u),c=this.getArgumentKeys(o,u),i=this.getValueMeters(u),d=[],p=t.length;for(let s of t){let e=0;for(let t of i){d.push(s);let i=this.getValueMeterIndexes(u)[e],r=this.renderSeries(o,t,s,a);if(null==r)continue;await __.i.StiChartElementBuilder.renderConditions(s,r,o,t),__.i.StiChartElementBuilder.renderTrendLines(r,o,t);let l=-1!=m&&1<p?u.rows[Stimulsoft.System.StiObject.stimulsoft]().toList().whereArrayItemStringEqualsTo(m,s):u.rows,n=(r.values=StiArray.create(Number,c.length),0);for(let e of c){let t=__.i.StiChartElementBuilder.getDetailRows(l,e,h);n<r.values.length&&(r.values[n]=t[Stimulsoft.System.StiObject.stimulsoft]().toList().getArrayItem(i).firstOrDefaultAsNullableNumber()),n++}r.originalArguments=c,r.arguments=c.map(t=>this.getString(o.argumentFormat,t,S)),e++}}await n50.processTopNStackedChart(o,a);for(let e=0;e<d.length;e++){if(a.series.count<e)break;let t=a.series.getByIndex(e);if(null==t)return;await this.renderSeriesInteraction(t,o,c.length,d[e])}}static getDataTable(t){let i=new DataTable,e=new DataColumn("Id",Number),r=(i.columns.add(e),new DataColumn("Argument",Object));i.columns.add(r);for(let e=0;e<t.length;e++){let t=new DataColumn("Value-"+e.toString(),Number);i.columns.add(t)}let l=new DataColumn("OriginalArguments",Object),n=(i.columns.add(l),new DataColumn("ValueSum",Number)),s=(i.columns.add(n),this.getCountRow(t));for(let t=0;t<s;t++){let t=i.newRow();i.rows.add(t)}return i}static getCountRow(e){let i=0;for(let t of e)i=Math.max(i,t.arguments.length);return i}static async getArguments(t,e){if(t.length<=e.topN.count)return t;let i=t.slice(0,e.topN.count);if(e.topN.showOthers){let t=StiString.isNullOrEmpty(e.topN.othersText)?Loc.get("FormDesigner","Others"):await StiReportParser.parseAsync(e.topN.othersText,e);i.push(t)}return i}static getValues(e,i){if(e.length<=i.topN.count)return e;let r=e.slice(0,i.topN.count);if(i.topN.showOthers){let t=e.slice(i.topN.count)[Stimulsoft.System.StiObject.stimulsoft]().sum();r.push(t)}return r}static async processTopNStackedChart(l,t){if(l.topN.mode==StiDataTopNMode.None)return;let n=t.series.list;if(!n.some(t=>t.is(IStiStackedBaseLineSeries)||t.is(IStiStackedColumnSeries)||t.is(IStiStackedBarSeries)||t.is(IStiRibbonSeries)))return;let s=n50.getDataTable(n);if(s.rows.count<1)return;for(let r=0;r<s.rows.count;r++){0<n.length&&n[0].arguments.length>r?s.rows.getByIndex(r).setValue(1,n[0].arguments[r]):s.rows.getByIndex(r).setValue(1,null),0<n.length&&n[0].originalArguments.length>r?s.rows.getByIndex(r).setValue(s.columns.count-2,n[0].originalArguments[r]):s.rows.getByIndex(r).setValue(s.columns.count-2,null);let i=0;for(let e=0;e<n.length;e++)if(0<n.length&&n[e].values.length>r){let t=n[e].values[r];s.rows.getByIndex(r).setValue(e+2,t),i+=t}else s.rows.getByIndex(r).setValue(e+2,null);s.rows.getByIndex(r).setValue(s.columns.count-1,i)}s.defaultView.sort=l.topN.mode==StiDataTopNMode.Top?"ValueSum desc":"ValueSum asc",s=s.defaultView.toTable();let o=0;for(let r of n){let t=n50.getListByColumnName(s,"OriginalArguments"),e=(r.originalArguments=await n50.getArguments(t,l),n50.getListByColumnName(s,"Argument")),i=(r.arguments=await n50.getArguments(e,l),n50.getListByColumnName(s,"Value-"+o.toString()));r.values=n50.getValues(i,l),r.is(IStiStackedBarSeries)&&(r.originalArguments=r.originalArguments.reverse(),r.arguments=r.arguments.reverse(),r.values=r.values.reverse()),o++}}static getListByColumnName(t,i){let r=[];for(let e of t.rows.list){let t=e.gett(i);r.push(t)}return r}}__.i.StiStackedChartElementBuilder=n50}__.i.StiSunburstChartElementBuilder=class extends __.i.StiChartElementBuilder{async renderElements(e,l,n){let i=this.getArgumentMeters(n),s=this.getValueMeters(n)[0],o=this.getValueMeterIndexes(n)[0];for(let t=0;t<i.length;t++){let i=this.getArgumentMeterIndexes(n)[t],r=this.renderSeries(e,s,"",l);if(null==r)continue;r.values=[],r.arguments=[],r.originalArguments=[];for(let e=0;e<n.rows.length;e++){r.values[e]=StiValueHelper.tryToNullableNumber(n.rows[e][o]);let t=n.rows[e][i];r.arguments[e]=t,r.originalArguments[e]=t}await this.renderSeriesInteraction(r,e,r.arguments.length,"")}}renderSeries(t,e,i,r){let l=StiChartSeriesCreator.neww2(e.seriesType);return l.core.seriesColors=null!=t.seriesColors&&0<t.seriesColors.length?t.seriesColors:null,l.isDashboard=!0,r.series.add(l),l}};{class Og0{static getVisualizer(t){return null}}Og0.typeToGdiVisualizer=new Hashtable,Og0.typeToWpfVisualizer=new Hashtable,Og0.lockObject={},__.n.StiVisualizer=Og0}__.n.StiGdiVisualizer=class extends __.n.StiVisualizer{render(t){}},__.n.StiGdiVisualizerAttribute=class{},__.u.StiIndicatorIconRangeValue=class{isBetween(t){return this.start<=t&&t<=this.end}constructor(t,e,i){this.start=t,this.end=e,this.icon=i}};let StiProgressInteractionData=Stimulsoft.Base.Context.StiProgressInteractionData,StiElementLocationHelper=__.h.StiElementLocationHelper,StiPieSegmentGeom=(__.v.StiProgressVisual=class extends __.j.StiVisual{getDisplayText(t,e){switch(this.element.valueType){case StiProgressValueType.Percentage:return StiTextFormatHelper.formatAsPercentage2(this.element?.report,this.element.textFormat,e);case StiProgressValueType.Value:return StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.value);case StiProgressValueType.ValueTarget:return StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.value)+` / `+StiTextFormatHelper.format(this.element?.report,this.element.textFormat,t.target);case StiProgressValueType.None:default:return""}}getMaxValue(){return this.iterations.map(t=>Math.abs(t.value)).concat([0])[Stimulsoft.System.StiObject.stimulsoft]().max()}getTargetValues(){let e=this.getMaxValue(),i=[];for(let t of this.iterations)i.push(null!=t.target?t.target:e);return i}getTextValues(){let r=[],l=this.getTargetValues();for(let i=0;i<this.iterations.length;i++){let t=l[i],e=0!=t?Math.abs(this.iterations[i].value)/t:0;r.push(StiTextFormatHelper.formatAsPercentage2(this.element.report,this.element.textFormat,e))}return r}getColor(t){return this.element.colorEach?this.getColors(this.iterations.length)[t]:this.style.bandColor}getColors(t){let s=[],e=(null!=this.element.seriesColors&&0<this.element.seriesColors.length?this.element:this.style).seriesColors,i=0,o=0;for(let n=0;n<t;n++){let l=null==e||0==e.length?Color.fromArgb(255,52,152,219):e[i];if(0!=o){let t=Math.min(l.a+o,255),e=Math.min(l.r+o,255),i=Math.min(l.g+o,255),r=Math.min(l.b+o,255);s[n]=Color.fromArgb(t,e,i,r)}else s[n]=l;++i==e.length&&(i=0,o=50)}return s}getContentRectangle(e){if(1<this.iterations.length){let t=StiElementLocationHelper.getLocationRectangles(e,this.iterations.length,this.element);e=StiElementLocationHelper.getSumRectangle(t)}return e}getConditionResult(r,e){let l=null;switch(e.field){case StiProgressFieldCondition.Value:l=r.value;break;case StiProgressFieldCondition.Series:l=r.series;break;case StiProgressFieldCondition.Target:l=r.target;break;case StiProgressFieldCondition.Percentage:{let t=this.getVariation(r),e=new StiPercentageFormatService,i=(e.decimalDigits=3,StiTextFormatHelper.formatAsPercentage2(this.element.report,e,t));l=i.replace("%","")[Stimulsoft.System.StiObject.stimulsoft]().toNumber();break}}let t=!1,i=this.getConditionValue(e);if(null!=l){let t=l=e.field!=StiProgressFieldCondition.Value&&e.field!=StiProgressFieldCondition.Target&&e.field!=StiProgressFieldCondition.Percentage?l:null==l?0:l[Stimulsoft.System.StiObject.stimulsoft]().toNumber();if(null!=t&&null!=i){l[Stimulsoft.System.StiObject.stimulsoft]().getType()!=i[Stimulsoft.System.StiObject.stimulsoft]().getType()&&(l=l.toString(),i=i[Stimulsoft.System.StiObject.stimulsoft]().toString(),t=l);try{switch(e.condition){case Stimulsoft.Report.Components.StiFilterCondition.EqualTo:return 0==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.NotEqualTo:return 0!=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThan:return 1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.GreaterThanOrEqualTo:return 0<=t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThan:return-1==t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i);case Stimulsoft.Report.Components.StiFilterCondition.LessThanOrEqualTo:return t[Stimulsoft.System.StiObject.stimulsoft]().compareTo(i)<=0;case Stimulsoft.Report.Components.StiFilterCondition.Containing:{let t=l.toString(),e=i.toString();return-1!=t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.NotContaining:{let t=l.toString(),e=i.toString();return-1==t.indexOf(e)}case Stimulsoft.Report.Components.StiFilterCondition.BeginningWith:{let t=l.toString(),e=i.toString();return t.startsWith(e)}case Stimulsoft.Report.Components.StiFilterCondition.EndingWith:{let t=l.toString(),e=i.toString();return t.endsWith(e)}}}catch{}}}return t}processColor(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.Color)&&this.getConditionResult(e,t))return t.color;return t}getVariation(t){let e=t.value,i=t.target;return e/i}getConditionValue(t){if(StiString.isNullOrEmpty(t.value))return null;switch(t.field){case StiProgressFieldCondition.Value:case StiProgressFieldCondition.Target:case StiProgressFieldCondition.Percentage:return t.value[Stimulsoft.System.StiObject.stimulsoft]().toNumber();default:return t.value.toString()}}processForeColor(e,t=null){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.TextColor)&&this.getConditionResult(e,t))return t.textColor;return StiDashboardStyleHelper.getForeColor(this.element,t)}processTrackColor(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.TrackColor)&&this.getConditionResult(e,t))return t.trackColor;return t}processFontStyle(t,e){let i=this.processFontBold(t.bold,e),r=this.processFontItalic(t.italic,e),l=this.processFontUnderline(t.underline,e),n=this.processFontStrikeout(t.strikeout,e),s=FontStyle.Regular;return i&&(s^=FontStyle.Bold),r&&(s^=FontStyle.Italic),l&&(s^=FontStyle.Underline),n&&(s^=FontStyle.Strikeout),s}processFontStrikeout(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleStrikeout)&&this.getConditionResult(e,t))return t.font.strikeout;return t}processFontUnderline(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleUnderline)&&this.getConditionResult(e,t))return t.font.underline;return t}processFontItalic(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleItalic)&&this.getConditionResult(e,t))return t.font.italic;return t}processFontBold(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.FontStyleBold)&&this.getConditionResult(e,t))return t.font.bold;return t}processFontName(t,e){for(let t of this.element.progressConditions)if(0<(t.permissions&StiProgressConditionPermissions.Font)&&this.getConditionResult(e,t))return t.font.name;return t}getInteractionDataGeom(t){if(this.element.isDesigning)return null;let e=new StiProgressInteractionData,i=(e.value=t.value,e.seriesText=t.series,e.target=t.target,new StiInteractionDataGeom);return i.interactionToolTip=this.getToolTip(e),i.interactionHyperlink=this.getHyperlink(e),i.interactionData=e,i}getToolTip(t){let e=this.element.dashboardInteraction?.toolTip;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}getHyperlink(t){let e=this.element.dashboardInteraction?.hyperlink;return StiString.isNullOrEmpty(e)?e:this.parseConstants(e,t)}parseConstants(e,i){if(!StiString.isNullOrEmpty(e)){let t=new Hashtable;return t.set("Value",i.value),t.set("Series",i.seriesText),t.set("Target",i.target),StiReportParser.parse(e,this.element,!1,t)}return e}constructor(t,e){super(),this.minElementSide=2,this.minFontSize=3,this.element=t,this.iterations=e,this.style=StiDashboardStyleHelper.getProgressStyle(this.element)}},Stimulsoft.Base.Context.StiPieSegmentGeom),StiArcSegmentGeom=(__.v.StiPieProgressVisual=class extends __.v.StiProgressVisual{async draw(S,m){if(0==this.iterations.length)return;let h=StiElementLocationHelper.getLocationRectangles(m,this.iterations.length,this.element);if(h.length<1)return;let c=h[0],t=c.width<c.height?c.width:c.height,e=StiDashboardStyleHelper.getElementFontFromStyle(this.element),d=this.getTitleHeight(t,e.size),p=c.width,g=null,i=new Font(e.fontFamily.name,1,e.style,e.unit);for(let e of this.iterations){if(StiString.isNullOrEmpty(e.series))continue;let t=StiStringFormatHelper.getFontSize(S,new Rectangle(0,0,p,d),e.series,i);(null==g||g>t)&&(g=t)}null!=g&&g<e.size&&(d=this.getTitleHeight(t,g));let r=this.element.valueType==StiProgressValueType.None?1:2,b=(t-d*r)/2*.8,C=(g<this.minFontSize&&(g=0,d=0,b=t/2*.8),2*b),f=this.getTargetValues(),y=!1;S.pushClip(m);for(let u=0;u<this.iterations.length;u++){let t=f[u],e=this.iterations[u],i=h[u];if(!y&&(1<i.right-m.right||1<i.bottom-m.bottom)&&(y=!0),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);S.fillRectangle3(new StiSolidBrush(Color.transparent),new StiSolidBrush(t),i,this.getInteractionDataGeom(this.iterations[0]))}let r=i.x+i.width/2,l=i.y+d+(c.height-d)/2,n=new Point(r,l),s=new Rectangle(n.x-b,n.y-b,C,C),o=new Rectangle(s.x+s.width/2-p/2,s.top-d,p,d),a=this.processColor(this.getColor(u),this.iterations[u]);this.drawPieProgress(S,s,o,t,e,g,a)}if(y){let t=StiElementScale.factor(this.element);this.drawArrowMore(S,m,t)}S.popClip()}drawPieProgress(h,c,d,p,g,b,t){let e=this.processTrackColor(this.style.trackColor,g),i=(h.fillEllipse2(e,c,null),0!=p?360/p*Math.abs(g.value):p),r=(360<i&&(i=360),[new StiPieSegmentGeom(c,-90,i,null,null,null)]);if(h.fillPath(t,r,c,null),b>=this.minFontSize){let o=StiDashboardStyleHelper.getElementFontFromStyle(this.element),a=this.processFontName(o.fontFamily.name,g),u=this.processFontStyle(o,g),t=new Font(a,b,u),e=new StiFontGeom(t.fontFamily.name,b,t.style,t.unit),i=StiRotationMode.CenterCenter,r=new Point,l={ref:StiRotationMode.CenterCenter},n={ref:new Point},S=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,d,l,n),i=l.ref,r=n.ref,this.processForeColor(g)),s=(h.drawRotatedString4(g.series,e,S,r,StiStringFormatHelper.getStringFormatGeom(h),i,0,!0),0!=p?Math.abs(g.value)/p:0),m=this.getDisplayText(g,s);if(m&&0<m.length){let t=new Rectangle(c.x,c.bottom+.2*b,c.width,b),e=StiRotationMode.CenterCenter,i=new Point,r={ref:StiRotationMode.CenterCenter},l={ref:new Point},n=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,t,r,l),e=r.ref,i=l.ref,.9*b),s=new StiFontGeom(a,n,u,o.unit);h.drawRotatedString4(m,s,S,i,StiStringFormatHelper.getStringFormatGeom(h),e,0,!0)}}}getTitleHeight(t,e){let i=e/13;return t/4*(i=4<i?4:i)}constructor(t,e){super(t,e)}},Stimulsoft.Base.Context.StiArcSegmentGeom);__.v.StiCircleProgressVisual=class extends __.v.StiPieProgressVisual{async draw(d,p){if(0==this.iterations.length)return;let g=StiElementLocationHelper.getLocationRectangles(p,this.iterations.length,this.element);if(g.length<1)return;let b=.8,C=g[0],t=C.width<C.height?C.width:C.height,f=StiDashboardStyleHelper.getElementFontFromStyle(this.element),y=this.getTitleHeight(t,f.size),w=C.width,M=this.getTargetValues(),I=null,i=new Font(f.fontFamily.name,1,f.style,f.unit);for(let e of this.iterations.filter(t=>!StiString.isNullOrEmpty(t.series))){let t=StiStringFormatHelper.getFontSize(d,new Rectangle(0,0,w,y),e.series,i);(null==I||I>t)&&(I=t)}let T=(t-(y=null!=I&&I<f.size?this.getTitleHeight(t,I):y))/2*.8,x=null,n=new Rectangle(C.x-T*b,C.y-.79*T,2*T*b,2*T*b),s=new Font(this.element.font.name,1,FontStyle.Bold,GraphicsUnit.Pixel);for(let l=0;l<this.iterations.length;l++){let t=M[l],e=0!=t?Math.abs(this.iterations[l].value)/t:0,i=this.getDisplayText(this.iterations[l],e),r=StiStringFormatHelper.getFontSize(d,n,i,s);(null==x||x>r)&&(x=r)}I<this.minFontSize&&(y=0,I=0,T=t/2*.8);let D=2*T,F=T/5,v=T-F,A=2*v,E=!1;d.pushClip(p);for(let c=0;c<this.iterations.length;c++){let e=g[c];if(!E&&(1<e.right-p.right||1<e.bottom-p.bottom)&&(E=!0),!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);d.fillRectangle3(new StiSolidBrush(Color.transparent),new StiSolidBrush(t),e,this.getInteractionDataGeom(this.iterations[0]))}let t=e.x+e.width/2,i=e.y+y+(C.height-y)/2,m=new Point(t,i),h=new Rectangle(m.x-T,m.y-T,D,D),r=new Rectangle(m.x-v,m.y-v,A,A);if(!this.element.report.isDesigning){let t=StiDashboardStyleHelper.getHotBackColor(this.element);d.fillRectangle3(Color.transparent,t,e,this.getInteractionDataGeom(this.iterations[c]))}let l=this.processTrackColor(this.style.trackColor,this.iterations[c]),n=new StiPenGeom(l,F),o=(d.drawEllipse(n,h.x+F/2,h.y+F/2,h.width-F,h.height-F),M[c]),s=0!=o?360/o*Math.abs(this.iterations[c].value):0,a=-90,u=(360<s&&(s=360),[]),S=(u.push(new StiArcSegmentGeom(h,a,s)),u.push(new StiLineSegmentGeom(this.getPoint(m,T,a+s),this.getPoint(m,v,a+s))),u.push(new StiArcSegmentGeom(r,a+s,-s)),u.push(new StiLineSegmentGeom(this.getPoint(m,v,a),this.getPoint(m,T,a))),this.processColor(this.getColor(c),this.iterations[c]));if(d.fillPath(S,u,h,null),x>=this.minFontSize){let t=new Rectangle(m.x-T*b,m.y-.79*T,2*T*b,2*T*b),e=0!=o?Math.abs(this.iterations[c].value)/o:0,i=this.getDisplayText(this.iterations[c],e),r=new Font(this.element.font.name,x,FontStyle.Bold,GraphicsUnit.Pixel),l=this.processFontStyle(r,this.iterations[c]),n=new StiFontGeom(r.name,r.size,l,r.unit),s=this.processForeColor(this.iterations[c]);d.drawRotatedString5(i,n,s,t,StiStringFormatHelper.getStringFormatGeom(d),StiRotationMode.CenterCenter,0,!0)}if(I>=this.minFontSize){let t=new Rectangle(m.x-w/2,h.top-y,w,y),e=new Font(f.fontFamily.name,I,f.style,f.unit),i=this.processFontName(e.fontFamily.name,this.iterations[c]),r=this.processFontStyle(e,this.iterations[c]),l=new Font(i,e.size,r),n=new StiFontGeom(l.fontFamily.name,I,l.style,l.unit),s=StiRotationMode.CenterCenter,o=new Point,a={ref:StiRotationMode.CenterCenter},u={ref:new Point},S=(StiStringFormatHelper.measureAlignmentParameters(StiHorAlignment.Center,t,a,u),s=a.ref,o=u.ref,this.processForeColor(this.iterations[c]));d.drawRotatedString4(this.iterations[c].series,n,S,o,StiStringFormatHelper.getStringFormatGeom(d),s,0,!0)}}if(E){let t=StiElementScale.factor(this.element);this.drawArrowMore(d,p,t)}d.popClip()}getPoint(t,e,i){let r=Math.PI*i/180;return new Point(t.x+Math.cos(r)*e,t.y+Math.sin(r)*e)}constructor(t,e){super(t,e)}},__.v.StiDataBarsProgressVisual=class extends __.v.StiProgressVisual{async draw(p,t){if(0==this.iterations.length)return;let e=.06*t.width,g=(e<4&&(e=4),new Rectangle(t.x+e/2,t.y+e/2,t.width-e,t.height-e)),b=g.height/this.iterations.length,C=(b<this.minElementSide&&(b=this.minElementSide),1<this.iterations.length?.95*b:b),f=g.width,l=this.getTextValues(),y=this.getTargetValues(),w=StiDashboardStyleHelper.getElementFontFromStyle(this.element),M=null,n=new Font(w.fontFamily.name,1,w.style,w.unit);for(let r=0;r<this.iterations.length;r++){let t=``+this.iterations[r].series+l[r],e=new Rectangle(g.x,g.y+b*r+.07*C,f,.86*C),i=StiStringFormatHelper.getFontSize(p,e,t,n);(null==M||M>i)&&(M=i)}let I=this.element.font.size/18*M,T=(I>M&&(I=M),new Font(w.fontFamily.name,I,w.style,w.unit)),x=(p.pushClip(g),1<this.iterations.length?.05*b/(this.iterations.length-1):0);for(let d=0;d<this.iterations.length;d++){let t=this.processFontName(T.fontFamily.name,this.iterations[d]),e=this.processFontStyle(T,this.iterations[d]),n=new Font(t,T.size,e),i=y[d],r=g.y+(b+x)*d,s=new Rectangle(g.x,r,f,C),l=this.processTrackColor(this.style.trackColor,this.iterations[d]),o=(p.fillRectangle(l,s,this.getInteractionDataGeom(this.iterations[d])),0!=i?Math.abs(this.iterations[d].value)/i:0),a=this.getDisplayText(this.iterations[d],o),u=this.processForeColor(this.iterations[d]);if(M>=this.minFontSize&&a&&0<a.length){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(a,t),i=new Rectangle(s.right-e.width,s.top,e.width,s.height);p.drawRotatedString5(a,t,u,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}let S=this.iterations[d].series;if(M>=this.minFontSize){let t=new StiFontGeom(w.fontFamily.name,I,n.style,n.unit),e=p.measureString(S,t),i=new Rectangle(s.left,s.top+.05*s.height,e.width,s.height);u=this.processForeColor(this.iterations[d]),p.drawRotatedString5(S,t,u,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}let m=0!=i?f/i*this.iterations[d].value:0,h=(m>s.width&&(m=s.width),new Rectangle(g.x,r,m,C)),c=(p.pushClip(h),this.processColor(this.getColor(d),this.iterations[d]));if(p.fillRectangle(c,h,this.getInteractionDataGeom(this.iterations[d])),this.element.report.isDesigning||(null==c&&(c=Color.transparent),p.fillRectangle3(c,Color.fromArgb3(100,Color.white),h,this.getInteractionDataGeom(this.iterations[d]))),M>=this.minFontSize&&a&&0<a.length){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(a,t),i=new Rectangle(s.right-e.width,s.top,e.width,s.height),r=this.isColorLight(c)?Color.white:u,l=this.processForeColor(this.iterations[d],r);p.drawRotatedString5(a,t,l,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}if(M>=this.minFontSize){let t=new StiFontGeom(n.name,n.size,n.style,n.unit),e=p.measureString(S,t),i=new Rectangle(s.left,s.top+.05*s.height,e.width,s.height),r=this.isColorLight(c)?Color.white:u,l=this.processForeColor(this.iterations[d],r);p.drawRotatedString5(S,t,l,i,StiStringFormatHelper.getStringFormatGeom(p),StiRotationMode.CenterCenter,0,!0)}p.popClip()}p.popClip()}isColorLight(t){return 0<600-t.r-t.g-t.b}constructor(t,e){super(t,e)}};{let t;(t=>{t[t["Pdf"]=0]="Pdf",t[t["Excel"]=1]="Excel",t[t["Data"]=2]="Data",t[t["Image"]=3]="Image",t[t["Html"]=4]="Html",t[t["Document"]=5]="Document"})(t=__.f.StiDashboardExportFormat||(__.f.StiDashboardExportFormat={}))}let StiPageOrientation=Stimulsoft.Report.Components.StiPageOrientation,PaperKind=Stimulsoft.System.Drawing.Printing.PaperKind,IStiDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiDashboardExportSettings,StiExportSettings=Stimulsoft.Report.Export.StiExportSettings,IStiSizeExportSettings=(__.z.StiDashboardExportSettings=class extends StiExportSettings{constructor(){super(...arguments),this.renderBorders=!0,this.orientation=StiPageOrientation.Landscape,this.paperSize=PaperKind.A4,this.openAfterExport=!0,this.viewportWidth=0,this.viewportHeight=0}is(t){if(t instanceof Stimulsoft.System.Interface)return-1!=this.implements().indexOf(t);if("function"==typeof t)return this instanceof t;if(null==t)throw new Error("Type for comparison is 'undefined'");return!1}is2(t){return this.is(t)}as(t){if(this.is(t))return this;return null}implements(){let t=[IStiDashboardExportSettings];return(this.implements=()=>t)()}get isDesignMode(){return this.is(__.z.StiSvgDashboardExportSettings)&&this.as(__.z.StiSvgDashboardExportSettings).designMode}getExportFormat(){return __.B.StiExportFormatHelper.convert(this.format)}toParameters(){let t=super.toParameters();return t.Format=Enum.getName(__.f.StiDashboardExportFormat,this.format),t.Orientation=Enum.getName(StiPageOrientation,this.orientation),t.PaperSize=Enum.getName(StiPageOrientation,this.paperSize),t}},__.z.IStiDashboardScaleMode=new Stimulsoft.System.Interface("IStiDashboardScaleMode"),__.z.IStiSizeExportSettings=new Stimulsoft.System.Interface("IStiSizeExportSettings"),__.z.IStiSizeExportSettings),StiDashboardScaleMode=Stimulsoft.Report.Dashboard.StiDashboardScaleMode,IStiDashboardScaleMode=__.z.IStiDashboardScaleMode,StiImageType=Stimulsoft.Report.Export.StiImageType,IStiImageDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiImageDashboardExportSettings,IStiHtmlDashboardExportSettings=(__.z.StiImageDashboardExportSettings=class extends __.z.StiDashboardExportSettings{implements(){let t=super.implements().concat([IStiSizeExportSettings,IStiImageDashboardExportSettings,IStiDashboardScaleMode]);return(this.implements=()=>t)()}get width(){return this._width}set width(t){this._width=t,this.paperSize=PaperKind.Custom}get height(){return this._height}set height(t){this._height=t,this.paperSize=PaperKind.Custom}toParameters(){let t=super.toParameters();return t.Format=Enum.getName(__.f.StiDashboardExportFormat,this.format),t.ImageType=Enum.getName(StiImageType,this.imageType),t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t.Width=0,t.Height=0,t}constructor(t){super(),this.format=__.f.StiDashboardExportFormat.Image,this.imageType=StiImageType.Svg,this.scale=100,this.scaleMode=StiDashboardScaleMode.ViewSize,null!=t?this.imageType=t:this.renderSinglePage=!0}},__.z.StiSvgDashboardExportSettings=class extends __.z.StiImageDashboardExportSettings{constructor(){super(...arguments),this.imageType=StiImageType.Svg,this.renderEmptyContent=!0}},Stimulsoft.Report.Dashboard.Export.IStiHtmlDashboardExportSettings);__.z.StiHtmlDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Html,this.imageQuality=200,this.scale=100,this.enableAnimation=!0,this.scaleMode=StiDashboardScaleMode.ViewSize}implements(){let t=super.implements().concat([IStiHtmlDashboardExportSettings,__.z.IStiDashboardScaleMode]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}};{class StiExportTool{async render(t,e,i,r){}static getTool(t){let e=this.typeToTool.get(t);if(null!=e)return e;let i=StiExportToolAttribute.attributes.get(t[Stimulsoft.System.StiObject.stimulsoft]().getTypeName()),r=null!=i?i.exportToolTypeName:null;if(null==r)return null;return e=StiActivator.createObject2(r),this.typeToTool.set(t,e),e}static isAllowOpacity(t){return t.is(__.z.StiImageDashboardExportSettings)||t.is(__.z.StiHtmlDashboardExportSettings)||t.is(__.z.StiPdfDashboardExportSettings)||t.is(__.z.StiExcelDashboardExportSettings)}static getScaleFactor(t,e){if(0<e.viewportWidth&&0<e.viewportHeight)return Math.min(t.page.width/e.viewportWidth,t.page.height/e.viewportHeight);return 1}}StiExportTool.typeToTool=new Hashtable,__.A.StiExportTool=StiExportTool}let StiHtmlDashboardExportSettings=__.z.StiHtmlDashboardExportSettings,StiTitleMeasureHelper=__.h.StiTitleMeasureHelper,StiSvgDashboardExportSettings=__.z.StiSvgDashboardExportSettings,StiImageDashboardExportSettings=__.z.StiImageDashboardExportSettings,StiExportTool=__.A.StiExportTool,IStiBorder=(__.B.StiTitleExportHelper=class{static async render(t,e,i){let r=t.as(IStiTitleElement),l=__.p.StiElementControlPainter.getBorderContentRect(new Rectangle(0,0,e.width,e.height),e.border),n=null!=r?r.title:null,s=this.getTitleText(t);if(null==n||!n.visible||StiString.isNullOrEmpty(s)||__.B.StiExportSettingsHelper.isDataExport(i))return l;let o=StiExportTool.getScaleFactor(e,i),a=StiTitleMeasureHelper.measureTitle3(null,l,r.title,s),u=(a.height=a.height*o,a.height>l.height/2&&(a.height=l.height/2),1);if(n.sizeMode==StiTextSizeMode.Fit||n.sizeMode==StiTextSizeMode.FitAndWordWrap){let t=a.width>l.width?l.width/a.width:1,e=a.height>l.height?l.height/a.height:1;u=Math.min(Math.abs(t),Math.abs(e))}let S=this.getTitleForeColor(t),m=Color.transparent.equals(S)?StiDashboardStyleHelper.getTitleForeColor(t):S,h=this.getTitleFont(t),c=1==u?h:StiFontUtils.changeFontSize(h,h.size*u),d=i.is(StiImageDashboardExportSettings)&&i.imageType==StiImageType.Svg||i.is(StiSvgDashboardExportSettings)||i.is(StiHtmlDashboardExportSettings),p=this.getTitleBackColor(t),g=Color.transparent.equals(p)?StiDashboardStyleHelper.getBackColor(t,null,d):p,b=StiDashboardStyleHelper.getBackColor(t,null,!0),C=(g.equals(b)&&(g=Color.transparent),i.format==__.f.StiDashboardExportFormat.Html&&t.is(IStiChartElement)&&(l.x+=3,l.y+=3),new StiText),f=(C.name=t.name+`_Title`,C.allowHtmlTags=!0,C.clientRectangle=new Rectangle(l.x,l.y,l.width,a.height),C.text=await StiReportParser.parseAsync(s,t),C.font=c,C.horAlignment=this.convert(n.horAlignment),C.trimming=n.sizeMode==StiTextSizeMode.Trimming?StringTrimming.EllipsisCharacter:StringTrimming.None,C.wordWrap=n.sizeMode==StiTextSizeMode.WordWrap||n.sizeMode==StiTextSizeMode.FitAndWordWrap,C.vertAlignment=StiVertAlignment.Center,C.textBrush=new StiSolidBrush(m),C.brush=new StiSolidBrush(g),l.height-=C.height,l.y+=C.height,n[Stimulsoft.System.StiObject.stimulsoft]().as(IStiTitlePadding)?.padding),y=(null!=f&&(l.y+=f.top+f.bottom,l.height-=f.top+f.bottom,C.left+=f.left,C.width-=f.left+f.right,C.top+=f.top),t.as(IStiCornerRadius)?.cornerRadius);return null!=y&&((0<y.topLeft||0<y.topRight)&&(C.cornerRadius=new StiCornerRadius(y.topLeft,y.topRight,0,0)),0<y.topLeft&&(C.margins.left=Math.max(C.margins.left,y.topLeft/2)),0<y.topRight)&&(C.margins.right=Math.max(C.margins.right,y.topRight/2)),e.components.add(C),l}static getTitleBackColor(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleBackColor;if(t.is(IStiTitleElement))return t.title.backColor;return Color.transparent}static getTitleForeColor(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleForeColor;if(t.is(IStiTitleElement))return t.title.foreColor;return Color.black}static getTitleFont(t){let e=StiDashboardStyleHelper.getElementTitleStyle(t);if(null!=e&&e.allowUseTitle)return e.titleFont;if(t.is(IStiTitleElement))return t.title.font;return null}static getTitleText(e){if(e.is(IStiTitleElement)){if(e.is(StiChartElement)&&e.showViewTitle){let t=e.userViewStates.find(t=>t.key==e.selectedViewStateKey);if(null!=t)return t.name}return e.title.text}return null}static convert(t){switch(t){case StiHorAlignment.Left:return StiTextHorAlignment.Left;case StiHorAlignment.Center:return StiTextHorAlignment.Center;case StiHorAlignment.Right:return StiTextHorAlignment.Right;default:throw new StiTypeNotRecognizedException(t)}}},__.B.StiLayoutExportHelper=class{static excludeMargin(e,i){if(e.is(IStiMargin)){let t=e.margin;if(!t.isEmpty)return new Rectangle(i.x+t.left,i.y+t.top,Math.max(1,i.width-t.left-t.right),Math.max(1,i.height-t.top-t.bottom))}return i}static excludePadding(e,i,r){if(e.is(IStiPadding)){let t=e.padding;if(!t.isEmpty)return new Rectangle(i.x+t.left*r,i.y+t.top*r,Math.max(1,i.width-t.left*r-t.right*r),Math.max(1,i.height-t.top*r-t.bottom*r))}return i}static excludeCornerRadius(n,s,o){if(n.is(IStiCornerRadius)){let t=n.cornerRadius;if(t.isDefault())return s;let e=Math.max(t.topLeft*o/2,t.bottomLeft*o/2),i=Math.max(t.topLeft*o/2,t.topRight*o/2),r=Math.max(t.topRight*o/2,t.bottomRight*o/2),l=Math.max(t.bottomLeft*o/2,t.bottomRight*o/2);return new Rectangle(s.x+e,s.y+i,Math.max(1,s.width-e-r),Math.max(1,s.height-i-l))}return s}},Stimulsoft.Report.Components.IStiBorder),StiExportFormat=(__.B.StiBorderExportHelper=class{static render(t,e,i){t.is(IStiSimpleBorder)&&e.is(IStiBorder)&&i.renderBorders&&(e.border=t.border2.getBorder(),e.border.topmost=!0)}},__.B.StiBackColorExportHelper=class{static render(t,e){e.is(IStiBackColor)&&(e.backColor=StiDashboardStyleHelper.getBackColor(t))}},Stimulsoft.Report.StiExportFormat),IStiExcelDashboardExportSettings=(__.B.StiExportFormatHelper=class{static convert(t){switch(t){case __.f.StiDashboardExportFormat.Pdf:return StiExportFormat.Pdf;case __.f.StiDashboardExportFormat.Excel:return StiExportFormat.Excel;case __.f.StiDashboardExportFormat.Html:return StiExportFormat.Html;case __.f.StiDashboardExportFormat.Data:return StiExportFormat.Data;case __.f.StiDashboardExportFormat.Image:return StiExportFormat.Image;case __.f.StiDashboardExportFormat.Document:return StiExportFormat.Document;default:throw new StiTypeNotRecognizedException(t)}}},Stimulsoft.Report.Dashboard.Export.IStiExcelDashboardExportSettings),IStiPdfDashboardExportSettings=(__.z.StiExcelDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Excel,this.imageQuality=200,this.scaleMode=StiDashboardScaleMode.ViewSize}implements(){let t=super.implements().concat([IStiSizeExportSettings,IStiExcelDashboardExportSettings,__.z.IStiDashboardScaleMode]);return(this.implements=()=>t)()}get width(){return this._width}set width(t){this._width=t,this.paperSize=PaperKind.Custom}get height(){return this._height}set height(t){this._height=t,this.paperSize=PaperKind.Custom}toParameters(){let t=super.toParameters();return t.Width=0,t.Height=0,t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}},Stimulsoft.Report.Dashboard.Export.IStiPdfDashboardExportSettings),StiDataType=(__.z.StiPdfDashboardExportSettings=class extends __.z.StiDashboardExportSettings{constructor(){super(...arguments),this.format=__.f.StiDashboardExportFormat.Pdf,this.imageQuality=200,this.scaleMode=StiDashboardScaleMode.PaperSize}implements(){let t=super.implements().concat([IStiPdfDashboardExportSettings,IStiDashboardScaleMode]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.ScaleMode=Enum.getName(StiDashboardScaleMode,this.scaleMode),t}},Stimulsoft.Report.Export.StiDataType),IStiDataDashboardExportSettings=Stimulsoft.Report.Dashboard.Export.IStiDataDashboardExportSettings,StiHtmlChartType=(__.z.StiDataDashboardExportSettings=class extends __.z.StiDashboardExportSettings{implements(){let t=super.implements().concat([IStiDataDashboardExportSettings]);return(this.implements=()=>t)()}toParameters(){let t=super.toParameters();return t.DataType=Stimulsoft.System.Enum.getName(StiDataType,this.dataType),t}constructor(t){super(),this.format=__.f.StiDashboardExportFormat.Data,this.dataType=StiDataType.Csv,null!=t&&(this.dataType=t)}},Stimulsoft.Report.Export.StiHtmlChartType),StiHtmlExportSettings=Stimulsoft.Report.Export.StiHtmlExportSettings,StiDataExportSettings=Stimulsoft.Report.Export.StiDataExportSettings,StiImageExportSettings=Stimulsoft.Report.Export.StiImageExportSettings,StiSvgExportSettings=Stimulsoft.Report.Export.StiSvgExportSettings,StiDataDashboardExportSettings=__.z.StiDataDashboardExportSettings,StiExcelDashboardExportSettings=__.z.StiExcelDashboardExportSettings,StiPdfDashboardExportSettings=__.z.StiPdfDashboardExportSettings,StiDashboardExportSettings=__.z.StiDashboardExportSettings,StiDataExportMode=Stimulsoft.Report.Export.StiDataExportMode,StiPdfExportSettings=Stimulsoft.Report.Export.StiPdfExportSettings,StiExcelExportSettings=Stimulsoft.Report.Export.StiExcelExportSettings,XmlTextWriter=(__.B.StiExportSettingsHelper=class{static getExportSettings(i){switch(i.format){case __.f.StiDashboardExportFormat.Pdf:{let t=new StiPdfExportSettings;return t.imageQuality=1,t.imageResolution=i.imageQuality,t}case __.f.StiDashboardExportFormat.Excel:{let t=new StiExcelExportSettings;return t.imageQuality=1,t.imageResolution=i.imageQuality,t}case __.f.StiDashboardExportFormat.Data:{let t=new StiDataExportSettings;return t.dataType=i.dataType,t.dataExportMode=StiDataExportMode.DataAndHeadersFooters,t.skipColumnHeaders=!0,t}case __.f.StiDashboardExportFormat.Image:{let e=i.imageType;switch(e){case StiImageType.Svg:return new StiSvgExportSettings;default:{let t=new StiImageExportSettings;return t.imageType=e,t.imageZoom=i.scale/100,t.imageResolution=100,t}}}case __.f.StiDashboardExportFormat.Html:{let t=new StiHtmlExportSettings;return t.imageResolution=i.imageQuality,t.useEmbeddedImages=!0,t.zoom=i.scale/100,t.addPageBreaks=!1,t.chartType=i.enableAnimation?StiHtmlChartType.AnimatedVector:StiHtmlChartType.Vector,t}case __.f.StiDashboardExportFormat.Document:return null;default:throw new StiTypeNotRecognizedException(i.format)}}static getDashboardExportSettings(t){if(t instanceof StiDashboardExportSettings)return t;let e=null==t?StiExportFormat.Document:t.getExportFormat(),i=this.getDashboardExportSettings2(e);switch(e){case StiExportFormat.Html:i.enableAnimation=t.chartType==StiHtmlChartType.AnimatedVector;break}return i}static getDashboardExportSettings2(t){switch(t){case StiExportFormat.Pdf:return new StiPdfDashboardExportSettings;case StiExportFormat.Excel:return new StiExcelDashboardExportSettings;case StiExportFormat.Data:return new StiDataDashboardExportSettings;case StiExportFormat.Csv:return new StiDataDashboardExportSettings(StiDataType.Csv);case StiExportFormat.Dbf:return new StiDataDashboardExportSettings(StiDataType.Dbf);case StiExportFormat.Xml:return new StiDataDashboardExportSettings(StiDataType.Xml);case StiExportFormat.Json:return new StiDataDashboardExportSettings(StiDataType.Json);case StiExportFormat.Dif:return new StiDataDashboardExportSettings(StiDataType.Dif);case StiExportFormat.Sylk:return new StiDataDashboardExportSettings(StiDataType.Sylk);case StiExportFormat.Image:return new StiImageDashboardExportSettings;case StiExportFormat.ImageBmp:return new StiImageDashboardExportSettings(StiImageType.Bmp);case StiExportFormat.ImageGif:return new StiImageDashboardExportSettings(StiImageType.Gif);case StiExportFormat.ImagePng:return new StiImageDashboardExportSettings(StiImageType.Png);case StiExportFormat.ImageTiff:return new StiImageDashboardExportSettings(StiImageType.Tiff);case StiExportFormat.ImageJpeg:return new StiImageDashboardExportSettings(StiImageType.Jpeg);case StiExportFormat.ImageEmf:return new StiImageDashboardExportSettings(StiImageType.Emf);case StiExportFormat.ImagePcx:return new StiImageDashboardExportSettings(StiImageType.Pcx);case StiExportFormat.ImageSvgz:return new StiImageDashboardExportSettings(StiImageType.Svgz);case StiExportFormat.ImageSvg:return new StiSvgDashboardExportSettings;case StiExportFormat.Html:return new StiHtmlDashboardExportSettings;case StiExportFormat.Document:return null;default:throw new StiTypeNotRecognizedException(t)}}static isDataExport(t){return t.is(StiDataDashboardExportSettings)||t.is(StiExcelDashboardExportSettings)&&t.exportDataOnly}},Stimulsoft.System.Xml.XmlTextWriter),StiImage=Stimulsoft.Report.Components.StiImage;{class StiElementExportTool extends __.A.StiExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;await this.renderContent(t,e,i.clone())}async renderContent(t,e,i){let r=new StiImage(i),l=(r.name=t.name+`_Content`,r.stretch=!0,r.aspectRatio=!1,await this.draw(t,i));r.imageToDraw=l,e.components.add(r)}async drawElement(e,t){let i=new Image,r=new XmlTextWriter(Encoding.UTF8),l=new StiSvgData;if(l.x=0,l.y=0,l.width=t.width,l.height=t.height,l.component=e.as(StiComponent),e.is(IStiBackColor)){let t=StiDashboardStyleHelper.getBackColor(e);t.a<255&&(t=Color.white),r.writeStartElement("rect"),r.writeAttributeString("x","0"),r.writeAttributeString("y","0"),r.writeAttributeString("height",l.height.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")),r.writeAttributeString("width",l.width.toString()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(",",".")),r.writeAttributeString("style",StiContextSvgHelper.writeFillBrush(r,t,new RectangleD(0,0,l.width,l.height))),r.writeEndElement()}if(e.is(StiProgressElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createProgressVisualSvgHelper();null!=t&&await t.writeProgress(r,l)}else if(e.is(StiIndicatorElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createIndicatorVisualSvgHelper();null!=t&&await t.writeIndicator(r,l)}else if(e.is(StiRangeSelectorElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createRangeSelectorVisualSvgHelper();null!=t&&await t.writeRangeSelector(r,l)}else if(e.is(StiCardsElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createCardsVisualSvgHelper();null!=t&&await t.writeCards(r,l)}else if(e.is(StiGaugeElement)){let t=Stimulsoft.Report.Dashboards.StiDashboardHelperCreator.createGaugeVisualSvgHelper();null!=t&&await t.writeGauge(r,l,!1)}let n=Stimulsoft.Report.Resources.StimulsoftFont.getBase64Content(),s="<style>@font-face {font-family: 'Stimulsoft';src: url(data:font/ttf;base64,"+n+") format('truetype');font-weight: normal;font-style: normal;}</style>",o=StiString.format('<svg xmlns="http://www.w3.org/2000/svg" width="{0}" height="{1}"><defs>{3}</defs><rect x="0" y="0" width="{0}" height="{1}" style="fill: white;"/>{2}</svg>',l.width.toString(),l.height.toString(),r.textWriter.getStringBuilder().toString(),s);return i.svg=o,await i.convertAsync(Stimulsoft.System.Drawing.Imaging.ImageFormat.Jpeg),i}async draw(e,t){if(e.is(StiImageElement)){let t=await e.imageToDraw;return null!=t&&(t.url=e.imageHyperlink),t}let i=new Rectangle(0,0,Math.trunc(t.width),Math.trunc(t.height));if(e.is(StiIndicatorElement)||e.is(StiProgressElement)||e.is(StiGaugeElement)||e.is(StiCardsElement)||e.is(StiRangeSelectorElement))return this.drawElement(e,i);let r=new Image;try{if(e.is(IStiBackColor)){let t=StiDashboardStyleHelper.getBackColor(e);t.a<255&&(t=Color.white)}await this.paintContent(null,i,e)}catch(t){}return r}async paintContent(t,e,i){try{await this.paintAtom(t,e.clone(),i)}catch(t){}finally{}}async paintAtom(t,e,i){let r=null;if(i.isQuerable&&null==(r=await StiElementExportTool.getDataTable(i)))return}static async getDataTable(t){let e=t.as(IStiManuallyEnteredData)?.getManuallyEnteredDataTable();if(null!=e)return e;return StiElementDataCache.tryToGetOrCreate(t)}renderEmptyDataMessage(e,i,r,t){if(!t.is(StiSvgDashboardExportSettings)||t.renderEmptyContent)return!1;if(e.is(IStiRegionMapElement)&&e.dataFrom==StiMapSource.Manual)return!1;if(e.is(IStiImageElement)&&(null!=e.image||null!=e.icon||!StiString.isNullOrEmpty(e.imageHyperlink)))return!1;if(e.is(IStiWebContentElement)&&(!StiString.isNullOrEmpty(e.url)||!StiString.isNullOrEmpty(e.embedCode)))return!1;if(0<e.getMeters().length||e.as(IStiManuallyEnteredData)?.dataMode==StiDataMode.ManuallyEnteringData)return!1;let l=r.size,n=new Font("Arial",9),s=e.is(IStiWebContentElement)?Loc.get("FormStyleDesigner","NotSpecified"):e.is(IStiImageElement)?Loc.get("Dashboard","ImageNotSpecified"):Loc.get("Dashboard","DragDropDataFromDictionary"),o=Graphics.measureString(s,n);if(r.y+=r.height/2-48,r.height=Math.min(32,r.height),48<=l.width&&64<=l.height){r.y+=l.width>o.width+16?16:32;let t=new StiImage(new Rectangle(r.width/2-16,r.y,32,32));t.name=e.name+`_EmptyImage`,t.horAlignment=StiHorAlignment.Center,t.image=Stimulsoft.Base.Drawing.StiImageConverter.stringToImage(this.getEmptyDataImage(e)),i.components.add(t)}if(l.width>o.width+16&&32<=l.height){r.y+=32;let t=new StiText(r);t.name=e.name+`_EmptyText`,t.horAlignment=StiTextHorAlignment.Center,t.vertAlignment=StiVertAlignment.Center,t.font=n,t.text=s,t.textBrush=new StiSolidBrush(Color.darkGray),i.components.add(t)}return!0}format(t,e){if(null!=e&&null!=t){if(e instanceof DateTime&&!(t.textFormat.is2(StiDateFormatService)||t.textFormat.is2(StiTimeFormatService)||t.textFormat.is2(StiCustomFormatService)))return e.toShortDateString();return StiExtValueConverter.isEligable(e,t?.report?.culture)?StiExtValueConverter.convert(e,t?.report?.culture):t.textFormat.format(e)}return""}getEmptyDataImage(t){if(t.is(Stimulsoft.Report.Dashboard.IStiTableElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTIzODI0M0M3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTIzODI0M0I3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9Pfr+wAAAINJREFUeNrsl8EJwCAQBD2xoOu/Ce1CrgqDEIJGMQQMm8fuRxbmsRzzUUopDpmQUsIOOF/UGSS0TVUHYnahnZxvi5m5Vf+C6wbknC+ovrXPspOTGCPUAe/ACSth7vI8MW+5wQFE4APgEtIBOkAH6AAdoAN0gAN+I6HALoD+HcMdOAQYAAB9hUYI2ET/AAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiCardsElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUIzNTA2OThGNDM4MTFFQjg0MDZGNjlFNzQyNzdDRTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUIzNTA2OTdGNDM4MTFFQjg0MDZGNjlFNzQyNzdDRTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mjc2NTY1N2UtZjU3OS03OTQxLWIwYTgtZGU3MjdiYjI3MDhhIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OWZmYzA0NGMtNTQyYS03NTRkLWI0YzUtOTIwZWRkMTVlYjRlIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/5jbrAAAAG1JREFUeNrslzEOgDAMAxOU/+T/z8iLzMLACkZyAXvqUvWUNCclAYQyW4hTMyN7vLujjvPdPiR5V98CAxjAAHWeSWaeWQCZiOqhSl6tAvwJDbCcB9iABbCIKJlYRAb4jIiYJfG9Isrfb8e7AAMAInAVUndCPVIAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiChartElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGNJREFUeNpi/P//P8NAAsaBdgATiDh//vz/AXXAgIfAQAIWYhXiiiZDQ0PG0SigSxTQKnpGo2DUAYMrF9CisCFk5mgUjDpg1AGjDhh1wKgDRh0A7hsOVNcMVCUzjvjeMUCAAQAQtyafO9RmPQAAAABJRU5ErkJggg==";if(t.is(Stimulsoft.Report.Dashboard.IStiGaugeElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzczNjEzRTU3MzI1MTFFN0I4QTBFMzE1MDQyQjZBNDQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzczNjEzRTQ3MzI1MTFFN0I4QTBFMzE1MDQyQjZBNDQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+or3oxAAAA/1JREFUeNrEV9tOU0EU3S2UW4AWStsQ7oYaCA8QEj9BeOdB+AVRg36JxesvoA++i59gFB4hJnK/2AttgXBpKXWvcfZx2pz29IJxJZOec3rOWmv27Nkz48rn8/Q/0Vjpi+vr6x7+meX2kNsDbve4+fTfKW4/uX3l9oXb56mpqWwlvC6nCLAwRJ5zW/R6vYGOjg5qbW2l5uZmamhoUO/kcjm6vr6my8tLOjs7o3Q6HefHb7lF2EiqZgMsvgCSgYGBEItTY2NlAbu5uaFYLEa/GDDPJlaqMsDC6Nrrrq6ux8FgkPBOW1sbZTIZSqVSqpdXV1dKaHJykjY2NqipqYna29vJ5/Opa+D8/JwSiQQlk8n3fPuMjeQcDWjxj4FAYK6vr089AwlCDsLj4+OC95kU3xQ8Y+PU29trGTk4OEBEPvHlo2ITdjGNmOKnp6eqV5ubmzQ6OqpIMRQtLS3WkIyNjVnROTk5QY+RBzQ4OKi+1VxzbGKZf5+WjAD3ZJ7dr+BDl8tF8Xic9vf3aXh4WBEi7OFwmNxud8nxh5GjoyNlAoA4d0hd7+zs4PkCR+GDvO8uyvZXfr9fiaM3EJek6u7uVlm+u7tbNgERoaGhIerp6bHCDy4A3NDQWoUGkK2hUCiIREIvRAhEaJh+IAfZn+Quj/7+fvWdDBMiDW5o6Gn91wA7QrYsSqgQwtvbW5VMIBLoHqj/pVdOJsbHx1WH9vb21DOtsag1rQjMoMjALV6W8UMmF2e3ABHCkDgBPT88PFTJCW5oQAuaBQYQYlVTdc8gJtPIHF95DxHa2tpS+VG21rOgGBduzTFrGphGeZXiAWD62EGGQTJ+e3ubnMq5cAm31po2DdxHoQEkrKh8dujs7LTWACFFJMpBuIRba4VNA14hlZCaIiZQAzAlTVxcXDgOgw23t3gaVgwYQK2wqplxXS3EQBpLqulW7u2AMRwZGSGPx6Mar5aOq6MNd9pcC37weh6QGp/NZlVYsQSXAnJhYmKiol7KEEmiY+8ATTMC3yRBZJqh9t8VhAuV0EjG76aBVazx5pRB4UAk6gU4wGVya63VAgPsMoGxQrGRwoEKVi+EQwobNFgrhn2jZYCXxwz/vME2SkowphtKsqyItQDfggNcUta1xjutWTANI7zKRVFY4BR7AjNzqwUSD/sJAFzgBDdrwEGkYLGQtra2Ns+lNS/gD/L1gMXy0WjUugc3ayyYmgUGtIk3HLr8XQOc4C7Ws6uES9hAYidzVzA2pUtVb8ux+sn8dQKWaFQ5VMeat+U2B5NlbKOwk6nhYBJFr6s+mNgczV5we8Kl2V/h0Syhj2Yv6zqalTiczhiHU9mjJY3DKSrcqszzug+n/xq/BRgAggASny2TUqcAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiImageElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEJDMzU4OUE3MzI1MTFFN0EzMDFCNjJCNzkyMjQxMjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEJDMzU4OTk3MzI1MTFFN0EzMDFCNjJCNzkyMjQxMjIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWU4YzI0ZGYtNjI5ZS1jNDQwLTg2NjMtMjlmM2VlODA4MGFjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWM1MjY1OGUtNzMxZC0xMWU3LWE0ZGMtODFhMmMxY2EwMjcyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HvDPrgAAAe5JREFUeNrMV8luwkAMdUIECBAgEPsqDpz5/6/gxgmxbwLEJiR2yjNNBSW0mTJhaikaYqL4zbP9nNHO5zOpNKNaraoF8LmqokEzAVClUnlrZJN5nRSb4cRL5/M5DYdD2m635PF4KJlMUjgctnxWdyJ4s9mkzWZD6DCsuIf/LQCwcxG/dACgXcQvHQByLuKXDgAFJ+KXDgDVXiwWyev1kqZpvOL+WRc40oYI9iyg4wyI2v9TwtPpRKPRiKbTKd/HYjGKx+OcT8cZQPB6vU77/Z7K5TJf6F/4jsej8wx0Oh0KBoOUSCS+fPl8nhlpNBpUKpVI16+Yl8sl9Xo9ltt0Om276H4EMJvNeHW73bTb7cjlcnGg1WrFgRAwl8vReDzm36ZB6wE6lUrJmYatVuuan8tukRbTUBc+n89SVsES0pTNZu+eHwwGXD+RSIRrCZuy3QW3wU3rdrsUCAQoFAo9/DeZTDggrN/vc0oPhwPXFADWarWHqSjchkhFu93m7vD7/ZZM4DJr5dYABul6WQfADF6UyWQsh4xJ+zP9lyJE2A1qpVAokGEYfwbxkhKiGNENGDZWlNsB8bIUr9drbkswYaWWv4GQMgsWiwVrxW0L2gVxlzwZZ4NoNCr0wWJ8PyiomoYaKTJN9elY+QfJhwADAEAG9ixyyux6AAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiIndicatorElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0VGMkNEQjVCRkM3MTFFNzg1ODA5NENGODgxNjBBRTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0VGMkNEQjRCRkM3MTFFNzg1ODA5NENGODgxNjBBRTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmUxMzY0MDEtMWIwOS1jODQ1LTg3Y2EtOWFlMjkyOGJiNjhiIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MmUxNzdhMzEtOWZlZS0xMWU3LWIxNzMtZTY1ODBhMDllOGE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TLktDAAAAdBJREFUeNrUl7FKA0EQhi/BXq61jEZSBhIUW429FlqofSKCrbHXcKkFQdNoa3wBMU8gCeQJrrCwCiSdIMj5D/zCeBzJZe82iQsftzc7m5mbnZ3dZIIgcObZss6c29K4wX6/n4qRYrFoLQLbxE4EJrQMaLC/BYJZ58A+2CR7s05Cidy1em+YRjNrOKcGCkpWoCxrIwdWwIaiDJYj9G7AFeiCN8VHUgfOwUXMDxLHdoi0JqgnXYJL0DJYqhbnJs4B2V6n4HkK423OCdJKwm9wDDoxdF/BCeekugu+wEMMvUfqWtmGazF0Vm3WgXwMnXWbDugIDMAZGUwZpUQR+OT+lv4tkb7HsbwtB1zwwrIrxWWkxkbc8wXquDaO4yE4mqDzHkPn75k+7zvhxAjgWnaAxx3wcbUqK7kUnApf6xhrhvRdFq4qxnyjHMCPySH0FF5TyD0aLzMfPMgqwKXxDozKjSnHd+MkFCNVrn9YPoSRnirPFSJO9CiT569j0zsAA7vgPmIop5zylSynEjY8tpj/C0wd8FVe6K/2Vc1wIiKSmgNy3rtY25LaCZJ4bRorUSbPnvEuGJMbTTrRZQmu07jDpC3BuYDOHC50Ifq3SZha+xFgANyufsKlz/2MAAAAAElFTkSuQmCC";if(t.is(Stimulsoft.Report.Dashboard.IStiListBoxElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMDEzNGViZC0wY2ZmLTczNDMtOWIwMi1jNTkzNzdiMWRiMjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA5MTJDN0Q4NTYwMTFFOEI3N0JBNjlFRDdGQ0IwOEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA5MTJDN0M4NTYwMTFFOEI3N0JBNjlFRDdGQ0IwOEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDAxMzRlYmQtMGNmZi03MzQzLTliMDItYzU5Mzc3YjFkYjIyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwMTM0ZWJkLTBjZmYtNzM0My05YjAyLWM1OTM3N2IxZGIyMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsGuI54AAACuSURBVHja7FeJCcAgDNTiEI7h/kvoGG5hm4JQQm2jGAOSgyKKyR3m0dpSipHEYYShAlxKSVbA9clmYYyxzMCIH7DRJHR4oScpQwi/e3LO9+i9pwmgOKUCyKuAlgi2EGByPGcPwRsZrOFTYAsB1c9eVTDS1qeGoNcWBO/biFp+sA1bFUC54VJc2oiA7EmI50vuAixg+V3wRayP0goLzyLpPmBFT0B/zVSAtIBTgAEAMM3EXL6e7tsAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiPivotTableElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA25pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTE1MUMzNDA5RkFDMTFFN0JERThGRDhBNTZGM0ZDN0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTE1MUMzM0Y5RkFDMTFFN0JERThGRDhBNTZGM0ZDN0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTIzODI0M0I3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTIzODI0M0M3MzI1MTFFN0E4QTI5RjYzRTdGNDREM0MiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7WOnt0AAABPUlEQVR42uxXSW6EMBBsQxASJ8R2YPkD/38FT0BCgMRygSMCZsrKJCQZlGHAQJTpk90culyuajdsHEc6MiQ6ON6mmyiKdqMjDEP2A8D7B+HFrwc96RXMoZyycy+/gPbzifAF4LwinLPj1jZd7IKXBpZEnueUZdlzV7A20jSlsiz5ehgG8n1/PwBJklBd16QoCt9XVUV49oMg2OcKUNyyLDIMg7qu42vkdtOA4zhfKMcaud0AuK77UE64C0C/LMtiXXATHCienhLKb9uWNE0T1wdgtZvgpsX7vqc4jjkDpmmKYQBNBj6H1SRJ+mg4KNo0DQcBF+i6LgbAdJwviuKT0isYVVU5K7+dfhUAUA4QYMG2bfI8b9vX8JFAUYgNIBhjs1bbdB74Hmiv91rs352I1ozdzwT79z+nhwO4CDAAvLyCJQ9KIGkAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiProgressElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4M2I5YzlhNS1lZGRmLTU0NGItODFmMi1mMzVmMDgyNTUzMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTI4QjI4RjdCRjUxMTFFNzk4RThFMTk3MzM2QTVEREYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTI4QjI4RjZCRjUxMTFFNzk4RThFMTk3MzM2QTVEREYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZTI4MmVmYWItOTQwYy1mYjQwLTg5OTctNzNiNzU1Nzk1ZmY1IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MmUxNzdhMzEtOWZlZS0xMWU3LWIxNzMtZTY1ODBhMDllOGE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xEa5MgAAAoxJREFUeNrEV7lOA0EMJeESFXcQLeIoiZBoEKIjKZEoIL/AFUJHR0FDRxDXJxAoEC1Ji0SBQKHjEh/ATRkQCs+SNzhmsrvZbMDS02jHM7bX4xnbgXw+X/OfVOd2YTabrccQBcaBYaAnHA63YJ7Yb8A9cAZkgGPwPt3IDTh5AApaMCSAWaBT8qCkhg3Q9ARsA0msebOTH3RQHsNwBaxo5Q7UwXuuWEZ5R4BNtRg2gZkKj7gL2IO8MYwL8MaXowdY+UEJ5TfAKjAKdANNjG6eW+U1mkjWAcu2jwEsoj+fNwhZ5jPNORxbI8fMmoG9jf3zJQ3A5mkMKbXphAzCxstyfA9Zgxi22DOSYpC1/8sAjvZrICQWnwIT2PDoJQAgkwL3CBgR0w/AgHU7ZAwklHKiWa/K+ZrS3jk1HWJdP0EISxv4nhedOQRkK33pWMay/jHWWfBARN1ziuSkjy9uUt2OTtZZZICklFO0l+mFnCG4o9KAIcXMVCHvpNX3kDSg3/Dg+E236ruv8BTDRc2K+V4FA7TM5oIBpoxGme4vKGhnnc9k9HLQ7nx8pj5TTFgGnCtmpAoGaJkX0gB9RWKc1XwhlhUzXUtpwLNg9sv32gdKqKtOOeK4YAAi/oNTp6Q1WB724e8HDbXBDussyoZJTpVFBQSnVK/Kae+Omn6UeSYo7j3l57haTHn8kP/Cy58fqlqAKC4rZVNJtmXI4VZJtm65zkYxpdklTyWZKkonDQKumUcBdAe88Hwb0MtXjcq6AcNe8saUroyNjYmPZblFu6XKctvOiJuKDUOp5pYoqBehOFVpa7bEcdHuUvEzt2brTq1ZwG13LJrTiNWcAq3MfhXNKT1qaadgLduAatG3AAMAxAf6UcvGQQYAAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiTreeViewElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNGFhYjFiMC1lZTZlLTJkNDctYWZlMi1lYmQzYmI3MzJkNWQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUE2RkJGN0VBNjVFMTFFODk5OTVCRERFOTIwOEI5N0UiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUE2RkJGN0RBNjVFMTFFODk5OTVCRERFOTIwOEI5N0UiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTI3NTcwYzItM2MyZS05NDQxLTgzZjctYmYwM2ZkODU5YjRjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTkyYWNjNTItYTY0OS0xMWU4LWJmZGYtYWIxMTU1OWY5YTkwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WYlYxgAAAMBJREFUeNrsllEKwCAMQ9fhgbz/KbyRQ7Agm0pLbWRgQJhfi68xSDnna6dCu0kpfdzEGAlmoP6wNYQlIFGPUhVBDLxHYqUUOifcF0I+XcHsHT7WLcEMNzAJGuYWdILm1g9iAqUfeMEJCKUdG63OACmXjoBXP4QRgdaE57U8PXB6ANEDhMrA9L6bCXj1gIhAMcSm2u8VIuuz3EpGlQGPfjARGBgiKAFrP6h6wOOdgMjA9F3wrwwMRqJqvuU9YNUjwABgJX86W1bOxQAAAABJRU5ErkJggg==";if(t.is(Stimulsoft.Report.Dashboard.IStiWebContentElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAACIUlEQVR42u2XsYoCQQyGfS0fQHu1slIQFES0sBEbF8ROUDtB2UpFtBIsfQUbH0Ks1wfI8YfLMYyzM7OuesVdYDhcvOTb5E8mZjL/9m3ZbJY+eYwAPtZsNmm73VIaexrgeDxSoVCg4XBIxWKRP38MIIoiDnq9Xh9g5NlbAZbLJQfTDeUAyHQ69QZJDADHuVwuNgCeJylLYgA4RwZcBhCIFCDn8/k1AHCEFJvscDjQaDSyitWUtUQAprReLhfqdDpUr9epWq0ySJxuUDr8hYgTAyAwUip2u92o3+9TuVym+XzOgcMw5M/3+91bH14A+EdpOzjfbDZUqVRoMBjQfr/n4HJ6vR4tFgunPlAWvJAXwGQyYfLT6cRv2O12HwLL2e12/B2Uxmbwh7Z1Aghtq9XiGku6bWc2m7EuXFPUqwRCCseNRsMZXA5EGSdIbw2opDCIbjweewGs12ujIPEy6hS1Auhth7rCKersAwGRYiybxOwE0EnFoHA4dgVHS6JktVrtJwvwB0F7DSIZo/r0gjNkYbVaGQPjOboE30G7SnARs+7PSwP6GDUJEmUJgoDngxpYXV5Ml5OzC+BIHaNi7XabW1ICl0olLo9pCupifuou0MeoCBKB0R0YzXFmuxETX8dyIyKlyIBr4sUtLy/dCW3LST6ft25HqbZiOEafI8Wm7dhneUkFYLtmpe3Uu/9tAGlW9ZcCqPNeXV6eAvjVn2Z/1r4A4YX01RrCMf0AAAAASUVORK5CYII=";if(t.is(Stimulsoft.Report.Dashboard.IStiRangeSelectorElement))return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADpSURBVHgB7ZTfDYIwEMavhAF0A9hAmEBHcALdADbQEWACdRLfSfizgYzgAIT6NVSe2ppIjS/3Sy6X9Fqu3N1XIoZhGObPCFewbdsVXCalPMJHsF4IcYUvkyR5kgcCciRH4vs4jmsk3aVpKoZh2GMtVuv6cr8DCU6wiylW13UBO5MHrBXQZS+Nh4KgQFUO5IF5BpqmedDU5xlVdttB7Jf0PT2+HTt3qAuhBZEpVlXVRl94Ma4W3OAyUywMw1zHF2Mt8VsF6HVHk+w6XREly61Shg8pfnwHIMNcD1wE69WfqyH09Q4wDMMwzAsoJ2xWhyOiiwAAAABJRU5ErkJggg==";return null}}__.A.StiElementExportTool=StiElementExportTool}let StiChartElementBuilder=__.i.StiChartElementBuilder,StiGaugeVisualSvgHelper=(__.A.StiChartElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r,l){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let n=t.as(StiChartElement),s=null,o=(0<n.chartValuesList().length&&(s=await __.A.StiElementExportTool.getDataTable(n)),await StiChartElementBuilder.create(n).render(n,s)),a=StiExportTool.getScaleFactor(e,r);StiChartElementBuilder.scaleFont(o,a);for(let t=0;t<o.series.count;t++){if(null==l||t>=l.length)break;o.series.getByIndex(t).valuesStart=l[t]}o.name=t.name+`_Content`,o.clientRectangle=i.clone(),e.components.add(o)}},__.h.StiGaugeVisualSvgHelper),StiImageElementExportTool=(__.A.StiGaugeElementExportTool=class extends __.A.StiElementExportTool{async render(t,s,e,i){if(this.renderEmptyDataMessage(t,s,e.clone(),i))return;let o=t.as(StiGaugeElement),a=await __.A.StiElementExportTool.getDataTable(t),u=(new StiGaugeElementBuilder).render2(o,e.size,a);if(1!=(await u()).length||i.is(StiExcelDashboardExportSettings)||i.is(StiPdfDashboardExportSettings)){if(0<(await u()).length)if(i.isDesignMode||i.format!=__.f.StiDashboardExportFormat.Html)await this.renderContent(t,s,e.clone());else{let r=0,l=StiElementLocationHelper.getLocationRectangles(e,(await u()).length,o),n=l[0].clone();for(let i of await(u=(new StiGaugeElementBuilder).render2(o,n.size,a))()){let t=l[r].clone(),e={ref:0};StiString.isNullOrEmpty(i.series)||(await this.renderSingleGaugeTitleFromIteration(o,s,i,t,n,u,r,e),t.height-=e.ref,t.y+=e.ref),this.renderSingleGaugeFromIteration(o,s,i,t,r),r++}}}else this.renderSingleGaugeFromIteration(o,s,(await u())[0],e)}renderSingleGaugeFromIteration(t,e,i,r,l=0){let n=i.gauge;n.name=t.name+`_Content`+l,n.clientRectangle=r,n.style=StiDashboardStyleHelper.getGaugeStyle(t),n.customStyleName=t.customStyleName,n.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,!0)),e.components.add(n)}async renderSingleGaugeTitleFromIteration(s,o,t,a,e,i,u,S){let m=t.series,h=StiDashboardStyleHelper.getFont(s),r=await StiGaugeVisualSvgHelper.getTitleHeight(null,i,a,s,null),c=await StiGaugeVisualSvgHelper.getTitleMinFontSize(null,i,h,e.width,e.height);if(S.ref=r||0,null!=r){let t=new Rectangle(a.x,a.y,a.width,S.ref),e=StiFontUtils.changeFontSize(h,c),i=StiTitleMeasureHelper.measureTitle4(null,t,h,m),r=(t.height=i.height,StiDashboardExpressionHelper.getForeColor(s,s.foreColor)),l=Color.transparent.equals(r)?StiDashboardStyleHelper.getForeColor(s):r,n=new StiText(t);n.name=s.name+`_ContentTitle`+u,n.brush=new StiSolidBrush(Color.transparent),n.text=m,n.font=e,n.textBrush=new StiSolidBrush(l),n.horAlignment=StiTextHorAlignment.Center,o.components.add(n)}}},__.A.StiImageElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;await this.renderContent(t,e,i.clone())}async renderContent(t,e,s){let o=t.as(StiImageElement),a=await this.draw(o,s.clone());if(o.aspectRatio&&null!=a){let t=s.width/a.width,e=s.height/a.height,i=(t=e=t<e?t:e,a.width*(t=e)),r=a.height*e,l=this.calculateHorAlignmentPosition(o,s,i),n=this.calculateVertAlignmentPosition(o,s,r);s=new Rectangle(l,n,i,r)}let i=new StiImage(s);i.name=o.name+`_Content`,i.stretch=!0,i.aspectRatio=!1,i.imageToDraw=a,e.components.add(i)}calculateHorAlignmentPosition(t,e,i){switch(t.horAlignment){case StiHorAlignment.Left:return e.x;case StiHorAlignment.Right:return e.right-i;default:return e.x+(e.width-i)/2}}calculateVertAlignmentPosition(t,e,i){switch(t.vertAlignment){case StiVertAlignment.Top:return e.y;case StiVertAlignment.Bottom:return e.bottom-i;default:return e.y+(e.height-i)/2}}},__.A.StiImageElementExportTool),StiGaugeElementExportTool=__.A.StiGaugeElementExportTool,StiChartElementExportTool=__.A.StiChartElementExportTool,StiExportSettingsHelper=__.B.StiExportSettingsHelper,StiExportFormatHelper=__.B.StiExportFormatHelper,StiElementExportTool=__.A.StiElementExportTool,StiTitleExportHelper=__.B.StiTitleExportHelper,StiBackColorExportHelper=__.B.StiBackColorExportHelper,StiBorderExportHelper=__.B.StiBorderExportHelper,StiLayoutExportHelper=__.B.StiLayoutExportHelper,IStiReport=Stimulsoft.Base.IStiReport;{class em0{static exportAsync(e,i,r){setTimeout(async function(){let t=await em0.export(i,r);e(t)})}static export(t,e){let i;return i=e instanceof StiDashboardExportSettings?e:e instanceof StiExportSettings?__.B.StiExportSettingsHelper.getDashboardExportSettings(e):__.B.StiExportSettingsHelper.getDashboardExportSettings2(e),this.exportToStream(t,i)}static async exportToStream(e,i){let n=new StiReport,r=(n.isDocument=!0,n.reportUnit=StiReportUnitType.HundredthsOfInch,n.renderedPages.getByIndex(0)),t=(r.orientation=i.orientation,r.paperSize=i.paperSize,(i.is(StiExcelDashboardExportSettings)||i.is(StiDataDashboardExportSettings)||i.is(StiImageDashboardExportSettings))&&(r.margins=new StiMargins(0)),i),l=("width"in i&&null!=t&&0<t.width&&0<t.height&&(r.width=t.width,r.height=t.height),e.as(IStiDashboardWatermark)?.dashboardWatermark),s=(r.tagValue=l,null==r.tagValue&&(r.tagValue="*Dashboards*"),null);if(e.is(IStiReport))await this.renderCellReportAsync(e,n,r,i);else if(e.is(IStiDashboard)){let t=e.as(IStiDashboard);(s=t.report).currentPage=s.pages.indexOf(t.page),await this.renderCellDashboardAsync(e,r,i)}else if(e.is(IStiElement)){let t=e.as(IStiElement);(s=t.report).currentPage=s.pages.indexOf(t.page),await this.renderCellElement(e,n,r,i)}n.parentReport=s;for(let r of n.renderedPages.list)r.components.list.filter(t=>t.is(StiContainer)).forEach(t=>{let e=r.components.indexOf(t)+1,i=t.getComponentsList();for(let t=0;t<i.length;t++)i[t].page=r,i[t].setDirectDisplayRectangle(i[t].componentToPage(i[t].displayRectangle)),r.components.insert(e+t,i[t]);t.components.clear()});if(0<n.renderedPages.count&&!(Stimulsoft.Base.cKdtj.ecyaG.SnLYd()||(Stimulsoft.Base.cKdtj.ecyaG.jOlOo()||Stimulsoft.Base.cKdtj.ecyaG.qotXQ())&&Stimulsoft.System.NodeJs.isStandaloneVersion)){let t=n.renderedPages.getByIndex(0),e=t.report.unit.convertFromHInches(200),i=t.report.unit.convertFromHInches(52),r=new Rectangle((t.width-e)/2,t.height-i,e,i),l=new StiImage(r);l.stretch=!0,l.printable=!1,l.image=Stimulsoft.Report.Export.StiExportUtils.getAdditionalData2(192),l.name=Stimulsoft.Report.StiNameValidator.correctName(Stimulsoft.System.Guid.newGuidString().substring(0,8)),l.componentPlacement="pf.PageFooterBand",t.components.add(l)}let o,a=null==i?StiExportFormat.Document:StiExportFormatHelper.convert(i.format);if(a==StiExportFormat.Document)o=Stimulsoft.System.Text.Encoding.UTF8.getBytes(n.saveDocumentToJsonString());else{let t=StiExportSettingsHelper.getExportSettings(i),e=await n.exportDocumentAsync2(a,null,t);o="string"==typeof e?Stimulsoft.System.Text.Encoding.UTF8.getBytes(e):"undefined"!=typeof Buffer&&Buffer.isBuffer(e)?e.toJSON().data:e}return o}static async renderCellReportAsync(t,e,i,r){let l=t.as(IStiReport).fetchPages().filter(t=>t.is(IStiDashboard));for(let t=0;t<l.length;t++)0<t&&(i=i.clone(!0,!1),e.renderedPages.add(i)),this.setUpPage(i,l[t],r),await this.renderDashboardAsync(i,l[t],r)}static async renderCellDashboardAsync(t,e,i){this.setUpPage(e,t,i),await this.renderDashboardAsync(e,t.as(IStiDashboard),i)}static async renderCellElement(t,e,i,r){let l=t.as(IStiElement);l.is(IStiRegionMapElement)&&e.dictionary.resources.addRange(l.report.dictionary.resources),e.reportAlias=l.name,this.setUpPage(i,t,r),await this.renderSingleElementAsync(i,l,r)}static async renderDashboardAsync(e,t,i){if(null==t)return;null!=i&&(i.renderSinglePage=!0,i.renderSingleElement=!1);let r=t.as(StiDashboard),l=await r.getElements(!1)[Stimulsoft.System.StiObject.stimulsoft]().filterAsync(async t=>t.isEnabledAsync()),n=1,s=1;if(i.is(IStiDashboardScaleMode)){let t=i.as(IStiDashboardScaleMode).scaleMode;switch(t){case StiDashboardScaleMode.PaperSize:n=e.width/r.width,s=e.height/r.height;break;case StiDashboardScaleMode.ViewSize:{let t=Math.min(e.width/i.viewportWidth,e.height/i.viewportHeight);n=i.viewportWidth/r.width*t,s=i.viewportHeight/r.height*t;break}case StiDashboardScaleMode.DesignSize:n=s=Math.min(e.width/r.width,e.height/r.height);break}}e.brush=new StiSolidBrush(StiDashboardStyleHelper.getDashboardBackColor(t,!1)),await this.renderElementsAsync(e,l,n,s,i)}static async renderSingleElementAsync(t,e,i){if(null==e||!await e.isEnabledAsync())return;null!=i&&(i.renderSingleElement=!0);let r=StiExportSettingsHelper.isDataExport(i),l=(r||(t.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(e))),e.as(StiComponent)),n=t.width/l.width,s=t.height/l.height,o=await this.renderElementAsync(t,e,n,s,i);if(o.left=0,o.top=0,!r){let t=e.margin;o.left=t.left,o.top=t.top}}static setUpPage(i,r,l){if(l.is(StiPdfDashboardExportSettings)&&(i.orientation=l.as(StiPdfDashboardExportSettings).orientation,i.paperSize=l.as(StiPdfDashboardExportSettings).paperSize),(l.is(StiExcelDashboardExportSettings)||l.is(StiDataDashboardExportSettings)||l.is(StiHtmlDashboardExportSettings)||l.is(StiImageDashboardExportSettings))&&(i.margins=new StiMargins(0)),l.is(IStiDashboardScaleMode)){let t=l.as(IStiDashboardScaleMode).scaleMode,e=(t==StiDashboardScaleMode.PaperSize?(l.viewportWidth=i.width,l.viewportHeight=i.height):0!=l.viewportWidth&&0!=l.viewportHeight&&t==StiDashboardScaleMode.ViewSize||(l.viewportWidth=r.as(StiComponent).width,l.viewportHeight=r.as(StiComponent).height),l.as(IStiSizeExportSettings));null!=e&&0<e.width&&0<e.height&&(l.viewportWidth=e.width,l.viewportHeight=e.height),l.is(StiPdfDashboardExportSettings)||(i.width=l.viewportWidth,i.height=l.viewportHeight)}let t=r.as(IStiDashboardWatermark)?.dashboardWatermark;i.tagValue=t,null==i.tagValue&&(i.tagValue="*Dashboards*"),null!=t&&(t.textEnabled&&(i.watermark.text=t.text,i.watermark.textBrush=new StiSolidBrush(t.textColor),i.watermark.font=t.textFont,i.watermark.angle=t.textAngle,i.watermark.showBehind=!0),t.imageEnabled)&&(i.watermark.image=t.image,i.watermark.aspectRatio=t.imageAspectRatio,i.watermark.imageAlignment=t.imageAlignment,i.watermark.imageMultipleFactor=t.imageMultipleFactor,i.watermark.imageStretch=t.imageStretch,i.watermark.imageTiling=t.imageTiling,i.watermark.imageTransparency=t.imageTransparency,i.watermark.showImageBehind=!0)}static async renderElementsAsync(r,e,l,n,s){null!=s&&(s.renderSingleElement=!1);for(let t of e){let e=await this.renderElementAsync(r,t,l,n,s),i=t.as(StiPanelElement);if(null!=i){let t=i.getComponents().list.filter(t=>t.is(IStiElement));await this.renderElementsAsync(e,t,l,n,s)}}}static async renderElementAsync(t,e,i,r,l,n,s={ref:new Stimulsoft.System.Drawing.Rectangle},o=[]){let a=e.as(StiComponent),u=StiExportSettingsHelper.isDataExport(l),S=Math.round(a.left*i),m=Math.round(a.top*r),h=Math.round(a.right*i),c=Math.round(a.bottom*r),d=new Rectangle(S,m,h-S,c-m);if(u||(d=StiLayoutExportHelper.excludeMargin(e,d)),a.parent.is(StiPanelElement)){let t=a.parent;d.x-=t.margin.left,d.y-=t.margin.top}let p=new StiPanel(d),g=(p.name=e.name,StiExportTool.isAllowOpacity(l));if(u||(p.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(e,null,g)),p.cornerRadius=e.as(IStiCornerRadius)?.cornerRadius),t.components.add(p),null!=p.report&&null!=e.report&&(p.report.styles.clear(),p.report.styles.addRange(e.report.styles)),d=await StiTitleExportHelper.render(e,p,l),!u){StiBorderExportHelper.render(e,p,l),StiBackColorExportHelper.render(e,p);let t=StiElementExportTool.getScaleFactor(p,l);d=StiLayoutExportHelper.excludePadding(e,d,t),d=StiLayoutExportHelper.excludeCornerRadius(e,d,t),s.ref=d}let b=StiExportTool.getTool(Type.getType(e));return(b=null==b?new StiElementExportTool:b)[Stimulsoft.System.StiObject.stimulsoft]().is(StiChartElementExportTool)&&l.is(StiHtmlDashboardExportSettings)?(e.previousAnimations=o,await b.render(e,p,d.clone(),l,n)):b[Stimulsoft.System.StiObject.stimulsoft]().is(StiGaugeElementExportTool)&&l.is(StiHtmlDashboardExportSettings)?(e.previousAnimations=o,await b.render(e,p,d.clone(),l)):!b[Stimulsoft.System.StiObject.stimulsoft]().is(StiImageElementExportTool)&&null!=l&&1==l.isDesignMode&&e[Stimulsoft.System.StiObject.stimulsoft]().is(IStiOnlineMapElement)||await b.render(e,p,d.clone(),l),p}}__.f.StiDashboardExportTools=em0}let StiBorderElementHelper=Stimulsoft.Report.Dashboard.Helpers.StiBorderElementHelper,SolidBrush=(__.p.StiElementControlPainter=class{static getBorderContentRect(t,e){return StiBorderElementHelper.getBorderContentRect3(t.clone(),e,StiScale.factor,!1)}},__.p.StiLocHelper=class{static get locAll(){return`(${Loc.get("Report","RangeAll")[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("& ","")})`}},Stimulsoft.System.Drawing.SolidBrush),StiTableElementConditionHelper=__.L.StiTableElementConditionHelper,StringFormat=Stimulsoft.System.Drawing.StringFormat,StringFormatFlags=Stimulsoft.System.Drawing.StringFormatFlags,StiIndicatorCellPainter=(__.D.StiIndicatorCellPainter=class{static async draw(t,e,i,r,l,n,s,o,a,u=!0){let S=await StiTableElementConditionHelper.getIconCondition(n.key,i,r,l),m=(null!=S&&S.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(t,S,e,s),e=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(e,S)),this.getCellText(i,n,o));await this.draw2(t,e.clone(),i,r,l,n,s,o,a,m,u)}static async draw2(i,r,l,t,e,n,s,o,a,u,S=!0){let m=this.measureText(s,u,l.font),h=this.calculateIndicatorRect(r.clone(),n,s,m);if(await this.drawIndicator(i,l,t,e,n,h,o,a),S){let t=this.calculateTextRect(r.clone(),n),e=this.getColor(n,o,a);this.drawText(i,t,n,s,u,l.font,e)}}static async drawIndicator(s,o,a,u,S,m,h,c){let d=Math.min(m.width,m.height);if(null==h||0==h)s.fillRectangle(new RectangleD(m.x+(m.width-d)/2,m.y+(m.height-4)/2,d,5),Color.lightGray);else{let t=.75*d,e=(m=new Rectangle(m.x+(m.width-d)/2,m.y+(m.height-t)/2,d,t)).width/2,i,r,l,n=(l=0<h?(i=new Point(m.left+e,m.top),r=new Point(m.left,m.bottom),new Point(m.right,m.bottom)):(i=new Point(m.left+e,m.bottom),r=new Point(m.left,m.top),new Point(m.right,m.top)),0<h?c.cellIndicatorPositive:c.cellIndicatorNegative);n=await StiTableElementConditionHelper.processForeColor(n,S.key,o,a,u),s.fillPolygon([i,r,l],new SolidBrush(n))}}static drawText(t,e,i,r,l,n,s){if(StiString.isNullOrWhiteSpace(l))return;e.width-=2;let o=new StringFormat,a=StiElementConsts.Table.Font.getGdiFont(r,null,n);o.lineAlignment=StringAlignment.Center,o.alignment=this.toAlignment(i),o.trimming=StringTrimming.None,o.formatFlags|=StringFormatFlags.NoWrap,t.drawString(l,a,s,e.clone(),o)}static measureText(t,e,i){if(StiString.isNullOrWhiteSpace(e))return 0;let r=StiElementConsts.Table.Font.getGdiFont(t,null,i);return StiTextDrawing.measureString(null,e,r).width}static calculateIndicatorRect(e,t,i,r){let l=16*i;switch(this.getHorAlignment(t)){case StiHorAlignment.Left:e=new Rectangle(e.x,e.y,l,e.height);break;case StiHorAlignment.Right:e=new Rectangle(e.right-l,e.y,l,e.height);break;case StiHorAlignment.Center:{let t=r+l;e=new Rectangle(e.right-(e.width-t)/2-l,e.y,l,e.height);break}}return e.inflate(-4*i,-4*i),e}static getCellText(t,e,i){if(null==i)return"";return StiTextFormatHelper.formatAsPercentage2(t.report,e.textFormat,i)}static calculateTextRect(t,e){let i=t.width/4;switch(this.getHorAlignment(e)){case StiHorAlignment.Left:return new Rectangle(t.x+i,t.y,t.width-i,t.height);case StiHorAlignment.Right:return new Rectangle(t.x,t.y,t.width-i,t.height);case StiHorAlignment.Center:return new Rectangle(t.x,t.y,t.width,t.height)}return t}static getColor(t,e,i){if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(0<e)return i.cellIndicatorPositive;if(e<0)return i.cellIndicatorNegative;return i.cellIndicatorNeutral}static toAlignment2(t){if(t[Stimulsoft.System.StiObject.stimulsoft]().is(StringAlignment))return t;let e=t[Stimulsoft.System.StiObject.stimulsoft]().as(IStiHorAlignment);if(null==e)return StringAlignment.Center;return this.toAlignment(e.horAlignment)}static toAlignment(t){switch(t){case StiHorAlignment.Left:return StringAlignment.Near;case StiHorAlignment.Center:return StringAlignment.Center;case StiHorAlignment.Right:return StringAlignment.Far}return StringAlignment.Center}static getHorAlignment(t){let e=t;return null!=e?e.horAlignment:StiHorAlignment.Right}},__.D.StiIndicatorCellPainter),StiDataSortRuleHelper=Stimulsoft.Data.Engine.StiDataSortRuleHelper;{class StiTableElementGdiPainter{static getBackgroundColor(t,e,i,r){return null==e||e.data.backColor.equals(Color.transparent)?r?i.alternatingCellBackColor:i.cellBackColor:r?StiDashboardStyleHelper.isDarkStyle3(t)?StiColorUtils.light(e.data.backColor,25):StiColorUtils.dark(e.data.backColor,25):e.data.backColor}static measureColumn(t,e,i,r,l){let n,s=StiElementConsts.Table.getHeight(i.font,i.zoom);if(r.is2(StiSparklinesColumn))n=this.measureSparklinesCell(i,0,i.zoom);else if(r.is2(StiIndicatorColumn))n=this.measureIndicatorCell(t,i,r,l,i.zoom);else if(r.is2(StiDataBarsColumn))n=this.measureDataBarsCell(t,i,r,l,i.zoom);else if(r.is2(StiBubbleColumn))n=this.measureBubbleCell(t,i,r,l,i.zoom);else if(StiImageHelper.isImage(l))return new Size(0,StiElementConsts.Table.getHeight(i.font,i.zoom));return new Size(n.width,Math.max(n.height,s))}static getArrowSize(t,e){let i=StiElementConsts.Table.getHeight(t.headerFont,t.zoom),r=StiDataSortRuleHelper.getSortDirection(t.userSorts,e.key);if(r!=StiDataSortDirection.None)return new Size(1.5*i,i);return Size.empty}static getRightImageRect(t,e,i){let r=i.width*t.zoom,l=i.height*t.zoom;return new Rectangle(e.right-3-r,e.y+(e.height-l)/2,r,l)}static measureSparklinesCell(t,e,i){return new Size(Math.max(e,80*i),0)}static measureIndicatorCell(t,e,i,r,l){let n=i,s=StiIndicatorCellPainter.getCellText(e,n,StiValueHelper.tryToNullableNumber(r)),o=this.measureCell2(t,s,e.font,i);return o.width=(o.width+4)*l*1.25,o}static measureDataBarsCell(t,e,i,r,l){let n=StiTextFormatHelper.formatBasedOnColumnType(e,i,r),s=this.measureCell2(t,n,e.font,i);return s.width*=l,i.horAlignment!=StiHorAlignment.Center&&(s.width*=2),i.is(StiDataBarsColumn)&&0<i.width&&(s.width=l*i.width),s}static measureBubbleCell(i,r,l,n,t){let s=StiElementConsts.Table.getHeight(r.font,r.zoom);if(l.horAlignment==StiHorAlignment.Center)return s-=2,new Size(s,StiElementConsts.Table.getHeight(r.font));{let t=StiTextFormatHelper.formatBasedOnColumnType(r,l,n),e=this.measureCell2(i,t,r.font,l);return e.width+=s,e}}static measureCommonCell(t,e,i,r,l,n){let s=StiTextFormatHelper.formatBasedOnColumnType(e,i,r),o=new Size(l,0);return StiImageHelper.isImage(s)||((o=this.measureCell2(t,s,e.font,i)).width*=n,o.height*=n),o}static measureHeader(t,e){return this.measureHeader2(null,t,e)}static measureHeader2(t,e,i){let r=StiLabelHelper.getLabel(i),l=this.measureCell2(t,r,e.headerFont,i);return l.width+=36,l}static measureCell(t,e,i){return this.measureCell2(null,t,e,i)}static measureCell2(t,e,i,r){let l=new Size(8,StiElementConsts.Table.getHeight(i));if(StiString.isNullOrEmpty(e))return l;let n=new __.D.StiTableColumnSizeHelper(i,r),s=i[Stimulsoft.System.StiObject.stimulsoft]().getHashCode().toString()+e+n.getUniqueCode().toString();if(this.captionSizeCache.contains(s)){let t=this.captionSizeCache.get(s);return l.width=t.width,l.height=t.height,l}let o=0!=n.width?n.width:n.maxWidth,a=Graphics.measureString(e,i,o);return a.width=n.getColumnWidth(a.width),a.height=n.getColumnHeight(a.height),l.width=a.width,l.height=a.height,this.captionSizeCache.set(s,a),l}static measureHeaders(e,t){let r=StiElementConsts.Table.Font.getGdiFont(1,null,t),l=new Size(8,StiElementConsts.Table.getHeight(r));for(let t of e){let e=new Size(8,0),i=StiLabelHelper.getLabel(t);if(!StiString.isNullOrEmpty(i)){let t=Graphics.measureString(i,r,1e6);e.width+=t.width}l.width+=e.width}return l.width}}StiTableElementGdiPainter.captionSizeCache=new Hashtable,__.q.StiTableElementGdiPainter=StiTableElementGdiPainter}__.D.StiBubbleCellPainter=class{static async draw(l,t,e,i,r,n,s,o,a,u,S,m,h=!0){if(0==o)return;let c=StiTextFormatHelper.formatBasedOnColumnType(e,n,o),d=(0<a&&(a=0),u<0&&(u=0),n.horAlignment),p=t,g=await StiTableElementConditionHelper.getIconCondition(n.key,e,i,r),b=(null!=g&&g.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(l,g,p,s),p=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(p,g)),p.inflate(-2,-2),this.calculateTextRect(e,p,n)),C=(p=this.calculateBubbleRect(e,p,n,Math.abs(o),a,u),StiDashboardStyleHelper.getTableStyle(e)),f=this.getForeColor(e,n,C,S,m);if(h&&d!=StiHorAlignment.Center&&l.drawString(c,e.font,f,b,null),0<p.width&&0<p.height){let t=n.as(StiBubbleColumn),e=t.allowCustomColors?t.positiveColor:C.cellDataBarsPositive,i=t.allowCustomColors?t.negativeColor:C.cellDataBarsNegative,r=new SolidBrush(o<0?i:e);l.fillEllipse(p,r)}}static getForeColor(t,e,i,r,l){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(r)return i.alternatingCellForeColor;return l?null!=i?i.selectedCellForeColor:StiElementConsts.Table.Font.Color:null!=i?i.cellForeColor:StiElementConsts.Table.Font.Color}static calculateBubbleRect(t,e,i,r,l,n){let s=i;if(null==s)return e;let o=StiElementConsts.Table.getHeight(t.font,t.zoom),a=(o-=2,Math.max(Math.abs(l),Math.abs(n))),u=Math.abs(o*r/a);switch(s.horAlignment){case StiHorAlignment.Left:return new RectangleD(e.right-o+(o-u)/2,e.y+(e.height-u)/2,u,u);case StiHorAlignment.Center:return new RectangleD(e.x+(e.width-u)/2,e.y+(e.height-u)/2,u,u);case StiHorAlignment.Right:return new RectangleD(e.x+(o-u)/2,e.y+(e.height-u)/2,u,u)}return e}static calculateTextRect(e,i,t){let r=t;if(null!=r){let t=StiElementConsts.Table.getHeight(e.font,e.zoom);switch(r.horAlignment){case StiHorAlignment.Left:i=new RectangleD(i.x,i.y,i.width-t,i.height);break;case StiHorAlignment.Right:i=new RectangleD(i.x+t,i.y,i.width-t,i.height);break}}return i.inflate(-2,-2),i}static getCellText(t,e,i){return StiTextFormatHelper.formatBasedOnColumnType(t,e,i)}},__.D.StiColorScaleCellPainter=class{static getScaleColor(e,i,r,t,l,n){let s=(r-i)/2,o=(e=Math.min(e,r),e=Math.max(e,i),0),a,u,S=t.cellBackColor;if(s<e){let t=r-s;u=0!=t?(o=(e-s)/t,a=Color.fromArgb3(255,S),Color.fromArgb3(255,n)):(a=Color.lightGray,Color.lightGray)}else{let t=s-i;u=0!=t?(o=e/t,a=Color.fromArgb3(255,l),Color.fromArgb3(255,S)):(a=Color.lightGray,Color.lightGray)}let m=(u.a-a.a)*o+a.a,h=(u.r-a.r)*o+a.r,c=(u.g-a.g)*o+a.g,d=(u.b-a.b)*o+a.b;return m=Math.min(m,255),h=Math.min(h,255),c=Math.min(c,255),d=Math.min(d,255),m=Math.max(m,0),h=Math.max(h,0),c=Math.max(c,0),d=Math.max(d,0),Color.fromArgb(Math.round(m),Math.round(h),Math.round(c),Math.round(d))}};let StiSvgGeomWriter=Stimulsoft.Report.Export.StiSvgGeomWriter,StiSvgHelper=Stimulsoft.Report.Export.StiSvgHelper,StiDataBarsDirection=(__.D.StiConditionIconPainter=class{static async drawIcon(h,c,d,p){if(!c||c.iconAlignment===StiIconAlignment.None)return;let t=c.customIcon;if(t){let m=StiImageHelper.getImageFromObject(t);if(m){let t=new RectangleD,e=(c.iconAlignment===StiIconAlignment.Left?t=new RectangleD(d.left,d.top,d.height,d.height):c.iconAlignment===StiIconAlignment.Right&&(t=new RectangleD(d.right-d.height,d.top,d.height,d.height)),m.width),i=m.height,r=t.width/e,l=t.height/i,n=Math.min(r,l),s=e*n,o=i*n,a=(t.width-s)/2,u=(t.height-o)/2,S=new RectangleD;S.x=t.x+a,S.y=t.y+u,S.width=s,S.height=o,S.inflate(-2*p,-2*p),h.drawImage(m,S)}}else{let t=new RectangleD,e=(c.iconAlignment===StiIconAlignment.Left?t=new RectangleD(d.left,d.top,d.height,d.height):c.iconAlignment===StiIconAlignment.Right&&(t=new RectangleD(d.right-d.height,d.top,d.height,d.height)),await StiFontIconsHelper.convertFontIconToImageAsync(c.icon,c.iconColor,t.width,t.height,"0.9em"));h.drawImage(e,t)}}static adjustCellContentRectWithIcon(t,e){if(e.iconAlignment===StiIconAlignment.Left)return new RectangleD(t.left+t.height,t.top,t.width-t.height,t.height);if(e.iconAlignment===StiIconAlignment.Right)return new RectangleD(t.left,t.top,t.width-t.height,t.height);return t}static async getImageWithConditionIcon(t,e,i){let r=t.iconAlignment===StiIconAlignment.Left?new RectangleD(e.x,e.y,e.height,e.height):new RectangleD(e.right-e.height,e.y,e.height,e.height),l=new XmlTextWriter(Encoding.UTF8),n=(l.indentation=-1,l.writeStartElement("svg"),l.writeAttributeString("version","1.1"),l.writeAttributeString("baseProfile","full"),l.writeAttributeString("xmlns","http://www.w3.org/2000/svg"),l.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),l.writeAttributeString("xmlns:ev","http://www.w3.org/2001/xml-events"),l.writeAttributeString("height",StiSvgHelper.toUnits(r.height)),l.writeAttributeString("width",StiSvgHelper.toUnits(r.width)),l.writeStartElement("rect"),l.writeAttributeString("x","0"),l.writeAttributeString("y","0"),l.writeAttributeString("width",StiSvgHelper.toUnits(r.width)),l.writeAttributeString("height",StiSvgHelper.toUnits(r.height)),l.writeAttributeString("style",StiSvgHelper.writeFillBrush(l,t.backColor,r)),l.writeEndElement(),new StiSvgGeomWriter(l)),s=(await this.drawIcon(n,t,new RectangleD(0,0,r.width,r.height),1),l.writeFullEndElement(),l.flush(),new StiImage(r)),o=(s.name=i+`_ConditionIcon`,l.textWriter.getStringBuilder().toString());return s.image=StiImageConverter.stringToImage(Stimulsoft.System.Convert.toBase64String(o)),s}},__.L.StiDataBarsDirection),StiDataBarsBrushType=__.L.StiDataBarsBrushType,StiGradientBrush=Stimulsoft.Base.Drawing.StiGradientBrush,IStiControlElement=(__.D.StiDataBarsCellPainter=class{static async draw(t,e,i,r,l,n,s,o,a,u,S,m,h=!0,c=StiDataBarsDirection.LeftToRight,d=StiDataBarsBrushType.Solid){let p=await StiTableElementConditionHelper.getIconCondition(n.key,i,r,l),g=(null!=p&&p.iconAlignment!=StiIconAlignment.None&&(await __.D.StiConditionIconPainter.drawIcon(t,p,e,s),e=__.D.StiConditionIconPainter.adjustCellContentRectWithIcon(e,p)),StiTextFormatHelper.formatBasedOnColumnType(i,n,o));await this.draw2(t,e,o,a,u,s,g,i,r,l,n,S,m,h,c,d)}static async draw2(l,t,n,e,i,r,s,o,a,u,S,m,h,c=!0,d=StiDataBarsDirection.LeftToRight,p=StiDataBarsBrushType.Solid){if(null==n||0==n)return;let g=S,b=(StiString.isNullOrWhiteSpace(g.minimum)||(e=StiValueHelper.tryToNumber(StiReportParser.parse2(g.minimum,o.report))),StiString.isNullOrWhiteSpace(g.maximum)||(i=StiValueHelper.tryToNumber(StiReportParser.parse2(g.maximum,o.report))),e=Math.min(e,0),!1),C=((i=Math.max(i,0))<n&&(b=!0,n=i),n<e&&(b=!0,n=e),S.horAlignment),f=t,y=(f.inflate(-2,-2),this.calculateTextRect(f,S)),w=(f=this.calculateDataBarsRect(f,S),StiDashboardStyleHelper.getTableStyle(o)),M=this.getColorPositive(w,g),I=this.getNegativeColor(w,g),T=this.getOverlappedColor(w,g),x=this.getFillColor(w,g),D=this.getForeColor(o,S,w,m,h),F=(c&&l.drawString(s,o.font,D,y,null),C!=StiHorAlignment.Center&&l.fillRectangle(f,x),i+Math.abs(e)),v=f.width*Math.abs(e)/F,A=f.width*n/F,E=f.width*Math.abs(n)/F,R=0;if(d==StiDataBarsDirection.LeftToRight?f.x+=n<0?v-E:v:(R=180,f.x=n<0?f.right-v:f.right-v-E),f.width=E,n<0&&(R+=180),0<f.width&&0<f.height){if(p==StiDataBarsBrushType.Gradient){let r;if(r=d==StiDataBarsDirection.LeftToRight?0<n?new RectangleD(t.left+v,t.top,A,t.height):new RectangleD(t.left,t.top,v,t.height):n<0?new RectangleD(t.left+A,t.top,v,t.height):new RectangleD(t.left,t.top,A,t.height),0<f.width&&f.width<1&&(f.width=1),0<r.width&&r.width<1&&(r.width=1),0<r.width&&0<f.width){let t=n<0?I:M,e=StiColorUtils.light(t,200),i=(r.x-=.1*r.width,r.width+=.2*r.width,new StiGradientBrush(t,e,R));l.fillRectangle(f,i)}}else{let t=n<0?I:M;t=await StiTableElementConditionHelper.processForeColor(t,S.key,o,a,u),l.fillRectangle(f,t)}if(b){let t=0<=n?new RectangleD(f.right-6*r,f.y,6*r,f.height):new RectangleD(f.x,f.y,6*r,f.height);l.fillRectangle(t,T)}C==StiHorAlignment.Center&&l.drawString(s,o.font,Color.white,y,null)}}static getOverlappedColor(t,e){return e.overlappedColor.equals(Color.transparent)?t.cellDataBarsOverlapped:e.overlappedColor}static getColorPositive(t,e){return e.positiveColor.equals(Color.transparent)?t.cellDataBarsPositive:e.positiveColor}static getNegativeColor(t,e){return e.negativeColor.equals(Color.transparent)?t.cellDataBarsNegative:e.negativeColor}static getFillColor(t,e){return e.fillColor.equals(Color.transparent)?Color.fromArgb3(40,t.cellDataBarsPositive):e.fillColor}static getForeColor(t,e,i,r,l){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(!Color.transparent.equals(t.foreColor))return t.foreColor;if(r)return i.alternatingCellForeColor;return l?null!=i?i.selectedCellForeColor:StiElementConsts.Table.Font.Color:null!=i?i.cellForeColor:StiElementConsts.Table.Font.Color}static calculateDataBarsRect(t,e){let i=e;if(null==i)return t;switch(i.horAlignment){case StiHorAlignment.Left:return new RectangleD(t.right-t.width/2,t.y,t.width/2,t.height);case StiHorAlignment.Right:return new RectangleD(t.x,t.y,t.width/2,t.height)}return t}static calculateTextRect(t,e){let i=e;if(null!=i)switch(i.horAlignment){case StiHorAlignment.Left:t=new RectangleD(t.x,t.y,t.width/2,t.height);break;case StiHorAlignment.Right:t=new RectangleD(t.right-t.width/2,t.y,t.width/2,t.height);break}return t.inflate(-2,-2),t}},__.D.StiSparklinesCellPainter=class{static draw(t,e,i,r,l){}static castToArray(t){return StiArray.isArray(t)?t:null}},__.D.StiTableColumnSizeHelper=class{getUniqueCode(){let t=0;return t=397*(t=397*(t=397*(t=397*t^this.width)^this.minWidth)^this.maxWidth)^this.wordWrap[Stimulsoft.System.StiObject.stimulsoft]().getHashCode(),Math.abs(t)}getColumnWidth(t,e=!1){if(0!=this.width&&!e)return this.width;if(!this.isMeasurable)return t;return t<this.minWidth&&(t=this.minWidth),t=0!=this.maxWidth&&t>this.maxWidth?this.maxWidth:t}getColumnHeight(t){if(!this.isMeasurable)return t;if(this.maxHeight<t)return this.maxHeight;return t}static isWordWrap(t){let e=t.as(IStiTableColumnSize);if(null==e?.size)return!1;return e.size.wordWrap}constructor(t,e){this.width=0,this.minWidth=30,this.maxWidth=300,this.maxHeight=0,this.wordWrap=!1,this.fontUniqueCode=0,this.isMeasurable=!1;let i=(this.column=e).as(IStiTableColumnSize);if(null==i?.size)return;this.isMeasurable=!0,this.fontUniqueCode=t.getHashCode();let r=i.size;this.width=r.width,this.minWidth=r.minWidth,this.maxWidth=r.maxWidth,this.maxHeight=r.wordWrap?Number.MAX_VALUE:Math.round(StiElementConsts.getFontHeight(t))+1,this.wordWrap=r.wordWrap}},Stimulsoft.Report.Dashboard.IStiControlElement),StiLocHelper=__.p.StiLocHelper,StiComboBoxHelper=__.T.StiComboBoxHelper;{class qu0 extends __.A.StiElementExportTool{async render(l,n,s,t){if(0==l.getMeters().length)return;let o=await StiElementDataCache.tryToGetOrCreate(l);if(null==o)return;let e=t.is(StiSvgDashboardExportSettings)&&t.designMode,r=l.as(StiComboBoxElement),a=qu0.getNameMeterIndex(o),u=qu0.getKeyMeterIndex(o),i=e&&null!=r&&!StiString.isNullOrEmpty(r.initialValue),S=StiExportTool.isAllowOpacity(t),m=new Hashtable;if(1<o.meters.length)for(let e of o.rows){let t=e[1]?.[Stimulsoft.System.StiObject.stimulsoft]().toString();StiString.isNullOrWhiteSpace(t)||m.set(t,e[0])}let h=l,c=l,d="";if(h.selectionMode==StiItemSelectionMode.One)if(0<c.userFilters.length)d=c.userFilters[0].value,d=m.get(d)??d;else if(h.showAllValue)d=StiLocHelper.locAll;else{let t=o.rows[0];null!=t&&0<t.length&&null!=t[0]&&(d=t[0].toString())}if(i)if(r.initialValue.includes(";"))d=r.initialValue;else{let t=qu0.getRow(r,o,u);if(null==t)return;let e=-1!=a?t[a]:null,i=-1!=u?t[u]:null;null==e&&null==i||(d=(e||i).toString())}if(this.renderElement(n,l,s,this.format(l.as(IStiControlElement),d),S),h.selectionMode==StiItemSelectionMode.Multi&&!i){let e=s,r=0;if(l.is(IStiComboBoxElement)&&(r=l.maxSelectedItems),0<c.userFilters.length){let i=c.userFilters;if(i.every(t=>t.condition==StiDataFilterCondition.NotEqualTo)){i=[];for(let t of o.rows){let e=t[1]?.[Stimulsoft.System.StiObject.stimulsoft]().toString();if(c.userFilters.some(t=>t.value==e))continue;i.push(new StiDataFilterRule(null,null,StiDataFilterCondition.EqualTo,e))}}for(let t of i){if(!(e.x+e.width<=s.x+s.width)){while(1<n.components.count)n.components.removeAt(1);this.renderItem(n,l,s,StiString.format(Loc.get("Dashboard","NSelected"),0<r?r:c.userFilters.length));break}(e=this.renderItem(n,l,e,this.format(l.as(IStiControlElement),m.get(t.value)??t.value))).x+=e.width+4}}else if(h.showAllValue)this.renderItem(n,l,s,StiLocHelper.locAll);else{let t=this.getValuesCount(l,o);this.renderItem(n,l,s,StiString.format(Loc.get("Dashboard","NSelected"),0<r?r:t))}}}getValuesCount(t,e){let i=t.as(StiComboBoxElement),r=StiComboBoxHelper.fetchItems(i,e,i.showBlanks);return null!=r?r.length:0}renderElement(t,e,i,r,l){let n=StiDashboardStyleHelper.getForeColor(e),s=StiDashboardStyleHelper.getBackColor(e,null,l),o=(n=this.checkNegativeColor(r,n,e),new StiText(i));o.name=e.name+`_ComboBox`,o.allowHtmlTags=!0,o.vertAlignment=StiVertAlignment.Center,o.horAlignment=StiTextHorAlignment.Left,o.textBrush=new StiSolidBrush(n),o.brush=new StiSolidBrush(s),o.text=this.format(e.as(IStiControlElement),r),o.font=StiDashboardStyleHelper.getFont(e),t.components.add(o)}renderItem(t,e,i,r){let l=StiDashboardStyleHelper.getControlStyle(e),n=this.checkNegativeColor(r,l.selectedForeColor,e),s=new StiText,o=(s.name=e.name+`_ComboBoxItem`,s.allowHtmlTags=!0,s.vertAlignment=StiVertAlignment.Center,s.horAlignment=StiTextHorAlignment.Center,s.textBrush=new StiSolidBrush(n),s.brush=new StiSolidBrush(l.selectedBackColor),s.text=this.format(e.as(IStiControlElement),r),s.font=StiDashboardStyleHelper.getFont(e),t.components.add(s),Graphics.measureString(r,s.font));return s.clientRectangle=new Rectangle(i.x,i.y,o.width+4,i.height)}static getNameMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>"StiNameComboBoxMeter"==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName());return null!=e?t.meters.indexOf(e):-1}static getKeyMeterIndex(t){if(null==t)return-1;let e=t.meters.find(t=>"StiKeyComboBoxMeter"==t[Stimulsoft.System.StiObject.stimulsoft]().getType()[Stimulsoft.System.StiObject.stimulsoft]().getTypeName());return null!=e?t.meters.indexOf(e):-1}static getRow(e,t,i){if(StiString.isNullOrEmpty(e.initialValue)||-1==i)return t.rows[0];return t.rows.find(t=>t[i]?.toString()==e.initialValue)}checkNegativeColor(e,i,t){if(t.is(IStiTextFormat)&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)){let t=StiValueHelper.tryToNumber(e);return null==t||0<=t?i:Stimulsoft.StiOptions.Engine.negativeColor}return i}}__.A.StiComboBoxElementExportTool=qu0}let StiDatePickerHelper=__.R.StiDatePickerHelper,StiOvalShapeType=Stimulsoft.Report.Components.StiOvalShapeType,StiListBoxHelper=(__.A.StiDatePickerElementExportTool=class extends __.A.StiElementExportTool{async render(e,i,r,t){let l=e;if(null==l.getValueMeter())return;this.storedCulture=null;try{let t=e.report?.getParsedCulture();StiString.isNullOrWhiteSpace(t)||(this.storedCulture=CultureInfo.currentCulture,CultureInfo.currentCulture=new CultureInfo(t)),l.viewMode==StiDateViewMode.DatePicker?await this.createContentForDatePickerViewMode(l,i,r):await this.createContentForSliderViewMode(l,i,r)}finally{null!=this.storedCulture&&(CultureInfo.currentCulture=this.storedCulture)}}async createContentForDatePickerViewMode(t,e,i){let r=StiDashboardStyleHelper.getForeColor(t),l=StiDashboardStyleHelper.getBackColor(t),n=new StiText(i);n.name=t.name+`_Content`,n.allowHtmlTags=!0,n.vertAlignment=StiVertAlignment.Center,n.textBrush=new StiSolidBrush(r),n.brush=new StiSolidBrush(l),n.text=(await this.getDateTimeString(t)).replace("<<>>"," - "),n.font=StiDashboardStyleHelper.getFont(t),e.components.add(n)}async createContentForSliderViewMode(s,o,a){let u=await this.getDateTimeString(s),t=StiDashboardStyleHelper.getControlStyle(s),S=StiDashboardStyleHelper.getForeColor(s,t.foreColor),m=t.selectedBackColor,h=t.glyphColor,c=t.separatorColor,d=StiDashboardStyleHelper.getFont(s),p=1.4*s.font.size,g=2,b=2,C=a.height/2-2*g,f=a.height-C-2*b,y=4,w=f+C/2+b-y-1;if(s.selectionMode==StiDateSelectionMode.Single){let t=5,e=a.width/2-2*t-C/2-b,i=new StiShape(new Rectangle(a.x+t,w,e,y)),r=(i.name=s.name+`_LineLeft`,i.shapeType=new StiRectangleShapeType,i.brush=new StiSolidBrush(m),i.borderColor=Color.transparent,i.style=StiPenStyle.None,i.size=0,o.components.add(i),new StiShape(new Rectangle(a.x+a.width-e-t,w,e,y))),l=(r.name=s.name+`_LineRight`,r.shapeType=new StiRectangleShapeType,r.brush=new StiSolidBrush(m),r.borderColor=Color.transparent,r.style=StiPenStyle.None,r.size=0,o.components.add(r),new StiShape(new Rectangle(a.x+a.width/2-C/2,f,C,C))),n=(l.name=s.name+`_Circle`,l.shapeType=new StiOvalShapeType,l.brush=new StiSolidBrush(c),l.borderColor=h,l.size=b,o.components.add(l),new StiText(new Rectangle(a.x,a.y,a.width,p)));n.name=s.name+`_Text`,n.text=this.format(s,u),n.font=d,n.textBrush=new StiSolidBrush(S),n.brush=new StiSolidBrush(Color.transparent),n.horAlignment=StiTextHorAlignment.Center,o.components.add(n)}else{let t=C+2*b,e=new StiShape(new Rectangle(a.x+t,w,a.width-2*t,y)),i=(e.name=s.name+`_Line`,e.shapeType=new StiRectangleShapeType,e.brush=new StiSolidBrush(m),e.borderColor=Color.transparent,e.style=StiPenStyle.None,e.size=0,o.components.add(e),new StiShape(new Rectangle(a.x+g,f,C,C))),r=(i.name=s.name+`_LeftCircle`,i.shapeType=new StiOvalShapeType,i.brush=new StiSolidBrush(c),i.borderColor=h,i.size=b,o.components.add(i),new StiShape(new Rectangle(a.right-C-g,f,C,C))),l=(r.name=s.name+`_RightCircle`,r.shapeType=new StiOvalShapeType,r.brush=new StiSolidBrush(c),r.borderColor=h,r.size=b,o.components.add(r),u.split("<<>>")),n=new StiText(new Rectangle(a.x,a.y,a.width/2,p));if(n.name=s.name+`_LeftText`,n.text=this.format(s,l[0]),n.font=d,n.textBrush=new StiSolidBrush(S),n.brush=new StiSolidBrush(Color.transparent),o.components.add(n),1<l.length){let t=new StiText(new Rectangle(a.x+a.width/2,a.y,a.width/2,p));t.name=s.name+`_RightText`,t.text=this.format(s,l[1]),t.font=d,t.textBrush=new StiSolidBrush(S),t.brush=new StiSolidBrush(Color.transparent),t.horAlignment=StiTextHorAlignment.Right,o.components.add(t)}}}async getDateTimeString(i){let e=StiDatePickerHelper.getDefaultValue(i);if(StiVariableExpressionHelper.isVariableSpecifiedAsExpression(i,i?.valueMeter?.expression)){let t=StiDatePickerHelper.getVariableSpecifiedAsValue(i)?.as(StiVariable);if(Range.isRangeType(t?.type)&&i.initialRangeSelectionSource==StiInitialDateRangeSelectionSource.Selection){let t={ref:null},e={ref:null};return StiDatePickerHelper.calculateRangeFromInitial(i.initialRangeSelection,t,e),this.getRangeVariableString(i,new DateTimeRange(t.ref,e.ref))}return null!=e&&e[Stimulsoft.System.StiObject.stimulsoft]().is(DateTimeRange)?this.getRangeVariableString(i,e):this.format(i,e)}if(0<i.userFilters.length){let t=this.format(i,i.userFilters[0].value);return i.selectionMode!=StiDateSelectionMode.AutoRange&&i.selectionMode!=StiDateSelectionMode.Range||(t+=`<<>>`+this.format(i,i.userFilters[0].value2)),t}return i.selectionMode==StiDateSelectionMode.AutoRange||i.selectionMode==StiDateSelectionMode.Single?this.getAutoRangeColumnString(i):i.selectionMode==StiDateSelectionMode.Range?this.getRangeColumnString(i):this.format(i,e)}getRangeVariableString(t,e){let i=e?.[Stimulsoft.System.StiObject.stimulsoft]().as(DateTimeRange);return this.format(t,i?.fromObject)+`<<>>`+this.format(t,i?.toObject)}async getAutoRangeColumnString(i){let t=await StiElementDataCache.tryToGetOrCreate(i);if(null==t)return"";let r=t.rows.map(t=>t[0]).filter(t=>null!=t&&t instanceof DateTime);if(r.length){let t=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().min(),e=r.filter(t=>t instanceof DateTime)[Stimulsoft.System.StiObject.stimulsoft]().max();return this.format(i,t)+`<<>>`+this.format(i,e)}return""}getRangeColumnString(t){let e={ref:null},i={ref:null};return StiDatePickerHelper.calculateRangeFromInitial(t.initialRangeSelection,e,i),this.format(t,e.ref)+`<<>>`+this.format(t,i.ref)}},__.Q.StiListBoxHelper),StiCheckBox=Stimulsoft.Report.Components.StiCheckBox,StiCheckStyle=Stimulsoft.Report.Components.StiCheckStyle,IStiShape=Stimulsoft.Report.Components.IStiShape;{class Kw0 extends __.A.StiElementExportTool{async render(t,l,e,i){if(this.renderEmptyDataMessage(t,l,e.clone(),i))return;let n=l.report,s=l.page,o=t.as(StiListBoxElement),a=l.clone(!0,!1),r=(i.renderSinglePage||(e.height=Number.MAX_VALUE),StiExportTool.isAllowOpacity(i)),u=StiExportTool.getScaleFactor(l,i),S=(await this.renderItems(a,e.clone(),t,r,u),0),m=l.top;0<a.components.count&&(m+=a.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top));while(1){let t=a.getComponentsList(),r=0;for(let i of t){let t=i.bottom,e=i.left;i.is(IStiShape)&&(t+=StiElementConsts.ListBox.ItemHeight/3),null!=o?(o.orientation==StiItemOrientation.Vertical&&t<=l.height||o.orientation==StiItemOrientation.Horizontal&&e<=l.width||0==r)&&(a.components.remove(i),l.components.add(i)):t<=l.height&&(a.components.remove(i),l.components.add(i)),r++}if(i.renderSinglePage||0==a.components.count)break;let e=a.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top);a.getComponentsList().forEach(t=>t.top=t.top-e+1),n.renderedPages.count<=++S&&n.renderedPages.add(s.clone(!0,!1)),s=n.renderedPages.getByIndex(S),l=l.clone(!0,!1),i.renderSingleElement?(l.top=0,l.left=0):l.top=m,s.components.add(l)}for(let t of l.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=n,t.page=s})}static getCheckStyle(t,e){let i=t,r=t.is(StiListBoxElement)&&t.as(StiListBoxElement).selectionMode==StiItemSelectionMode.One&&t.as(StiListBoxElement).selectionType==StiListBoxSelectionType.RadioButton,l=r?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle,n=r?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle;if(0==i.userFilters.length)return r?n:l;if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse))return n;let s=e?.toString(),o=e?.value?.toString();if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo))return i.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo&&(t.value==s||t.value==o))?l:n;if(i.userFilters.some(t=>t.condition==StiDataFilterCondition.NotEqualTo))return i.userFilters.some(t=>t.condition==StiDataFilterCondition.NotEqualTo&&(t.value==s||t.value==o))?n:l;return n}async renderItems(r,l,n,s,o){let t=await StiElementDataCache.tryToGetOrCreate(n);if(null==t)return;let e=n,a=StiListBoxHelper.fetchItems(e,t,e.showBlanks);if(null!=a){let t=a.map(t=>null==t?"":null==t.label&&null!=t.value&&t.value instanceof DateTime?t.value.toShortDateString():t.toString()),e=a.map(t=>Kw0.getCheckStyle(n,t)),i=a.map(t=>!1);this.renderItems2(r,l.clone(),n,t,e,i,s,o)}}renderItems2(n,s,o,a,u,S,m,h){let c=o,d=c.selectionMode==StiItemSelectionMode.Multi,p=c.selectionMode==StiItemSelectionMode.One&&o.is(StiListBoxElement)&&o.as(StiListBoxElement).selectionType==StiListBoxSelectionType.RadioButton,g=d||p,b=o.is(IStiListBoxElement)&&o.orientation==StiItemOrientation.Horizontal,C=o,f=StiDashboardStyleHelper.getFont(o),y=(f=null!=f?StiFontUtils.changeFontSize(f,f.size*h):new Font("Arial",8),b?this.getHorizontalItemAutoWidth(c,f,a,s.width,g):s.width),w=b?s.height:StiElementConsts.ListBox.ItemHeight,M=s.x,I=s.y;if(c.showAllValue){b&&0==y&&(y=this.measureItemWidth(StiLocHelper.locAll,f,g));let t=new Rectangle(M,I,y,w),e=p?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle;0<C.userFilters.length&&(e=p?StiCheckStyle.NoneCircle:C.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse)?StiCheckStyle.NoneRectangle:StiCheckStyle.DotRectangle),this.renderItem(n,t,o,StiLocHelper.locAll,e,b?StiBorderSides.Right:StiBorderSides.Bottom,d,p,!1,m,h),b?M+=y+1:I+=w+1}if(null!=a){let r=0,l=0;if(0<(l=o.is(IStiListBoxElement)?o.maxSelectedItems:l)&&null!=u){let e=0,i=p?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle,r=p?StiCheckStyle.DotCircle:StiCheckStyle.CheckRectangle;for(let t=0;t<u.length;t++)u[t]==r&&(e<l?e++:u[t]=i)}for(let i=0;i<a.length;i++){b&&0==y&&(y=this.measureItemWidth(a[i],f,g));let t=new Rectangle(M+r,I,y-r,w),e=u[i];if(p&&0==C.userFilters.length&&!c.showAllValue&&0==i&&(e=StiCheckStyle.DotCircle),this.renderItem(n,t,o,a[i],e,StiBorderSides.None,d,p,S[i],m,h),S[i]&&(r+=StiElementConsts.ListBox.CheckBoxWidth),b?M+=y+1:I+=w+1,b&&M>=s.right||!b&&I>=s.bottom)break}}}getHorizontalItemAutoWidth(t,e,i,r,l){let n=0,s=0;if(null!=i)while(n<r&&s<i.length)n+=this.measureItemWidth(i[s],e,l),s++;return t.showAllValue&&(this.measureItemWidth(StiLocHelper.locAll,e,l),s++),n<r&&0<s?r/s:0}measureItemWidth(t,e,i){let r=StiElementConsts.Table.Font.getGdiFont(1,null,e),l=Graphics.measureString(t,r,1e6),n=l.width;return i&&(n+=StiElementConsts.ListBox.CheckBoxWidth),n}renderItem(e,i,r,t,l,n,s,o,a,u,S){if(s||o){let t=r.is(IStiListBoxElement)&&r.orientation==StiItemOrientation.Horizontal;Kw0.renderCheckControl(e,i.clone(),r,l,t?StiBorderSides.None:n,o,u,S),i.x+=StiElementConsts.ListBox.CheckBoxWidth*S,i.width-=StiElementConsts.ListBox.CheckBoxWidth*S}let m=StiDashboardStyleHelper.getForeColor(r),h=StiDashboardStyleHelper.getBackColor(r,null,u),c=StiDashboardStyleHelper.getFont(r),d=(c=null!=c?StiFontUtils.changeFontSize(c,c.size*S):new Font("Arial",8),m=this.checkNegativeColor(t,m,r),this.format(r.as(IStiControlElement),t)),p=new StiText(i),g=(p.name=r.name+`_Item`,p.allowHtmlTags=!0,p.margins=s||o?new StiMargins(1,0,0,0):StiMargins.empty,p.border=n!=StiBorderSides.None?new StiBorder(n,Color.gray,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),p.brush=new StiSolidBrush(h),p.horAlignment=StiTextHorAlignment.Left,p.vertAlignment=StiVertAlignment.Center,p.text=d,p.textBrush=new StiSolidBrush(m),p.wordWrap=!1,p.font=c,r.as(IStiControlElement));null==g||g.textFormat.is(StiGeneralFormatService)||(p.excelDataValue=d),e.components.add(p)}static renderCheckControl(t,e,i,r,l,n,s,o){let a=StiDashboardStyleHelper.getForeColor(i),u=StiDashboardStyleHelper.getBackColor(i,null,s),S=(e=new Rectangle(e.x,e.y,StiElementConsts.ListBox.CheckBoxWidth*o,e.height),new StiCheckBox(e));S.name=i.name+`_ItemCheckBox`,S.border=l!=StiBorderSides.None?new StiBorder(l,Color.gray,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),S.contourColor=Color.transparent,S.textBrush=new StiSolidBrush(a),S.brush=new StiSolidBrush(u),S.checkStyleForTrue=r,S.checkStyleForFalse=n?StiCheckStyle.NoneCircle:StiCheckStyle.NoneRectangle,S.checkedValue=r!=StiCheckStyle.NoneRectangle&&r!=StiCheckStyle.NoneCircle,t.components.add(S)}checkNegativeColor(e,i,t){if(t.is(IStiTextFormat)&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)){let t=StiValueHelper.tryToNumber(e);return null==t||0<=t?i:Stimulsoft.StiOptions.Engine.negativeColor}return i}}__.A.StiListBoxElementExportTool=Kw0}let StiVerticalLinePrimitive=Stimulsoft.Report.Components.StiVerticalLinePrimitive,StiFlowchartSortShapeType=Stimulsoft.Report.Components.StiFlowchartSortShapeType;{class cz0 extends __.A.StiElementExportTool{async render(t,e,i,r){let l=t.as(StiNumberBoxElement);if(null==l.getValueMeter())return;l.viewMode==StiNumberViewMode.NumberBox?await this.createContentForNumberBoxViewMode(l,e,i,r):await this.createContentForSliderViewMode(l,e,i)}async createContentForNumberBoxViewMode(l,n,s,t){let o=s.height+2*s.y,a=__.A.StiExportTool.isAllowOpacity(t),u=await StiNumberBoxHelper.getInitialValue(l);if(u[Stimulsoft.System.StiObject.stimulsoft]().getType()==Stimulsoft.Report.DecimalRange){let t=new Rectangle(s.x,s.y,s.width/2,s.height),e=1,i=new Rectangle(t.right,o/4,e,o/2),r=new Rectangle(t.right,s.y,s.width/2,s.height);this.paintItem(n,l,t,u.from,a),this.paintSeparator(n,l,i),this.paintItem(n,l,r,u.to,a)}else if(Stimulsoft.System.Type.isNumericType(Stimulsoft.System.Type.getType(u))){let t=u,e=10,i=new Rectangle(s.right-e-3,o/3,e,o/3);this.paintItem(n,l,s,t,a),this.paintNavButtons(n,l,i)}}async createContentForSliderViewMode(c,d,p){let t=StiDashboardStyleHelper.getControlStyle(c),g=StiDashboardStyleHelper.getForeColor(c,t.foreColor),b=t.selectedBackColor,C=t.glyphColor,f=t.separatorColor,y=StiDashboardStyleHelper.getFont(c),w=1.4*c.font.size,M=2,I=2,T=p.height/2-2*M,x=T+2*I,D=p.height-T-2*I,F=4,v=8,A=D+T/2+I-F-1,E=4,R=await StiNumberBoxHelper.getInitialValue(c);if(R&&R instanceof Stimulsoft.Report.DecimalRange){let t=R,e=p.width-2*v-2*x-2*M,i=v+.2*e+M,r=i+x,l=r+.6*e+M,n=l+x+M,s=new StiShape(new Rectangle(p.x+v,A,.2*e,F)),o=(s.name=c.name+`_LeftLine`,s.shapeType=new StiRectangleShapeType,s.brush=new StiSolidBrush(f),s.borderColor=Color.transparent,s.style=StiPenStyle.None,s.size=0,d.components.add(s),new StiShape(new Rectangle(p.x+i+2,D,T,T))),a=(o.name=c.name+`_LeftCircle`,o.shapeType=new StiOvalShapeType,o.brush=new StiSolidBrush(f),o.borderColor=C,o.size=I,d.components.add(o),new StiShape(new Rectangle(p.x+r,A,.6*e,F))),u=(a.name=c.name+`_MiddleLine`,a.shapeType=new StiRectangleShapeType,a.brush=new StiSolidBrush(b),a.borderColor=Color.transparent,a.style=StiPenStyle.None,a.size=0,d.components.add(a),new StiShape(new Rectangle(p.x+l+2,D,T,T))),S=(u.name=c.name+`_RightCircle`,u.shapeType=new StiOvalShapeType,u.brush=new StiSolidBrush(f),u.borderColor=C,u.size=I,d.components.add(u),new StiShape(new Rectangle(p.x+n,A,.2*e,F))),m=(S.name=c.name+`_RightLine`,S.shapeType=new StiRectangleShapeType,S.brush=new StiSolidBrush(f),S.borderColor=Color.transparent,S.style=StiPenStyle.None,S.size=0,d.components.add(S),new StiText(new Rectangle(p.x+E,p.y+E,p.width/2-E,w))),h=(m.name=c.name+`_LeftText`,m.text=t.from!=t.to?cz0.formatValue(c,t.from):"20",m.font=y,m.textBrush=new StiSolidBrush(g),m.brush=new StiSolidBrush(Color.transparent),d.components.add(m),new StiText(new Rectangle(p.x+p.width/2,p.y+E,p.width/2-E,w)));h.name=c.name+`_RightText`,h.text=t.from!=t.to?cz0.formatValue(c,t.to):"80",h.font=y,h.textBrush=new StiSolidBrush(g),h.brush=new StiSolidBrush(Color.transparent),h.horAlignment=StiTextHorAlignment.Right,d.components.add(h)}else if("number"==typeof R){let t=StiValueHelper.tryToNumber(R),e=p.width-2*v-x-2*M,i=v+.2*e+M,r=new StiShape(new Rectangle(p.x+v,A,.2*e,F)),l=(r.name=c.name+`_LeftLine`,r.shapeType=new StiRectangleShapeType,r.brush=new StiSolidBrush(f),r.borderColor=Color.transparent,r.style=StiPenStyle.None,r.size=0,d.components.add(r),new StiShape(new Rectangle(p.x+i+2,D,T,T))),n=(l.name=c.name+`_MiddleCircle`,l.shapeType=new StiOvalShapeType,l.brush=new StiSolidBrush(f),l.borderColor=C,l.size=I,d.components.add(l),new StiShape(new Rectangle(p.x+i+x+M,A,.8*e,F))),s=(n.name=c.name+`_RightLine`,n.shapeType=new StiRectangleShapeType,n.brush=new StiSolidBrush(f),n.borderColor=Color.transparent,n.style=StiPenStyle.None,n.size=0,d.components.add(n),new StiText(new Rectangle(p.x,p.y+E,p.width,w)));s.name=c.name+`_MiddleText`,s.text=0!=t?cz0.formatValue(c,t):"20",s.font=y,s.textBrush=new StiSolidBrush(g),s.brush=new StiSolidBrush(Color.transparent),s.horAlignment=StiTextHorAlignment.Center,d.components.add(s)}}paintItem(t,e,i,r,l){let n=StiDashboardStyleHelper.getForeColor(e),s=StiDashboardStyleHelper.getBackColor(e,null,l),o=new StiText(i);o.name=e.name+`_NumberBox`,o.allowHtmlTags=!0,o.vertAlignment=StiVertAlignment.Center,o.horAlignment=Enum.parse(StiTextHorAlignment,Enum.getName(StiHorAlignment,e.horAlignment)),o.textBrush=new StiSolidBrush(n),o.brush=new StiSolidBrush(s),o.text=cz0.formatValue(e,r),o.font=StiDashboardStyleHelper.getFont(e),t.components.add(o)}paintSeparator(t,e,i){let r=new StiVerticalLinePrimitive(i);r.name=e.name+`_NumberBoxSep`,r.color=cz0.getSeparatorColor(e),t.components.add(r)}paintNavButtons(t,e,i){let r=new StiShape(i);r.name=e.name+`_NumberBoxButtons`,r.shapeType=new StiFlowchartSortShapeType,r.borderColor=StiDashboardStyleHelper.getForeColor(e),t.components.add(r)}static formatValue(t,e){return t.textFormat.format(e)}static getSeparatorColor(t){return StiDashboardStyleHelper.getSeparatorColor(t)}}__.A.StiNumberBoxElementExportTool=cz0}let StiOnlineMapHelper=__.h.StiOnlineMapHelper,StiMapMode=Stimulsoft.Report.Maps.StiMapMode,StiDockStyle=(__.A.StiOnlineMapElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let l=await StiElementDataCache.tryToGetOrCreate(t),n=StiOnlineMapHelper.calculateMapData(l,t),s=t,o=new StiMap;if(o.stretch=!0,o.page=s.page,o.dataTable=l,e.report.dictionary=s.report.dictionary,o.latitude=s.latitude?.expression,o.longitude=s.longitude?.expression,o.mapMode=StiMapMode.Online,o.provider=s.provider,n.pushpins)o.pushPins=`[${n.pushpins?.map(t=>`"pp=${t.lon},${t.lat};60"`).join(",")}]`;else if(n.osmLocations)try{let t=await fetch("https://reports.stimulsoft.com/1/maplocation",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.osmLocations}),e=await t.json(),i=JSON.parse(e.Result);o.pushPins=`[${i.filter(t=>t.center&&t.found).map(t=>`"pp=${t.center.replace("[","").replace("]","").split(",").reverse().join(",")};60"`).join(",")}]`}catch{o.pushPins="[pp=0,0;60]"}else o.pushPins="[pp=0,0;60]";o.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,r.is(StiSvgDashboardExportSettings)||r.is(StiHtmlDashboardExportSettings))),o.left=i.left,o.top=i.top,o.width=i.width,o.height=i.height,e.components.add(o)}},__.A.StiPanelElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){let l=StiDashboardStyleHelper.getBackColor(t),n=new StiContainer(i);n.name=t.name+`_Content`,n.brush=new StiSolidBrush(l),e.components.add(n)}},Stimulsoft.Report.Components.StiDockStyle),StiCrossTabBuilder=Stimulsoft.Report.Engine.StiCrossTabBuilder,StiCrossTabParams=Stimulsoft.Report.CrossTab.StiCrossTabParams,StiPivotTableHelper=__.h.StiPivotTableHelper;{class VA0 extends __.A.StiElementExportTool{async render(l,n,s,o){if(this.renderEmptyDataMessage(l,n,s.clone(),o))return;let a=n.report,e=l.as(StiPivotTableElement),u=n.page,t=o.is(StiSvgDashboardExportSettings)&&o.designMode,i=StiExportSettingsHelper.isDataExport(o),S=StiExportTool.getScaleFactor(n,o),m=null,r=1!=StiScale.factor||1!=S,h=null==(m=r?m:StiPivotTableToCrossTabCache.get(e));if(h||r){let t=await StiElementDataCache.tryToGetOrCreate(e);null==t&&(t=new StiDataTable),m=await StiPivotTableHelper.convertToCrossTab(e,t,S),r||(StiPivotTableToCrossTabCache.put(e,m),StiPivotToConvertedStateCache.putFalse(e))}StiPivotTableHelper.applyStyle(e,m,i),t&&(VA0.renderForWebDesigner(m,e),StiPivotTableToCrossTabCache.remove(e)),VA0.convertSizes(e,m,!r);let c=m.crossTabInfo.cross,d=c.widths[Stimulsoft.System.StiObject.stimulsoft]().sum(),p=c.heights[Stimulsoft.System.StiObject.stimulsoft]().sum();if(d<=s.width&&p<=s.height||t||o.renderSinglePage)StiBorderExportHelper.render(l,n,o),StiBackColorExportHelper.render(l,n),VA0.renderCells(n,s,s,null,m,t);else if(o.is(StiExcelDashboardExportSettings)){!o.renderSingleElement&&0!=a.renderedPages.getByIndex(0).components.count||a.renderedPages.removeAt(0),u=new StiPage;let t=new StiPanel,e=(t.name=l.name,t.clientRectangle=new Rectangle(0,0,d,p),u.components.add(t),a.renderedPages.add(u),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),await StiTitleExportHelper.render(l,t,o)),i=(a.renderedPages.remove(u),2*d-e.width+e.left+1),r=2*p-e.height+e.top+1;(u=new StiPage).width=i,u.height=r,(t=new StiPanel).name=l.name,t.clientRectangle=new Rectangle(0,0,i,r),u.components.add(t),a.renderedPages.add(u),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),e=await StiTitleExportHelper.render(l,t,o),u.unlimitedHeight=!0,VA0.renderCells(t,e,e,null,m,!1)}else{let r=u.clone(!0,!1),t=(a.renderedPages.add(r),n.clone(!0,!1)),e=(t.left=0,t.top=0,t.width=r.width,t.height=r.height,s=new Rectangle(0,0,r.width,r.height),r.components.add(t),n=t,!o.renderSingleElement&&0!=a.renderedPages.getByIndex(0).components.count||a.renderedPages.removeAt(0),StiBorderExportHelper.render(l,n,o),StiBackColorExportHelper.render(l,n),await StiTitleExportHelper.render(l,n,o)),i=(e=StiLayoutExportHelper.excludePadding(l,e,S),e=StiLayoutExportHelper.excludeCornerRadius(l,e,S),new Rectangle(e.left,e.top,e.width+d,e.height+p));u.unlimitedHeight=!0,VA0.renderCells(n,i,e,null,m,!1);for(let i=0;i<r.segmentPerWidth;i++)for(let e=0;e<r.segmentPerHeight;e++)if(0!=i||0!=e){let t=n.clone(!0,!1);t.left=i*u.width,t.top=e*u.height,t.width=u.width,t.height=u.height,r.components.insert(0,t),StiBorderExportHelper.render(l,t,o),StiBackColorExportHelper.render(l,t),await StiTitleExportHelper.render(l,t,o)}}for(let t of n.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=a,t.page=u})}static renderForWebDesigner(t,e){let i=e.columns.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report)),r=e.rows.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report)),l=e.summaries.filter(t=>StiPivotTableColumnVisibilityHelper.getVisible(t,e.report));if(!(1<i.length||1<r.length))return;let n=t.crossTabInfo.cross.cells,s=0,o=[],a=[],u=null,S=null,m=e.summaryDirection==StiSummaryDirection.LeftToRight?l.length:1,h=e.summaryDirection==StiSummaryDirection.UpToDown?l.length:1,c=StiPivotTableHelper.getHeadersBounds(n);for(let i=0;i<n.length;i++){let e=n[i][0];for(e.cellType==StiCellType.LeftTopLineMain&&((u=new WA0).cell=e,u.x=i,u.width=e.width),e.cellType==StiCellType.RightTopLineMain&&((S=new WA0).cell=e,S.x=i),s=0;s<n[i].length;s++)if((e=n[i][s]).cellType==StiCellType.CornerColMain||e.cellType==StiCellType.CornerRowMain){let t=new WA0;t.cell=e,t.x=i,t.y=s,t.width=e.width,t.height=e.height,o.push(t)}}if(-1<c.top){let l=-1;for(let r=0;r<n.length;r++){let i=n[r][c.top];if(i.cellType==StiCellType.HeaderColMain||i.cellType==StiCellType.HeaderColTotalMain){l=-1==l?r:l;let t=c.bottom-c.top+(1<m?0:1),e=new WA0;if(e.cell=i,e.x=l,e.y=c.top,e.height=t,e.width=m,o.push(e),i.text=(1<t&&i.cellType!=StiCellType.HeaderColTotalMain?"> ":"")+i.text,a.push(r+i.width-1),1<m)for(let e=r+i.width-m;e<r+i.width;e++){let t=new WA0;t.cell=n[e][c.bottom],t.x=l,t.y=c.bottom,o.push(t),a.push(e),l++}else l++}}}if(-1<c.left){let r=-1;for(s=0;s<n[0].length;s++){let i=n[0][s];if(i.cellType==StiCellType.HeaderRowMain||i.cellType==StiCellType.HeaderRowTotalMain){r=-1==r?s:r;let t=c.right+(1<h?0:1),e=new WA0;if(e.cell=i,e.x=0,e.y=r,e.height=h,e.width=t,e.cellRow=1==h?s+i.height-1:-1,o.push(e),i.text=(1<t&&i.cellType!=StiCellType.HeaderRowTotalMain?"> ":"")+i.text,1<h)for(let e=s+i.height-h;e<s+i.height;e++){let t=new WA0;t.cell=n[c.right][e],t.x=c.right,t.y=r,t.cellRow=e,o.push(t),r++}else r++}}}null!=u&&(u.width=c.right-c.left+1,o.push(u)),null!=S&&(S.width=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.x)-c.right,o.push(S));let d=StiDashboardStyleHelper.getPivotTableStyle(e),p=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.y)+1,g=o[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.x)+1,b=StiArray.create2(StiCell,g,p);for(let r of o)if(b[r.x][r.y]=r.cell,r.cell.width=r.width,r.cell.height=r.height,0<=r.cellRow)for(s=r.y;s<r.y+r.height;s++){let i=c.right+1;for(let t=r.width;t<n.length;t++)if(0<=a.indexOf(t)){b[i++][s]=n[t][r.cellRow+s-r.y],b[i-1][s].field.border.side=t==n.length-1?StiBorderSides.None:StiBorderSides.Right;let e=b[i-1][s];if(null!=e&&null!=e.field&&e.field.brush.is(StiSolidBrush)){let t=e.field.brush.color;(t.equals(d.alternatingCellBackColor)||t.equals(d.cellBackColor))&&(e.field.brush=new StiSolidBrush(s%2!=0?d.alternatingCellBackColor:d.cellBackColor),e.field.textBrush=new StiSolidBrush(s%2!=0?d.alternatingCellForeColor:d.cellForeColor))}null!=e&&null!=e.field&&(e.field.brush=null!=e.field.conditionBrush?e.field.conditionBrush:e.field.brush,e.field.textBrush=null!=e.field.conditionTextBrush?e.field.conditionTextBrush:e.field.textBrush)}}n=StiArray.create2(StiCell,g,0);for(let e=0;e<g;e++){n[e]=StiArray.create(StiCell,p);for(let t=0;t<p;t++)n[e][t]=null!=b[e][t]?b[e][t]:new StiCell,null!=n[e][t].field&&e==g-1&&(n[e][t].field.border.side|=StiBorderSides.Top),0<t&&(n[e][t].parentCell=n[e][t])}let C=StiArray.create(Number,p),f=StiArray.create(Number,g);StiArray.copy(t.crossTabInfo.cross.heights,0,C,p),StiArray.copy(t.crossTabInfo.cross.widths,0,f,g),t.crossTabInfo.cross.cells=n,t.crossTabInfo.cross.widths=f,t.crossTabInfo.cross.heights=C,t.crossTabInfo.cross.doAutoSize()}static renderCells(t,e,i,r,l,n){l.page.unlimitedHeight=!0,t.canBreak=!0,t.dockStyle=StiDockStyle.None;let s=new StiCrossTabParams,o=(s.startColumn=0,s.startRow=0,s.destinationContainer=t,s.destinationRectangle=i,s.forceNoBreak=n,new StiCrossTabBuilder);o.renderCrossTabUnlimitedBreakable(s,l,t,e.clone())}static convertSizes(t,e,i){let r=e.crossTabInfo.cross,l=t.report.unit;StiPivotToConvertedStateCache.isConverted(t)&&i||(this.convert(r.heights,l),this.convert(r.widths,l),this.convert(r.coordX,l),this.convert(r.coordY,l),i&&StiPivotToConvertedStateCache.putTrue(t))}static convert(e,i){for(let t=0;t<e.length;t++)e[t]=i.convertToHInches(e[t])}}__.A.StiPivotTableElementExportTool=VA0;class WA0{constructor(){this.x=0,this.y=0,this.width=1,this.height=1,this.cellRow=-1}}}__.A.StiRangeSelectorElementExportTool=class extends __.A.StiElementExportTool{async paintContent(t,e,i){try{}catch(t){}finally{}}},__.A.StiRegionMapElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){if(this.renderEmptyDataMessage(t,e,i.clone(),r))return;let l=t,n=StiDashboardStyleHelper.getElementFontFromStyle(t,l.font),s=new StiMap;if(s.stretch=!0,s.page=l.page,s.mapType=l.mapType,s.dataFrom=l.dataFrom,s.language=l.language,s.mapStyle=StiDashboardStyleHelper.getMapStyleIdent(l),s.componentStyle=l.customStyleName,s.mapIdent=l.mapIdent,s.mapMode=StiMapMode.Choropleth,s.showValue=l.showValue,s.shortValue=l.shortValue,s.showZeros=l.showZeros,s.showBubble=l.showBubble,s.colorEach=l.colorEach,s.show3D=l.show3D,s.displayNameType=l.showName,s.colorDataColumn=null==l.colorMeter?"":l.colorMeter.expression,s.groupDataColumn=null==l.groupMeter?"":l.groupMeter.expression,s.valueDataColumn=null==l.valueMeter?"":l.valueMeter.expression,s.nameDataColumn=null==l.nameMeter?"":l.nameMeter.expression,s.keyDataColumn=null==l.keyMeter?"":l.keyMeter.expression,s.mapData=l.mapData,s.labels=new StiMapLabels(n,l.labels.foreColor,l.labels.shadowColor,l.labels.showShadow),s.brush=new StiSolidBrush(StiDashboardStyleHelper.getBackColor(t,null,r.is(StiSvgDashboardExportSettings)||r.is(StiHtmlDashboardExportSettings))),s.left=i.left,s.top=i.top,s.width=i.width,s.height=i.height,s.valueFormat=l.valueFormat,l.dataFrom==StiMapSource.DataColumns){let t=await StiElementDataCache.tryToGetOrCreate(l);s.dataTable=t,e.report.dictionary=l.report.dictionary}e.components.add(s)}},__.A.StiShapeElementExportTool=class extends __.A.StiElementExportTool{async render(t,e,i,r){let l=t.as(StiShapeElement),n=new StiShape;n.shapeType=l.shapeType,n.size=l.size,n.borderColor=l.stroke,n.brush=l.fill,n.page=l.page,n.left=i.left,n.top=i.top,n.width=i.width,n.height=i.height,e.components.add(n)}};let StiTableElementPagingHelper=Stimulsoft.Report.Dashboard.Helpers.StiTableElementPagingHelper,StiTableColumnVisibilityHelper=Stimulsoft.Report.Dashboard.StiTableColumnVisibilityHelper,StiBubbleCellPainter=__.D.StiBubbleCellPainter,StiSparklinesCellPainter=__.D.StiSparklinesCellPainter,StiSparkline=Stimulsoft.Report.Components.StiSparkline,StiSystemVariableObject=Stimulsoft.Data.Functions.StiSystemVariableObject,StiTableElementGdiPainter=__.q.StiTableElementGdiPainter,StiTableElementHelper=__.h.StiTableElementHelper,StiDataBarsCellPainter=__.D.StiDataBarsCellPainter,StiColorScaleCellPainter=__.D.StiColorScaleCellPainter,StiTextQuality=Stimulsoft.Report.Components.StiTextQuality,StiConditionIconPainter=__.D.StiConditionIconPainter,TimeOnly=Stimulsoft.System.TimeOnly,DateOnly=Stimulsoft.System.DateOnly;{class aD0 extends __.A.StiElementExportTool{async render(t,l,e,n){if(null==n||this.renderEmptyDataMessage(t,l,e.clone(),n))return;let s=l.report,o=l.page,i=n.is(StiSvgDashboardExportSettings)&&n.as(StiSvgDashboardExportSettings).designMode,r=t.as(StiTableElement),a=null==n?__.f.StiDashboardExportFormat.Document:n.format,u=StiExportSettingsHelper.isDataExport(n),S=n.renderSingleElement&&(a==__.f.StiDashboardExportFormat.Excel||a==__.f.StiDashboardExportFormat.Html||a==__.f.StiDashboardExportFormat.Image),m=(n.renderSinglePage&&!S||(e.height=Number.MAX_VALUE),delete r.cacheStyle,l.clone(!0,!1)),h=StiExportTool.getScaleFactor(l,n),c=(await aD0.renderCells(m,e,r,h,a,u,i),S&&aD0.fitToTable(t,l,e,n,m.components.list,u),0),d=l.top,p=(0<m.components.count&&(d+=m.getComponentsList()[Stimulsoft.System.StiObject.stimulsoft]().min(t=>t.top)),0),g=0;while(1){let i=!1,r=Number.MAX_VALUE;for(let e=0;e<m.components.length;e++){let t=m.components.getByIndex(e);if(t.bottom<=p)continue;t.bottom<=p+l.height-g?(t.left<l.width||n.format==__.f.StiDashboardExportFormat.Data)&&(t.top=t.top-p+g,l.components.add(t),t.right>l.width)&&n.format!=__.f.StiDashboardExportFormat.Data&&(t.width=Math.max(0,l.width-t.left)):(i=!0,r=Math.min(r,t.top))}if(p=r,g=1,null!=n&&n.renderSinglePage||!i)break;s.renderedPages.count<=++c&&s.renderedPages.add(o.clone(!0,!1)),o=s.renderedPages.getByIndex(c),l=l.clone(!0,!1),null!=n&&n.renderSingleElement?u||(l.top=t.as(IStiMargin).margin.top,l.left=t.as(IStiMargin).margin.left):l.top=d,o.components.add(l)}for(let t of l.report.renderedPages.list)t.getComponentsList().forEach(t=>{t.report=s,t.page=o})}static async renderCellsForViewer(t,i,h){let c=t.as(StiTableElement);if(null==c)return null;let d=await StiElementDataCache.getOrCreate(c);if(null==d)return null;d=this.processDataTableWithTopN(d);let p=1,g=[],b=StiElementConsts.Table.getHeight(c.getDataFont(),p),C=d.meters.filter(t=>t.is(StiTableColumn)),e=null!=C.find(t=>t.showTotalSummary),f=(delete c.cacheStyle,0),y=0<c.rowsPerPage,w=0,M=d.rows.length-1;if(y){let t=null!=i&&null!=i[c.key]?i[c.key]:1,e=Math.ceil(d.rows.length/c.rowsPerPage);t>e&&(t=e),w=(t-1)*c.rowsPerPage,M=Math.min(t*c.rowsPerPage-1,d.rows.length-1)}for(let m of C){m.cache={};let t=await this.getColumnVisibilityState(m,c.report);if(!t){f++;continue}let s=aD0.measureHeader(c,m,p);if(m.is(StiSparklinesColumn))s=aD0.measureSparklinesCell(p,s);else if(0<d.rows.length){for(let r=w;r<=M;r++){let t=d.rows[r],e=t[f],i;i=m.is2(StiIndicatorColumn)?aD0.measureIndicatorCell(c,m,p,e):m.is2(StiDataBarsColumn)?aD0.measureDataBarsCell(c,m,p,e):aD0.measureCommonCell(c,m,p,e,s).width,s=Math.max(s,i)}if(m.showTotalSummary){let t=StiTableElementHelper.calculateTotal(m,f,d),e=this.measureFooter(c,m,p,t);s=Math.max(s,e)}}let o=StiTableElementHelper.minDataColumnValue(m,d,f),a=StiTableElementHelper.maxDataColumnValue(m,d,f),u=y&&h?w:0,S=y&&h?M:d.rows.length-1;if(0<d.rows.length)for(let n=u;n<=S;n++){if(g.length<=S-u&&g.push([]),y&&!h&&(n<w||n>M))continue;let r=d.rows[n],e=this.processRowValue(n,r[f],m),t=new Rectangle(0,0,s,b),i=new StiPanel,l=(await aD0.renderCell(i,t,c,r,C.map(t=>t.key),m,p,e,o,a,1==(1&n),__.f.StiDashboardExportFormat.Html,!1),{});if(0<c.tableConditions.length&&0<i.components.length){let t=i.components.getByIndex(0);t.is(StiText)||(t.is(IStiBrush)&&(l["backColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.as(IStiBrush).brush))),t.is(IStiTextBrush)&&(l["textColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.as(IStiTextBrush).textBrush))))}if("boolean"==typeof e)l["boolValue"]=e;else for(let t of i.components.list)if(t.is(StiText)){if(l["text"]=t.text,l["textColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.textBrush)),l["backColor"]=ColorTranslator.toHtml(StiBrush.toColor(t.brush)),l["textWidth"]=t.width,l["textHeight"]=t.height,0<c.tableConditions.length){let t=c.as(IStiFont)?.font,e=0<c.tableConditions.length?await StiTableElementConditionHelper.processFontStyle(t,m.key,c,r,C.map(t=>t.key)):FontStyle.Regular,i=(t=new Font(t.fontFamily.name,t.size,e),{});i["bold"]=t.bold,i["italic"]=t.italic,i["underline"]=t.underline,i["strikeout"]=t.strikeout,l["textFontStyle"]=i}if(null!=e){let t=null;null!=(t=e instanceof DateTime||e instanceof DateOnly?e.toString("MM'/'dd'/'yyyy"):e instanceof TimeOnly?e.toString("HH':'mm':'ss"):e.toString())&&t!=l["text"]&&(l["value"]=t)}}else t.is(StiImage)?(l["image"]=null!=t.imageToDraw?Stimulsoft.Base.Drawing.StiImageConverter.imageToString(t.imageToDraw):null,l["imageWidth"]=t.width,l["imageHeight"]=t.height,0<c.tableConditions.length&&(l["iconAlignment"]=Enum.getName(StiIconAlignment,c.tableConditions[0].iconAlignment).toLowerCase())):t.is(StiSparkline)&&(l["sparkline"]=Stimulsoft.Report.Export.StiHtmlExportService.getSparklineData(null,t,t.width,t.height),l["sparklineWidth"]=t.width,l["sparklineHeight"]=t.height);null==l["boolValue"]&&null==l["text"]&&null==l["image"]&&(l["text"]=e),g[h?n-u:n].push(l)}if(e){g.length<d.rows.length+1&&g.push([]);let e={};if(e["text"]="",m.showTotalSummary){let t=StiTableElementHelper.calculateTotal(m,f,d);e["text"]=m.summaryType==StiSummaryColumnType.Count?StiMath.trunc(t).toString():StiTextFormatHelper.formatBasedOnColumnType(c,m,t)}g[g.length-1].push(e)}f++}return g}static fitToTable(r,l,n,t,s,e){if(0==s.length)return;if(n.width=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.right),n.height=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.bottom),!e){let t=r[Stimulsoft.System.StiObject.stimulsoft]().as(IStiPadding).padding,e=(n.width=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.right)+t.right,n.height=s[Stimulsoft.System.StiObject.stimulsoft]().max(t=>t.bottom)+t.bottom,0<l.components.count?l.components.list[l.components.count-1].as(StiText):null),i=(null!=e&&(e.width=n.width),r.as(IStiMargin).margin);n.width+=i.left+i.right,n.height+=i.top+i.bottom}t.format,__.f.StiDashboardExportFormat.Image,l.width=l.page.width=n.width,l.height=l.page.height=n.height}static async renderCells(u,S,m,h,c,d,r){let p=await StiElementDataCache.tryToGetOrCreate(m);if(null==p)return;p=this.processDataTableWithTopN(p);let e=StiElementConsts.Table.getHeight(m.getColumnFont(),h),t=StiElementConsts.Table.getHeight(m.getDataFont(),h),i=p.meters.filter(t=>t.is(StiTableColumn)),l=null!=i.find(t=>t.showTotalSummary),n=r?0:m.currentPageIndex,s=0!=m.rowsPerPage&&-1!=n&&c!=__.f.StiDashboardExportFormat.Excel,o=1,g=(s&&(o=StiTableElementPagingHelper.getNumberOfPages(p.rows.length,m.rowsPerPage))<=1&&(s=!1),p.rows);if(s){let t=g.slice(m.rowsPerPage*n).slice(0,m.rowsPerPage);t.length?g=t:s=!1}let b=l?StiElementConsts.Table.getHeight(m.getTotalFont(),h):0,a=s?StiElementConsts.Table.getHeight(m.getTotalFont(),h):0,C=b+a,f=[],y=[],w=0,M=i.map(t=>t.key);for(let r of i){r.cache={};let i=0,t=await this.getColumnVisibilityState(r,m.report);if(t&&(i=this.measureHeader(m,r,h),r.showTotalSummary)){let t=StiTableElementHelper.calculateTotal(r,w,p),e=this.measureFooter(m,r,h,t);i=Math.max(i,e)}f.push(i),w++}let I=S.y+e;if(I<S.bottom-C){for(let s of g){let n=t;w=-1;for(let l of i){w++;let t=await StiTableColumnVisibilityHelper.getVisible(l,m.report);if(!t)continue;let r=f[w];if(l.is(StiSparklinesColumn))r=this.measureSparklinesCell(h,r);else{let e=s[w],i;if(l.is2(StiIndicatorColumn))i=this.measureIndicatorCell(m,l,h,e);else if(l.is2(StiDataBarsColumn))i=this.measureDataBarsCell(m,l,h,e);else if(l.is2(StiBubbleColumn))i=aD0.measureBubbleCell(m,l,h,e);else{let t=this.measureCommonCell(m,l,h,e,r);i=t.width,n=Math.max(t.height,n)}r=Math.max(r,i)}f[w]=r}if(I+n>S.bottom-C&&(n=S.bottom-C-I)<1.2&&(n=1.2),y.push(n),(I+=n)>=S.bottom-C)break}y.push(t)}if(m.sizeMode==StiTableSizeMode.Fit){let e=S.width/f[Stimulsoft.System.StiObject.stimulsoft]().sum(),t=((1<e||!r)&&(f=f.map(t=>t*e)),-1);for(let n of g){if(++t>=y.length)break;w=-1;let l=y[t];for(let r of i){if(w++,r.is2(StiIndicatorColumn)||r.is2(StiDataBarsColumn))continue;if(r.is(IStiTableColumnSize)&&null!=r.size){let t=r,e=t.size.width,i=(t.size.width=f[w]-4,this.measureCommonCell(m,r,h,n[w],t.size.width));l=Math.max(i.height,l),t.size.width=e}}y[t]=l}}let T=S.x;w=0;for(let a of i){let t=await this.getColumnVisibilityState(a,m.report);if(!t){w++;continue}let o=f[w];if(c==__.f.StiDashboardExportFormat.Excel&&(o*=1.1),I=S.y,c!=__.f.StiDashboardExportFormat.Data){let t=new Rectangle(T,I,o,e);this.renderHeader(u,t,m,a,h,c,d),I+=t.height}if(I<=S.bottom-C){let l=StiTableElementHelper.minDataColumnValue(a,p,w),n=StiTableElementHelper.maxDataColumnValue(a,p,w),s=0;for(let r of g){let t=Math.ceil(y[s]),e=this.processRowValue(s,r[w],a),i=new Rectangle(T,I,o,t);if(await this.renderCell(u,i,m,r,M,a,h,e,l,n,1==(1&s),c,d),I+=t,s++,I>=S.bottom-C)break}}if(c!=__.f.StiDashboardExportFormat.Data&&!d&&l){let t=new Rectangle(T,r?S.bottom-C:I,o,b);this.renderFooter(u,t,m,a,w,h,p)}T+=o,w++}if(c!=__.f.StiDashboardExportFormat.Data&&!d&&s){let t=StiString.format(StiLocalization.get("Report","PageNofM"),n+1,o),e=T-S.x,i=new Rectangle(S.x,(r?S.bottom-C:I)+b,e,a);this.renderCurrentPageNumber(u,i,m,h,t)}}static processDataTableWithTopN(t){let e=t.meters.filter(t=>t.is(StiTableColumn)),r=t.rows,l=0;for(let i of e){let t=i.topN,e=this.processTopNElements(r,t,l);r=e.map(t=>t),l++}let i=new StiDataTable;return i.meters.push(...e),i.rows.push(...r),i}static processTopNElements(t,e,i){if(e.mode==StiDataTopNMode.None)return t;let r=[];for(let e of t){let t=StiValueHelper.tryToNumber(e[i]);r.push({key:t,value:e})}e.mode==StiDataTopNMode.Bottom?r.sort((t,e)=>t.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(e.key)):r.sort((t,e)=>e.key[Stimulsoft.System.StiObject.stimulsoft]().compareTo(t.key));let l=r.slice(0,e.count).map(t=>t.value);return l}static measureSparklinesCell(t,e){return Math.max(e,80*t)}static measureHeader(t,e,i){return StiTableElementGdiPainter.measureHeader(t,e).width*i}static measureFooter(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r);return StiTableElementGdiPainter.measureCell(l,t.getTotalFont(),e).width*i}static measureIndicatorCell(t,e,i,r){let l=e.as(StiIndicatorColumn),n=StiIndicatorCellPainter.getCellText(t,l,StiValueHelper.tryToNullableNumber(r)),s=StiTableElementGdiPainter.measureCell(n,t.getDataFont(),e).width*i;return s*=1.25}static measureDataBarsCell(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),n=StiTableElementGdiPainter.measureCell(l,t.getDataFont(),e).width*i;return e.horAlignment!=StiHorAlignment.Center&&(n*=2),n=e.is(StiDataBarsColumn)&&0<e.width?i*e.width:n}static measureBubbleCell(t,e,i,r){let l=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),n=StiTableElementGdiPainter.measureCell(l,t.getDataFont(),e).width*i,s=StiElementConsts.Table.getHeight(t.getDataFont(),i);if(e.horAlignment==StiHorAlignment.Center)return s;return n+=s}static measureCommonCell(t,e,i,r,l){if(StiImageHelper.isImage(r))return new Size(l,0);let n=StiTextFormatHelper.formatBasedOnColumnType(t,e,r),s=StiTableElementGdiPainter.measureCell(n,t.getDataFont(),e);return s.width*=i,s.height*=i,s}static renderHeader(t,e,i,r,l,n,s){let o=null!=r?StiLabelHelper.getLabel(r):"",a=StiString.isNullOrWhiteSpace(o)?i.name+`_Column`:StiNameValidator.correctName(o),u=StiDashboardStyleHelper.getTableStyle(i),S=0!=i.columns.indexOf(r)&&e.left<t.width&&!s,m=i.columns.indexOf(r)!=i.columns.length-1&&e.right<=t.width&&!s,h=(S?StiBorderSides.Left:StiBorderSides.None)|(m?StiBorderSides.Right:StiBorderSides.None),c=s?Color.black:this.getHeaderForeColor(i),d=s?Color.transparent:this.getHeaderBackColor(i),p=s?new Font("Arial",10,FontStyle.Bold):i.getColumnFont(),g=new StiText(e);g.name=a,g.allowHtmlTags=!0,g.autoWidth=!1,g.horAlignment=this.getHeaderAlignment(r),g.vertAlignment=StiVertAlignment.Center,g.wordWrap=!1,g.border=new StiBorder(h,u.lineColor,1,StiPenStyle.Solid),g.brush=new StiSolidBrush(d),g.font=StiElementConsts.Table.Font.getGdiFont(l,null,p),g.text=o,g.textFormat=null!=r.textFormat?r.textFormat.clone():null,g.textBrush=new StiSolidBrush(c),g.componentPlacement=`h.`+i.name,t.components.add(g)}static getHeaderAlignment(t){if(t.headerAlignment==StiHorAlignment.Left)return StiTextHorAlignment.Left;if(t.headerAlignment==StiHorAlignment.Right)return StiTextHorAlignment.Right;return StiTextHorAlignment.Center}static renderFooter(t,e,i,r,l,n,s){let o=this.getFooterForeColor(i),a=this.getFooterBackColor(i),u=i.getTotalFont(),S="",m=0,h=(r.showTotalSummary&&(m=StiTableElementHelper.calculateTotal(r,l,s),S=r.summaryType==StiSummaryColumnType.Count?StiMath.trunc(m).toString():StiTextFormatHelper.formatBasedOnColumnType(i,r,m)),StiTextHorAlignment.Right),c=(r.summaryAlignment==StiHorAlignment.Left?h=StiTextHorAlignment.Left:r.summaryAlignment==StiHorAlignment.Center&&(h=StiTextHorAlignment.Center),new StiText(e)),d=(c.name=i.name+`_FooterCell`,null!=r.textFormat&&r.textFormat.is(StiGeneralFormatService)?null:S);null!=r.textFormat&&(r.textFormat.is(StiCurrencyFormatService)||r.textFormat.is(StiNumberFormatService)||r.textFormat.is(StiPercentageFormatService))&&(d=m.toString()),c.border=this.getBorderSides(t,e,i,r,StiBorderSides.All),c.brush=new StiSolidBrush(a),c.excelDataValue=d,c.font=StiElementConsts.Table.Font.getGdiFont(n,null,u),c.horAlignment=h,c.vertAlignment=StiVertAlignment.Center,c.text=S,c.textBrush=new StiSolidBrush(o),c.textFormat=null!=r.textFormat?r.textFormat.clone():null,c.wordWrap=!1,c.componentPlacement=`f.`+i.name,t.components.add(c)}static renderCurrentPageNumber(t,e,i,r,l){let n=this.getFooterForeColor(i),s=this.getFooterBackColor(i),o=i.getTotalFont(),a=new StiText(e);a.name=i.name+`_CurrentPage`,a.brush=new StiSolidBrush(s),a.font=StiElementConsts.Table.Font.getGdiFont(r,null,o),a.horAlignment=StiTextHorAlignment.Center,a.vertAlignment=StiVertAlignment.Center,a.margins=new StiMargins(0,0,1,0),a.textQuality=StiTextQuality.Typographic,a.text=l,a.textBrush=new StiSolidBrush(n),a.wordWrap=!1,a.componentPlacement=`f.`+i.name,t.components.add(a)}static async renderCell(t,e,i,r,l,n,s,o,a,u,S,m,h){let c=StiDashboardStyleHelper.getTableStyle(i),d=this.getForeColor(i,n,c,S),p=StiTableElementGdiPainter.getBackgroundColor(i,i.cells,c,null!=S&&S);p=0<i.tableConditions.length?await StiTableElementConditionHelper.processBackColor(p,n.key,i,r,l):p,h?await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.None,Color.black,Color.transparent,m,!0):n.is2(StiDataBarsColumn)||n.is2(StiSparklinesColumn)||n.is2(StiIndicatorColumn)||n.is2(StiBubbleColumn)?await this.renderGraphicCell(t,e,i,r,l,n,s,o,a,u,p,c,null!=S&&S,m):n.is2(StiColorScaleColumn)?await this.drawColorScaleColumn(t,e,i,r,l,n,s,o,a,u,c,m):StiImageHelper.isImage(o)?this.renderImageCell(t,e,i,n,o,p,m):"boolean"==typeof o?await this.renderBoolCell2(t,e,i,r,l,n,s,o,d,p,m):await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.All,d,p,m,!1,null,!0,!0)}static processRowValue(t,e,i){let r=i.textFormat,l=(e?.[Stimulsoft.System.StiObject.stimulsoft]().is(StiSystemVariableObject)&&(e=e==StiSystemVariableObject.Line&&null!=r?r.format(t+1):Funcs.getSystemVariable(e?.[Stimulsoft.System.StiObject.stimulsoft]().as(StiSystemVariableObject),t+1)),i.ident==StiMeterIdent.SparklinesColumn);return e=ListExt.isList(e)&&!StiImageHelper.isImage(e)?l?ListExt.toList(e):ListExt.toList(e)?.firstOrDefault():e}static async renderGraphicCell(s,o,a,u,S,m,e,h,i,r,c,d,l,n){let p="",g=o,b=this.getForeColor(a,m,d,l),C=new XmlTextWriter(Encoding.UTF8);if(C.indentation=-1,C.writeStartElement("svg"),C.writeAttributeString("version","1.1"),C.writeAttributeString("baseProfile","full"),C.writeAttributeString("xmlns","http://www.w3.org/2000/svg"),C.writeAttributeString("xmlns:xlink","http://www.w3.org/1999/xlink"),C.writeAttributeString("xmlns:ev","http://www.w3.org/2001/xml-events"),C.writeAttributeString("height",StiSvgHelper.toUnits(o.height)),C.writeAttributeString("width",StiSvgHelper.toUnits(o.width)),C.writeStartElement("rect"),C.writeAttributeString("x","0"),C.writeAttributeString("y","0"),C.writeAttributeString("width",StiSvgHelper.toUnits(o.width)),C.writeAttributeString("height",StiSvgHelper.toUnits(o.height)),C.writeAttributeString("style",StiSvgHelper.writeFillBrush(C,c,o)),C.writeEndElement(),m.is2(StiSparklinesColumn)){let t=StiSparklinesCellPainter.castToArray(h),e=t?.map(t=>t?.[Stimulsoft.System.StiObject.stimulsoft]().toNumber()),i=m.as(StiSparklinesColumn),r=o,l=await StiTableElementConditionHelper.getIconCondition(m.key,a,u,S),n=(null!=l&&l.iconAlignment!=StiIconAlignment.None&&(l.iconAlignment==StiIconAlignment.Right?r=new Rectangle(o.x,o.y,o.width-o.height,o.height):l.iconAlignment==StiIconAlignment.Left&&(r=new Rectangle(o.x+o.height,o.y,o.width-o.height,o.height))),new StiSparkline(r));if(n.values=e,n.positiveColor=i.allowCustomColors?i.positiveColor:d.cellSparkline,n.negativeColor=i.allowCustomColors?i.negativeColor:d.cellWinLossNegative,n.showFirstLastPoints=i.showFirstLastPoints,n.showHighLowPoints=i.showHighLowPoints,n.type=i.type,n.brush=new StiSolidBrush(c),n.componentPlacement=`d.`+a.name,s.components.add(n),null!=l&&l.iconAlignment!=StiIconAlignment.None){let t=await StiConditionIconPainter.getImageWithConditionIcon(l,o,a.name);s.components.add(t)}return}let f=new StiSvgGeomWriter(C),y=StiBorderSides.None,w="GraphicCell",M=new Rectangle(0,0,o.width,o.height),I=m.horAlignment;if(m.is2(StiDataBarsColumn)){await StiDataBarsCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNumber(h),i,r,l,!1,!1),n!=__.f.StiDashboardExportFormat.Data&&(g=StiDataBarsCellPainter.calculateTextRect(o.clone(),m)).inflate(2,2),p=StiTextFormatHelper.formatBasedOnColumnType(a,m,h),b=StiDataBarsCellPainter.getForeColor(a,m,d,l,!1);let t=StiValueHelper.tryToNumber(h);t<0&&StiNegativeColorChecker.isNegativeInRed(m.textFormat)&&(b=Stimulsoft.StiOptions.Engine.negativeColor),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.Right,w="DataBarsCell"}else if(m.is2(StiIndicatorColumn))await StiIndicatorCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNullableNumber(h),d,!1),g=StiIndicatorCellPainter.calculateTextRect(o.clone(),m),p=StiIndicatorCellPainter.getCellText(a,m,StiValueHelper.tryToNullableNumber(h)),b=StiIndicatorCellPainter.getColor(m,StiValueHelper.tryToNullableNumber(h),d),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.None,w="IndicatorCell";else if(m.is2(StiBubbleColumn)){await StiBubbleCellPainter.draw(f,M,a,u,S,m,e,StiValueHelper.tryToNullableNumber(h),i,r,l,!1,!1),n!=__.f.StiDashboardExportFormat.Data&&(g=StiBubbleCellPainter.calculateTextRect(a,o.clone(),m)).inflate(2,2),p=StiBubbleCellPainter.getCellText(a,m,StiValueHelper.tryToNullableNumber(h)),b=StiDataBarsCellPainter.getForeColor(a,m,d,l,!1),b=0<a.tableConditions.length?await StiTableElementConditionHelper.processForeColor(b,m.key,a,u,S):b,y=StiBorderSides.None,w="BubbleCell";let t=m[Stimulsoft.System.StiObject.stimulsoft]().as(IStiHorAlignment);null!=t&&(t.horAlignment==StiHorAlignment.Center&&n!=__.f.StiDashboardExportFormat.Data&&(p=null),t.horAlignment==StiHorAlignment.Left&&(I=StiHorAlignment.Right),t.horAlignment==StiHorAlignment.Right)&&(I=StiHorAlignment.Left)}if(C.writeFullEndElement(),C.flush(),n!=__.f.StiDashboardExportFormat.Data&&!m.is2(StiSparklinesColumn)){let t=new StiImage(o),e=(t.name=a.name+`_`+w,t.border=this.getBorderSides(s,o,a,m,StiBorderSides.All),t.stretch=!0,t.aspectRatio=m.is2(StiIndicatorColumn)||m.is2(StiBubbleColumn),C.textWriter.getStringBuilder().toString());t.image=StiImageConverter.stringToImage(Stimulsoft.System.Convert.toBase64String(e)),t.brush=new StiSolidBrush(c),t.horAlignment=I,s.components.add(t)}n!=__.f.StiDashboardExportFormat.Data&&StiString.isNullOrEmpty(p)||await this.renderTextCell(s,g,a,u,S,m,e,h,y,b,c,n,!1,!1,!0,!1)}static async drawColorScaleColumn(t,e,i,r,l,n,s,o,a,u,S,m){let h=n.as(StiColorScaleColumn),c=this.getForeColor(i,n,S,!1),d=StiColorScaleCellPainter.getScaleColor(StiValueHelper.tryToNumber(o),a,u,S,h.minimumColor,h.maximumColor),p=i.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(c,d,n.key,i,r,l):{foreColor:c,backColor:d};await this.renderTextCell(t,e,i,r,l,n,s,o,StiBorderSides.All,p.foreColor,p.backColor,m,!1,null,!0,!0)}static async renderBoolCell2(r,l,n,s,o,a,t,u,S,m,e){if(e==__.f.StiDashboardExportFormat.Data)await this.renderTextCell(r,l,n,s,o,a,t,u,StiBorderSides.None,S,m,e,!1);else{let t=0<n.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(S,m,a.key,n,s,o):{foreColor:S,backColor:m},e=u?StiCheckStyle.CheckRectangle:StiCheckStyle.NoneRectangle,i=new StiCheckBox(l);i.name=n.name+`_Cell`,i.border=this.getBorderSides(r,l,n,a,StiBorderSides.All),i.contourColor=Color.transparent,i.textBrush=new StiSolidBrush(t.foreColor),i.brush=new StiSolidBrush(t.backColor),i.checkStyleForTrue=e,i.checkStyleForFalse=StiCheckStyle.NoneRectangle,i.checkedValue=e!=StiCheckStyle.NoneRectangle,i.excelDataValue=u.toString(),i.componentPlacement=`d.`+n.name,r.components.add(i)}}static async renderTextCell(e,i,l,n,s,t,r,o,a,u,S,m,h,c=null,d=!1,p=!1){let g=null,b=null,C=(!d||h||null==(b=await StiTableElementConditionHelper.getIconCondition(t.key,l,n,s))||b.iconAlignment==StiIconAlignment.None||h||m==__.f.StiDashboardExportFormat.Html||(b.iconAlignment==StiIconAlignment.Left?g=new StiMargins(i.height,0,0,0):b.iconAlignment==StiIconAlignment.Right&&(g=new StiMargins(0,i.height,0,0))),StiTextFormatHelper.formatBasedOnColumnType(l,t,o)),f=h?this.defaultExportDataOnlyFont:l.getDataFont(),y=(t.is(StiDimensionColumn)&&t.showHyperlink&&(f=new Font(f.fontFamily.name,f.size,f.style|FontStyle.Underline)),await StiTableElementConditionHelper.processFontStyle(f,t.key,l,n,s)),w=(f.style!=y&&(f=new Font(f.fontFamily.name,f.size,y)),StiValueHelper.tryToNumber(o));if(w<0&&StiNegativeColorChecker.isNegativeInRed(t.textFormat)&&(u=Stimulsoft.StiOptions.Engine.negativeColor),t.is(StiSparklinesColumn)){let t=StiSparklinesCellPainter.castToArray(o),e=t?.map(t=>t.toString());C=StiString.join(" ",e)}let M=0<l.tableConditions.length?await StiTableElementConditionHelper.processForeAndBackColor(u,S,t.key,l,n,s):{foreColor:u,backColor:S},I=StiTitleExportHelper.convert(t.horAlignment),T=(t.is(StiBubbleColumn)&&(I=StiTextHorAlignment.Right),t.as(IStiTableColumnSize)),x=(null!=T?.size&&null==c&&(c=T.size.wordWrap),null);if(t.is(StiDimensionColumn)&&t.showHyperlink&&!StiString.isNullOrWhiteSpace(t.hyperlinkPattern)){let r=new Stimulsoft.System.Collections.Hashtable;r.add("Value",o);for(let i=0;i<s.length;i++){let t=l.columns.find(t=>t.key==s[i]),e="Row."+StiNameValidator.correctName(t.label,!0);r.add(e,n[i]?.toString())}x=await Stimulsoft.Report.Dashboard.StiReportParser.parseAsync(t.hyperlinkPattern,l,!1,r)}let D=null!=t.textFormat&&t.textFormat.is(StiGeneralFormatService)?null:C,F=(null!=o&&null!=t.textFormat&&(t.textFormat.is(StiCurrencyFormatService)||t.textFormat.is(StiNumberFormatService)||t.textFormat.is(StiPercentageFormatService))&&(D=o.toString()),new StiMargins(2,2,1,0)),v=(null!=g&&(F=new StiMargins(F.left+g.left,F.right+g.right,F.top+g.top,F.bottom+g.bottom)),new StiText(i));if(v.name=l.name+`_Cell`,v.border=this.getBorderSides(e,i,l,t,a),v.brush=new StiSolidBrush(M.backColor),v.excelDataValue=D,v.font=StiElementConsts.Table.Font.getGdiFont(r,null,f),v.horAlignment=I,v.vertAlignment=StiVertAlignment.Center,v.margins=F,v.text=C,v.textBrush=new StiSolidBrush(M.foreColor),v.textFormat=null!=t.textFormat?t.textFormat.clone():null,v.wordWrap=0!=c,v.componentPlacement=`d.`+l.name,v.trimming=StringTrimming.EllipsisCharacter,v.hyperlinkValue=x,e.components.add(v),null!=b&&b.iconAlignment!=StiIconAlignment.None&&p){let t=await StiConditionIconPainter.getImageWithConditionIcon(b,i,l.name);e.components.add(t)}}static renderImageCell(t,e,i,r,l,n,s){if(s==__.f.StiDashboardExportFormat.Data)return;let o=StiImageHelper.getImageFromObject(l);if(null==o)return;let a=new StiImage(e);a.name=i.name+`_Cell`,a.border=this.getBorderSides(t,e,i,r,StiBorderSides.All),a.brush=new StiSolidBrush(n),a.stretch=!0,a.aspectRatio=!0,a.imageToDraw=o,a.horAlignment=r.horAlignment,t.components.add(a)}static async renderBoolCell(t,e,i,r,l,n,s,o,a,u,S){if(S==__.f.StiDashboardExportFormat.Data)return void await this.renderTextCell(t,e,i,r,l,n,s,o,a,null,u,S,!1);let m=0!=i.columns.indexOf(n),h=i.columns.indexOf(n)!=i.columns.length-1,c=(m?StiBorderSides.Left:StiBorderSides.None)|(h?StiBorderSides.Right:StiBorderSides.None),d=StiDashboardStyleHelper.getTableStyle(i),p=new StiImage(e);p.name=i.name+`_Cell`,p.border=a?new StiBorder(c,d.lineColor,1,StiPenStyle.Solid):new StiBorder(StiBorderSides.None,Color.transparent,0,StiPenStyle.None),p.brush=new StiSolidBrush(u),p.horAlignment=StiHorAlignment.Center,p.vertAlignment=StiVertAlignment.Center,t.components.add(p)}static async getColumnVisibilityState(t,e){if(t.visibility==StiTableColumnVisibility.TrueAndHidden)return!1;return StiTableColumnVisibilityHelper.getVisible(t,e)}static getForeColor(t,e,i,r){if(!Color.transparent.equals(e.foreColor))return e.foreColor;if(e.is(StiDimensionColumn)&&e.showHyperlink)return StiColor.get("165dc8");let l=StiDashboardExpressionHelper.getForeColor(t,t.cells.data.foreColor);if(!Color.transparent.equals(l))return l;return null!=i?r?i.alternatingCellForeColor:i.cellForeColor:StiElementConsts.Table.Font.Color}static getHeaderBackColor(t){if(!t.cells.columns.backColor.equals(Color.transparent))return t.cells.columns.backColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.headerBackColor}static getHeaderForeColor(t){if(!Color.transparent.equals(t.cells.columns.foreColor))return t.cells.columns.foreColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.headerForeColor}static getFooterForeColor(t){if(!Color.transparent.equals(t.footerForeColor))return t.footerForeColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.footerForeColor}static getFooterBackColor(t){if(!t.cells.totals.backColor.equals(Color.transparent))return t.cells.totals.backColor;let e=StiDashboardStyleHelper.getTableStyle(t);return e.footerBackColor}static getBorderSides(t,e,i,r,l){let n=StiDashboardStyleHelper.getTableStyle(i),s=0!=(l&StiBorderSides.Left)&&0!=i.columns.indexOf(r)&&e.left<t.width,o=0!=(l&StiBorderSides.Right)&&i.columns.indexOf(r)!=i.columns.length-1&&e.right<=t.width,a=(s?StiBorderSides.Left:StiBorderSides.None)|(o?StiBorderSides.Right:StiBorderSides.None),u=a!=StiBorderSides.None?1:0,S=a!=StiBorderSides.None?n.lineColor:Color.transparent;return new StiBorder(a,S,u,StiPenStyle.Solid)}}aD0.defaultExportDataOnlyFont=new Font("Arial",10),__.A.StiTableElementExportTool=aD0}let StiAutoSizeHtmlTextHelper=__.h.StiAutoSizeHtmlTextHelper;{class XK0 extends __.A.StiElementExportTool{async render(t,e,l,i){if(this.renderEmptyDataMessage(t,e,l.clone(),i))return;let n=t.as(StiTextElement),s="";if(n.isReportParserExpression||StiExpressionHelper.isTimeExpression(n.text)||XK0.isExpressionWithVariables(n.text,n.report))s=await StiReportParser.parseAsync(n.text,n,!1);else if(n.isQuerable){let t=await StiElementDataCache.tryToGetOrCreate(n),e=(t?.rows[0]??[]).map(t=>StiValueHelper.tryToString(t));null!=e&&(s=StiExpressionHelper.replaceExpressionBlocksByValues(n.text,e))}else s=n.text;!StiString.isNullOrEmpty(s)&&s.toLowerCase()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll(" ","").includes("javascript:")&&(s=s.toLowerCase()[Stimulsoft.System.StiObject.stimulsoft]().replaceAll("javascript",""));let o=i.format==__.f.StiDashboardExportFormat.Excel||i.format==__.f.StiDashboardExportFormat.Html?.96:1,r=StiExportTool.getScaleFactor(e,i);if(s=this.changeFontSize(s,r*o),n.sizeMode==StiTextSizeMode.Fit||n.sizeMode==StiTextSizeMode.FitAndWordWrap){let r,t=3;do{let t=StiAutoSizeHtmlTextHelper.measure(null,l.clone(),s,n),e=t.width>l.width?l.width/t.width:1,i=l.height<t.height?l.height/t.height:1;r=Math.min(Math.abs(e),Math.abs(i)),(r=n.sizeMode==StiTextSizeMode.FitAndWordWrap&&.8<t.width/l.width&&i<.5?1-.7*(1-r):r)<1&&(s=this.changeFontSize(s,.99*r))}while(r<1&&0<t--);o<1&&(s=this.changeFontSize(s,o))}let a=new StiText(l);a.name=t.name+`_Content`,a.allowHtmlTags=!0,a.vertAlignment=n.vertAlignment,a.horAlignment=n.horAlignment,a.text=s,a.textBrush=new StiSolidBrush(StiDashboardStyleHelper.getForeColor(n)),a.trimming=n.sizeMode==StiTextSizeMode.Trimming?StringTrimming.EllipsisCharacter:StringTrimming.None,a.wordWrap=n.sizeMode==StiTextSizeMode.WordWrap||n.sizeMode==StiTextSizeMode.FitAndWordWrap,a.rightToLeft=n.rightToLeft,e.components.add(a)}changeFontSize(t,e){if(null==t||!t.startsWith("<font ")||t.indexOf(' size="')<0)return t;let i=t.indexOf(' size="')+7,r=t.substring(i),l=(r=r.substring(0,r.indexOf('"')))[Stimulsoft.System.StiObject.stimulsoft]().toNumber();return null==l&&(l=12),l=Math.ceil(l*e*10)/10,t.substring(0,i)+l.toString().replace(",",".")+t.substring(i+r.length)}static isExpressionWithVariables(e,i){if(!StiString.isNullOrEmpty(e)&&StiExpressionHelper.isExpression(e)){if(0<i?.variables?.count)for(let t of i.variables.keys)if(e.toLowerCase().includes(t.toLowerCase()))return!0;if(0<i?.dictionary.variables.count)for(let t of i.dictionary.variables.list)if(e.toLowerCase().includes(t.name.toLowerCase()))return!0}return!1}}__.A.StiTextElementExportTool=XK0}__.A.StiTreeViewBoxElementExportTool=class extends __.A.StiComboBoxElementExportTool{async render(t,e,i,r){return super.render(t,e,i,r)}getValuesCount(t,e){let i=t.as(IStiTreeViewBoxElement),r=StiTreeViewHelper.fetchItems(e,i.showBlanks);return null!=r?r.length:0}};let StiShapeDirection=Stimulsoft.Report.Components.StiShapeDirection,StiTriangleShapeType=Stimulsoft.Report.Components.StiTriangleShapeType;{class EL0 extends __.A.StiListBoxElementExportTool{async render(t,e,i,r){return super.render(t,e,i,r)}getCheckStyle(e,i){let t=e;if(0==t.userFilters.length)return StiCheckStyle.CheckRectangle;if(t.userFilters.some(t=>t.condition==StiDataFilterCondition.IsFalse))return StiCheckStyle.NoneRectangle;if(null!=i.items){let t=i.items.map(t=>this.getCheckStyle(e,t));if(t.every(t=>t==StiCheckStyle.CheckRectangle))return StiCheckStyle.CheckRectangle;if(t.every(t=>t==StiCheckStyle.NoneRectangle))return StiCheckStyle.NoneRectangle;return StiCheckStyle.DotRectangle}if(t.userFilters.some(t=>t.condition==StiDataFilterCondition.EqualTo&&t.value==i.toString()))return StiCheckStyle.CheckRectangle;return StiCheckStyle.NoneRectangle}async renderItems(t,e,i,r,l){let n=await StiElementDataCache.tryToGetOrCreate(i);if(null==n)return;let s=!1,o=i.as(IStiTreeViewElement),a=StiTreeViewHelper.fetchItems(n,o.showBlanks),u=(1==a?.length&&0<a[0].items?.length&&(a=a.concat(a[0].items),s=!0),a?.map(t=>null==t?"":null!=t.key&&t.key instanceof DateTime?t.key.toShortDateString():t.toString())),S=a?.map(t=>this.getCheckStyle(i,t)),m=a?.map(t=>s&&t==a[0]);this.renderItems2(t,e.clone(),i,u,S,m,r,l)}renderItem(t,e,i,r,l,n,s,o,a,u,S){r!=StiLocHelper.locAll&&(EL0.renderExpander(t,e.clone(),i,a),e.x+=StiElementConsts.ListBox.CheckBoxWidth/2,e.width-=StiElementConsts.ListBox.CheckBoxWidth/2),super.renderItem(t,e.clone(),i,r,l,n,s,o,a,u,S)}static renderExpander(t,e,i,r){e=new Rectangle(e.x,e.y+e.height/2-e.height/8,StiElementConsts.ListBox.CheckBoxWidth/3,e.height/4);let l=new StiShape(e);l.name=i.name+`_ItemExpander`,l.shapeType=new StiTriangleShapeType(r?StiShapeDirection.Down:StiShapeDirection.Right),l.brush=new StiSolidBrush(Color.dimGray),l.style=StiPenStyle.None,t.components.add(l)}}__.A.StiTreeViewElementExportTool=EL0}let StiHorizontalLinePrimitive=Stimulsoft.Report.Components.StiHorizontalLinePrimitive,StiWebContent=Stimulsoft.Report.Components.StiWebContent;__.A.StiWebContentElementExportTool=class extends __.A.StiElementExportTool{async render(e,r,l,t){if(this.renderEmptyDataMessage(e,r,l.clone(),t))return;let n=e.as(StiWebContentElement),s=StiString.isNullOrEmpty(n.url)?"EmbedCode":"URL",o=StiString.isNullOrEmpty(n.url)?n.embedCode:n.url;if(t?.is(StiSvgDashboardExportSettings)&&t.designMode){let t=30,e=1,i=20;this.paintHeader(r,n,new Rectangle(l.x,l.top,l.width,t),s),this.paintSeparator(r,n,new Rectangle(l.x+i,l.top+t,l.width-2*i,e)),this.paintWebContent(r,n,new Rectangle(l.x,l.top+t+e,l.width,t),o,!0)}else{let t=new StiWebContent(l);t.name=e.name+"_Content",t.embedCode=n.embedCode,t.url=n.url,t.page=r.page,r.components.add(t)}}paintHeader(t,e,i,r){let l=StiDashboardStyleHelper.getForeColor(e),n=new StiText(i);n.name=e.name+`__WebContentHeader`,n.vertAlignment=StiVertAlignment.Center,n.horAlignment=StiTextHorAlignment.Left,n.textBrush=new StiSolidBrush(l),n.brush=new StiSolidBrush(Color.transparent),n.margins=new StiMargins(20,0,0,0),n.text=r,n.font=new Font("Arial",8,FontStyle.Bold),t.components.add(n)}paintSeparator(t,e,i){let r=StiDashboardStyleHelper.getForeColor(e),l=new StiHorizontalLinePrimitive(i);l.name=e.name+`_WebContentSep`,l.color=r,t.components.add(l)}paintWebContent(t,e,i,r,l=!1){let n=StiDashboardStyleHelper.getForeColor(e),s=new StiText(i);s.name=e.name+`__WebContentContent`,s.vertAlignment=l?StiVertAlignment.Center:StiVertAlignment.Top,s.horAlignment=StiTextHorAlignment.Left,s.textBrush=new StiSolidBrush(n),s.brush=new StiSolidBrush(Color.transparent),s.margins=new StiMargins(l?20:0,0,0,0),s.text=r,s.font=new Font("Arial",8,FontStyle.Bold),s.allowHtmlTags=!l,t.components.add(s)}};{class YM0{static run(S,m){if(void 0===S)return void YM0.run(Stimulsoft,"Stimulsoft");if("Stimulsoft.ExternalLibrary"==m||"Stimulsoft.Blockly"==m||"Stimulsoft.StiOptions"==m)return;m=m.replace("Stimulsoft.System","System");for(let u in S){if(u[0]!==u[0].toUpperCase())continue;let t=S[u],e=typeof t,i=t instanceof Stimulsoft.System.Interface,r="object"==e,l="function"==e;if(!r&&!l||null==t)continue;let n=l?t.getTypeName?.()??u:u,s=l?t.getNamespace?.()??m:m,o=s+`.`+n,a=o.startsWith("Stimulsoft.Report.StiOptions");(i||l||a)&&(YM0.setProperty(t,"typeName",n),YM0.setProperty(t,"namespace",s),YM0.setProperty(t,"fullName",o)),"System.Collections.Generic"==s&&YM0.setProperty(t,"isGenericTypeDefinition",!0),r&&!i&&YM0.run(t,o)}}static setProperty(e,i,t){try{Object.defineProperty(e,i,{value:t,writable:!1,configurable:!0,enumerable:!1})}catch(t){console.warn(`Failed to set property '${i}' on '${e.constructor.name}':`,t)}}}__.c.StiTypesHelper=YM0}__.c.StiTypesHelper.run();export{Stimulsoft};
|