UNPKG

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
/* 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) {