UNPKG

igniteui-angular-charts

Version:

Ignite UI Angular charting components for building rich data visualizations for modern web apps.

1,325 lines (1,324 loc) 881 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, BaseError, 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, Date_$type, Array_$type, getInstanceType, IEqualityComparer$1_$type } 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 { HashSet$1 } from "igniteui-angular-core"; import { IToolbarContextAccessor_$type } 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 { List$1 } from "igniteui-angular-core"; import { ICommandStateChangedListener_$type } 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 { ChartResizeIdleEventArgs } from "./ChartResizeIdleEventArgs"; 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 { FontInfo } from "igniteui-angular-core"; 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 { AutomaticSeriesPurpose_$type } from "./AutomaticSeriesPurpose"; import { defaultDVDateParse, dateNow, dateMinValue } from "igniteui-angular-core"; import { stringIsNullOrEmpty, stringEmpty, stringContains, stringReplace, stringEndsWith, stringStartsWith, stringIsNullOrWhiteSpace } from "igniteui-angular-core"; import { timeSpanTotalMilliseconds } 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 { ImageLoader } 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 { AnnotationBackingArrangedSize } from "./AnnotationBackingArrangedSize"; import { AxisComponentsFromView } from "./AxisComponentsFromView"; import { FastReflectionHelper } from "igniteui-angular-core"; import { TransformGroup } from "igniteui-angular-core"; import { Convert } from "igniteui-angular-core"; import { GeometryUtil } from "igniteui-angular-core"; import { UIElement } from "igniteui-angular-core"; import { PolygonUtil } from "igniteui-angular-core"; import { ContentControl } from "igniteui-angular-core"; import { RotateTransform } 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 { AxisMatcher } from "./AxisMatcher"; import { CategoryMode_$type } from "./CategoryMode"; import { GridMode_$type } from "./GridMode"; import { Panel } from "igniteui-angular-core"; import { RectUtil } from "igniteui-angular-core"; import { TickmarkValues } from "./TickmarkValues"; import { TranslateTransform } from "igniteui-angular-core"; import { AngleSimplifier } from "igniteui-angular-core"; import { TransformMatrixHelpler } from "igniteui-angular-core"; import { TrimmedTextInfo } from "./TrimmedTextInfo"; import { ICategoryScaler_$type } from "./ICategoryScaler"; import { OverlayCollisionInfo } from "./OverlayCollisionInfo"; 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 { AutomaticAxisPurpose_$type } from "./AutomaticAxisPurpose"; 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 { PenLineCap_$type } from "igniteui-angular-core"; import { Marker } from "./Marker"; import { AutoMarginsAndAngleUpdateMode_$type } from "./AutoMarginsAndAngleUpdateMode"; import { ComputedPlotAreaMarginMode_$type } from "./ComputedPlotAreaMarginMode"; 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 { 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.dw = null; this.ee = null; this.an = null; this.userAnnotationInformationRequested = null; this.userAnnotationToolTipContentUpdating = null; this.hm = new List$1(ICommandStateChangedListener_$type, 0); this._commandCompleted = null; this._invalidateActions = null; this.hi = null; this.bn = null; this.bp = null; this.e0 = false; this.ez = false; this.dn = null; this.b7 = new SeriesCollection(); this.b8 = new SeriesCollection(); this.j1 = 0; this.ch = 0; this.cj = 0; this._skipDataCleanup = false; this.dy = null; this.d0 = null; this.dx = null; this.dz = null; this.a3 = null; this.yh = null; this.plotAreaMouseLeftButtonDown = null; this.plotAreaMouseLeftButtonUp = null; this.plotAreaClicked = null; this.plotAreaMouseEnter = null; this.plotAreaMouseLeave = null; this.plotAreaMouseOver = null; this.axisLabelMouseDown = null; this.axisLabelMouseUp = null; this.axisLabelMouseEnter = null; this.axisLabelMouseLeave = null; this.axisLabelMouseOver = null; this.axisLabelMouseClick = null; this.axisPanelMouseDown = null; this.axisPanelMouseUp = null; this.axisPanelMouseEnter = null; this.axisPanelMouseLeave = null; this.axisPanelMouseOver = null; this.axisPanelMouseClick = null; this.cx = 0; this.cy = 0; this.cc = 1; this.cp = 1; this.cl = 3; this.propertyChanged = null; this.propertyUpdated = null; this.kh = null; this.hj = new HashSet$1(IChartLegend_$type, 0); this.ev = false; this.seriesCursorMouseMove = null; this.seriesMouseLeftButtonDown = null; this.seriesMouseLeftButtonUp = null; this.seriesClick = null; this.seriesMouseMove = null; this.seriesMouseEnter = null; this.seriesMouseLeave = null; this.em = false; this.el = false; this.yq = Rect.empty; this.yo = Rect.empty; this.ej = true; this.yn = null; this.e5 = false; this.j0 = 30; this.resizeIdle = null; this.gl = false; this.e7 = false; this.cu = new SeriesViewerComponentsForView(); this.es = false; this.a5 = 0; this.a4 = 1; this.seriesAnimating = null; this.eg = new VersionQueueHelper(); this.ep = false; this.en = false; this.dh = 0; this.ex = false; this.ff = false; this.ek = false; this.ns = null; this.viewerManipulationStarting = null; this.viewerManipulationEnding = null; this.e3 = false; this.ey = false; this.windowRectChanged = null; this.sizeChanged = null; this.fr = false; this.actualWindowRectChanged = null; this.gridAreaRectChanged = null; this.fh = false; this.h0 = 0.0001; this.hz = 0.0001; this._syncChannel = null; this.c4 = null; this.g7 = false; this.e2 = false; this.fq = false; this.hd = false; this.da = 1; this.zb = null; this.j3 = 0; this.b5 = null; this.e1 = false; this.g8 = false; this.yp = Rect.empty; this._selectedSeriesItems = null; this._focusedSeriesItems = null; this.selectedSeriesItemsChanged = null; this.focusedSeriesItemsChanged = null; this.hu = new Date(); this.hg = false; this.refreshCompleted = null; this.km = null; this.kl = null; this.xs = null; this.xr = null; this.ig = NaN; this.id = NaN; this.ie = NaN; this.ic = NaN; this.ib = NaN; this.h9 = NaN; this.ia = NaN; this.h8 = NaN; this.kj = null; this.al = null; this.am = null; this.ak = null; this.ew = false; this.ei = false; this._syncSettings = null; this.destroyed = false; this.kg = null; this.hh = new Dictionary$2(String_$type, Base.$, 0); this.gj = false; this.ih = NaN; this.h5 = NaN; this.h7 = NaN; this.h3 = NaN; this.h2 = 30; this.h1 = NaN; this.eo = true; this.h6 = NaN; this.h4 = NaN; this.kk = null; this.hw = 1; this.hv = NaN; this.ym = null; this.fp = false; this.hx = 0; this.hy = 0; this.ur = null; this.bc = null; this.fv = false; this.fw = false; this.ft = false; this.et = false; this.j2 = 0; this.fd = false; this.fz = false; this.seriesDataUpdated = null; this.hn = new List$1(IDataLegend_$type, 0); this.eh = null; this.seriesDataChanged = null; this.hq = null; this.imageCaptured = null; this.df = null; this.ht = dateMinValue(); this.eu = false; this.bk = null; this.eq = false; this.er = false; DVContainer.instance.registerIfLoaded("AnnotationFactoryManager"); DVContainer.instance.registerIfLoaded("InteractivityFactoryManager"); DVContainer.instance.registerIfLoaded("DataChartToolbarFactoryManager"); DVContainer.instance.registerIfLoaded("VisualDataFactoryManager"); this.ym = Rect.empty; this.yh = { $type: Point_$type, x: NaN, y: NaN }; this.hu = dateNow(); this.fv = false; this.fw = false; this.al = new CanvasRenderScheduler(); this.al.a = runOn(this, this.ow); this.am = new CanvasRenderScheduler(); this.ak = new CanvasRenderScheduler(); SeriesViewer.y4 = new Rect(0, 0, 0, 1, 1); this.syncSettings = ((() => { let $ret = new SyncSettings(); $ret.synchronizeHorizontally = true; $ret.synchronizeVertically = true; return $ret; })()); this.dw = this.dv(); this.rw(this.dw); this.dw.c7(); this.t0(); this.pn(); this.actualSyncLink = new SyncLink(); this.t7(null, this.actualSyncLink); this.a3 = new ChartContentManager(this); this.propertyUpdated = delegateCombine(this.propertyUpdated, (a, b) => this.r8(a, b.propertyName, b.oldValue, b.newValue)); this.selectedSeriesItems = new ChartSelectedItemCollection(); let a = this.selectedSeriesItems; a.collectionChanged = delegateCombine(a.collectionChanged, runOn(this, this.rh)); let b = this.selectedSeriesItems; b.collectionResetting = delegateCombine(b.collectionResetting, runOn(this, this.tg)); this.focusedSeriesItems = new ChartSelectedItemCollection(); let c = this.focusedSeriesItems; c.collectionChanged = delegateCombine(c.collectionChanged, runOn(this, this.qu)); let d = this.focusedSeriesItems; d.collectionResetting = delegateCombine(d.collectionResetting, runOn(this, this.pg)); let e = this.series; e.collectionChanged = delegateCombine(e.collectionChanged, runOn(this, this.sa)); let f = this.series; f.collectionResetting = delegateCombine(f.collectionResetting, runOn(this, this.sb)); let g = this.b9; g.collectionChanged = delegateCombine(g.collectionChanged, runOn(this, this.ti)); let h = this.b9; h.collectionResetting = delegateCombine(h.collectionResetting, runOn(this, this.tj)); this.dz = new DoubleAnimator(0, 1, this.kc); this.dy = new DoubleAnimator(0, 1, this.ka); let i = this.dy; i.propertyChanged = delegateCombine(i.propertyChanged, runOn(this, this.pm)); this.d0 = new DoubleAnimator(0, 1, this.ke); this.dx = new DoubleAnimator(0, 1, this.j7); let j = this.d0; j.propertyChanged = delegateCombine(j.propertyChanged, runOn(this, this.th)); let k = this.dx; k.propertyChanged = delegateCombine(k.propertyChanged, runOn(this, this.ph)); this.dw.b0(); this.pp(); this.po(); } get widget() { return this._widget; } set widget(a) { this._widget = a; } static staticInit() { SeriesViewer.y4 = new Rect(0, 0, 0, 1, 1); } get ef() { if (this.ee == null) { this.ee = new SRProvider(this.dw.j.ae); } return this.ee; } ao(a) { if (this.an == null) { this.an = new AutomaticSeriesManager(this, this.series, this.b9); } return this.an; } getDesiredToolbarActions() { if (!this.gc) { return null; } return this.bo.getDesiredToolbarActions(this); } ru(a, b) { if (this.userAnnotationInformationRequested != null) { this.userAnnotationInformationRequested(a, b); } } rv(a, b) { if (this.userAnnotationToolTipContentUpdating != null) { this.userAnnotationToolTipContentUpdating(a, b); } } op(a) { if (this.fs) { for (let b = 0; b < this.b9.count; b++) { let c = this.b9._inner[b]; if (c.f9) { this.bl.cancelAnnotationFlow(c, a); } } } } pb(a) { if (this.fs) { for (let b = 0; b < this.b9.count; b++) { let c = this.b9._inner[b]; if (c.f9) { this.bl.finishAnnotationFlow(c, a); } } } } onToolCommandExecuting(a) { if (!this.gc) { return 1; } return this.bo.onToolCommandExecuting(this, a); } addCommandAvailabilityListener(a) { } removeCommandAvailabilityListener(a) { } addCommandStateChangedListener(a) { if (!this.hm.contains(a)) { this.hm.add(a); } } removeCommandStateChangedListener(a) { if (this.hm.contains(a)) { this.hm.remove(a); } } get commandCompleted() { return this._commandCompleted; } set commandCompleted(a) { this._commandCompleted = a; } get invalidateActions() { return this._invalidateActions; } set invalidateActions(a) { this._invalidateActions = a; } get hk() { return this.hi; } provideContextAccessor(a) { if (this.hi == null) { this.hi = new HashSet$1(IToolbarContextAccessor_$type, 0); } this.hi.add_1(a); } dismissContextAccessor(a) { if (this.hi == null) { return; } this.hi.remove(a); } ps() { if (this.invalidateActions != null) { this.invalidateActions(); } } get bo() { if (this.bn == null) { this.bn = DVContainer.instance.createInstance(IDataChartToolbarProvider_$type, () => this.ef.n); this.bn.container = this.dw.bl; } return this.bn; } get gc() { return DVContainer.instance.checkLoaded("DataChartToolbarFactoryManager"); } get bq() { if (this.bp == null) { this.bp = DVContainer.instance.createInstance(ISeriesViewerInteractionManager_$type, () => this.ef.n); } return this.bp; } get f3() { return DVContainer.instance.checkLoaded("InteractivityFactoryManager"); } sb(a, b) { if (this.an != null) { this.an.o(a, b); } else { this.b9.clear(); } } sa(a, b) { if (this.an != null) { this.an.n(a, b); } else { switch (b.action) { case 0: if (b.newItems != null) { for (let c = 0; c < b.newItems.count; c++) { let d = b.newItems.item(c); this.b9.insert(c + b.newStartingIndex, d); } } break; case 1: if (b.oldItems != null) { for (let e = 0; e < b.oldItems.count; e++) { this.b9.removeAt(b.oldStartingIndex); } } break; case 2: if (b.oldItems != null) { for (let f = 0; f < b.oldItems.count; f++) { this.b9.removeAt(b.oldStartingIndex); } } if (b.newItems != null) { for (let g = 0; g < b.newItems.count; g++) { let h = b.newItems.item(g); this.b9.insert(g + b.newStartingIndex, h); } } break; case 4: this.b9.clear(); for (let i of fromEnum(this.series)) { this.b9.add(i); } break; } } } tg(a, b) { for (let c = 0; c < this.selectedSeriesItems.count; c++) { this.q0(this.selectedSeriesItems._inner[c]); } } pg(a, b) { for (let c = 0; c < this.focusedSeriesItems.count; c++) { this.qz(this.focusedSeriesItems._inner[c]); } } rh(a, b) { if (b.action == 4 && b.newItems == null && b.oldItems == null) { return; } if (this.e0) { return; } if (b.oldItems != null) { for (let c = 0; c < b.oldItems.count; c++) { let d = b.oldItems.item(c); this.q0(d); } } if (b.newItems != null) { for (let e = 0; e < b.newItems.count; e++) { let f = b.newItems.item(e); f.f(this); } for (let g = 0; g < b.newItems.count; g++) { let h = b.newItems.item(g); this.q2(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.rg(this, new SeriesViewerSelectedSeriesItemsChangedEventArgs(i, k, m)); } qu(a, b) { if (b.action == 4 && b.newItems == null && b.oldItems == null) { return; } if (this.ez) { return; } if (b.oldItems != null) { for (let c = 0; c < b.oldItems.count; c++) { let d = b.oldItems.item(c); this.qz(d); } } if (b.newItems != null) { for (let e = 0; e < b.newItems.count; e++) { let f = b.newItems.item(e); this.q1(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.qt(this, new SeriesViewerSelectedSeriesItemsChangedEventArgs(g, i, k)); } q1(a) { this.pi((b) => { let c = a; if (c.series != null && c.series != b) { return; } b.p4(c.item); }); } qz(a) { this.pi((b) => { let c = a; if (c.series != null && c.series != b) { return; } b.p2(c.item); }); } pi(a) { for (let b of fromEnum(this.b9)) { a(b); if (b.isStacked) { b.qg((c) => { a(c); if (c.ei) { c.qe((d) => { a(d); return true; }); } return true; }); } if (b.ei) { b.qe((c) => { a(c); return true; }); } } } q2(a) { this.pi((b) => { let c = a; if (c.series != null && c.series != b) { return; } if (c.item == null) { b.qa(); } else { b.p5(c.item); } }); } q0(a) { this.pi((b) => { let c = a; if (c.series != null && c.series != b) { return; } if (c.item == null) { b.p8(); } else { b.p3(c.item); } }); } pn() { if (this.dn != null && this.dp == null) { let a = this.dp; a.thumbnailSizeChanged = delegateRemove(a.thumbnailSizeChanged, runOn(this, this.r4)); } if (this.dp != null) { let b = this.dp; b.thumbnailSizeChanged = delegateCombine(b.thumbnailSizeChanged, runOn(this, this.r4)); } if (this.kk != null) { this.dp.backgroundImageUri = this.kk; } if (this.dp != null) { this.dp.initializeScalingRatio(this.ij); } if (this.dn == null && this.dp != null) { this.p7(); } this.dn = this.dp; } r4(a, b) { this.dp.surfaceIsDirty = true; for (let c of fromEnum(this.b9)) { c.g6 = true; } } get_go() { return false; } get go() { return this.get_go(); } get_gn() { return false; } get gn() { return this.get_gn(); } po() { this.dw.cr(); if (this.dp != null) { this.dp.initializeScalingRatio(this.ij); } } get series() { return this.b8; } get b9() { return this.b7; } ti(a, b) { let c = this.fd; this.fd = this.fj(); if (b.oldItems != null) { let d = this.j1; for (let e of fromEn(b.oldItems)) { if (e != null && e.eq) { this.j1--; if (this.j1 < 0) { this.j1 = 0; } } e.c4 = null; e.dc = null; this.s8(e); this.dw.d1(e); } if (this.j1 < d) { for (let f of fromEnum(this.b9)) { if (f.ev) { continue; } f.p7(); } } } if (b.newItems != null) { let g = this.j1; for (let h of fromEn(b.newItems)) { if (h != null && h.eq) { this.j1++; } if (!this.dw.ar(h)) { this.t1(h); this.dw.bs(h); h.dc = this; h.c4 = this.actualSyncLink; h.s6(); } } if (this.j1 > g) { for (let i of fromEnum(this.b9)) { if (i.ev || b.newItems.contains(i)) { continue; } i.p7(); } } } if (this.fd != c && !this.y9.isEmpty) { this.r7(this.y9, this.y9); } this.p6(); this.qf(); this.qx(); this.p0(); } get ci() { return this.ch; } set ci(a) { this.ch = a; } get ck() { return this.cj; } set ck(a) { this.cj = a; } pq() { this.qf(); } qf() { } get skipDataCleanup() { return this._skipDataCleanup; } set skipDataCleanup(a) { this._skipDataCleanup = a; } s8(a) { if (!this.skipDataCleanup) { if (typeCast(Series.$, a) !== null) { a.itemsSource = null; } else if (typeCast(CategoryAxisBase.$, a) !== null) { a.itemsSource = null; } } this.ta(a.name, true); } get fm() { return this.j1 > 0; } tj(a, b) { this.fd = this.fj(); for (let c of fromEnum(this.b9)) { c.c4 = null; c.dc = null; this.s8(c); this.dw.d1(c); } this.j1 = 0; this.p0(); } pv(a, b, c, d) { let e = this.y9; 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 }; } fj() { return false; } get g4() { return this.ge; } get fx() { return this.bp != null; } get fc() { return this.bp != null; } get fb() { return this.cx != 0 || this.cy != 0; } get fa() { return this.fc && this.fb; } get d7() { let a = this.bq.f$e; if (a.executionContext == null) { a.executionContext = this.dw.l(); } if (a.ensureAnimator == null) { a.ensureAnimator = runOn(this, this.o7); } a.dismissHighlightDelay = this.j9; return a; } get d8() { let a = this.bq.f$f; if (a.executionContext == null) { a.executionContext = this.dw.l(); } if (a.ensureAnimator == null) { a.ensureAnimator = runOn(this, this.o8); } a.dismissHighlightDelay = this.kd; return a; } get d6() { let a = this.bq.f$d; if (a.executionContext == null) { a.executionContext = this.dw.l(); } if (a.ensureAnimator == null) { a.ensureAnimator = runOn(this, this.o6); } a.dismissHighlightDelay = this.j6; return a; } get br() { let a = this.bq.f$b; if (a.executionContext == null) { a.executionContext = this.dw.l(); } if (a.animator == null) { a.animator = this.dz; a.owner = this; } return a; } o7() { { let a = this.dy; if (!a.f() && a.r > 0) { a.v(); } if (a.r == 0) { let b = this.ha(1); while (b) { b = this.ha(0); b = this.ha(1); } } } } o8() { { let a = this.d0; if (!a.f() && a.r > 0) { a.v(); } if (a.r == 0) { let b = this.hb(1); while (b) { b = this.hb(0); b = this.hb(1); } } } } o6() { { let a = this.dx; if (!a.f() && a.r > 0) { a.v(); } if (a.r == 0) { let b = this.g9(1); while (b) { b = this.g9(0); b = this.g9(1); } } } } pm(a, b) { this.ha(this.dy.o); } th(a, b) { this.hb(this.d0.o); } ph(a, b) { this.g9(this.dx.o); } ha(a) { let b = this.d7.tick(a); if (a == 1 && b && this.dy.r > 0) { this.dy.v(); } let c = this.d7.dirtyContexts; if (this.d7.allDirty) { let d = this.b9; for (let e = 0; e < d.count; e++) { let f = d._inner[e]; f.rj(); } } else { for (let g = 0; g < c.count; g++) { let h = c._inner[g]; h.rj(); } } if (!b) { this.dy.w(); this.qw(); } return b; } hb(a) { let b = this.d8.tick(a); if (a == 1 && b && this.d0.r > 0) { this.d0.v(); } let c = this.d8.dirtyContexts; if (this.d8.allDirty) { let d = this.b9; for (let e = 0; e < d.count; e++) { let f = d._inner[e]; f.rj(); } } else { for (let g = 0; g < c.count; g++) { let h = c._inner[g]; h.rj(); } } if (!b) { this.d0.w(); } return b; } g9(a) { let b = this.d6.tick(a); if (a == 1 && b && this.dx.r > 0) { this.dx.v(); } let c = this.d6.dirtyContexts; if (this.d6.allDirty) { let d = this.b9; for (let e = 0; e < d.count; e++) { let f = d._inner[e]; f.rj(); } } else { for (let g = 0; g < c.count; g++) { let h = c._inner[g]; h.rj(); } } if (!b) { this.dx.w(); } return b; } pl() { this.dw.cn(); this.pk(); for (let a = 0; a < this.b9.count; a++) { if (this.b9._inner[a].ev) { this.b9._inner[a].qk(); } } } xx(a) { return this.xw(this.ag, a); } x3(a) { return this.xw(this.aj, a); } x1(a) { return this.xw(this.ah, a); } x2(a) { return this.xw(this.ai, a); } xw(a, b) { if (a == null || a.count == 0) { return null; } else { return a.item(b % a.count); } } get yi() { return this.yh; } set yi(a) { if (PointUtil.notEquals(this.yh, a)) { let b = this.yh; this.yh = a; this.sr("CrosshairPoint", b, this.yh); } } s4() { } get f2() { return this.dm == 1 || this.dm == 2 || this.dm == 3; } get legend() { return this.c(SeriesViewer.vy); } set legend(a) { this.h(SeriesViewer.vy, a); } get e8() { return this.c(SeriesViewer.ut); } set e8(a) { this.h(SeriesViewer.ut, a); } get gy() { return this.c(SeriesViewer.wn); } set gy(a) { this.h(SeriesViewer.wn, a); } se(a, b) { if (this.axisLabelMouseDown != null) { this.axisLabelMouseDown(this, b); } } si(a, b) { if (this.axisLabelMouseUp != null) { this.axisLabelMouseUp(this, b); } } sf(a, b) { if (this.axisLabelMouseEnter != null) { this.axisLabelMouseEnter(this, b); } } sg(a, b) { if (this.axisLabelMouseLeave != null) { this.axisLabelMouseLeave(this, b); } } sh(a, b) { if (this.axisLabelMouseOver != null) { this.axisLabelMouseOver(this, b); } } sd(a, b) { if (this.axisLabelMouseClick != null) { this.axisLabelMouseClick(this, b); } } sk(a, b) { if (this.axisPanelMouseDown != null) { this.axisPanelMouseDown(this, b); } } so(a, b) { if (this.axisPanelMouseUp != null) { this.axisPanelMouseUp(this, b); } } sl(a, b) { if (this.axisPanelMouseEnter != null) { this.axisPanelMouseEnter(this, b); } } sm(a, b) { if (this.axisPanelMouseLeave != null) { this.axisPanelMouseLeave(this, b); } } sn(a, b) { if (this.axisPanelMouseOver != null) { this.axisPanelMouseOver(this, b); } } sj(a, b) { if (this.axisPanelMouseClick != null) { this.axisPanelMouseClick(this, b); } } rc(a, b) { this.ev = false; let c = false; c = false; if (this.dw.k.al) { return; } if (this.plotAreaMouseLeftButtonDown != null) { let d = this.bw(a, b, c); this.plotAreaMouseLeftButtonDown(this, d); } } bw(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.y9.isEmpty) { if (c) { e.x -= this.y9.left; e.y -= this.y9.top; } else { d.x += this.y9.left; d.y += this.y9.top; } } let f = new PlotAreaMouseButtonEventArgs(this, d, e); f.manipulationOccurred = this.ev; return f; } b0(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.y9.isEmpty) { if (c) {