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
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, 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) {