igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
1,379 lines (1,378 loc) • 756 kB
JavaScript
/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { Control } from "igniteui-angular-core";
import { INotifyPropertyChanged_$type, Base, Type, EventArgs, PropertyChangedEventArgs, IEnumerable_$type, callStaticConstructors, Point_$type, runOn, delegateCombine, fromEnum, delegateRemove, fromEn, typeCast, enumGetBox, EnumUtil, Boolean_$type, Number_$type, typeGetValue, toEnum, String_$type, markType, markDep, PointUtil, TypeRegistrar, Delegate_$type, Array_$type, Date_$type, getInstanceType } from "igniteui-angular-core";
import { ILegendOwner_$type } from "igniteui-angular-core";
import { IInternalLegendOwner_$type } from "igniteui-angular-core";
import { IDataLegendTarget_$type } from "igniteui-angular-core";
import { IToolbarTarget_$type } from "igniteui-angular-core";
import { ISupportsAnimation_$type } from "igniteui-angular-core";
import { SRProvider } from "igniteui-angular-core";
import { DVContainer } from "igniteui-angular-core";
import { SeriesPlotAreaMarginHorizontalMode_$type } from "./SeriesPlotAreaMarginHorizontalMode";
import { SeriesPlotAreaMarginVerticalMode_$type } from "./SeriesPlotAreaMarginVerticalMode";
import { SeriesViewerScrollbarMode_$type } from "./SeriesViewerScrollbarMode";
import { DoubleAnimator } from "igniteui-angular-core";
import { BrushCollection } from "igniteui-angular-core";
import { DependencyProperty } from "igniteui-angular-core";
import { DependencyObject } from "igniteui-angular-core";
import { MarkerAutomaticBehavior_$type } from "./MarkerAutomaticBehavior";
import { IChartLegend_$type } from "igniteui-angular-core";
import { SeriesHighlightingMode_$type } from "./SeriesHighlightingMode";
import { SeriesSelectionMode_$type } from "./SeriesSelectionMode";
import { SeriesSelectionBehavior_$type } from "./SeriesSelectionBehavior";
import { SeriesViewerHorizontalScrollbarPosition_$type } from "./SeriesViewerHorizontalScrollbarPosition";
import { SeriesViewerVerticalScrollbarPosition_$type } from "./SeriesViewerVerticalScrollbarPosition";
import { Brush } from "igniteui-angular-core";
import { SeriesHighlightingBehavior_$type } from "./SeriesHighlightingBehavior";
import { LegendHighlightingMode_$type } from "./LegendHighlightingMode";
import { LegendItemBadgeShape_$type } from "igniteui-angular-core";
import { LegendItemBadgeMode_$type } from "igniteui-angular-core";
import { Rect } from "igniteui-angular-core";
import { ChartHitTestMode_$type } from "./ChartHitTestMode";
import { InteractionState_$type } from "igniteui-angular-core";
import { WindowResponse_$type } from "./WindowResponse";
import { Visibility_$type } from "igniteui-angular-core";
import { SeriesViewerComponentsFromView } from "./SeriesViewerComponentsFromView";
import { ZoomCoercionMode_$type } from "./ZoomCoercionMode";
import { ModifierKeys_$type } from "igniteui-angular-core";
import { SeriesHighlightedValuesDisplayMode_$type } from "igniteui-angular-core";
import { DataTemplate } from "igniteui-angular-core";
import { HorizontalAlignment_$type } from "igniteui-angular-core";
import { CanvasRenderScheduler } from "igniteui-angular-core";
import { SyncSettings } from "./SyncSettings";
import { PropertyMetadata } from "igniteui-angular-core";
import { ICommandStateChangedListener_$type } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { SeriesViewerComponentsForView } from "./SeriesViewerComponentsForView";
import { VersionQueueHelper } from "igniteui-angular-core";
import { Dictionary$2 } from "igniteui-angular-core";
import { IDataLegend_$type } from "igniteui-angular-core";
import { PropertyUpdatedEventArgs } from "igniteui-angular-core";
import { NotifyCollectionChangedEventArgs } from "igniteui-angular-core";
import { ObservableCollection$1 } from "igniteui-angular-core";
import { Size } from "igniteui-angular-core";
import { FrameworkElement } from "igniteui-angular-core";
import { MouseEventArgs } from "igniteui-angular-core";
import { MouseButtonEventArgs } from "igniteui-angular-core";
import { Tuple$2 } from "igniteui-angular-core";
import { ScalerParams } from "./ScalerParams";
import { SeriesViewerManipulationEventArgs } from "./SeriesViewerManipulationEventArgs";
import { IFastItemsSource_$type } from "igniteui-angular-core";
import { HashSet$1 } from "igniteui-angular-core";
import { RectChangedEventArgs } from "igniteui-angular-core";
import { MathUtil } from "igniteui-angular-core";
import { DeviceUtils } from "igniteui-angular-core";
import { RefreshCompletedEventArgs } from "./RefreshCompletedEventArgs";
import { Thickness } from "igniteui-angular-core";
import { AxisTitlePosition_$type } from "./AxisTitlePosition";
import { CoercionInfo } from "./CoercionInfo";
import { FastItemsSource } from "igniteui-angular-core";
import { FontUtil } from "igniteui-angular-core";
import { IDataLegendSeries_$type } from "igniteui-angular-core";
import { CaptureImageSettings } from "igniteui-angular-core";
import { ImageCapturedEventArgs } from "igniteui-angular-core";
import { truncate, intDivide, isNaN_, isInfinity, logBase, log10 } from "igniteui-angular-core";
import { ChartContentType_$type } from "./ChartContentType";
import { defaultDVDateParse, dateNow } from "igniteui-angular-core";
import { stringIsNullOrEmpty, stringEmpty, stringEndsWith, stringStartsWith, stringIsNullOrWhiteSpace } from "igniteui-angular-core";
import { ISchedulableRender_$type } from "igniteui-angular-core";
import { Rectangle } from "igniteui-angular-core";
import { Path } from "igniteui-angular-core";
import { Line } from "igniteui-angular-core";
import { RenderingContext } from "igniteui-angular-core";
import { TextBlock } from "igniteui-angular-core";
import { ITileZoomTile_$type } from "./ITileZoomTile";
import { DOMExecutionContext } from "igniteui-angular-core";
import { RenderSurface } from "./RenderSurface";
import { PathFigureCollection } from "igniteui-angular-core";
import { PathFigure } from "igniteui-angular-core";
import { LineSegment } from "igniteui-angular-core";
import { PathGeometry } from "igniteui-angular-core";
import { GeometryGroup } from "igniteui-angular-core";
import { DataContext } from "igniteui-angular-core";
import { LabelPanelsArrangeState } from "./LabelPanelsArrangeState";
import { MarkerTemplates } from "./MarkerTemplates";
import { DataTemplateRenderInfo } from "igniteui-angular-core";
import { DataTemplateMeasureInfo } from "igniteui-angular-core";
import { AxisLabelsLocation_$type } from "./AxisLabelsLocation";
import { IProvidesViewport_$type } from "./IProvidesViewport";
import { ArgumentNullException } from "igniteui-angular-core";
import { ActualLegendItemBadgeShape_$type } from "./ActualLegendItemBadgeShape";
import { CanvasViewRenderer } from "igniteui-angular-core";
import { Defaults } from "./Defaults";
import { EllipseGeometry } from "igniteui-angular-core";
import { DataTemplatePassInfo } from "igniteui-angular-core";
import { BrushUtil } from "igniteui-angular-core";
import { LegendItemHelper } from "igniteui-angular-core";
import { DomWrapper_$type } from "igniteui-angular-core";
import { PointerTooltipStyle } from "./PointerTooltipStyle";
import { DefaultPaletteInfo } from "./DefaultPaletteInfo";
import { CssGradientUtil } from "igniteui-angular-core";
import { AxisDefaults } from "./AxisDefaults";
import { BrushUtilCore } from "igniteui-angular-core";
import { AxisRange } from "./AxisRange";
import { LinearNumericSnapper } from "./LinearNumericSnapper";
import { AxisAnnotationCollection } from "./AxisAnnotationCollection";
import { VerticalAlignment_$type } from "igniteui-angular-core";
import { Canvas } from "igniteui-angular-core";
import { IFastItemsSourceProvider_$type } from "igniteui-angular-core";
import { DoubleCollection } from "igniteui-angular-core";
import { LabelPosition } from "./LabelPosition";
import { BindingFormatter } from "igniteui-angular-core";
import { LabelFontHeuristics } from "./LabelFontHeuristics";
import { Pool$1 } from "igniteui-angular-core";
import { AxisComponentsFromView } from "./AxisComponentsFromView";
import { FastReflectionHelper } from "igniteui-angular-core";
import { AxisRangeChangedEventArgs } from "./AxisRangeChangedEventArgs";
import { RectangleGeometry } from "igniteui-angular-core";
import { PathRenderingInfo } from "./PathRenderingInfo";
import { LineGeometry } from "igniteui-angular-core";
import { RenderRequestedEventArgs } from "./RenderRequestedEventArgs";
import { CategoryMode_$type } from "./CategoryMode";
import { GridMode_$type } from "./GridMode";
import { Panel } from "igniteui-angular-core";
import { UIElement } from "igniteui-angular-core";
import { RectUtil } from "igniteui-angular-core";
import { TickmarkValues } from "./TickmarkValues";
import { TransformGroup } from "igniteui-angular-core";
import { RotateTransform } from "igniteui-angular-core";
import { TranslateTransform } from "igniteui-angular-core";
import { AngleSimplifier } from "igniteui-angular-core";
import { TransformMatrixHelpler } from "igniteui-angular-core";
import { ICategoryScaler_$type } from "./ICategoryScaler";
import { AxisRangeBufferMode_$type } from "./AxisRangeBufferMode";
import { NumericAxisRenderingParameters } from "./NumericAxisRenderingParameters";
import { LogarithmicTickmarkValues } from "./LogarithmicTickmarkValues";
import { LinearTickmarkValues } from "./LinearTickmarkValues";
import { CategoryAxisRenderingParameters } from "./CategoryAxisRenderingParameters";
import { TickmarkValuesInitializationParameters } from "./TickmarkValuesInitializationParameters";
import { NumberAbbreviatorFactory } from "./NumberAbbreviatorFactory";
import { AutomaticSeriesPurpose_$type } from "./AutomaticSeriesPurpose";
import { SeriesMatcher } from "./SeriesMatcher";
import { Stack$1 } from "igniteui-angular-core";
import { RenderValidEventArgs } from "./RenderValidEventArgs";
import { ArrayExtension } from "igniteui-angular-core";
import { SeriesLayerPropertyOverlayValueResolvingEventArgs } from "./SeriesLayerPropertyOverlayValueResolvingEventArgs";
import { PlatformAPIHelper } from "igniteui-angular-core";
import { Marker } from "./Marker";
import { ContentControl } from "igniteui-angular-core";
import { AutoMarginsAndAngleUpdateMode_$type } from "./AutoMarginsAndAngleUpdateMode";
import { ComputedPlotAreaMarginMode_$type } from "./ComputedPlotAreaMarginMode";
import { PolygonUtil } from "igniteui-angular-core";
import { ILegendSeries_$type } from "igniteui-angular-core";
import { ILegendSeriesInternal_$type } from "igniteui-angular-core";
import { ILegendTemplateProvider_$type } from "igniteui-angular-core";
import { PenLineJoin_$type } from "igniteui-angular-core";
import { PenLineCap_$type } from "igniteui-angular-core";
import { Color } from "igniteui-angular-core";
import { SeriesVisibleRangeMode_$type } from "./SeriesVisibleRangeMode";
import { SeriesOutlineMode_$type } from "./SeriesOutlineMode";
import { TransitionInSpeedType_$type } from "./TransitionInSpeedType";
import { TransitionOutSpeedType_$type } from "./TransitionOutSpeedType";
import { SeriesHitTestMode_$type } from "./SeriesHitTestMode";
import { SeriesComponentsForView } from "./SeriesComponentsForView";
import { Binding } from "igniteui-angular-core";
import { MarkerOutlineMode_$type } from "./MarkerOutlineMode";
import { MarkerFillMode_$type } from "./MarkerFillMode";
import { SeriesPointOfInterest } from "./SeriesPointOfInterest";
import { FastItemColumn } from "igniteui-angular-core";
import { TransitionOutCompletedEventArgs } from "./TransitionOutCompletedEventArgs";
import { IChartItemLegend_$type } from "igniteui-angular-core";
import { SeriesComponentsFromView } from "./SeriesComponentsFromView";
import { DataLegendSeriesValueInfo } from "igniteui-angular-core";
import { DataLegendSeriesContext } from "igniteui-angular-core";
import { MarkerType_$type } from "./MarkerType";
import { Style } from "igniteui-angular-core";
import { FastItemsSourceReference } from "igniteui-angular-core";
import { stringFormat } from "igniteui-angular-core";
import { EasingFunctions } from "igniteui-angular-core";
/**
* @hidden
*/
export let SeriesViewer = /*@__PURE__*/ (() => {
class SeriesViewer extends Control {
constructor() {
super();
this._widget = null;
this.c9 = null;
this.dt = null;
this.an = null;
this.gn = new List$1(ICommandStateChangedListener_$type, 0);
this._commandCompleted = null;
this._invalidateActions = null;
this.da = null;
this.a8 = null;
this.ba = null;
this.ec = false;
this.eb = false;
this.c1 = null;
this.br = new SeriesCollection();
this.iy = 0;
this.bz = 0;
this.b1 = 0;
this._skipDataCleanup = false;
this.dc = null;
this.de = null;
this.db = null;
this.dd = null;
this.ar = null;
this.vu = null;
this.plotAreaMouseLeftButtonDown = null;
this.plotAreaMouseLeftButtonUp = null;
this.plotAreaClicked = null;
this.plotAreaMouseEnter = null;
this.plotAreaMouseLeave = null;
this.plotAreaMouseOver = null;
this.cf = 0;
this.cg = 0;
this.bu = 1;
this.b7 = 1;
this.b3 = 3;
this.propertyChanged = null;
this.propertyUpdated = null;
this.ja = null;
this.d7 = false;
this.seriesCursorMouseMove = null;
this.seriesMouseLeftButtonDown = null;
this.seriesMouseLeftButtonUp = null;
this.seriesClick = null;
this.seriesMouseMove = null;
this.seriesMouseEnter = null;
this.seriesMouseLeave = null;
this.d1 = false;
this.d0 = false;
this.v3 = Rect.empty;
this.v1 = Rect.empty;
this.dy = true;
this.v0 = null;
this.eh = false;
this.ix = 30;
this.fq = false;
this.ej = false;
this.cc = new SeriesViewerComponentsForView();
this.d5 = false;
this.at = 0;
this.as = 1;
this.seriesAnimating = null;
this.dv = new VersionQueueHelper();
this.d4 = false;
this.d2 = false;
this.cv = 0;
this.d9 = false;
this.er = false;
this.dz = false;
this.md = null;
this.viewerManipulationStarting = null;
this.viewerManipulationEnding = null;
this.ef = false;
this.ea = false;
this.windowRectChanged = null;
this.sizeChanged = null;
this.e1 = false;
this.actualWindowRectChanged = null;
this.gridAreaRectChanged = null;
this.et = false;
this.g0 = 0.0001;
this.gz = 0.0001;
this._syncChannel = null;
this.cm = null;
this.gb = false;
this.ee = false;
this.e0 = false;
this.gh = false;
this.cq = 1;
this.wm = null;
this.i0 = 0;
this.bq = null;
this.ed = false;
this.gc = false;
this.v2 = Rect.empty;
this._selectedSeriesItems = null;
this._focusedSeriesItems = null;
this.selectedSeriesItemsChanged = null;
this.focusedSeriesItemsChanged = null;
this.gu = new Date();
this.gk = false;
this.refreshCompleted = null;
this.jf = null;
this.je = null;
this.u5 = null;
this.u4 = null;
this.hf = NaN;
this.hd = NaN;
this.he = NaN;
this.hc = NaN;
this.hb = NaN;
this.g9 = NaN;
this.ha = NaN;
this.g8 = NaN;
this.jc = null;
this.al = null;
this.am = null;
this.ak = null;
this.d8 = false;
this.dx = false;
this._syncSettings = null;
this.destroyed = false;
this.i9 = null;
this.gl = new Dictionary$2(String_$type, Base.$, 0);
this.fo = false;
this.hg = NaN;
this.g5 = NaN;
this.g7 = NaN;
this.g3 = NaN;
this.g2 = 30;
this.g1 = NaN;
this.d3 = true;
this.g6 = NaN;
this.g4 = NaN;
this.jd = null;
this.gw = 1;
this.gv = NaN;
this.vz = null;
this.ez = false;
this.gx = 0;
this.gy = 0;
this.sb = null;
this.az = null;
this.e4 = false;
this.e5 = false;
this.e2 = false;
this.d6 = false;
this.iz = 0;
this.ep = false;
this.e8 = false;
this.seriesDataUpdated = null;
this.go = new List$1(IDataLegend_$type, 0);
this.dw = null;
this.gr = null;
this.imageCaptured = null;
DVContainer.instance.registerIfLoaded("AnnotationFactoryManager");
DVContainer.instance.registerIfLoaded("InteractivityFactoryManager");
DVContainer.instance.registerIfLoaded("DataChartToolbarFactoryManager");
DVContainer.instance.registerIfLoaded("VisualDataFactoryManager");
this.vz = Rect.empty;
this.vu = { $type: Point_$type, x: NaN, y: NaN };
this.gu = dateNow();
this.e4 = false;
this.e5 = false;
this.al = new CanvasRenderScheduler();
this.al.a = runOn(this, this.ne);
this.am = new CanvasRenderScheduler();
this.ak = new CanvasRenderScheduler();
SeriesViewer.wg = new Rect(0, 0, 0, 1, 1);
this.syncSettings = ((() => {
let $ret = new SyncSettings();
$ret.synchronizeHorizontally = true;
$ret.synchronizeVertically = true;
return $ret;
})());
this.c9 = this.c8();
this.p5(this.c9);
this.c9.c4();
this.rm();
this.nz();
this.actualSyncLink = new SyncLink();
this.rt(null, this.actualSyncLink);
this.ar = new ChartContentManager(this);
this.propertyUpdated = delegateCombine(this.propertyUpdated, (a, b) => this.qh(a, b.propertyName, b.oldValue, b.newValue));
this.selectedSeriesItems = new ChartSelectedItemCollection();
let a = this.selectedSeriesItems;
a.collectionChanged = delegateCombine(a.collectionChanged, runOn(this, this.ps));
let b = this.selectedSeriesItems;
b.collectionResetting = delegateCombine(b.collectionResetting, runOn(this, this.q9));
this.focusedSeriesItems = new ChartSelectedItemCollection();
let c = this.focusedSeriesItems;
c.collectionChanged = delegateCombine(c.collectionChanged, runOn(this, this.o5));
let d = this.focusedSeriesItems;
d.collectionResetting = delegateCombine(d.collectionResetting, runOn(this, this.ns));
let e = this.series;
e.collectionChanged = delegateCombine(e.collectionChanged, runOn(this, this.rb));
let f = this.series;
f.collectionResetting = delegateCombine(f.collectionResetting, runOn(this, this.rc));
this.dd = new DoubleAnimator(0, 1, this.i6);
this.dc = new DoubleAnimator(0, 1, this.i5);
let g = this.dc;
g.propertyChanged = delegateCombine(g.propertyChanged, runOn(this, this.ny));
this.de = new DoubleAnimator(0, 1, this.i7);
this.db = new DoubleAnimator(0, 1, this.i3);
let h = this.de;
h.propertyChanged = delegateCombine(h.propertyChanged, runOn(this, this.ra));
let i = this.db;
i.propertyChanged = delegateCombine(i.propertyChanged, runOn(this, this.nt));
this.c9.bx();
this.n1();
this.n0();
}
get widget() {
return this._widget;
}
set widget(a) {
this._widget = a;
}
static staticInit() {
SeriesViewer.wg = new Rect(0, 0, 0, 1, 1);
}
get du() {
if (this.dt == null) {
this.dt = new SRProvider(this.c9.j.ae);
}
return this.dt;
}
ao(a) {
if (this.an == null) {
this.an = new AutomaticSeriesManager(this);
}
return this.an;
}
getDesiredToolbarActions() {
if (!this.fi) {
return null;
}
return this.a9.getDesiredToolbarActions(this);
}
onToolCommandExecuting(a) {
if (!this.fi) {
return 1;
}
return this.a9.onToolCommandExecuting(this, a);
}
addCommandAvailabilityListener(a) {
}
removeCommandAvailabilityListener(a) {
}
addCommandStateChangedListener(a) {
if (!this.gn.contains(a)) {
this.gn.add(a);
}
}
removeCommandStateChangedListener(a) {
if (this.gn.contains(a)) {
this.gn.remove(a);
}
}
get commandCompleted() {
return this._commandCompleted;
}
set commandCompleted(a) {
this._commandCompleted = a;
}
get invalidateActions() {
return this._invalidateActions;
}
set invalidateActions(a) {
this._invalidateActions = a;
}
provideContextAccessor(a) {
this.da = a;
}
n4() {
if (this.invalidateActions != null) {
this.invalidateActions();
}
}
get a9() {
if (this.a8 == null) {
this.a8 = DVContainer.instance.createInstance(IDataChartToolbarProvider_$type, () => this.du.n);
this.a8.container = this.c9.bi;
}
return this.a8;
}
get fi() {
return DVContainer.instance.checkLoaded("DataChartToolbarFactoryManager");
}
get bb() {
if (this.ba == null) {
this.ba = DVContainer.instance.createInstance(ISeriesViewerInteractionManager_$type, () => this.du.n);
}
return this.ba;
}
get fa() {
return DVContainer.instance.checkLoaded("InteractivityFactoryManager");
}
q9(a, b) {
for (let c = 0; c < this.selectedSeriesItems.count; c++) {
this.pb(this.selectedSeriesItems._inner[c]);
}
}
ns(a, b) {
for (let c = 0; c < this.focusedSeriesItems.count; c++) {
this.pa(this.focusedSeriesItems._inner[c]);
}
}
ps(a, b) {
if (b.action == 4 && b.newItems == null && b.oldItems == null) {
return;
}
if (this.ec) {
return;
}
if (b.oldItems != null) {
for (let c = 0; c < b.oldItems.count; c++) {
let d = b.oldItems.item(c);
this.pb(d);
}
}
if (b.newItems != null) {
for (let e = 0; e < b.newItems.count; e++) {
let f = b.newItems.item(e);
f.g(this);
}
for (let g = 0; g < b.newItems.count; g++) {
let h = b.newItems.item(g);
this.pd(h);
}
}
let i = new ChartSelectedItemCollection();
if (b.oldItems != null) {
for (let j = 0; j < b.oldItems.count; j++) {
i.add(b.oldItems.item(j));
}
}
let k = new ChartSelectedItemCollection();
if (b.newItems != null) {
for (let l = 0; l < b.newItems.count; l++) {
k.add(b.newItems.item(l));
}
}
let m = this.selectedSeriesItems;
this.pr(this, new SeriesViewerSelectedSeriesItemsChangedEventArgs(i, k, m));
}
o5(a, b) {
if (b.action == 4 && b.newItems == null && b.oldItems == null) {
return;
}
if (this.eb) {
return;
}
if (b.oldItems != null) {
for (let c = 0; c < b.oldItems.count; c++) {
let d = b.oldItems.item(c);
this.pa(d);
}
}
if (b.newItems != null) {
for (let e = 0; e < b.newItems.count; e++) {
let f = b.newItems.item(e);
this.pc(f);
}
}
let g = new ChartSelectedItemCollection();
if (b.oldItems != null) {
for (let h = 0; h < b.oldItems.count; h++) {
g.add(b.oldItems.item(h));
}
}
let i = new ChartSelectedItemCollection();
if (b.newItems != null) {
for (let j = 0; j < b.newItems.count; j++) {
i.add(b.newItems.item(j));
}
}
let k = this.selectedSeriesItems;
this.o4(this, new SeriesViewerSelectedSeriesItemsChangedEventArgs(g, i, k));
}
pc(a) {
this.nu((b) => {
let c = a;
if (c.series != null && c.series != b) {
return;
}
b.pq(c.item);
});
}
pa(a) {
this.nu((b) => {
let c = a;
if (c.series != null && c.series != b) {
return;
}
b.po(c.item);
});
}
nu(a) {
for (let b of fromEnum(this.series)) {
a(b);
if (b.isStacked) {
b.p2((c) => {
a(c);
if (c.eg) {
c.p0((d) => {
a(d);
return true;
});
}
return true;
});
}
if (b.eg) {
b.p0((c) => {
a(c);
return true;
});
}
}
}
pd(a) {
this.nu((b) => {
let c = a;
if (c.series != null && c.series != b) {
return;
}
if (c.item == null) {
b.pw();
}
else {
b.pr(c.item);
}
});
}
pb(a) {
this.nu((b) => {
let c = a;
if (c.series != null && c.series != b) {
return;
}
if (c.item == null) {
b.pu();
}
else {
b.pp(c.item);
}
});
}
nz() {
if (this.c1 != null && this.c2 == null) {
let a = this.c2;
a.thumbnailSizeChanged = delegateRemove(a.thumbnailSizeChanged, runOn(this, this.qd));
}
if (this.c2 != null) {
let b = this.c2;
b.thumbnailSizeChanged = delegateCombine(b.thumbnailSizeChanged, runOn(this, this.qd));
}
if (this.jd != null) {
this.c2.backgroundImageUri = this.jd;
}
if (this.c2 != null) {
this.c2.initializeScalingRatio(this.hi);
}
if (this.c1 == null && this.c2 != null) {
this.oi();
}
this.c1 = this.c2;
}
qd(a, b) {
this.c2.surfaceIsDirty = true;
for (let c of fromEnum(this.series)) {
c.gz = true;
}
}
get_ft() {
return false;
}
get ft() {
return this.get_ft();
}
get_fs() {
return false;
}
get fs() {
return this.get_fs();
}
n0() {
this.c9.co();
if (this.c2 != null) {
this.c2.initializeScalingRatio(this.hi);
}
}
get series() {
return this.br;
}
rb(a, b) {
let c = this.ep;
this.ep = this.ev();
if (b.oldItems != null) {
for (let d of fromEn(b.oldItems)) {
if (d != null && d.eo) {
this.iy--;
if (this.iy < 0) {
this.iy = 0;
}
}
d.c3 = null;
d.db = null;
this.q3(d);
this.c9.dy(d);
}
}
if (b.newItems != null) {
for (let e of fromEn(b.newItems)) {
if (e != null && e.eo) {
this.iy++;
}
if (!this.c9.aq(e)) {
this.rn(e);
this.c9.bp(e);
e.db = this;
e.c3 = this.actualSyncLink;
e.so();
}
}
}
if (this.ep != c && !this.wk.isEmpty) {
this.qg(this.wk, this.wk);
}
this.oh();
this.oq();
this.o8();
this.ob();
}
get b0() {
return this.bz;
}
set b0(a) {
this.bz = a;
}
get b2() {
return this.b1;
}
set b2(a) {
this.b1 = a;
}
n2() {
this.oq();
}
oq() {
}
get skipDataCleanup() {
return this._skipDataCleanup;
}
set skipDataCleanup(a) {
this._skipDataCleanup = a;
}
q3(a) {
if (!this.skipDataCleanup) {
if (typeCast(Series.$, a) !== null) {
a.itemsSource = null;
}
else if (typeCast(CategoryAxisBase.$, a) !== null) {
a.itemsSource = null;
}
}
this.q5(a.name, true);
}
get ew() {
return this.iy > 0;
}
rc(a, b) {
this.ep = this.ev();
for (let c of fromEnum(this.series)) {
c.c3 = null;
c.db = null;
this.q3(c);
this.c9.dy(c);
}
this.iy = 0;
this.ob();
}
n6(a, b, c, d) {
let e = this.wk;
let f = e.width;
let g = e.height;
let h = 1;
let i = a / b;
if (isNaN_(h)) {
return {
p0: a,
p1: b
};
}
if (isNaN_(i) || c || d || Math.abs(h - i) > 0.0001) {
if (c && d) {
if (a > b) {
b = a / h;
}
else {
a = b * h;
}
}
else if (c) {
b = a / h;
}
else {
a = b * h;
}
}
if (b > 1) {
let j = 1 / b;
b = 1;
a = a * j;
}
if (a > 1) {
let k = 1 / a;
a = 1;
b = b * k;
}
return {
p0: a,
p1: b
};
}
ev() {
return false;
}
get f8() {
return this.fj;
}
get e6() {
return this.ba != null;
}
get eo() {
return this.ba != null;
}
get en() {
return this.cf != 0 || this.cg != 0;
}
get em() {
return this.eo && this.en;
}
get dl() {
let a = this.bb.f$e;
if (a.executionContext == null) {
a.executionContext = this.c9.l();
}
if (a.ensureAnimator == null) {
a.ensureAnimator = runOn(this, this.no);
}
return a;
}
get dm() {
let a = this.bb.f$f;
if (a.executionContext == null) {
a.executionContext = this.c9.l();
}
if (a.ensureAnimator == null) {
a.ensureAnimator = runOn(this, this.np);
}
return a;
}
get dk() {
let a = this.bb.f$d;
if (a.executionContext == null) {
a.executionContext = this.c9.l();
}
if (a.ensureAnimator == null) {
a.ensureAnimator = runOn(this, this.nn);
}
return a;
}
get bc() {
let a = this.bb.f$b;
if (a.executionContext == null) {
a.executionContext = this.c9.l();
}
if (a.animator == null) {
a.animator = this.dd;
a.owner = this;
}
return a;
}
no() {
{
let a = this.dc;
if (!a.f() && a.r > 0) {
a.v();
}
if (a.r == 0) {
let b = this.ge(1);
while (b) {
b = this.ge(0);
b = this.ge(1);
}
}
}
}
np() {
{
let a = this.de;
if (!a.f() && a.r > 0) {
a.v();
}
if (a.r == 0) {
let b = this.gf(1);
while (b) {
b = this.gf(0);
b = this.gf(1);
}
}
}
}
nn() {
{
let a = this.db;
if (!a.f() && a.r > 0) {
a.v();
}
if (a.r == 0) {
let b = this.gd(1);
while (b) {
b = this.gd(0);
b = this.gd(1);
}
}
}
}
ny(a, b) {
this.ge(this.dc.o);
}
ra(a, b) {
this.gf(this.de.o);
}
nt(a, b) {
this.gd(this.db.o);
}
ge(a) {
let b = this.dl.tick(a);
if (a == 1 && b && this.dc.r > 0) {
this.dc.v();
}
let c = this.dl.dirtyContexts;
if (this.dl.allDirty) {
let d = this.series;
for (let e = 0; e < d.count; e++) {
let f = d._inner[e];
f.q3();
}
}
else {
for (let g = 0; g < c.count; g++) {
let h = c._inner[g];
h.q3();
}
}
if (!b) {
this.dc.w();
this.o7();
}
return b;
}
gf(a) {
let b = this.dm.tick(a);
if (a == 1 && b && this.de.r > 0) {
this.de.v();
}
let c = this.dm.dirtyContexts;
if (this.dm.allDirty) {
let d = this.series;
for (let e = 0; e < d.count; e++) {
let f = d._inner[e];
f.q3();
}
}
else {
for (let g = 0; g < c.count; g++) {
let h = c._inner[g];
h.q3();
}
}
if (!b) {
this.de.w();
}
return b;
}
gd(a) {
let b = this.dk.tick(a);
if (a == 1 && b && this.db.r > 0) {
this.db.v();
}
let c = this.dk.dirtyContexts;
if (this.dk.allDirty) {
let d = this.series;
for (let e = 0; e < d.count; e++) {
let f = d._inner[e];
f.q3();
}
}
else {
for (let g = 0; g < c.count; g++) {
let h = c._inner[g];
h.q3();
}
}
if (!b) {
this.db.w();
}
return b;
}
nx() {
this.c9.ck();
this.nw();
for (let a = 0; a < this.series.count; a++) {
if (this.series._inner[a].es) {
this.series._inner[a].p6();
}
}
}
va(a) {
return this.u9(this.ag, a);
}
vg(a) {
return this.u9(this.aj, a);
}
ve(a) {
return this.u9(this.ah, a);
}
vf(a) {
return this.u9(this.ai, a);
}
u9(a, b) {
if (a == null || a.count == 0) {
return null;
}
else {
return a.item(b % a.count);
}
}
get vv() {
return this.vu;
}
set vv(a) {
if (PointUtil.notEquals(this.vu, a)) {
let b = this.vu;
this.vu = a;
this.qm("CrosshairPoint", b, this.vu);
}
}
qz() {
}
get e9() {
return this.c0 == 1 || this.c0 == 2 || this.c0 == 3;
}
get legend() {
return this.c(SeriesViewer.td);
}
set legend(a) {
this.h(SeriesViewer.td, a);
}
get ek() {
return this.c(SeriesViewer.sd);
}
set ek(a) {
this.h(SeriesViewer.sd, a);
}
get f2() {
return this.c(SeriesViewer.t0);
}
set f2(a) {
this.h(SeriesViewer.t0, a);
}
pn(a, b) {
this.d7 = false;
let c = false;
c = false;
if (this.c9.k.al) {
return;
}
if (this.plotAreaMouseLeftButtonDown != null) {
let d = this.bh(a, b, c);
this.plotAreaMouseLeftButtonDown(this, d);
}
}
bh(a, b, c) {
let d = { $type: Point_$type, x: a.x, y: a.y };
let e = { $type: Point_$type, x: a.x, y: a.y };
if (!this.wk.isEmpty) {
if (c) {
e.x -= this.wk.left;
e.y -= this.wk.top;
}
else {
d.x += this.wk.left;
d.y += this.wk.top;
}
}
let f = new PlotAreaMouseButtonEventArgs(this, d, e);
f.manipulationOccurred = this.d7;
return f;
}
bl(a, b, c) {
let d = { $type: Point_$type, x: a.x, y: a.y };
let e = { $type: Point_$type, x: a.x, y: a.y };
if (!this.wk.isEmpty) {
if (c) {
e.x -= this.wk.left;
e.y -= this.wk.top;
}
else {
d.x += this.wk.left;
d.y += this.wk.top;
}
}
let f = new PlotAreaMouseEventArgs(this, d, e);
return f;
}
po(a, b, c) {
let d = false;
d = false;
if (this.c9.k.al) {
return;
}
if (this.plotAreaMouseLeftButtonUp != null) {
let e = this.bh(a, b, d);
this.plotAreaMouseLeftButtonUp(this, e);
}
if (!this.d7 && !c) {
if (this.plotAreaClicked != null) {
let f = this.bh(a, b, d);
this.plotAreaClicked(this, f);
}
}
this.d7 = false;
}
get fj() {
return this.c(SeriesViewer.s9);
}
set fj(a) {
this.h(SeriesViewer.s9, a);
}
get f7() {
return this.c(SeriesViewer.t3);
}
set f7(a) {
this.h(SeriesViewer.t3, a);
}
get by() {
return EnumUtil.getEnumValue(SeriesHighlightingMode_$type, this.c(SeriesViewer.sr));
}
set by(a) {
this.h(SeriesViewer.sr, enumGetBox(SeriesHighlightingMode_$type, a));
}
get cb() {
return EnumUtil.getEnumValue(SeriesSelectionMode_$type, this.c(SeriesViewer.tx));
}
set cb(a) {
this.h(SeriesViewer.tx, enumGetBox(SeriesSelectionMode_$type, a));
}
get b6() {
return EnumUtil.getEnumValue(SeriesSelectionBehavior_$type, this.c(SeriesViewer.tv));
}
set b6(a) {
this.h(SeriesViewer.tv, enumGetBox(SeriesSelectionBehavior_$type, a));
}
get b9() {
return EnumUtil.getEnumValue(SeriesSelectionMode_$type, this.c(SeriesViewer.sl));
}
set b9(a) {
this.h(SeriesViewer.sl, enumGetBox(SeriesSelectionMode_$type, a));
}
get ch() {
return EnumUtil.getEnumValue(SeriesViewerScrollbarMode_$type, this.c(SeriesViewer.sz));
}
set ch(a) {
this.h(SeriesViewer.sz, enumGetBox(SeriesViewerScrollbarMode_$type, a));
}
get ci() {
return EnumUtil.getEnumValue(SeriesViewerScrollbarMode_$type, this.c(SeriesViewer.uh));
}
set ci(a) {
this.h(SeriesViewer.uh, enumGetBox(SeriesViewerScrollbarMode_$type, a));
}
get ce() {
return EnumUtil.getEnumValue(SeriesViewerHorizontalScrollbarPosition_$type, this.c(SeriesViewer.s1));
}
set ce(a) {
this.h(SeriesViewer.s1, enumGetBox(SeriesViewerHorizontalScrollbarPosition_$type, a));
}
get cl() {
return EnumUtil.getEnumValue(SeriesViewerVerticalScrollbarPosition_$type, this.c(SeriesViewer.uj));
}
set cl(a) {
this.h(SeriesViewer.uj, enumGetBox(SeriesViewerVerticalScrollbarPosition_$type, a));
}
get vi() {
return this.c(SeriesViewer.sv);
}
set vi(a) {
this.h(SeriesViewer.sv, a);
}
get vj() {
return this.c(SeriesViewer.s0);
}
set vj(a) {
this.h(SeriesViewer.s0, a);
}
get hy() {
return this.c(SeriesViewer.s3);
}
set hy(a) {
this.h(SeriesViewer.s3, a);
}
get hx() {
return this.c(SeriesViewer.sy);
}
set hx(a) {
this.h(SeriesViewer.sy, a);
}
get hu() {
return this.c(SeriesViewer.su);
}
set hu(a) {
this.h(SeriesViewer.su, a);
}
get hv() {
return this.c(SeriesViewer.sw);
}
set hv(a) {
this.h(SeriesViewer.sw, a);
}
get hw() {
return this.c(SeriesViewer.sx);
}
set hw(a) {
this.h(SeriesViewer.sx, a);
}
get h0() {
return this.c(SeriesViewer.s5);
}
set h0(a) {
this.h(SeriesViewer.s5, a);
}
get hz() {
return this.c(SeriesViewer.s4);
}
set hz(a) {
this.h(SeriesViewer.s4, a);
}
get ey() {
return this.c(SeriesViewer.s2);
}
set ey(a) {
this.h(SeriesViewer.s2, a);
}
get vs() {
return this.c(SeriesViewer.ue);
}
set vs(a) {
this.h(SeriesViewer.ue, a);
}
get vt() {
return this.c(SeriesViewer.ui);
}
set vt(a) {
this.h(SeriesViewer.ui, a);
}
get il() {
return this.c(SeriesViewer.ul);
}
set il(a) {
this.h(SeriesViewer.ul, a);
}
get ik() {
return this.c(SeriesViewer.ug);
}
set ik(a) {
this.h(SeriesViewer.ug, a);
}
get ii() {
return this.c(SeriesViewer.ud);
}
set ii(a) {
this.h(SeriesViewer.ud, a);
}
get ip() {
return this.c(SeriesViewer.uo);
}
set ip(a) {
this.h(SeriesViewer.uo, a);
}
ne() {
if (!this.al.g && !this.al.f && !this.c9.a.g && !this.c9.a.f) {
this.pq();
}
}
pq() {
this.nc();
}
get ij() {
return this.c(SeriesViewer.uf);
}
set ij(a) {
this.h(SeriesViewer.uf, a);
}
get io() {
return this.c(SeriesViewer.un);
}
set io(a) {
this.h(SeriesViewer.un, a);
}
get im() {
return this.c(SeriesViewer.um);
}
set im(a) {
this.h(SeriesViewer.um, a);
}
get gj() {
return this.c(SeriesViewer.uk);
}
set gj(a) {
this.h(SeriesViewer.uk, a);
}
ca() {
if (this.cb == 0) {
return 1;
}
return this.cb;
}
b5() {
if (this.b6 == 0) {
return 3;
}
return this.b6;
}
bx() {
if (this.bw == 0) {
return 1;
}
if (this.by == 3 || this.by == 5) {
if (this.bw == 2) {
return 4;
}
}
return this.bw;
}
get bv() {
return this.bu;
}
get b8() {
return this.b7;
}
get b4() {
return this.b3;
}
get bw() {
return EnumUtil.getEnumValue(SeriesHighlightingBehavior_$type, this.c(SeriesViewer.sq));
}
set bw(a) {
this.h(SeriesViewer.sq, enumGetBox(SeriesHighlightingBehavior_$type, a));
}
get bd() {
return EnumUtil.getEnumValue(LegendHighlightingMode_$type, this.c(SeriesViewer.ta));
}
set bd(a) {
this.h(SeriesViewer.ta, enumGetBox(LegendHighlightingMode_$type, a));
}
get bf() {
return EnumUtil.getEnumValue(LegendItemBadgeShape_$type, this.c(SeriesViewer.tc));
}
set bf(a) {
this.h(SeriesViewer.tc, enumGetBox(LegendItemBadgeShape_$type, a));
}
get be() {
return EnumUtil.getEnumValue(LegendItemBadgeMode_$type, this.c(SeriesViewer.tb));
}
set be(a) {