UNPKG

igniteui-angular-charts

Version:

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

6,547 lines 232 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 { EventArgs, Base, markType, Point_$type, runOn, typeCast, IList$1_$type, Number_$type, markDep, IEnumerable_$type, Array_$type, delegateCombine, fromEnum, Boolean_$type, enumGetBox, fromEn, String_$type, getInstanceType, INotifyPropertyChanged_$type, PropertyChangedEventArgs, Delegate_$type, toNullable, TypeRegistrar } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { DataTemplate } from "igniteui-angular-core";
import { Visibility_$type } from "igniteui-angular-core";
import { DoubleCollection } from "igniteui-angular-core";
import { PenLineCap_$type } from "igniteui-angular-core";
import { Style } from "igniteui-angular-core";
import { MarkerType_$type } from "./MarkerType";
import { HorizontalAnchoredCategorySeries } from "./HorizontalAnchoredCategorySeries";
import { CategoryLineRasterizer } from "./CategoryLineRasterizer";
import { Series } from "./Series";
import { List$1 } from "igniteui-angular-core";
import { AnchoredCategorySeries } from "./AnchoredCategorySeries";
import { CategoryAxisBase } from "./CategoryAxisBase";
import { CategorySeries } from "./CategorySeries";
import { CategoryFramePreparer } from "./CategoryFramePreparer";
import { NumericAxisBase } from "./NumericAxisBase";
import { ISupportsMarkers_$type } from "./ISupportsMarkers";
import { CategoryFrame } from "./CategoryFrame";
import { Rect } from "igniteui-angular-core";
import { CategorySeriesView } from "./CategorySeriesView";
import { Axis } from "./Axis";
import { ScalerParams } from "./ScalerParams";
import { ObservableCollection$1 } from "igniteui-angular-core";
import { AxisRange } from "./AxisRange";
import { AnchoredCategorySeriesView } from "./AnchoredCategorySeriesView";
import { CategoryBucketCalculator } from "./CategoryBucketCalculator";
import { isNaN_, isInfinity, truncate } from "igniteui-angular-core";
import { CategoryTransitionInMode_$type } from "./CategoryTransitionInMode";
import { Path } from "igniteui-angular-core";
import { ISortingAxis_$type } from "./ISortingAxis";
import { FrameworkElement } from "igniteui-angular-core";
import { XamDataChart } from "./XamDataChart";
import { DependencyProperty } from "igniteui-angular-core";
import { DependencyObject } from "igniteui-angular-core";
import { NumericYAxis } from "./NumericYAxis";
import { Defaults } from "./Defaults";
import { Pool$1 } from "igniteui-angular-core";
import { Rectangle } from "igniteui-angular-core";
import { DataContext } from "igniteui-angular-core";
import { Dictionary$2 } from "igniteui-angular-core";
import { IScaler_$type } from "./IScaler";
import { IIsCategoryBased_$type } from "./IIsCategoryBased";
import { CategoryMarkerManager } from "./CategoryMarkerManager";
import { PropertyMetadata } from "igniteui-angular-core";
import { dateMinValue, dateMaxValue } from "igniteui-angular-core";
import { NumericXAxis } from "./NumericXAxis";
import { CategoryYAxis } from "./CategoryYAxis";
import { AnchoredCategoryBucketCalculator } from "./AnchoredCategoryBucketCalculator";
import { IStacked100Series_$type } from "./IStacked100Series";
import { NotImplementedException } from "igniteui-angular-core";
import { SplineSeriesBase } from "./SplineSeriesBase";
import { CollisionAvoider } from "./CollisionAvoider";
import { SafeSortedReadOnlyDoubleCollection } from "./SafeSortedReadOnlyDoubleCollection";
import { Numeric } from "igniteui-angular-core";
import { ICategoryScaler_$type } from "./ICategoryScaler";
import { ChartSelection } from "./ChartSelection";
import { CategoryXAxis } from "./CategoryXAxis";
import { IBarSeries_$type } from "./IBarSeries";
import { Color } from "igniteui-angular-core";
import { LegendItemBadgeShape_$type } from "igniteui-angular-core";
import { LegendItemBadgeMode_$type } from "igniteui-angular-core";
import { MarkerFillMode_$type } from "./MarkerFillMode";
import { MarkerOutlineMode_$type } from "./MarkerOutlineMode";
import { SeriesOutlineMode_$type } from "./SeriesOutlineMode";
import { SeriesHighlightedValuesDisplayMode_$type } from "igniteui-angular-core";
import { TransitionInSpeedType_$type } from "./TransitionInSpeedType";
import { PropertyUpdatedEventArgs } from "igniteui-angular-core";
import { DataLegendSeriesValueInfo } from "igniteui-angular-core";
import { DataLegendSeriesContext } from "igniteui-angular-core";
import { SingleValuesHolder } from "./SingleValuesHolder";
import { stringIsNullOrEmpty } from "igniteui-angular-core";
import { SplineSeriesBaseView } from "./SplineSeriesBaseView";
import { Canvas } from "igniteui-angular-core";
import { Panel } from "igniteui-angular-core";
import { PlatformConstants } from "igniteui-angular-core";
/**
 * @hidden
 */
export let StackedSeriesCreatedEventArgs = /*@__PURE__*/ (() => {
    class StackedSeriesCreatedEventArgs extends EventArgs {
        constructor(a) {
            super();
            this.c = null;
            this.c = a;
        }
        get brush() {
            return this.c.kz;
        }
        set brush(a) {
            this.c.kz = a;
        }
        get legendItemTemplate() {
            return this.c.hr;
        }
        set legendItemTemplate(a) {
            this.c.hr = a;
        }
        get legendItemBadgeTemplate() {
            return this.c.hq;
        }
        set legendItemBadgeTemplate(a) {
            this.c.hq = a;
        }
        get legendItemVisibility() {
            return this.c.lu;
        }
        set legendItemVisibility(a) {
            this.c.lu = a;
        }
        get outline() {
            return this.c.k3;
        }
        set outline(a) {
            this.c.k3 = a;
        }
        get dashArray() {
            return this.c.k8;
        }
        set dashArray(a) {
            this.c.k8 = a;
        }
        get dashCap() {
            return this.c.lb;
        }
        set dashCap(a) {
            this.c.lb = a;
        }
        get index() {
            return this.c.cc;
        }
        get thickness() {
            return this.c.b4;
        }
        set thickness(a) {
            this.c.b4 = a;
        }
        get title() {
            return this.c.cj;
        }
        set title(a) {
            this.c.cj = a;
        }
        get transitionDuration() {
            return this.c.cd;
        }
        set transitionDuration(a) {
            this.c.cd = a;
        }
        get transitionEasingFunction() {
            return this.c.ai;
        }
        set transitionEasingFunction(a) {
            this.c.ai = a;
        }
        get markerBrush() {
            return this.c.k0;
        }
        set markerBrush(a) {
            this.c.k0 = a;
        }
        get markerOutline() {
            return this.c.k1;
        }
        set markerOutline(a) {
            this.c.k1 = a;
        }
        get markerStyle() {
            return this.c.lr;
        }
        set markerStyle(a) {
            this.c.lr = a;
        }
        get markerTemplate() {
            return this.c.hs;
        }
        set markerTemplate(a) {
            this.c.hs = a;
        }
        get markerType() {
            return this.c.x;
        }
        set markerType(a) {
            this.c.x = a;
        }
        get markerThickness() {
            return this.c.bx;
        }
        set markerThickness(a) {
            this.c.bx = a;
        }
        get lineCap() {
            return this.c.la;
        }
        set lineCap(a) {
            this.c.lc = a;
        }
    }
    StackedSeriesCreatedEventArgs.$t = markType(StackedSeriesCreatedEventArgs, 'StackedSeriesCreatedEventArgs', EventArgs.$);
    return StackedSeriesCreatedEventArgs;
})();
/**
 * @hidden
 */
export let FragmentBase = /*@__PURE__*/ (() => {
    class FragmentBase extends HorizontalAnchoredCategorySeries {
        constructor() {
            super();
            this.___neverPassByValue = true;
            this.ac4 = null;
            this._logicalSeriesLink = null;
            this.ac6 = null;
            this.ac4 = new CategoryLineRasterizer();
        }
        get logicalSeriesLink() {
            return this._logicalSeriesLink;
        }
        set logicalSeriesLink(a) {
            this._logicalSeriesLink = a;
        }
        get parentSeries() {
            return this.ac6;
        }
        set parentSeries(a) {
            this.ac6 = a;
        }
        get_e7() {
            return false;
        }
        get_isFragment() {
            return true;
        }
        ne() {
            if (this.logicalSeriesLink != null) {
                return this.logicalSeriesLink.e0;
            }
            return null;
        }
        j3() {
            let a = this.parentSeries;
            if (a.index == -1 || a.aa8 == null || a.aa8.f.indexOf(this) == -1) {
                return -1;
            }
            return a.aa8.f.indexOf(this);
        }
        qc(a) {
            super.qc(a);
            a.parentSeries = this.parentSeries;
            a.logicalSeriesLink = this.logicalSeriesLink;
        }
        j8() {
            let a = this.parentSeries;
            if (a.index == -1 || a.series.count == 0 || a.series.indexOf(this.logicalSeriesLink) == -1) {
                return -1;
            }
            return a.series.indexOf(this.logicalSeriesLink);
        }
        resolveLegendIndex() {
            let a = this.parentSeries;
            if (a.abc) {
                return -1 + a.index + a.aa3.count - a.aa8.f.indexOf(this);
            }
            return super.resolveLegendIndex();
        }
        bq() {
            return this.parentSeries;
        }
        yx() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchXAxis();
        }
        ac3() {
            if (this.parentSeries == null) {
                return this.y4;
            }
            return this.parentSeries.y4;
        }
        ze() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchYAxis();
        }
        ac9(a, b, c, d, e, f, g, h) {
            let i = c[0];
            let j = c[1];
            let k = new Rect(0, i - 5, j - 5, 11, 11);
            if (!isNaN_(i) && !isNaN_(j) && !isInfinity(i) && !isInfinity(j) && d.tryAdd(k)) {
                b.p.add({ $type: Point_$type, x: i, y: j });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        aap(a, b) {
            a.x();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null) {
                return;
            }
            if (this.logicalSeriesLink.a8.count == 0 || this.logicalSeriesLink.a7.count == 0) {
                return;
            }
            this.y5(b).d(a, b);
        }
        wh(a, b, c) {
            return this.wj(a, b, c, this.ac3().r(this.yx(), this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw)), this.ze(), this.yx(), runOn(this, this.ada), (d, e) => this.kc(d, e, this.yx(), runOn(this, this.zy), this.valueColumn != null ? new FragmentBaseValueList(this) : null), (d, e) => this.ka(d, e, this.yx(), runOn(this, this.zy), this.valueColumn != null ? new FragmentBaseValueList(this) : null));
        }
        ai() {
            return [this.yx(), this.ze()];
        }
        ada(a, b, c) {
            if (this.dc == null) {
                return NaN;
            }
            let d = this.getEffectiveViewport1(this.cw);
            let e = new ScalerParams(0, this.dc.wt, this.cw.b9, this.yx().ch, d);
            let f = this.y4.r(this.yx(), this.dc.wt, this.cw.b9, d);
            return this.i8(this.valueColumn != null ? new FragmentBaseValueList(this) : null, a, this.yx(), e, f, runOn(this, this.zy), b, c);
        }
        adc(a, b, c) {
            let d = this.abg(c);
            let e = d;
            let f = this.logicalSeriesLink.az;
            let g = f ? this.parentSeries.aa8.e : this.parentSeries.aa8.d;
            let h = this;
            if (this.bo != null) {
                h = this.bo;
            }
            let i = g.indexOf(h);
            if (a.count == 0) {
                return;
            }
            if (i == -1) {
                return;
            }
            let j = false;
            for (let k = i; k >= 0; k--) {
                if (j) {
                    break;
                }
                if (k == 0) {
                    a.add({ $type: Point_$type, x: a._inner[a.count - 1].x, y: e });
                    a.add({ $type: Point_$type, x: a._inner[0].x, y: e });
                    break;
                }
                let l = typeCast(FragmentBase.$, g._inner[k - 1]);
                if (l != null && l.ac4 != null && l.ac4.o.count > 0 && this.cw != null && l.hf(this.cw.b9, this.cw.ca, this.cw)) {
                    j = true;
                    for (let m = l.ac4.o.count - 1; m >= 0; m--) {
                        a.add(l.ac4.o._inner[m]);
                    }
                }
            }
        }
        hf(a, b, c) {
            let d = super.hf(a, b, c);
            let e = typeCast(CategoryAxisBase.$, this.parentSeries.fetchXAxis());
            let f = this.parentSeries.fetchYAxis();
            if (this.parentSeries == null || e == null || e.itemsSource == null || f == null || this.parentSeries.dp == null || e.bi == null || f.bi == null) {
                d = false;
            }
            if (this.valueColumn == null) {
                return false;
            }
            if (isInfinity(this.valueColumn.minimum) && isInfinity(this.valueColumn.maximum)) {
                d = false;
            }
            if (isNaN_(this.valueColumn.minimum) && isNaN_(this.valueColumn.maximum)) {
                d = false;
            }
            return d;
        }
        abg(a) {
            let b = 0;
            let c = a.ca;
            let d = a.b9;
            let e = this.getEffectiveViewport1(a);
            let f = new ScalerParams(0, c, d, this.ze().ch, e);
            f.b = this.iz();
            if (!c.isEmpty && !d.isEmpty && this.ze() != null) {
                b = this.ze().el(0, f);
            }
            return b;
        }
        ay(a) {
            return null;
        }
        adb() {
            if (this.parentSeries == null) {
                return -1;
            }
            let a = this.parentSeries.index;
            let b = 0;
            let c = 1;
            if (this.parentSeries.abc) {
                b = this.parentSeries.aa3.count - 1;
                c = -1;
            }
            for (let d = b; this.parentSeries.abc ? d >= 0 : d < this.parentSeries.aa3.count; d += c) {
                let e = this.parentSeries.aa3._inner[d];
                if (e.visualSeriesLink == this) {
                    return a;
                }
                if (this.parentSeries.a5 == null || e.lt != 0 || e.ls != 0) {
                    continue;
                }
                a++;
            }
            return -1;
        }
        add(a) {
            if (a == null) {
            }
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            if (this.parentSeries == null) {
                return;
            }
            let e = typeCast(NumericAxisBase.$, this.parentSeries.fetchYAxis());
            if (e == null) {
                return;
            }
            switch (b) {
                case "ValueColumn":
                    if (this.aa2.dl) {
                        this.aa2.dk.g$m();
                    }
                    if (e != null && !e.c1()) {
                        this.parentSeries.aa2().c9.g(this.ie);
                        this.ru(this.gh && this.d9);
                    }
                    break;
                case "ActualBrush":
                    if (this.logicalSeriesLink != null) {
                        this.logicalSeriesLink.ku = this.ve;
                    }
                    break;
            }
        }
        rw(a, b) {
            super.rw(a, b);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    FragmentBase.$t = markType(FragmentBase, 'FragmentBase', HorizontalAnchoredCategorySeries.$);
    return FragmentBase;
})();
/**
 * @hidden
 */
export let AreaFragment = /*@__PURE__*/ (() => {
    class AreaFragment extends FragmentBase {
        constructor() {
            super();
            this.ab = AreaFragment.$;
        }
        bk() {
            return new AreaFragment();
        }
        ct() {
            return new AreaFragmentView(this);
        }
        q3(a) {
            super.q3(a);
            this.ade = a;
        }
        get_ex() {
            return true;
        }
        get_ew() {
            return true;
        }
        y9() {
            return 1;
        }
        adg(a, b) {
            let c = this.ade.dz.an;
            if (this.gz(a, c)) {
                return true;
            }
            let d = this.ade.d0.an;
            if (this.gz(a, d)) {
                return true;
            }
            return false;
        }
        gx(a, b) {
            if (this.adf(a, b)) {
                return true;
            }
            if (this.adg(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        adf(a, b) {
            let c = this.ade.d1.an;
            if (this.gy(a, b, c)) {
                return true;
            }
            let d = this.ade.d2.an;
            if (this.gy(a, b, d)) {
                return true;
            }
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        o7(a, b) {
            super.o7(a, b);
            let c = b;
            c.du();
        }
        aas(a, b) {
            super.aas(a, b);
            this.ac4.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = typeCast(AreaFragmentView.$, b);
            let d = a.h;
            let e = this.getEffectiveViewport1(c);
            this.y7.a2(this, this.zr(), runOn(this, this.yr), this.z0(b), this.z1(b));
            let f = false;
            let g = this.y7.b;
            if (g != null) {
                f = true;
            }
            if (f) {
                let h = new ScalerParams(0, b.ca, b.b9, this.ack.ch, e);
                this.aao(d, -1, this.valueColumn.count, this.ack, h, b.t, -1);
            }
            this.y7.ad(c.d1, true, false, true, true);
            this.y7.ad(c.d2, true, false, true, true);
            this.y7.ad(c.dz, false, true, false, false);
            this.y7.ad(c.d0, false, true, false, false);
            let i = c.c9.d;
            this.ac4.i(c.dz, c.d1, c.d0, c.d2, a.h.count, a.h, true, i, this.ie, (j, k, l, m, n) => this.adc(j, a.h, b), 0);
            c.dz._opacity = this.y7.j * this.ia;
            c.d0._opacity = 0.5 * this.y7.j * this.ia;
        }
        sh() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ia = isNaN_(this.il) ? this.parentSeries.ia : this.il;
            }
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    AreaFragment.$t = markType(AreaFragment, 'AreaFragment', FragmentBase.$);
    return AreaFragment;
})();
/**
 * @hidden
 */
export let ColumnFragment = /*@__PURE__*/ (() => {
    class ColumnFragment extends FragmentBase {
        constructor() {
            super();
            this.ab = ColumnFragment.$;
        }
        bk() {
            return new ColumnFragment();
        }
        get_e1() {
            return true;
        }
        get_fm() {
            return true;
        }
        jl() {
            if (!isNaN_(this.jk)) {
                return super.jl();
            }
            return Defaults.h;
        }
        y9() {
            return 1;
        }
        ct() {
            return new ColumnFragmentView(this);
        }
        q3(a) {
            super.q3(a);
            this.adf = a;
        }
        get fragmentXAxis() {
            return this.parentSeries != null ? typeCast(CategoryAxisBase.$, this.parentSeries.fetchXAxis()) : null;
        }
        get fragmentYAxis() {
            return this.parentSeries != null ? typeCast(NumericYAxis.$, this.parentSeries.fetchYAxis()) : null;
        }
        preferredCategoryMode(a) {
            return 2;
        }
        yx() {
            return this.fragmentXAxis;
        }
        ze() {
            return this.fragmentYAxis;
        }
        get_ef() {
            return true;
        }
        fetchXAxis() {
            return null;
        }
        fetchYAxis() {
            return null;
        }
        o7(a, b) {
            super.o7(a, b);
            let c = b;
            if (a && c.du != null) {
                this.yz.p.clear();
                c.du.count = 0;
            }
        }
        ay(a) {
            if (this.valueColumn == null || this.valueColumn.count == 0) {
                return null;
            }
            return new AxisRange(this.valueColumn.minimum, this.valueColumn.maximum);
        }
        hf(a, b, c) {
            if (this.parentSeries == null) {
                return false;
            }
            return this.parentSeries.abd(this, a, b, this.adh(c));
        }
        hc() {
            return true;
        }
        z0(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.z0(this.parentSeries.cw);
            }
            return super.z0(a);
        }
        z1(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.z1(this.parentSeries.cw);
            }
            return super.z0(a);
        }
        z2(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.z2(this.parentSeries.cw);
            }
            return super.z2(a);
        }
        ws(a) {
            if (this.yx() == null || this.fragmentYAxis == null) {
                return Rect.empty;
            }
            let b = this.wc(a);
            let c = this.cw.ca;
            let d = this.cw.b9;
            let e = this.getEffectiveViewport1(this.cw);
            let f = new ScalerParams(0, c, d, this.fragmentYAxis.ch, e);
            let g = this.an(this.yx(), this.yz.h, this.z0(this.cw), this.z1(this.cw), a, true);
            if (g == null) {
                return Rect.empty;
            }
            let h = g[0];
            let i = g[1];
            let j = Math.abs(b.x - h[0]);
            let k = Math.abs(b.x - i[0]);
            let l = this.yx().k8(c, d, e);
            if (j < k) {
                let m = h[0] - 0.5 * l;
                let n = h[1];
                let o = h[2];
                return new Rect(0, m, Math.min(n, o), l, Math.max(n, o) - Math.min(n, o));
            }
            else {
                let p = i[0] - 0.5 * l;
                let q = i[1];
                let r = i[2];
                return new Rect(0, p, Math.min(q, r), l, Math.max(q, r) - Math.min(q, r));
            }
        }
        gx(a, b) {
            if (this.g0(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        g0(a, b) {
            let c = this.wt(a);
            if (c.isEmpty) {
                return false;
            }
            let d = this.ado(c, this.iv(b));
            return d.containsPoint(a);
        }
        ado(a, b) {
            let c = a.left + a.width / 2;
            let d = a.top + a.height / 2;
            let e = c - ((a.width / 2) + b);
            let f = d - (a.height / 2);
            let g = a.height;
            let h = a.width + b * 2;
            return new Rect(0, e, f, h, g);
        }
        ky(a, b) {
            let c = typeCast(FrameworkElement.$, a);
            let d = c != null ? typeCast(DataContext.$, c.dataContext) : null;
            let e = d != null ? d.item : null;
            if (e == null) {
                let f = this.cw.b9;
                let g = this.dc != null ? this.dc.wt : Rect.empty;
                let h = { $type: Point_$type, x: g.left + g.width * (b.x - f.left) / f.width, y: g.top + g.height * (b.y - f.top) / f.height };
                e = this.ko(h);
            }
            return e;
        }
        ko(a) {
            let b = 0;
            if (typeCast(ISortingAxis_$type, this.yx()) !== null) {
                b = this.j6(a);
                if (b == -1) {
                    return null;
                }
            }
            else {
                b = this.j4(a);
            }
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        j6(a) {
            let b = this.cw.ca;
            let c = this.cw.b9;
            let d = this.getEffectiveViewport1(this.cw);
            if (b.isEmpty || c.isEmpty) {
                return -1;
            }
            let e = this.yx();
            let f = new ScalerParams(0, b, c, e.ch, d);
            let g = typeCast(ISortingAxis_$type, this.fragmentXAxis);
            let h = this.wo(this.cw);
            let i = e.eo(h.left, f);
            let j = e.eo(h.right, f);
            let k = (a.x - b.left) / b.width;
            let l = i + ((j - i) * k);
            if (truncate(l) <= dateMinValue().getTime() || truncate(l) >= dateMaxValue().getTime()) {
                return -1;
            }
            let m = g.i$f(l);
            return m;
        }
        j4(a) {
            if (this.parentSeries == null) {
                return -1;
            }
            return this.parentSeries.abk(a);
        }
        ac9(a, b, c, d, e, f, g, h) {
            let i = 0;
            let j = c[0];
            let k = e < i ? c[2] : c[1];
            let l = new Rect(0, j - 5, k - 5, 11, 11);
            if (!isNaN_(j) && !isNaN_(k) && !isInfinity(j) && !isInfinity(k) && d.tryAdd(l)) {
                b.p.add({ $type: Point_$type, x: j, y: k });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        adh(a) {
            if (a.s) {
                return this.parentSeries.ba.a$j.item(a.al);
            }
            else if (a == this.cv) {
                return this.parentSeries.cv;
            }
            else {
                return this.parentSeries.y8;
            }
        }
        rt(a, b, c, d, e) {
            this.ba.a$z(this, a, b, d, e);
            let f = this.ba.a$j.item(d);
            let g = f;
            f.bd(c);
            let h = this.adh(f);
            h.c9.g(this.ie);
            if (this.d7(g)) {
                return;
            }
            if (this.aa3 == null) {
                this.aa3 = new CategoryFrame(3);
            }
            this.aa3.x();
            this.aap(this.aa3, g);
            this.aas(this.aa3, g);
        }
        aap(a, b) {
            a.x();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null || this.logicalSeriesLink.a7.count == 0 || this.logicalSeriesLink.a8.count == 0) {
                return;
            }
            let c;
            if (b.s) {
                c = this.parentSeries.aa1;
            }
            else if (b == this.cv) {
                c = this.parentSeries.y2;
            }
            else {
                c = this.parentSeries.yz;
            }
            let d = typeCast(CategorySeriesView.$, this.adh(b));
            a.h.clear();
            if (a.o != null) {
                a.o.clear();
            }
            a.p.clear();
            let e = d.c9.e;
            let f = d.c9.f;
            let g = this.parentSeries.y4.h.yScaler;
            let h = typeCast(ISortingAxis_$type, this.parentSeries.y4.h.scaler);
            let i = typeCast(NumericAxisBase.$, g) !== null && g.lp;
            let j = typeCast(StackedBucketCalculator.$, d.c9);
            let k = d.c9.d;
            let l = 0;
            if (e <= f) {
                for (let m = e; m <= f; m++) {
                    let n = m * k;
                    if (this._visibility != 0) {
                        break;
                    }
                    if (m >= this.valueColumn.count || m >= c.h.count + e) {
                        continue;
                    }
                    let o = this.valueColumn.item(m);
                    let p = !i || (i && o > 0);
                    let q;
                    if (h == null) {
                        q = j.getBucket1(this, m, m, b.ca, b.b9, c);
                    }
                    else {
                        q = j.getBucket1(this, m, h.i$b._inner[m], b.ca, b.b9, c);
                    }
                    a.h.add(q);
                    if (h != null) {
                        if (a.o == null) {
                            a.o = new List$1(Number_$type, 0);
                        }
                        a.o.add(n);
                    }
                    if (p) {
                        if (this.ac9(b, a, q, this.y4.h.provideCollisionDetector(), o, n, l, a.h.count - 1)) {
                            l++;
                        }
                    }
                }
            }
            b.dc.count = l;
        }
        aas(a, b) {
            super.aas(a, b);
            if (this.parentSeries == null) {
                return;
            }
            this.parentSeries.abt(this, a, b, runOn(this, this.yr));
            CategoryMarkerManager.e(this, a.p, b.dc, this.xn);
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    ColumnFragment.$t = markType(ColumnFragment, 'ColumnFragment', FragmentBase.$);
    ColumnFragment.$$p = markDep(DependencyProperty, PropertyMetadata, ColumnFragment, 'raisePropertyChanged', ['RadiusX:adi:adm', [1, 0], 'RadiusY:adj:adn', [1, 0]]);
    return ColumnFragment;
})();
/**
 * @hidden
 */
export let BarFragment = /*@__PURE__*/ (() => {
    class BarFragment extends ColumnFragment {
        constructor() {
            super();
            this.ab = BarFragment.$;
        }
        get_ez() {
            return true;
        }
        get_fm() {
            return true;
        }
        get_e1() {
            return false;
        }
        y9() {
            return 1;
        }
        get barFragmentXAxis() {
            return this.parentSeries != null ? this.parentSeries.xAxis : null;
        }
        get barFragmentYAxis() {
            return this.parentSeries != null ? this.parentSeries.yAxis : null;
        }
        yx() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchYAxis();
        }
        get_isVertical() {
            return true;
        }
        is(a) {
            let b = this.dc != null ? this.dc.wt : Rect.empty;
            let c = this.cw.b9;
            let d = this.wo(this.cw);
            let e = this.getEffectiveViewport1(this.cw);
            let f = this.yx();
            let g = -1;
            if (f != null && !b.isEmpty && !c.isEmpty) {
                let h = new ScalerParams(0, b, c, f.ch, e);
                let i = f.eo(d.top, h);
                let j = f.eo(d.bottom, h);
                let k = (a.y - b.top) / b.height;
                let l = i + (k * (j - i));
                if (f.categoryMode != 0) {
                    l -= 0.5;
                }
                g = l;
            }
            return g;
        }
        ze() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.ze();
        }
        ado(a, b) {
            let c = a.left + a.width / 2;
            let d = a.top + a.height / 2;
            let e = c - (a.width / 2);
            let f = d - ((a.height / 2) + b);
            let g = a.height + b * 2;
            let h = a.width;
            return new Rect(0, e, f, h, g);
        }
        ws(a) {
            if (this.yx() == null) {
                return Rect.empty;
            }
            let b = this.wc(a);
            let c = this.cw.ca;
            let d = this.cw.b9;
            let e = this.getEffectiveViewport1(this.cw);
            let f = this.yx();
            let g = new ScalerParams(0, c, d, f.ch, e);
            let h = this.an(this.yx(), this.yz.h, this.z0(this.cw), this.z1(this.cw), a, true);
            if (h == null) {
                return Rect.empty;
            }
            let i = h[0];
            let j = h[1];
            let k = Math.abs(b.y - i[0]);
            let l = Math.abs(b.y - j[0]);
            let m = f.k8(c, d, e);
            if (k < l) {
                let n = i[0] - 0.5 * m;
                let o = i[2];
                let p = i[1];
                return new Rect(0, o, n, Math.max(p, o) - Math.min(p, o), m);
            }
            else {
                let q = j[0] - 0.5 * m;
                let r = j[2];
                let s = j[1];
                return new Rect(0, r, q, Math.max(s, r) - Math.min(s, r), m);
            }
        }
        gx(a, b) {
            if (this.g0(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        ac9(a, b, c, d, e, f, g, h) {
            let i = c[0];
            let j = e < 0 ? c[2] : c[1];
            let k = new Rect(0, j - 5, i - 5, 11, 11);
            if (!isNaN_(j) && !isNaN_(i) && !isInfinity(j) && !isInfinity(i) && d.tryAdd(k)) {
                b.p.add({ $type: Point_$type, x: j, y: i });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        ko(a) {
            let b = 0;
            if (typeCast(ISortingAxis_$type, this.barFragmentYAxis) !== null) {
                b = this.j6(a);
                if (b == -1) {
                    return null;
                }
            }
            else {
                b = this.j4(a);
            }
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        j6(a) {
            let b = this.cw.ca;
            let c = this.cw.b9;
            if (b.isEmpty || c.isEmpty) {
                return -1;
            }
            let d = this.getEffectiveViewport1(this.cw);
            let e = new ScalerParams(0, b, c, this.barFragmentYAxis.ch, d);
            let f = typeCast(ISortingAxis_$type, this.barFragmentYAxis);
            let g = this.wo(this.cw);
            let h = this.barFragmentYAxis.eo(g.top, e);
            let i = this.barFragmentYAxis.eo(g.bottom, e);
            let j = (a.y - b.top) / b.height;
            let k = h + ((i - h) * j);
            if (truncate(k) <= dateMinValue().getTime() || truncate(k) >= dateMaxValue().getTime()) {
                return -1;
            }
            let l = f.i$f(k);
            return l;
        }
        abg(a) {
            let b = 0;
            let c = a.ca;
            let d = a.b9;
            let e = this.getEffectiveViewport1(a);
            let f = new ScalerParams(0, c, d, this.barFragmentXAxis.ch, e);
            if (!c.isEmpty && !d.isEmpty && this.barFragmentXAxis != null) {
                b = this.barFragmentXAxis.el(0, f);
            }
            return b;
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            if (this.parentSeries == null || this.barFragmentXAxis == null) {
                return;
            }
            let e = this.barFragmentXAxis;
            switch (b) {
                case "ValueColumn":
                    if (this.aa2.dl) {
                        this.aa2.dk.g$m();
                    }
                    if (e != null && !e.c1()) {
                        this.parentSeries.aa2().c9.g(this.ie);
                        this.ru(this.gh && this.d9);
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    BarFragment.$t = markType(BarFragment, 'BarFragment', ColumnFragment.$);
    return BarFragment;
})();
/**
 * @hidden
 */
export let AreaFragmentBucketCalculator = /*@__PURE__*/ (() => {
    class AreaFragmentBucketCalculator extends AnchoredCategoryBucketCalculator {
        constructor(a) {
            super(a);
        }
        getBucketWithoutUnknowns(a) {
            return this.getBucket(a);
        }
        getBucket(a) {
            let b = Math.min(a * this.d, this.i.di.valueColumn.count - 1);
            let c = Math.min(b + this.d - 1, this.i.di.valueColumn.count - 1);
            let d = NaN;
            let e = NaN;
            let f = this.i.di;
            let g = f.parentSeries;
            let h = typeCast(IStacked100Series_$type, g) !== null;
            let i = this.i.di.valueColumn;
            let j = g.aaz;
            let k = g.aa0;
            let l = f.logicalSeriesLink.a8;
            let m = f.logicalSeriesLink.a7;
            for (let n = b; n <= c; ++n) {
                let o = i.item(n);
                if (isNaN_(o) || isInfinity(o)) {
                    o = 0;
                }
                let p = Math.abs(k[n]) + j[n];
                if (h) {
                    if (p == 0) {
                        o = 0;
                    }
                    else if (o < 0) {
                        o = (l._inner[n] + o) / p * 100;
                    }
                    else {
                        o = (m._inner[n] + o) / p * 100;
                    }
                }
                else {
                    o = o < 0 ? l._inner[n] + o : m._inner[n] + o;
                }
                if (!isNaN_(d)) {
                    if (!isNaN_(o)) {
                        d = Math.min(d, o);
                        e = Math.max(e, o);
                    }
                }
                else {
                    d = o;
                    e = o;
                }
            }
            if (!isNaN_(d)) {
                return [0.5 * (b + c), d, e];
            }
            return [0.5 * (b + c), NaN, NaN];
        }
    }
    AreaFragmentBucketCalculator.$t = markType(AreaFragmentBucketCalculator, 'AreaFragmentBucketCalculator', AnchoredCategoryBucketCalculator.$);
    return AreaFragmentBucketCalculator;
})();
/**
 * @hidden
 */
export let LineFragmentBucketCalculator = /*@__PURE__*/ (() => {
    class LineFragmentBucketCalculator extends AnchoredCategoryBucketCalculator {
        constructor(a) {
            super(a);
        }
        getBucketWithoutUnknowns(a) {
            return this.getBucket(a);
        }
        getBucket(a) {
            let b = Math.min(a * this.d, this.i.di.valueColumn.count - 1);
            let c = Math.min(b + this.d - 1, this.i.di.valueColumn.count - 1);
            let d = NaN;
            let e = NaN;
            let f = typeCast(FragmentBase.$, this.i.di);
            let g = f.parentSeries;
            for (let h = b; h <= c; ++h) {
                let i = this.i.di.valueColumn.item(h);
                let j = Math.abs(g.aa0[h]) + g.aaz[h];
                if (isNaN_(i) || isInfinity(i)) {
                    i = 0;
                }
                if (typeCast(IStacked100Series_$type, g) !== null) {
                    if (j == 0) {
                        i = 0;
                    }
                    else if (i < 0) {
                        i = (f.logicalSeriesLink.a8._inner[h] + i) / j * 100;
                    }
                    else {
                        i = (f.logicalSeriesLink.a7._inner[h] + i) / j * 100;
                    }
                }
                else {
                    i = i < 0 ? f.logicalSeriesLink.a8._inner[h] + i : f.logicalSeriesLink.a7._inner[h] + i;
                }
                if (!isNaN_(d)) {
                    if (!isNaN_(i)) {
                        d = Math.min(d, i);
                        e = Math.max(e, i);
                    }
                }
                else {
                    d = i;
                    e = i;
                }
            }
            if (!isNaN_(d)) {
                return [0.5 * (b + c), d, e];
            }
            return [0.5 * (b + c), NaN, NaN];
        }
    }
    LineFragmentBucketCalculator.$t = markType(LineFragmentBucketCalculator, 'LineFragmentBucketCalculator', AnchoredCategoryBucketCalculator.$);
    return LineFragmentBucketCalculator;
})();
/**
 * @hidden
 */
export let SplineFragmentBucketCalculator = /*@__PURE__*/ (() => {
    class SplineFragmentBucketCalculator extends AnchoredCategoryBucketCalculator {
        constructor(a) {
            super(a);
        }
        getBucket(a) {
            let b = Math.min(a * this.d, this.i.di.valueColumn.count - 1);
            let c = Math.min(b + this.d - 1, this.i.di.valueColumn.count - 1);
            let d = NaN;
            let e = NaN;
            let f = typeCast(SplineFragmentBase.$, this.i.di);
            let g = f.parentSeries;
            for (let h = b; h <= c; ++h) {
                let i = this.i.di.valueColumn.item(h);
                let j = Math.abs(g.aa0[h]) + g.aaz[h];
                if (isNaN_(i) || isInfinity(i)) {
                    i = 0;
                }
                if (typeCast(IStacked100Series_$type, g) !== null) {
                    if (j == 0) {
                        i = 0;
                    }
                    else if (i < 0) {
                        i = (f.logicalSeriesLink.a8._inner[h] + i) / j * 100;
                    }
                    else {
                        i = (f.logicalSeriesLink.a7._inner[h] + i) / j * 100;
                    }
                }
                else {
                    i = i < 0 ? f.logicalSeriesLink.a8._inner[h] + i : f.logicalSeriesLink.a7._inner[h] + i;
                }
                if (!isNaN_(d)) {
                    if (!isNaN_(i)) {
                        d = Math.min(d, i);
                        e = Math.max(e, i);
                    }
                }
                else {
                    d = i;
                    e = i;
                }
            }
            if (!isNaN_(d)) {
                return [0.5 * (b + c), d, e];
            }
            return [0.5 * (b + c), NaN, NaN];
        }
    }
    SplineFragmentBucketCalculator.$t = markType(SplineFragmentBucketCalculator, 'SplineFragmentBucketCalculator', AnchoredCategoryBucketCalculator.$);
    return SplineFragmentBucketCalculator;
})();
/**
 * @hidden
 */
export let StackedBucketCalculator = /*@__PURE__*/ (() => {
    class StackedBucketCalculator extends CategoryBucketCalculator {
        constructor(a) {
            super(a);
        }
        getBucket(a) {
            let b = typeCast(StackedSeriesBase.$, this.c.db);
            let c = Math.min(b.aa0 != null ? b.aa0.length : 0, b.aaz != null ? b.aaz.length : 0);
            let d = Math.min(a * this.d, c - 1);
            let e = Math.min(d + this.d - 1, c - 1);
            let f = NaN;
            let g = NaN;
            for (let h = d; h <= e; ++h) {
                let i = Math.min(b.aa0[h], b.aaz[h]);
                let j = Math.max(b.aa0[h], b.aaz[h]);
                if (!isNaN_(f)) {
                    if (!isNaN_(i)) {
                        f = Math.min(f, i);
                        g = Math.max(g, i);
                    }
                    if (!isNaN_(j)) {
                        f = Math.min(f, j);
                        g = Math.max(g, j);
                    }
                }
                else {
                    f = i;
                    g = j;
                }
            }
            if (!isNaN_(f) && !isNaN_(g)) {
                return [0.5 * (d + e), f, g];
            }
            return [NaN, NaN, NaN];
        }
        getBucket1(a, b, c, d, e, f) {
            return null;
        }
    }
    StackedBucketCalculator.$t = markType(StackedBucketCalculator, 'StackedBucketCalculator', CategoryBucketCalculator.$);
    return StackedBucketCalculator;
})();
/**
 * @hidden
 */
export let StackedBarBucketCalculator = /*@__PURE__*/ (() => {
    class StackedBarBucketCalculator extends StackedBucketCalculator {
        constructor(a) {
            super(a);
        }
        g(a) {
            let b = this.c.ca;
            let c = this.c.b9;
            let d = typeCast(StackedBarSeries.$, this.c.db);
            let e = this.c.db.dp;
            if (b.isEmpty || c.isEmpty || d.yAxis == null || e == null || e.count == 0) {
                this.d = 0;
                return;
            }
            let f = d.getEffectiveViewport1(this.c);
            let g = new ScalerParams(0, b, c, d.yAxis.ch, f);
            let h = d.wo(this.c);
            let i = Math.floor(d.yAxis.ep(h.top, g, 0));
            let j = Math.ceil(d.yAxis.ep(h.bottom, g, 0));
            if (!d.yAxis.ch) {
                j = Math.ceil(d.yAxis.ep(h.top, g, 0));
                i = Math.floor(d.yAxis.ep(h.bottom, g, 0));
            }
            let k = Math.floor((j - i + 1) * a / h.height);
            this.d = truncate(Math.max(1, k));
            this.e = truncate(Math.max(0, Math.floor(i / this.d) - 1));
            this.f = truncate(Math.ceil(j / this.d));
        }
        getBucket(a) {
            return super.getBucket(a);
        }
        getBucket1(a, b, c, d, e, f) {
            let g = [NaN, NaN, NaN];
            let h = typeCast(BarFragment.$, a);
            if (h == null || h.logicalSeriesLink == null) {
                return g;
            }
            let i = typeCast(StackedBarSeries.$, this.c.db);
            let j = a.valueColumn.item(c);
            let k = 0;
            let l = NaN;
            let m = NaN;
            let n = Number.NEGATIVE_INFINITY;
            let o = Number.POSITIVE_INFINITY;
            let p = i.getEffectiveViewport1(this.c);
            let q = Math.min(i.aa0 != null ? i.aa0.length : 0, i.aaz != null ? i.aaz.length : 0);
            let r = c * this.d;
            let s = Math.min(r + this.d - 1, q - 1);
            if (r <= s) {
                for (let t = r; t <= s; ++t) {
                    j = a.valueColumn.item(t);
                    if (j < k) {
                        o = Math.min(o, h.logicalSeriesLink.a8._inner[t] + j);
                        n = Math.max(n, h.logicalSeriesLink.a8._inner[t]);
                    }
                    else {
                        o = Math.min(o, h.logicalSeriesLink.a7._inner[t]);
                        n = Math.max(n, h.logicalSeriesLink.a7._inner[t] + j);
                    }
                    if (!isNaN_(l)) {
                        if (!isNaN_(o)) {
                            l = Math.min(l, o);
                            m = Math.max(m, o);
                        }
                        if (!isNaN_(n)) {
                            l = Math.min(l, n);
                            m = Math.max(m, n);
                        }
                    }
                    else {
                        l = o;
                        m = n;
                    }
                }
            }
            let u = new ScalerParams(0, d, e, i.xAxis.ch, p);
            g = [f.h._inner[b - this.e][0], i.xAxis.el(m, u), i.xAxis.el(l, u)];
            return g;
        }
    }
    StackedBarBucketCalculator.$t = markType(StackedBarBucketCalculator, 'StackedBarBucketCalculator', StackedBucketCalculator.$);
    return StackedBarBucketCalculator;
})();
/**
 * @hidden
 */
export let StackedColumnBucketCalculator = /*@__PURE__*/ (() => {
    class StackedColumnBucketCalculator extends StackedBucketCalculator {
        constructor(a) {
            super(a);
        }
        getBucket(a) {
            return super.getBucket(a);
        }
        getBucket1(a, b, c, d, e, f) {
            let g = [NaN, NaN, NaN];
            let h = typeCast(ColumnFragment.$, a);
            if (h == null || h.logicalSeriesLink == null) {
                return g;
            }
            let i = typeCast(StackedColumnSeries.$, this.c.db);
            let j = a.valueColumn.item(c);
            let k = 0;
            let l = NaN;
            let m = NaN;
            let n = Number.NEGATIVE_INFINITY;
            let o = Number.POSITIVE_INFINITY;
            let p = i.getEffectiveViewport1(this.c);
            let q = Math.min(i.aa0 != null ? i.aa0.length : 0, i.aaz != null ? i.aaz.length : 0);
            let r = c * this.d;
            let s = Math.min(r + this.d - 1, q - 1);
            if (r <= s) {
                for (let t = r; t <= s; ++t) {
                    j = a.valueColumn.item(t);
                    if (j < k) {
                        o = Math.min(o, h.logicalSeriesLink.a8._inner[t] + j);
                        n = Math.max(n, h.logicalSeriesLink.a8._inner[t]);
                    }
                    else {
                        o = Math.min(o, h.logicalSeriesLink.a7._inner[t]);
                        n = Math.max(n, h.logicalSeriesLink.a7._inner[t] + j);
                    }
                    if (!isNaN_(l)) {
                        if (!isNaN_(o)) {
                            l = Math.min(l, o);
                            m = Math.max(m, o);
                        }
                        if (!isNaN_(n)) {
                            l = Math.min(l, n);
                            m = Math.max(m, n);
                        }
                    }
                    else {
                        l = o;
                        m = n;
                    }
                }
            }
            let u = new ScalerParams(0, d, e, i.yAxis.ch, p);
            g = [f.h._inner[b - this.e][0], i.yAxis.el(m, u), i.yAxis.el(l, u)];
            return g;
        }
    }
    StackedColumnBucketCalculator.$t = markType(StackedColumnBucketCalculator, 'StackedColumnBucketCalculator', StackedBucketCalculator.$);
    return StackedColumnBucketCalculator;
})();
/**
 * @hidden
 */
export let FragmentBaseValueList = /*@__PURE__*/ (() => {
    class FragmentBaseValueList extends Base {
        constructor(a) {
            super();
            this.a = null;
            this.a = a;
        }
        indexOf(a) {
            throw new NotImplementedException(0);
        }
        insert(a, b) {
            throw new NotImplementedException(0);
        }
        removeAt(a) {
            throw new NotImplementedException(0);
        }
        item(a, b) {
            if (arguments.length === 2) {
                throw new NotImplementedException(0);
                return b;
            }
            else {
                let b = false;
                if (this.a.parentSeries != null) {
                    b = this.a.parentSeries.abb;
                }
                let c = this.a.parentSeries;
                if (c == null) {
                    return NaN;
                }
                if (c.aa0 == null || c.aaz == null || c.aa0.length == 0 || c.aaz.length == 0) {
                    return NaN;
                }
                let d = this.a.valueColumn.item(a);
                let e = Math.abs(c.aa0[a]) + c.aaz[a];
                let f = this.a.logicalSeriesLink.a7;
                let g = this.a.logicalSeriesLink.a8;
                if (isNaN_(d) || isInfinity(d)) {
                    d = 0;
                }
                if (b) {
                    if (e == 0) {
                        d = 0;
                    }
                    else if (d < 0) {
                        d = (g._inner[a] + d) / e * 100;
                    }
                    else {
                        d = (f._inner[a] + d) / e * 100;
                    }
                }
                else {
                    d = d < 0 ? g._inner[a] + d : f._inner[a] + d;
                }
                return d;
            }
        }
        add(a) {
            throw new NotImplementedException(0);
        }
        clear() {
            throw new NotImplementedException(0);
        }
        contains(a) {
            throw new NotImplementedException(0);
        }
        copyTo(a, b) {
            throw new NotImplementedException(0);
        }
        get count() {
            return this.a.valueColumn.count;
        }
        get isReadOnly() {
            throw new NotImplementedException(0);
        }
        remove(a) {
            throw new NotImplementedException(0);
        }
        getEnumerator() {
            throw new NotImplementedException(0);
        }
        getEnumeratorObject() {
            return this.getEnumerator();
        }
    }
    FragmentBaseValueList.$t = markType(FragmentBaseValueList, 'FragmentBaseValueList', Base.$, [IList$1_$type.specialize(Number_$type)]);
    return FragmentBaseValueList;
})();
/**
 * @hidden
 */
export let LineFragment = /*@__PURE__*/ (() => {
    class LineFragment extends FragmentBase {
        constructor() {
            super();
            this.ab = LineFragment.$;
        }
        bk() {
            return new LineFragment();
        }
        get_fl() {
            return true;
        }
        zt() {
            return true;
        }
        ct() {
            return new LineFragmentView(this);
        }
        q3(a) {
            super.q3(a);
            this.ade = a;
        }
        adg(a, b) {
            let c = this.ade.dy.an;
            if (this.gz(a, c)) {
                return true;
            }
            return false;
        }
        get_ex() {
            return true;
        }
        gx(a, b) {
            if (this.adf(a, b)) {
                return true;
            }
            if (this.adg(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        adf(a, b) {
            let c = this.ade.dz.an;
            if (this.gy(a, b, c)) {
                return true;
            }
            let d = this.ade.d0.an;
            if (this.gy(a, b, d)) {
                return true;
            }
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        o7(a, b) {
            super.o7(a, b);
            let c = b;
            c.du();
        }
        aas(a, b) {
            super.aas(a, b);
            let c = (d) => a.h._inner[d][0];
            let d = (e) => a.h._inner[e][1];
            let e = (f) => a.h._inner[f][0];
            let f = (g) => a.h._inner[g][2];
            this.ac4.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let g = b.c9.d;
            let h = typeCast(LineFragmentView.$, b);
            let i = this.getEffectiveViewport1(b);
            let j = a.h;
            this.y7.a2(this, this.zr(), runOn(this, this.yr), this.z0(b), this.z1(b));
            let k = false;
            let l = this.y7.b;
            if (l != null) {
                k = true;
            }
            if (k) {
                let m = new ScalerParams(0, b.ca, b.b9, this.ack.ch, i);
                this.aao(j, -1, this.valueColumn.count, this.ack, m, b.t, -1);
            }
            this.y7.ad(h.dz, true, false, true, false);
            this.y7.ad(h.d0, true, false, true, false);
            this.y7.ad(h.dy, false, true, false, false);
            h.dy._opacity = 0.75 * this.y7.j;
            this.ac4.m(h.dz, h.dy, h.d0, a.h.count, a.h, true, 0, this.aa0(a.h, a.h.count - 1, b.b9, b.ca), g, this.ie);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    LineFragment.$t = markType(LineFragment, 'LineFragment', FragmentBase.$);
    return LineFragment;
})();
/**
 * @hidden
 */
export let SplineFragmentBase = /*@__PURE__*/ (() => {
    class SplineFragmentBase extends SplineSeriesBase {
        constructor() {
            super();
            this._logicalSeriesLink = null;
            this.adn = null;
            this.adp = null;
            this.adn = new CategoryLineRasterizer();
        }
        get logicalSeriesLink() {
            return this._logicalSeriesLink;
        }
        set logicalSeriesLink(a) {
            this._logicalSeriesLink = a;
        }
        get parentSeries() {
            return this.adp;
        }
        set parentSeries(a) {
            this.adp = a;
        }
        qc(a) {
            super.qc(a);
            a.parentSeries = this.parentSeries;
            a.logicalSeriesLink = this.logicalSeriesLink;
        }
        get_e7() {
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        get_isFragment() {
            return true;
        }
        ne() {
            if (this.logicalSeriesLink != null) {
                return this.logicalSeriesLink.e0;
            }
            return null;
        }
        wh(a, b, c) {
            return this.wj(a, b, c, this.y4.r(this.yx(), this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw)), this.ze(), this.yx(), runOn(this, this.adr), (d, e) => this.kc(d, e, this.yx(), runOn(this, this.zy), new SplineFragmentBaseValueList(this)), (d, e) => this.ka(d, e, this.yx(), runOn(this, this.zy), new SplineFragmentBaseValueList(this)));
        }
        ai() {
            return [this.yx(), this.ze()];
        }
        adr(a, b, c) {
            if (this.dc == null) {
                return NaN;
            }
            let d = this.getEffectiveViewport1(this.cw);
            let e = new ScalerParams(0, this.dc.wt, this.cw.b9, this.yx().ch, d);
            let f = this.y4.r(this.yx(), this.dc.wt, this.cw.b9, d);
            return this.i8(new SplineFragmentBaseValueList(this), a, this.yx(), e, f, runOn(this, this.zy), b, c);
        }
        j3() {
            let a = this.parentSeries;
            if (a.index == -1 || a.aa8 == null || a.aa8.f.indexOf(this) == -1) {
                return -1;
            }
            return a.aa8.f.indexOf(this);
        }
        resolveLegendIndex() {
            let a = this.parentSeries;
            if (a.abc) {
                return -1 + a.index + a.aa3.count - a.aa8.f.indexOf(this);
            }
            return super.resolveLegendIndex();
        }
        j8() {
            let a = this.parentSeries;
            if (a.index == -1 || a.series.count == 0 || a.series.indexOf(this.logicalSeriesLink) == -1) {
                return -1;
            }
            return a.series.indexOf(this.logicalSeriesLink);
        }
        bq() {
            return this.parentSeries;
        }
        ac9(a, b, c, d, e, f, g) {
            let h = b[0];
            let i = b[1];
            let j = new Rect(0, h - 5, i - 5, 11, 11);
            if (!isNaN_(h) && !isNaN_(i) && !isInfinity(h) && !isInfinity(i) && c.tryAdd(j)) {
                a.p.add({ $type: Point_$type, x: h, y: i });
                let k = f.dc.item(e);
                k.content.item = this.dp.item(d);
                k.al = g;
                return true;
            }
            return false;
        }
        hf(a, b, c) {
            let d = super.hf(a, b, c);
            let e = typeCast(CategoryAxisBase.$, this.parentSeries.fetchXAxis());
            let f = this.parentSeries.fetchYAxis();
            if (this.parentSeries == null || e == null || e.itemsSource == null || f == null || this.parentSeries.dp == null || e.bi == null || f.bi == null) {
                d = false;
            }
            if (this.valueColumn == null) {
                return false;
            }
            if (isInfinity(this.valueColumn.minimum) && isInfinity(this.valueColumn.maximum)) {
                d = false;
            }
            if (isNaN_(this.valueColumn.minimum) && isNaN_(this.valueColumn.maximum)) {
                d = false;
            }
            return d;
        }
        ay(a) {
            return null;
        }
        ads(a, b, c, d, e, f) {
            let g = typeCast(ISortingAxis_$type, d);
            if (g == null) {
                return;
            }
            let h = this.getEffectiveViewport1(f);
            let i = new ScalerParams(0, b, c, d.ch, h);
            let j = new ScalerParams(0, b, c, e.ch, h);
            let k = d.eo(2, i) - d.eo(1, i);
            let l = this.xl();
            let m = 0;
            let n = this.add(d, b, c, h);
            let o = (p) => Math.abs(this.parentSeries.aa0[p]) + this.parentSeries.aaz[p];
            let p = (q) => q;
            let q = (r) => {
                let s = g.i$b._inner[r];
                if (typeCast(IStacked100Series_$type, this.parentSeries) !== null) {
                    return this.valueColumn.item(s) < 0 ? (this.logicalSeriesLink.a8._inner[s] + this.valueColumn.item(s)) / o(s) * 100 : (this.logicalSeriesLink.a7._inner[s] + this.valueColumn.item(s)) / o(s) * 100;
                }
                else {
                    return this.valueColumn.item(s) < 0 ? this.logicalSeriesLink.a8._inner[s] + this.valueColumn.item(s) : this.logicalSeriesLink.a7._inner[s] + this.valueColumn.item(s);
                }
            };
            let r = this.y8.c9.f;
            let s = this.y8.c9.e;
            let t = truncate(Math.ceil(c.width / (r - s)));
            let u = new CollisionAvoider();
            let v = this.y8.c9.d;
            if (v <= 0 || (s <= 0 && r <= 0)) {
                this.y8.dc.count = m;
                return;
            }
            let w = 0;
            for (let x = s; x < r + 1; ++x) {
                let y = null;
                let z = x * v;
                if (g != null && g.i$b != null && z >= 0 && z < g.i$b.count) {
                    z = g.i$b._inner[z];
                }
                if (x >= (this.valueColumn.count - 1)) {
                    if (l && this.ac9(a, a.h._inner[a.h.count - 1], u, Math.min(z, this.dp.count - 1), m, f, w - 1)) {
                        ++m;
                    }
                    break;
                }
                let aa = p(x);
                let ab = q(x);
                let ac = p(x + 1);
                let ad = q(x + 1);
                let ae = ac - aa;
                let af = this.ac5[x];
                let ag = this.ac5[x + 1];
                let ah = g.i$d(g.i$b._inner[x]);
                let ai = d.el(ah, i) + n;
                let aj = e.el(ab, j);
                a.h.add([ai, aj, aj]);
                w++;
                for (let ak = 1; ak < t; ++ak) {
                    let al = ak / t;
                    let am = aa + ae * al;
                    let an = (ac - am) / ae;
                    let ao = (am - aa) / ae;
                    let ap = an * ab + ao * ad + ((an * an * an - an) * af + (ao * ao * ao - ao) * ag) * (ae * ae) / 6;
                    let aq = g.i$d(g.i$b._inner[x]);
                    let ar = g.i$d(g.i$b._inner[x + 1]);
                    if (aq == ar && ab == ad) {
                        break;
                    }
                    let as = aq + (ar - aq) * al;
                    am = d.el(as, i) + n;
                    ap = e.el(ap, j);
                    a.h.add([am, ap, ap]);
                    w++;
                }
                if (l) {
                    y = [ai, aj, aj];
                }
                if (l && this.ac9(a, y, u, Math.min(z, this.dp.count - 1), m, f, w - 1)) {
                    ++m;
                }
            }
            this.y8.dc.count = m;
        }
        aap(a, b) {
            a.x();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null) {
                return;
            }
            if (this.logicalSeriesLink.a8.count == 0 || this.logicalSeriesLink.a7.count == 0) {
                return;
            }
            if (this.y8.c9.d == 0) {
                return;
            }
            super.aap(a, b);
            if (a.h.count <= 1) {
                return;
            }
            let c = b.ca;
            let d = b.b9;
            let e = this.getEffectiveViewport1(b);
            let f = typeCast(CategoryAxisBase.$, this.parentSeries.fetchXAxis());
            let g = typeCast(NumericYAxis.$, this.parentSeries.fetchYAxis());
            let h = new ScalerParams(0, c, d, f.ch, e);
            let i = new ScalerParams(0, c, d, g.ch, e);
            a.h.clear();
            a.p.clear();
            let j = this.xl();
            let k = 0;
            let l;
            let m;
            if (b.s) {
                l = this.parentSeries.aa1;
                m = this.parentSeries.ba.a$j.item(b.al);
            }
            else if (b == this.cv) {
                l = this.parentSeries.y2;
                m = typeCast(CategorySeriesView.$, this.parentSeries.cv);
            }
            else {
                l = this.parentSeries.yz;
                m = this.parentSeries.y8;
            }
            let n = m.c9.d;
            let o = typeCast(ISortingAxis_$type, f);
            if (o != null && o.i$b.count != this.dp.count) {
                return;
            }
            let p = this.preferredCategoryMode(f);
            if (p == 0 && f.categoryMode != 0) {
                p = 1;
            }
            let q = 0;
            switch (p) {
                case 0:
                    q = 0;
                    break;
                case 1:
                    q = 0.5 * f.getCategorySize(c, d, e);
                    break;
                case 2:
                    let r = this.index;
                    q = f.getGroupCenter(this.index, c, d, e);
                    break;
            }
            if (f.ch) {
                q = -q;
            }
            let s = (t) => Math.abs(this.parentSeries.aa0[t]) + this.parentSeries.aaz[t];
            let t = (u) => u;
            let u = (v) => {
                let w = this.valueColumn.item(v);
                if (isNaN_(w) || isInfinity(w)) {
                    w = 0;
                }
                if (typeCast(IStacked100Series_$type, this.parentSeries) !== null) {
                    if (s(v) == 0) {
                        return 0;
                    }
                    return w < 0 ? (this.logicalSeriesLink.a8._inner[v] + w) / s(v) * 100 : (this.logicalSeriesLink.a7._inner[v] + w) / s(v) * 100;
                }
                return w < 0 ? this.logicalSeriesLink.a8._inner[v] + w : this.logicalSeriesLink.a7._inner[v] + w;
            };
            let v = b.c9.d;
            this.adi(b);
            let w = m.c9.e;
            let x = m.c9.f;
            let y = truncate(Math.ceil(d.width / (x - w)));
            let z = new CollisionAvoider();
            if (o != null) {
                this.ads(a, c, d, f, g, b);
                return;
            }
            let aa = 0;
            let ab = 0;
            for (let ac = w; ac < x + 1; ++ac) {
                if (ac >= this.valueColumn.count) {
                    break;
                }
                let ad = null;
                if (v == 1) {
                    if (ac >= (this.valueColumn.count - 1)) {
                        if (j && a.h.count > 0 && this.ac9(a, a.h._inner[a.h.count - 1], z, Math.min(ac * v, this.dp.count - 1), k, b, aa - 1)) {
                            ++k;
                        }
                        break;
                    }
                    let ae = t(ac);
                    let af = t(ac + 1);
                    let ag = u(ac);
                    let ah = u(ac + 1);
                    let ai = af - ae;
                    let aj = this.ac5[ac];
                    let ak = this.ac5[ac + 1];
                    let al = f.el(ae, h) + q;
                    let am = g.el(ag, i);
                    a.h.add([al, am, am]);
                    aa++;
                    ab = aa;
                    for (let an = 1; an < y; ++an) {
                        let ao = ae + ai * an / y;
                        let ap = (af - ao) / ai;
                        let aq = (ao - ae) / ai;
                        let ar = ap * ag + aq * ah + ((ap * ap * ap - ap) * aj + (aq * aq * aq - aq) * ak) * (ai * ai) / 6;
                        ao = f.el(ao, h) + q;
                        ar = g.el(ar, i);
                        a.h.add([ao, ar, ar]);
                        aa++;
                    }
                    if (j) {
                        ad = [al, am, am];
                    }
                }
                else {
                    ad = b.c9.getBucket(ac);
                    if (!isNaN_(ad[0])) {
                        ad[0] = f.el(ad[0], h) + q;
                        ad[1] = g.el(ad[1], i);
                        ad[2] = g.el(ad[2], i);
                        a.h.add(ad);
                        aa++;
                        ab = aa;
                    }
                }
                if (j && this.ac9(a, ad, z, Math.min(ac * v, this.dp.count - 1), k, b, ab - 1)) {
                    ++k;
                }
            }
            b.dc.count = k;
        }
        ac3(a) {
            let b = (c) => Math.abs(this.parentSeries.aa0[c]) + this.parentSeries.aaz[c];
            let c = (d) => d;
            let d = (e) => {
                let f = this.valueColumn.item(e);
                if (isNaN_(f) || isInfinity(f)) {
                    f = 0;
                }
                if (typeCast(IStacked100Series_$type, this.parentSeries) !== null) {
                    if (b(e) == 0) {
                        return 0;
                    }
                    return f < 0 ? (this.logicalSeriesLink.a8._inner[e] + f) / b(e) * 100 : (this.logicalSeriesLink.a7._inner[e] + f) / b(e) * 100;
                }
                return f < 0 ? this.logicalSeriesLink.a8._inner[e] + f : this.logicalSeriesLink.a7._inner[e] + f;
            };
            let e = new List$1(Array_$type, 0);
            let f = a.ca;
            let g = a.b9;
            let h = typeCast(ISortingAxis_$type, this.ack);
            let i = 0;
            let j = 0;
            let k = 0;
            let l = this.ie;
            let m = this.wo(this.cw);
            let n = this.ack;
            let o = this.getEffectiveViewport1(a);
            if (h == null || h.i$b == null) {
                let p = new ScalerParams(0, f, g, n.ch, o);
                let q = 0;
                let r = n.lk - 1;
                let s = Math.floor((r - q + 1) * l / m.width);
                i = truncate(Math.max(1, s));
                j = truncate(Math.max(0, Math.floor(q / i) - 1));
                k = truncate(Math.ceil(r / i));
            }
            else {
                j = 0;
                k = n.lk - 1;
                i = 1;
            }
            let t = truncate(Math.ceil(g.width / (k - j)));
            let u = new CollisionAvoider();
            if (h != null) {
                return this.ac4(a);
            }
            let v = 0;
            let w = 0;
            for (let x = j; x < k + 1; ++x) {
                if (x >= this.valueColumn.count) {
                    break;
                }
                let y = null;
                if (i == 1) {
                    if (x >= (this.valueColumn.count - 1)) {
                        break;
                    }
                    let z = c(x);
                    let aa = c(x + 1);
                    let ab = d(x);
                    let ac = d(x + 1);
                    let ad = aa - z;
                    let ae = this.ac5[x];
                    let af = this.ac5[x + 1];
                    e.add([ab, ab]);
                    for (let ag = 1; ag < t; ++ag) {
                        let ah = z + ad * ag / t;
                        let ai = (aa - ah) / ad;
                        let aj = (ah - z) / ad;
                        let ak = ai * ab + aj * ac + ((ai * ai * ai - ai) * ae + (aj * aj * aj - aj) * af) * (ad * ad) / 6;
                        e.add([ak, ak]);
                    }
                }
                else {
                    y = a.c9.getBucket(x);
                    if (!isNaN_(y[0])) {
                        e.add([y[0], y[1]]);
                    }
                }
            }
            return e.toArray();
        }
        ac4(a) {
            let b = new List$1(Array_$type, 0);
            let c = a.ca;
            let d = a.b9;
            let e = this.ack;
            let f = typeCast(ISortingAxis_$type, e);
            if (f == null) {
                return null;
            }
            let g = this.getEffectiveViewport1(a);
            let h = this.xl();
            let i = 0;
            let j = (k) => Math.abs(this.parentSeries.aa0[k]) + this.parentSeries.aaz[k];
            let k = (l) => l;
            let l = (m) => {
                let n = f.i$b._inner[m];
                if (typeCast(IStacked100Series_$type, this.parentSeries) !== null) {
                    return this.valueColumn.item(n) < 0 ? (this.logicalSeriesLink.a8._inner[n] + this.valueColumn.item(n)) / j(n) * 100 : (this.logicalSeriesLink.a7._inner[n] + this.valueColumn.item(n)) / j(n) * 100;
                }
                else {
                    return this.valueColumn.item(n) < 0 ? this.logicalSeriesLink.a8._inner[n] + this.valueColumn.item(n) : this.logicalSeriesLink.a7._inner[n] + this.valueColumn.item(n);
                }
            };
            let m = 0;
            let n = 0;
            let o = 0;
            let p = this.ie;
            let q = this.wo(this.cw);
            if (f == null || f.i$b == null) {
                let r = 0;
                let s = e.lk - 1;
                let t = Math.floor((s - r + 1) * p / q.width);
                m = truncate(Math.max(1, t));
                n = truncate(Math.max(0, Math.floor(r / m) - 1));
                o = truncate(Math.ceil(s / m));
            }
            else {
                n = 0;
                o = e.lk - 1;
                m = 1;
            }
            if (m <= 0 || (n <= 0 && o <= 0)) {
                this.y8.dc.count = i;
                return null;
            }
            let u = truncate(Math.ceil(d.width / (o - n)));
            let v = new CollisionAvoider();
            let w = 0;
            for (let x = n; x < o + 1; ++x) {
                let y = null;
                if (x >= (this.valueColumn.count - 1)) {
                    break;
                }
                let z = k(x);
                let aa = l(x);
                let ab = k(x + 1);
                let ac = l(x + 1);
                let ad = ab - z;
                let ae = this.ac5[x];
                let af = this.ac5[x + 1];
                b.add([aa, aa]);
                for (let ag = 1; ag < u; ++ag) {
                    let ah = ag / u;
                    let ai = z + ad * ah;
                    let aj = (ab - ai) / ad;
                    let ak = (ai - z) / ad;
                    let al = aj * aa + ak * ac + ((aj * aj * aj - aj) * ae + (ak * ak * ak - ak) * af) * (ad * ad) / 6;
                    b.add([al, al]);
                }
            }
            return b.toArray();
        }
        adi(a) {
            super.adi(a);
            let b = (c) => Math.abs(this.parentSeries.aa0[c]) + this.parentSeries.aaz[c];
            let c = (d) => d;
            let d = (e) => {
                let f = this.valueColumn.item(e);
                if (isNaN_(f) || isInfinity(f)) {
                    f = 0;
                }
                if (typeCast(IStacked100Series_$type, this.parentSeries) !== null) {
                    if (b(e) == 0) {
                        return 0;
                    }
                    return f < 0 ? (this.logicalSeriesLink.a8._inner[e] + f) / b(e) * 100 : (this.logicalSeriesLink.a7._inner[e] + f) / b(e) * 100;
                }
                return f < 0 ? this.logicalSeriesLink.a8._inner[e] + f : this.logicalSeriesLink.a7._inner[e] + f;
            };
            let e = this.ack;
            let f = this.ac7 == 0 ? NaN : 0;
            if (e != null && typeCast(ISortingAxis_$type, e) !== null && e.i$b != null) {
                let g = new SafeSortedReadOnlyDoubleCollection(0, this.valueColumn, e.i$b);
                d = (h) => g.item(h);
            }
            this.ac5 = Numeric.c(this.valueColumn.count, c, d, f, f);
            if (this.ac8) {
                let h = -1.7976931348623157E+308;
                let i = 1.7976931348623157E+308;
                let j = this.ac3(a);
                if (j == null) {
                    return;
                }
                for (let k = 0; k < j.length; k++) {
                    if (isNaN_(j[k][0]) || isNaN_(j[k][1])) {
                        continue;
                    }
                    if (j[k][1] > h) {
                        h = j[k][1];
                    }
                    if (j[k][0] < i) {
                        i = j[k][0];
                    }
                }
                this.adf = i;
                this.ade = h;
            }
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case "ActualBrush":
                    if (this.logicalSeriesLink != null) {
                        this.logicalSeriesLink.ku = this.ve;
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    SplineFragmentBase.$t = markType(SplineFragmentBase, 'SplineFragmentBase', SplineSeriesBase.$);
    return SplineFragmentBase;
})();
/**
 * @hidden
 */
export let SplineAreaFragment = /*@__PURE__*/ (() => {
    class SplineAreaFragment extends SplineFragmentBase {
        constructor() {
            super();
            this.adx = null;
            this.ab = SplineAreaFragment.$;
        }
        bk() {
            return new SplineAreaFragment();
        }
        ct() {
            return new SplineAreaFragmentView(this);
        }
        q3(a) {
            super.q3(a);
            this.adt = typeCast(SplineAreaFragmentView.$, a);
        }
        ac() {
            super.ac();
            this.ru(false);
        }
        get_ex() {
            return true;
        }
        get_ew() {
            return true;
        }
        get_f1() {
            return true;
        }
        y9() {
            return 1;
        }
        adv(a, b) {
            let c = this.adt.d1.an;
            if (this.gz(a, c)) {
                return true;
            }
            let d = this.adt.d2.an;
            if (this.gz(a, d)) {
                return true;
            }
            return false;
        }
        gx(a, b) {
            if (this.adu(a, b)) {
                return true;
            }
            if (this.adv(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        adu(a, b) {
            let c = this.adt.d3.an;
            if (this.gy(a, b, c)) {
                return true;
            }
            let d = this.adt.d4.an;
            if (this.gy(a, b, d)) {
                return true;
            }
            return false;
        }
        o7(a, b) {
            super.o7(a, b);
            let c = b;
            c.dw();
        }
        aas(a, b) {
            super.aas(a, b);
            this.adn.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = a.h;
            let d = this.getEffectiveViewport1(b);
            this.y7.a2(this, this.zr(), runOn(this, this.yr), this.z0(b), this.z1(b));
            let e = false;
            let f = this.y7.b;
            if (f != null) {
                e = true;
            }
            if (e) {
                let g = new ScalerParams(0, b.ca, b.b9, this.ack.ch, d);
                this.aao(c, -1, this.valueColumn.count, this.ack, g, b.t, -1);
            }
            let h = typeCast(SplineAreaFragmentView.$, b);
            let i = b.c9.d;
            this.y7.ad(h.d3, true, false, true, true);
            this.y7.ad(h.d4, true, false, true, true);
            this.y7.ad(h.d1, false, true, false, false);
            this.y7.ad(h.d2, false, true, false, false);
            h.d1._opacity = this.y7.j * this.ia;
            h.d2._opacity = 0.5 * this.y7.j * this.ia;
            this.adn.i(h.d1, h.d3, h.d2, h.d4, a.h.count, a.h, true, i, this.ie, (j, k, l, m, n) => this.adw(j, a.h, b), 1);
        }
        rw(a, b) {
            super.rw(a, b);
        }
        adw(a, b, c) {
            let d = this.abg(c);
            let e = d;
            let f = this.logicalSeriesLink.az;
            let g = f ? this.parentSeries.aa8.e : this.parentSeries.aa8.d;
            let h = g.indexOf(this);
            if (a.count == 0) {
                return;
            }
            if (h == -1) {
                return;
            }
            let i = false;
            for (let j = h; j >= 0; j--) {
                if (i) {
                    break;
                }
                if (j == 0) {
                    a.add({ $type: Point_$type, x: a._inner[a.count - 1].x, y: e });
                    a.add({ $type: Point_$type, x: a._inner[0].x, y: e });
                    break;
                }
                let k = typeCast(SplineFragmentBase.$, g._inner[j - 1]);
                if (k != null && k.adn != null && k.adn.o.count > 0 && this.cw != null && k.hf(this.cw.b9, this.cw.ca, this.cw)) {
                    i = true;
                    for (let l = k.adn.o.count - 1; l >= 0; l--) {
                        a.add(k.adn.o._inner[l]);
                    }
                }
            }
        }
        abg(a) {
            let b = 0;
            let c = a.ca;
            let d = a.b9;
            let e = this.getEffectiveViewport1(a);
            let f = new ScalerParams(0, c, d, this.yAxis.ch, e);
            if (!c.isEmpty && !d.isEmpty && this.yAxis != null) {
                b = this.yAxis.el(0, f);
            }
            return b;
        }
        sh() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ia = isNaN_(this.il) ? this.parentSeries.ia : this.il;
            }
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    SplineAreaFragment.$t = markType(SplineAreaFragment, 'SplineAreaFragment', SplineFragmentBase.$);
    return SplineAreaFragment;
})();
/**
 * @hidden
 */
export let SplineFragment = /*@__PURE__*/ (() => {
    class SplineFragment extends SplineFragmentBase {
        constructor() {
            super();
            this.ab = SplineFragment.$;
        }
        bk() {
            return new SplineFragment();
        }
        get_f1() {
            return true;
        }
        zt() {
            return true;
        }
        ct() {
            return new SplineFragmentView(this);
        }
        q3(a) {
            super.q3(a);
            this.adt = a;
        }
        adv(a, b) {
            let c = this.adt.d0.an;
            if (this.gz(a, c)) {
                return true;
            }
            return false;
        }
        get_ex() {
            return true;
        }
        gx(a, b) {
            if (this.adu(a, b)) {
                return true;
            }
            if (this.adv(a, b)) {
                return true;
            }
            if (this.xm(a, b)) {
                return true;
            }
            return false;
        }
        adu(a, b) {
            let c = this.adt.d1.an;
            if (this.gy(a, b, c)) {
                return true;
            }
            let d = this.adt.d2.an;
            if (this.gy(a, b, d)) {
                return true;
            }
            return false;
        }
        o7(a, b) {
            super.o7(a, b);
            let c = b;
            c.dw();
        }
        aas(a, b) {
            super.aas(a, b);
            this.adn.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = typeCast(SplineFragmentView.$, b);
            let d = a.h;
            let e = this.getEffectiveViewport1(b);
            this.y7.a2(this, this.zr(), runOn(this, this.yr), this.z0(b), this.z1(b));
            let f = false;
            let g = this.y7.b;
            if (g != null) {
                f = true;
            }
            if (f) {
                let h = new ScalerParams(0, b.ca, b.b9, this.ack.ch, e);
                this.aao(d, -1, this.valueColumn.count, this.ack, h, b.t, -1);
            }
            this.y7.ad(c.d1, true, false, true, false);
            this.y7.ad(c.d2, true, false, true, false);
            this.y7.ad(c.d0, false, true, false, false);
            c.d0._opacity = 0.75 * this.y7.j;
            let i = c.c9.d;
            this.adn.m(c.d1, c.d0, c.d2, a.h.count, a.h, true, 1, this.aa0(a.h, a.h.count - 1, b.b9, b.ca), i, this.ie);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    SplineFragment.$t = markType(SplineFragment, 'SplineFragment', SplineFragmentBase.$);
    return SplineFragment;
})();
/**
 * @hidden
 */
export let SplineFragmentBaseValueList = /*@__PURE__*/ (() => {
    class SplineFragmentBaseValueList extends Base {
        constructor(a) {
            super();
            this.a = null;
            this.a = a;
        }
        indexOf(a) {
            throw new NotImplementedException(0);
        }
        insert(a, b) {
            throw new NotImplementedException(0);
        }
        removeAt(a) {
            throw new NotImplementedException(0);
        }
        item(a, b) {
            if (arguments.length === 2) {
                throw new NotImplementedException(0);
                return b;
            }
            else {
                let b = false;
                if (this.a.parentSeries != null) {
                    b = this.a.parentSeries.abb;
                }
                let c = this.a.parentSeries;
                if (c == null) {
                    return NaN;
                }
                let d = this.a.valueColumn.item(a);
                let e = Math.abs(c.aa0[a]) + c.aaz[a];
                let f = this.a.logicalSeriesLink.a7;
                let g = this.a.logicalSeriesLink.a8;
                if (isNaN_(d) || isInfinity(d)) {
                    d = 0;
                }
                if (b) {
                    if (e == 0) {
                        d = 0;
                    }
                    else if (d < 0) {
                        d = (g._inner[a] + d) / e * 100;
                    }
                    else {
                        d = (f._inner[a] + d) / e * 100;
                    }
                }
                else {
                    d = d < 0 ? g._inner[a] + d : f._inner[a] + d;
                }
                return d;
            }
        }
        add(a) {
            throw new NotImplementedException(0);
        }
        clear() {
            throw new NotImplementedException(0);
        }
        contains(a) {
            throw new NotImplementedException(0);
        }
        copyTo(a, b) {
            throw new NotImplementedException(0);
        }
        get count() {
            return this.a.valueColumn.count;
        }
        get isReadOnly() {
            throw new NotImplementedException(0);
        }
        remove(a) {
            throw new NotImplementedException(0);
        }
        getEnumerator() {
            throw new NotImplementedException(0);
        }
        getEnumeratorObject() {
            return this.getEnumerator();
        }
    }
    SplineFragmentBaseValueList.$t = markType(SplineFragmentBaseValueList, 'SplineFragmentBaseValueList', Base.$, [IList$1_$type.specialize(Number_$type)]);
    return SplineFragmentBaseValueList;
})();
/**
 * @hidden
 */
export let StackedSeriesBase = /*@__PURE__*/ (() => {
    class StackedSeriesBase extends CategorySeries {
        constructor() {
            super();
            this._series = null;
            this.seriesCreated = null;
            this.abj = 0;
            this.abi = 0;
            this.aaz = null;
            this.aa0 = null;
            this.aa7 = null;
            this.aa4 = null;
            this.abe = new Dictionary$2(String_$type, Boolean_$type, 0);
            this.aa1 = null;
            this.series = new StackedSeriesCollection();
            let a = this.series;
            a.collectionResetting = delegateCombine(a.collectionResetting, runOn(this, this.abv));
            let b = this.series;
            b.collectionChanged = delegateCombine(b.collectionChanged, runOn(this, this.abu));
            this.y4 = new StackedSeriesFramePreparer(1, this, this.aa9, this, this, this.aa9.c9);
            this.aa4 = new StackedSeriesCollection();
            let c = this.aa4;
            c.collectionChanged = delegateCombine(c.collectionChanged, runOn(this, this.abu));
            let d = this.aa4;
            d.collectionResetting = delegateCombine(d.collectionResetting, runOn(this, this.abp));
        }
        qi() {
            for (let a of fromEnum(this.aa3)) {
                a.gw();
            }
            super.qi();
        }
        get_ff() {
            return false;
        }
        getHostReferenceValue() {
            return this.iz();
        }
        ct() {
            return new StackedSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.aa9 = a;
        }
        q4(a, b) {
            super.q4(a, b);
            for (let c of fromEnum(this.series)) {
                c.visualSeriesLink.cw.b9 = b;
            }
        }
        get series() {
            return this._series;
        }
        set series(a) {
            this._series = a;
        }
        kd() {
            if (this.series == null) {
                return -1;
            }
            return this.series.count;
        }
        p5(a) {
            for (let b = 0; b < this.aa8.f.count; b++) {
                let c = this.aa8.f._inner[b];
                if (!a(c)) {
                    break;
                }
            }
            super.p5(a);
        }
        get_isStacked() {
            return true;
        }
        get aa8() {
            if (this.aa7 == null) {
                this.aa7 = new StackedSeriesManager(this);
            }
            return this.aa7;
        }
        set aa8(a) {
            this.aa7 = a;
        }
        get aa3() {
            return this.aba ? this.aa4 : this.series;
        }
        abp(a, b) {
            for (let c of fromEnum(this.aa4)) {
                if (this.aa8 != null && this.aa8.c.contains(c)) {
                    c.parentSeries = null;
                    this.aa8.c.remove(c);
                }
            }
        }
        abv(a, b) {
            for (let c of fromEnum(this.series)) {
                if (this.aa8 != null && this.aa8.c.contains(c)) {
                    c.parentSeries = null;
                    this.aa8.c.remove(c);
                }
            }
        }
        abu(a, b) {
            if (b.oldItems != null) {
                for (let c of fromEn(b.oldItems)) {
                    if (this.aa8 != null && this.aa8.c.contains(c)) {
                        c.parentSeries = null;
                        this.aa8.c.remove(c);
                    }
                }
            }
            if (b.newItems != null) {
                let d = b.newStartingIndex;
                for (let e of fromEn(b.newItems)) {
                    if (this.aa8 != null && !this.aa8.c.contains(e)) {
                        e.parentSeries = this;
                        e.gc();
                        e.g3();
                        e.g4();
                        e.hi();
                        e.g5();
                        e.g6();
                        e.f4();
                        e.f5();
                        e.gb();
                        e.ga();
                        e.f6();
                        e.gd();
                        e.gj();
                        e.gk();
                        e.gl();
                        e.gu();
                        e.gw();
                        e.go();
                        e.gr();
                        e.gt();
                        e.gu();
                        e.gv();
                        e.gs();
                        e.gp();
                        e.hg();
                        e.hk();
                        e.hj();
                        e.f7();
                        e.f8();
                        e.gx();
                        e.gy();
                        e.gz();
                        e.f9();
                        e.f3();
                        e.g1();
                        e.g2();
                        e.gm();
                        e.g7();
                        e.gn();
                        e.g9();
                        e.gq();
                        e.g0();
                        e.ha();
                        e.hb();
                        e.gf();
                        e.hf();
                        e.hc();
                        e.he();
                        e.hh();
                        e.hm();
                        if (!this.aba) {
                            this.aa8.c.insert(d, e);
                            d++;
                        }
                    }
                }
            }
            if (!this.aba) {
                this.abw();
            }
        }
        sa(a) {
            this.da.dc.c8(a, true, false);
        }
        y5(a) {
            if (a != null && a.t) {
                if (a.s) {
                    return new StackedSeriesFramePreparer(1, typeCast(IIsCategoryBased_$type, this), typeCast(ISupportsMarkers_$type, a), a, this, a.c9);
                }
                else {
                    let b = typeCast(CategorySeriesView.$, this.cv);
                    return new StackedSeriesFramePreparer(1, this, typeCast(ISupportsMarkers_$type, b), this.dc.dc.o, this, b.c9);
                }
            }
            else {
                return this.y4;
            }
        }
        aap(a, b) {
            a.x();
            this.abs();
            this.y5(b).d(a, b);
        }
        rv(a) {
            super.rv(a);
            this.aa8.i(a);
        }
        get_gu() {
            return false;
        }
        o7(a, b) {
            super.o7(a, b);
            for (let c of fromEnum(this.aa3)) {
                if (c.visualSeriesLink != null) {
                    c.visualSeriesLink.o7(a, c.visualSeriesLink.cw);
                }
            }
        }
        abq() {
            this.abs();
        }
        abw() {
            let a = this.fetchXAxis();
            if (a != null) {
                a.c2(true);
            }
            let b = this.fetchYAxis();
            if (b != null) {
                b.c2(true);
            }
        }
        get_abb() {
            return false;
        }
        get abb() {
            return this.get_abb();
        }
        ge(a) {
            let b = this.dp != null ? this.dp.indexOf(a) : -1;
            let c = this.dc != null ? this.dc.wt : Rect.empty;
            c = c.copy();
            let d = this.cw.b9;
            let e = new Rect(0, 0, 0, 1, 1);
            let f = this.wq(this.cw);
            if (b >= 0 && Rect.l_op_Inequality(c, null) && Rect.l_op_Inequality(d, null)) {
                let g = this.fetchXAxis();
                if (g != null) {
                    let h = new ScalerParams(0, e, e, g.ch, f);
                    let i = g.el(b, h);
                    if (i < c.left + 0.1 * c.width) {
                        i = i + 0.4 * c.width;
                    }
                    if (i > c.right - 0.1 * c.width) {
                        i = i - 0.4 * c.width;
                    }
                    c.x = i - 0.5 * c.width;
                }
                let j = this.fetchYAxis();
                if (j != null && this.aaz != null && b < this.aaz.length) {
                    let k = new ScalerParams(0, e, e, j.ch, f);
                    let l = j.el(this.aaz[b], k);
                    let m = j.el(this.aa0[b], k);
                    if (!isNaN_(l) && !isNaN_(m)) {
                        let n = Math.abs(m - l);
                        if (c.height < n) {
                            c.height = n;
                            c.y = Math.min(m, l);
                        }
                        else {
                            if (m < c.top + 0.1 * c.height) {
                                m = m + 0.4 * c.height;
                            }
                            if (m > c.bottom - 0.1 * c.height) {
                                m = m - 0.4 * c.height;
                            }
                            c.y = m - 0.5 * c.height;
                        }
                    }
                }
                this.c4.au(this.dc, c, true);
            }
            return b >= 0;
        }
        ay(a) {
            if (this.aa0 == null || this.aa0.length == 0 || this.aaz == null || this.aaz.length == 0) {
                return null;
            }
            if (a == this.fetchXAxis()) {
                let b = Math.min(this.aa0.length, this.aaz.length);
                return new AxisRange(0, b - 1);
            }
            if (a == this.fetchYAxis()) {
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        xl() {
            return false;
        }
        pd(a, b, c, d) {
            this.abs();
            this.zu();
            this.ru(true);
        }
        aa2() {
            return this.aa9;
        }
        abf() {
            let a = 0;
            let b = this.cw.ca;
            let c = this.cw.b9;
            let d = this.getEffectiveViewport1(this.cw);
            let e = typeCast(NumericYAxis.$, this.fetchYAxis());
            if (!b.isEmpty && !c.isEmpty && e != null) {
                let f = new ScalerParams(0, b, c, e.ch, d);
                a = e.el(e.me, f);
            }
            return a;
        }
        abg() {
            let a = typeCast(NumericYAxis.$, this.fetchYAxis());
            if (a != null) {
                return a.me;
            }
            return 0;
        }
        abl(a) {
            return this.index < 0 || this.aa3 == null || this.aa3.count == 0 ? -1 : this.index + this.aa3.indexOf(a);
        }
        abk(a) {
            let b = this.dc != null ? this.dc.wt : Rect.empty;
            let c = this.cw.b9;
            let d = this.getEffectiveViewport1(this.cw);
            let e = typeCast(CategoryAxisBase.$, this.fetchXAxis());
            let f = -1;
            if (e != null && !b.isEmpty && !c.isEmpty) {
                let g = new ScalerParams(0, b, c, e.ch, d);
                let h = this.wo(this.cw);
                let i = e.eo(h.left, g);
                let j = e.eo(h.right, g);
                let k = (a.x - b.left) / b.width;
                let l = i + (k * (j - i));
                if (e.categoryMode != 0) {
                    l -= 0.5;
                }
                let m = truncate(Math.round(l));
                f = m;
            }
            return f;
        }
        abd(a, b, c, d) {
            let e = true;
            let f = typeCast(CategoryAxisBase.$, this.fetchXAxis());
            let g = typeCast(NumericYAxis.$, this.fetchYAxis());
            if (!d.r() || c.isEmpty || b.isEmpty || f == null || f.itemsSource == null || g == null || this.dp == null || f.bi == null || g.bi == null || g.l4 == g.l3) {
                e = false;
            }
            let h = d;
            let i = h.c9.d;
            if (a.valueColumn == null || a.valueColumn.count == 0 || i < 1 || a._visibility != 0) {
                e = false;
            }
            return e;
        }
        abr() {
            if (this.dc == null || this.aa8 == null) {
                return;
            }
            if (!this.aba) {
                this.aa4.clear();
                for (let a of fromEnum(this.series)) {
                    if (!this.aa8.c.contains(a)) {
                        this.aa8.c.add(a);
                    }
                }
                this.abw();
                return;
            }
        }
        aas(a, b) {
            super.aas(a, b);
        }
        abt(a, b, c, d) {
        }
        az(a) {
            if (a.isEmpty && this.dc != null) {
                a = this.dc.wt;
            }
            let b = this.yx();
            if (this.aaz == null || this.aa0 == null) {
                return null;
            }
            let c = this.wo(this.cw);
            let d = new ScalerParams(0, a, this.dc.xb, b.ch, this.getEffectiveViewport());
            let e = (b.eo(c.left, d));
            let f = (b.eo(c.right, d));
            if (b.ch) {
                let g = e;
                e = f;
                f = g;
            }
            let h = null;
            if (b.cn) {
                h = b;
                e = h.i$f(e);
                f = h.i$f(f);
            }
            else {
                e = Math.floor(e);
                f = Math.ceil(f);
            }
            e = Math.max(0, Math.min(this.aa0.length - 1, e));
            f = Math.max(0, Math.min(this.aa0.length - 1, f));
            let i = 1.7976931348623157E+308;
            let j = -1.7976931348623157E+308;
            for (let k = truncate(e); k <= truncate(f); k++) {
                let l = k;
                if (h != null) {
                    l = h.i$b._inner[k];
                }
                let m = this.aa0[l];
                if (isInfinity(m) || isNaN_(m)) {
                    continue;
                }
                let n = this.aaz[l];
                if (isInfinity(n) || isNaN_(n)) {
                    continue;
                }
                i = Math.min(i, m);
                j = Math.max(j, n);
            }
            let o = new AxisRange(i, j);
            let p = this.ze();
            o = this.ax(o, p, a);
            return o;
        }
        rz() {
            super.rz();
            for (let a of fromEnum(this.aa3)) {
                a.f1();
            }
        }
        abs() {
            if (this.dp == null) {
                return;
            }
            let a = this.dp.count;
            this.aaz = new Array(a);
            this.aa0 = new Array(a);
            for (let b = 0; b < a; b++) {
                this.aaz[b] = 0;
                this.aa0[b] = 0;
            }
            this.abj = Number.POSITIVE_INFINITY;
            this.abi = Number.NEGATIVE_INFINITY;
            let c = 0;
            for (let d of fromEnum(this.aa3)) {
                if (d.itemsSource != null && d.visualSeriesLink == null) {
                    continue;
                }
                if (d.itemsSource != null) {
                    d.ak = d.visualSeriesLink.valueColumn;
                }
                if (d.itemsSource == null) {
                    this.dp.deregisterColumn(d.ak);
                    d.ak = this.dl(d.ft);
                }
                if (d.visualSeriesLink != null && d.itemsSource == null) {
                    d.visualSeriesLink.abd = true;
                    d.visualSeriesLink.valueColumn = d.ak;
                    d.visualSeriesLink.abd = false;
                }
                d.az = true;
                if (d.ak != null) {
                    d.a7.clear();
                    d.a8.clear();
                    for (let e = 0; e < d.ak.count; e++) {
                        let f = d.ak.item(e);
                        if (f < c) {
                            d.a7.add(c);
                            d.a8.add(this.aa0[e]);
                            this.aa0[e] = this.aa0[e] + f;
                            if (d.az) {
                                d.az = false;
                            }
                        }
                        else if (f >= c) {
                            d.a7.add(this.aaz[e]);
                            d.a8.add(c);
                            this.aaz[e] = this.aaz[e] + f;
                        }
                        else if (isNaN_(f) || isInfinity(f)) {
                            d.a7.add(this.aaz[e]);
                            d.a8.add(this.aa0[e]);
                        }
                    }
                }
            }
            for (let g = 0; g < a; g++) {
                this.abj = Math.min(this.abj, this.aa0[g]);
                this.abi = Math.max(this.abi, this.aaz[g]);
            }
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case "SeriesViewer":
                    if (c != null && d == null) {
                        this.pe(this.fetchXAxis());
                        this.pe(this.fetchYAxis());
                    }
                    if (c == null && d != null) {
                        this.rk(this.fetchXAxis());
                        this.rk(this.fetchYAxis());
                    }
                    if (this.aa3 != null) {
                        for (let e of fromEnum(this.aa3)) {
                            e.af = this.dc;
                            if (e.visualSeriesLink != null) {
                                e.visualSeriesLink.dc = this.dc;
                            }
                        }
                        this.ru(false);
                    }
                    break;
                case "ItemsSource":
                    if (this.aa3 != null) {
                        for (let f of fromEnum(this.aa3)) {
                            if (f.itemsSource == null) {
                                if (f.visualSeriesLink != null) {
                                    f.visualSeriesLink.itemsSource = d;
                                }
                            }
                        }
                    }
                    break;
                case "HighlightedItemsSource":
                    if (this.aa3 != null) {
                        for (let g of fromEnum(this.aa3)) {
                            if (g.highlightedItemsSource == null) {
                                if (g.visualSeriesLink != null) {
                                    g.visualSeriesLink.highlightedItemsSource = d;
                                }
                            }
                        }
                    }
                    break;
                case "FastItemsSource":
                    if (this.aba) {
                        this.abr();
                    }
                    if (!this.zu()) {
                        this.aa9.c9.g(this.ie);
                    }
                    this.ru(this.gh && c != null);
                    break;
                case StackedSeriesBase.$$p[0]:
                    this.abr();
                    break;
                case StackedSeriesBase.$$p[1]:
                    if (this.dc != null) {
                        this.dc.py(this.aa8.f);
                    }
                    break;
                case StackedSeriesBase.$$p[2]:
                    for (let h of fromEnum(this.aa3)) {
                        h.hm();
                    }
                    break;
                case "Brush":
                    for (let i of fromEnum(this.aa3)) {
                        i.f4();
                    }
                    break;
                case "DashArray":
                    for (let j of fromEnum(this.aa3)) {
                        j.f5();
                    }
                    break;
                case "HighlightingFadeOpacity":
                    for (let k of fromEnum(this.aa3)) {
                        k.gb();
                    }
                    break;
                case "HighlightedValuesDisplayMode":
                    for (let l of fromEnum(this.aa3)) {
                        l.ga();
                    }
                    break;
                case "DashCap":
                    for (let m of fromEnum(this.aa3)) {
                        m.f6();
                    }
                    break;
                case "IsDropShadowEnabled":
                    for (let n of fromEnum(this.aa3)) {
                        n.gc();
                    }
                    break;
                case "ShadowBlur":
                    for (let o of fromEnum(this.aa3)) {
                        o.g3();
                    }
                    break;
                case "ShadowColor":
                    for (let p of fromEnum(this.aa3)) {
                        p.g4();
                    }
                    break;
                case "UseSingleShadow":
                    for (let q of fromEnum(this.aa3)) {
                        q.hi();
                    }
                    break;
                case "ShadowOffsetX":
                    for (let r of fromEnum(this.aa3)) {
                        r.g5();
                    }
                    break;
                case "ShadowOffsetY":
                    for (let s of fromEnum(this.aa3)) {
                        s.g6();
                    }
                    break;
                case "IsHitTestVisible":
                    for (let t of fromEnum(this.aa3)) {
                        t.gd();
                    }
                    break;
                case "LegendItemBadgeTemplate":
                    for (let u of fromEnum(this.aa3)) {
                        u.gj();
                    }
                    break;
                case "LegendItemTemplate":
                    for (let v of fromEnum(this.aa3)) {
                        v.gk();
                    }
                    break;
                case "LegendItemVisibility":
                    for (let w of fromEnum(this.aa3)) {
                        w.gl();
                    }
                    break;
                case "LegendItemBadgeShape":
                    for (let x of fromEnum(this.aa3)) {
                        x.gi();
                    }
                    break;
                case "LegendItemBadgeMode":
                    for (let y of fromEnum(this.aa3)) {
                        y.gh();
                    }
                    break;
                case "MarkerTemplate":
                    for (let z of fromEnum(this.aa3)) {
                        z.gu();
                    }
                    break;
                case "MarkerType":
                    for (let aa of fromEnum(this.aa3)) {
                        aa.gw();
                    }
                    break;
                case "MarkerThickness":
                    for (let ab of fromEnum(this.aa3)) {
                        ab.gv();
                    }
                    break;
                case "MarkerBrush":
                    for (let ac of fromEnum(this.aa3)) {
                        ac.go();
                    }
                    break;
                case "MarkerOutline":
                    for (let ad of fromEnum(this.aa3)) {
                        ad.gr();
                    }
                    break;
                case "MarkerOutlineMode":
                    for (let ae of fromEnum(this.aa3)) {
                        ae.gs();
                    }
                    break;
                case "MarkerFillMode":
                    for (let af of fromEnum(this.aa3)) {
                        af.gp();
                    }
                    break;
                case "MarkerStyle":
                    for (let ag of fromEnum(this.aa3)) {
                        ag.gt();
                    }
                    break;
                case "Opacity":
                    for (let ah of fromEnum(this.aa3)) {
                        ah.gx();
                    }
                    break;
                case "OpacityMask":
                    for (let ai of fromEnum(this.aa3)) {
                        ai.gy();
                    }
                    break;
                case "AreaFillOpacity":
                    for (let aj of fromEnum(this.aa3)) {
                        aj.f3();
                    }
                    break;
                case "Outline":
                    for (let ak of fromEnum(this.aa3)) {
                        ak.gz();
                    }
                    break;
                case "LineCap":
                    for (let al of fromEnum(this.aa3)) {
                        al.gm();
                    }
                    break;
                case "OutlineMode":
                    for (let am of fromEnum(this.aa3)) {
                        am.g0();
                    }
                    break;
                case "MarkerFillOpacity":
                    for (let an of fromEnum(this.aa3)) {
                        an.gq();
                    }
                    break;
                case "Thickness":
                    for (let ao of fromEnum(this.aa3)) {
                        ao.g7();
                    }
                    break;
                case "LineJoin":
                    for (let ap of fromEnum(this.aa3)) {
                        ap.gn();
                    }
                    break;
                case "ToolTip":
                    for (let aq of fromEnum(this.aa3)) {
                        aq.g9();
                    }
                    break;
                case "TransitionEasingFunction":
                    for (let ar of fromEnum(this.aa3)) {
                        ar.hb();
                    }
                    break;
                case "TransitionDuration":
                    for (let as of fromEnum(this.aa3)) {
                        as.ha();
                    }
                    break;
                case "IsTransitionInEnabled":
                    for (let at of fromEnum(this.aa3)) {
                        at.gf();
                    }
                    break;
                case "TransitionInMode":
                    for (let au of fromEnum(this.aa3)) {
                        au.he();
                    }
                    break;
                case "TransitionInDuration":
                    for (let av of fromEnum(this.aa3)) {
                        av.gf();
                    }
                    break;
                case "TransitionInSpeedType":
                    for (let aw of fromEnum(this.aa3)) {
                        aw.gf();
                    }
                    break;
                case "TransitionInEasingFunction":
                    for (let ax of fromEnum(this.aa3)) {
                        ax.hd();
                    }
                    break;
                case "UseLightweightMarkers":
                    for (let ay of fromEnum(this.aa3)) {
                        ay.hh();
                    }
                    break;
                case "UseHighMarkerFidelity":
                    for (let az of fromEnum(this.aa3)) {
                        az.hg();
                    }
                    break;
            }
        }
        get currentCategoryMode() {
            return this.preferredCategoryMode(typeCast(CategoryAxisBase.$, this.yx()));
        }
        get scaler() {
            return typeCast(ICategoryScaler_$type, this.yx());
        }
        get yScaler() {
            return typeCast(IScaler_$type, this.ze());
        }
        get bucketizer() {
            return this.y8.c9;
        }
        get currentMode2Index() {
            return this.z3();
        }
        provideCollisionDetector() {
            return new CollisionAvoider();
        }
        go() {
            return false;
        }
        get_e7() {
            return false;
        }
        rw(a, b) {
            let c = this.g1;
            super.rw(a, b);
            if (!c) {
                this.cw.be(b);
                return;
            }
            this.cw.be(b);
            if (this.d7(this.cv)) {
                return;
            }
            for (let d of fromEnum(this.series)) {
                d.visualSeriesLink.rw(a, b);
            }
            this.g1 = false;
        }
        rt(a, b, c, d, e) {
            super.rt(a, b, c, d, e);
            let f = this.ba.a$j.item(d);
            f.c9.g(this.ie);
            f.bd(c);
            if (this.d7(f)) {
                return;
            }
            if (this.aa1 == null) {
                this.aa1 = new CategoryFrame(3);
            }
            this.aa1.x();
            this.abs();
            this.y5(f).d(this.aa1, f);
            this.aas(this.aa1, f);
            for (let g of fromEnum(this.series)) {
                g.visualSeriesLink.rt(a, b, c, d, e);
            }
        }
        aal(a, b, c, d, e, f, g) {
            for (let h = c; h <= d; h++) {
                let i = 0;
                for (let j = 0; j < this.series.count; j++) {
                    let k = i + this.abh(j, h);
                    let l = a == 1 ? i : k;
                    if (l < f && e < k) {
                        if (g == 7 || g == 6) {
                            b.add(((() => {
                                let $ret = new ChartSelection();
                                $ret.series = this.series._inner[j].visualSeriesLink;
                                return $ret;
                            })()));
                        }
                        else if (g == 2 || g == 1) {
                            b.add(((() => {
                                let $ret = new ChartSelection();
                                $ret.item = this.dp.item(h);
                                return $ret;
                            })()));
                        }
                        else {
                            b.add(((() => {
                                let $ret = new ChartSelection();
                                $ret.item = this.dp.item(h);
                                $ret.series = this.series._inner[j].visualSeriesLink;
                                return $ret;
                            })()));
                        }
                    }
                    i = k;
                }
            }
        }
        abh(a, b) {
            let c = this.series._inner[a];
            return c.ak.item(b);
        }
        aac(a, b, c) {
            for (let d = 0; d < this.series.count; d++) {
                if (c == 2 || c == 1) {
                    a.add(((() => {
                        let $ret = new ChartSelection();
                        $ret.item = this.dp.item(b);
                        return $ret;
                    })()));
                }
                else {
                    a.add(((() => {
                        let $ret = new ChartSelection();
                        $ret.item = this.dp.item(b);
                        $ret.series = this.series._inner[d].visualSeriesLink;
                        return $ret;
                    })()));
                }
            }
        }
        kn() {
            let a = this.bc.exportStackedVisualData(this, this.wx);
            for (let b of fromEnum(this.series)) {
                let c = this.bc.createFragmentVisualData(this, this.wx, getInstanceType(b).typeName, b.e0);
                b.visualSeriesLink.cw.ax(c);
                this.bc.addSubSeriesVisualData(a, c);
                for (let d of fromEnum(b.visualSeriesLink.actualLayers)) {
                    let e = this.bc.createFragmentVisualData(this, this.wx, getInstanceType(d.target).typeName, d.target.name);
                    d.target.cw.ax(e);
                    this.bc.addSubSeriesLayerVisualData(c, e);
                }
            }
            this.p1(a);
            this.cw.ax(a);
            return a;
        }
        get mayContainUnknowns() {
            return true;
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedSeriesBase.$t = markType(StackedSeriesBase, 'StackedSeriesBase', CategorySeries.$, [IIsCategoryBased_$type]);
    StackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSeriesBase, 'raisePropertyChanged', ['AutoGenerateSeries:aba:abx', [0, false], 'ReverseLegendOrder:abc:aby', [0, false], 'SeriesVisibility:ab0:abz', [Visibility_$type, enumGetBox(Visibility_$type, 0)]]);
    return StackedSeriesBase;
})();
/**
 * @hidden
 */
export let HorizontalStackedSeriesBase = /*@__PURE__*/ (() => {
    class HorizontalStackedSeriesBase extends StackedSeriesBase {
        get_em() {
            return true;
        }
        get_f6() {
            return this.ze() != null && this.ze().ch;
        }
        o4() {
            super.o4();
            this.xAxis = null;
            this.yAxis = null;
            this.aa8.g();
        }
        cl() {
            return 1;
        }
        cm() {
            if (this.yAxis != null && this.yAxis.ch) {
                return 4;
            }
            return 3;
        }
        getOffsetValue() {
            return this.y4.r(this.xAxis, this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        getCategoryWidth() {
            return this.xAxis.getCategorySize(this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        fetchXAxis() {
            return this.xAxis;
        }
        fetchYAxis() {
            return this.yAxis;
        }
        ai() {
            return [this.fetchXAxis(), this.fetchYAxis()];
        }
        zu() {
            return this.yAxis != null && this.yAxis.c1();
        }
        sh() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ia = isNaN_(this.il) ? a.xw.fp : this.il;
                for (let b of fromEnum(this.aa3)) {
                    b.f3();
                }
            }
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case "Resolution":
                    this.aa8.k();
                    break;
                case HorizontalStackedSeriesBase.$$p[0]:
                    if (c != d) {
                        this.pe(typeCast(Axis.$, c));
                        this.rk(typeCast(Axis.$, d));
                        this.y8.c9.g(this.ie);
                        this.ru(false);
                        this.qn();
                    }
                    break;
                case HorizontalStackedSeriesBase.$$p[1]:
                    if (c != d) {
                        this.pe(typeCast(Axis.$, c));
                        this.rk(typeCast(Axis.$, d));
                        this.y8.c9.g(this.ie);
                        if (this.dc != null) {
                            this.dc.ok();
                        }
                        this.zu();
                        this.ru(false);
                        this.qn();
                    }
                    break;
            }
        }
        ab4(a) {
            if (typeCast(NumericYAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        ab3(a) {
            if (typeCast(CategoryXAxis.$, a) !== null || a.ce) {
                return true;
            }
            return false;
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    HorizontalStackedSeriesBase.$t = markType(HorizontalStackedSeriesBase, 'HorizontalStackedSeriesBase', StackedSeriesBase.$);
    HorizontalStackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, HorizontalStackedSeriesBase, 'raisePropertyChanged', ['XAxis::ab7', [CategoryAxisBase.$, null], 'YAxis::ab8', [NumericYAxis.$, null]]);
    return HorizontalStackedSeriesBase;
})();
/**
 * @hidden
 */
export let StackedAreaSeries = /*@__PURE__*/ (() => {
    class StackedAreaSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedAreaSeries.$;
        }
        bk() {
            return new StackedAreaSeries();
        }
        get_ew() {
            return true;
        }
        ac() {
            super.ac();
            this.ru(false);
        }
        ct() {
            return new StackedAreaSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.ab9 = a;
        }
        ay(a) {
            if (this.itemsSource == null) {
                return null;
            }
            if (a == this.xAxis) {
                return new AxisRange(0, this.dp.count - 1);
            }
            if (a == this.yAxis) {
                this.abs();
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.p6(a, c, b);
            return c.toArray();
        }
        p6(a, b, c) {
            this.aak(a, b, c, this.yy, 0);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedAreaSeries.$t = markType(StackedAreaSeries, 'StackedAreaSeries', HorizontalStackedSeriesBase.$);
    return StackedAreaSeries;
})();
/**
 * @hidden
 */
export let VerticalStackedSeriesBase = /*@__PURE__*/ (() => {
    class VerticalStackedSeriesBase extends StackedSeriesBase {
        yx() {
            return this.yAxis;
        }
        ze() {
            return this.xAxis;
        }
        o4() {
            super.o4();
            this.xAxis = null;
            this.yAxis = null;
            this.aa8.g();
        }
        cl() {
            if (this.xAxis != null && this.xAxis.ch) {
                return 4;
            }
            return 3;
        }
        cm() {
            return 1;
        }
        az(a) {
            if (a.isEmpty && this.dc != null) {
                a = this.dc.wt;
            }
            let b = this.yx();
            if (this.aaz == null || this.aa0 == null) {
                return null;
            }
            let c = this.wo(this.cw);
            let d = new ScalerParams(0, a, this.dc.xb, b.ch, this.getEffectiveViewport());
            let e = (b.eo(c.top, d));
            let f = (b.eo(c.bottom, d));
            if (!b.ch) {
                let g = e;
                e = f;
                f = g;
            }
            let h = null;
            if (b.cn) {
                h = b;
                e = h.i$f(e);
                f = h.i$f(f);
            }
            else {
                e = Math.floor(e);
                f = Math.ceil(f);
            }
            e = Math.max(0, Math.min(this.aa0.length - 1, e));
            f = Math.max(0, Math.min(this.aa0.length - 1, f));
            let i = 1.7976931348623157E+308;
            let j = -1.7976931348623157E+308;
            for (let k = truncate(e); k <= truncate(f); k++) {
                let l = k;
                if (h != null) {
                    l = h.i$b._inner[k];
                }
                let m = this.aa0[l];
                if (isInfinity(m) || isNaN_(m)) {
                    continue;
                }
                let n = this.aaz[l];
                if (isInfinity(n) || isNaN_(n)) {
                    continue;
                }
                i = Math.min(i, m);
                j = Math.max(j, n);
            }
            let o = new AxisRange(i, j);
            let p = this.ze();
            o = this.ax(o, p, a);
            return o;
        }
        getOffsetValue() {
            return this.y4.r(this.yAxis, this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        getCategoryWidth() {
            return this.yAxis.getCategorySize(this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        get_isVertical() {
            return true;
        }
        fetchXAxis() {
            return this.xAxis;
        }
        fetchYAxis() {
            return this.yAxis;
        }
        zu() {
            return this.xAxis != null && this.xAxis.c1();
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case VerticalStackedSeriesBase.$$p[0]:
                    if (c != d) {
                        this.pe(typeCast(Axis.$, c));
                        this.rk(typeCast(Axis.$, d));
                        this.y8.c9.g(this.ie);
                        if (this.dc != null) {
                            this.dc.ok();
                        }
                        this.ru(false);
                        this.qn();
                    }
                    break;
                case VerticalStackedSeriesBase.$$p[1]:
                    if (c != d) {
                        this.pe(typeCast(Axis.$, c));
                        this.rk(typeCast(Axis.$, d));
                        this.y8.c9.g(this.ie);
                        this.zu();
                        this.ru(false);
                        this.qn();
                    }
                    break;
            }
        }
        ab4(a) {
            if (typeCast(CategoryYAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        ab3(a) {
            if (typeCast(NumericXAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    VerticalStackedSeriesBase.$t = markType(VerticalStackedSeriesBase, 'VerticalStackedSeriesBase', StackedSeriesBase.$);
    VerticalStackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, VerticalStackedSeriesBase, 'raisePropertyChanged', ['XAxis::ab7', [NumericXAxis.$, null], 'YAxis::ab8', [CategoryYAxis.$, null]]);
    return VerticalStackedSeriesBase;
})();
/**
 * @hidden
 */
export let StackedBarSeries = /*@__PURE__*/ (() => {
    class StackedBarSeries extends VerticalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedBarSeries.$;
        }
        bk() {
            return new StackedBarSeries();
        }
        get_ez() {
            return true;
        }
        get_fm() {
            return true;
        }
        jl() {
            if (!isNaN_(this.jk)) {
                return super.jl();
            }
            return Defaults.h;
        }
        ac() {
            super.ac();
            this.ru(false);
        }
        ct() {
            return new StackedBarSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.ab9 = a;
        }
        aa2() {
            return this.ab9;
        }
        preferredCategoryMode(a) {
            return 2;
        }
        z3() {
            let a = 0;
            for (let b of fromEnum(this.dc.series)) {
                if (b == this) {
                    return a;
                }
                let c = typeCast(IBarSeries_$type, b);
                if (c != null && c.yAxis == this.yAxis && c.getPreferredCategoryMode() == 2) {
                    a++;
                }
            }
            return -1;
        }
        abf() {
            let a = 0;
            let b = this.dc != null ? this.dc.wt : Rect.empty;
            let c = this.cw.b9;
            if (!b.isEmpty && !c.isEmpty && this.xAxis != null) {
                let d = this.getEffectiveViewport1(this.cw);
                let e = new ScalerParams(0, b, c, this.xAxis.ch, d);
                a = this.xAxis.el(this.xAxis.me, e);
            }
            return a;
        }
        abg() {
            if (this.xAxis != null) {
                return this.xAxis.me;
            }
            return 0;
        }
        ay(a) {
            if (this.itemsSource == null) {
                return null;
            }
            if (a == this.yAxis) {
                return new AxisRange(0, this.dp.count - 1);
            }
            if (a == this.xAxis) {
                this.abs();
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        ge(a) {
            let b = this.dp != null ? this.dp.indexOf(a) : -1;
            let c = this.dc != null ? this.dc.wt : Rect.empty;
            c = c.copy();
            let d = this.cw.b9;
            let e = new Rect(0, 0, 0, 1, 1);
            let f = this.wq(this.cw);
            let g = new ScalerParams(0, e, e, this.xAxis.ch, f);
            let h = new ScalerParams(0, e, e, this.yAxis.ch, f);
            if (b >= 0 && Rect.l_op_Inequality(c, null) && Rect.l_op_Inequality(d, null)) {
                if (this.yAxis != null) {
                    let i = this.yAxis.el(b, h);
                    if (i < c.top + 0.1 * c.height) {
                        i = i + 0.4 * c.height;
                    }
                    if (i > c.bottom - 0.1 * c.height) {
                        i = i - 0.4 * c.height;
                    }
                    c.y = i - 0.5 * c.height;
                }
                if (this.xAxis != null && this.aaz != null && b < this.aaz.length) {
                    let j = this.xAxis.el(this.aaz[b], g);
                    let k = this.xAxis.el(this.aa0[b], g);
                    if (!isNaN_(j) && !isNaN_(k)) {
                        let l = Math.abs(k - j);
                        if (c.width < l) {
                            c.width = l;
                            c.x = Math.min(k, j);
                        }
                        else {
                            if (k < c.left + 0.1 * c.width) {
                                k = k + 0.4 * c.width;
                            }
                            if (k > c.right - 0.1 * c.width) {
                                k = k - 0.4 * c.width;
                            }
                            c.x = k - 0.5 * c.width;
                        }
                    }
                }
                this.c4.au(this.dc, c, true);
            }
            return b >= 0;
        }
        hf(a, b, c) {
            let d = true;
            let e = c;
            if (!c.r() || b.isEmpty || a.isEmpty || this.yAxis == null || this.yAxis.itemsSource == null || this.xAxis == null || this.dp == null || this.xAxis.bi == null || this.yAxis.bi == null || this.xAxis.l4 == this.xAxis.l3) {
                e.c9.d = 0;
                d = false;
            }
            return d;
        }
        pd(a, b, c, d) {
            switch (a) {
                case 4:
                case 1:
                case 0:
                    this.y8.c9.g(this.ie);
                    break;
            }
            switch (a) {
                case 4:
                    if (this.xAxis != null && !this.xAxis.c1()) {
                        this.ru(true);
                    }
                    break;
                case 1:
                    if (this.xAxis != null && !this.xAxis.c1()) {
                        this.ru(true);
                    }
                    break;
                case 0:
                    if (this.xAxis != null && !this.xAxis.c1()) {
                        this.ru(true);
                    }
                    break;
                case 2:
                    if (this.y8.c9.d > 0) {
                        this.ru(true);
                    }
                    break;
                case 3:
                    if (this.xAxis != null && !this.xAxis.c1()) {
                        this.ru(true);
                    }
                    break;
            }
        }
        j4(a) {
            let b = this.dc != null ? this.dc.wt : Rect.empty;
            let c = this.cw.b9;
            let d = this.getEffectiveViewport1(this.cw);
            let e = -1;
            if (this.yAxis != null && !b.isEmpty && !c.isEmpty) {
                let f = new ScalerParams(0, b, c, this.yAxis.ch, d);
                let g = this.wo(this.cw);
                let h = this.yAxis.eo(g.top, f);
                let i = this.yAxis.eo(g.bottom, f);
                let j = (a.y - b.top) / b.height;
                let k = h + (j * (i - h));
                if (this.yAxis.categoryMode != 0) {
                    k -= 0.5;
                }
                let l = truncate(Math.round(k));
                e = l;
            }
            return e;
        }
        ko(a) {
            let b = this.j4(a);
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        abw() {
            if (this.xAxis != null) {
                this.xAxis.c2(true);
            }
            if (this.yAxis != null) {
                this.yAxis.c2(true);
            }
        }
        abk(a) {
            return this.j4(a);
        }
        abd(a, b, c, d) {
            let e = true;
            if (!d.r() || c.isEmpty || b.isEmpty || this.yAxis == null || this.yAxis.itemsSource == null || this.xAxis == null || this.dp == null || this.xAxis.bi == null || this.yAxis.bi == null) {
                e = false;
            }
            let f = d;
            if (a.valueColumn == null || a.valueColumn.count == 0 || f.c9.d < 1) {
                e = false;
            }
            return e;
        }
        ix() {
            return this.yAxis.k8(this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        abt(a, b, c, d) {
            let e = typeCast(BarFragment.$, a);
            let f = typeCast(ColumnFragmentView.$, c);
            if (!this.hf(c.b9, c.ca, c) || e == null || f == null) {
                return;
            }
            let g = this.yAxis.k8(c.ca, c.b9, this.getEffectiveViewport1(c));
            if (isNaN_(g) || isInfinity(g)) {
                e.adf.du.count = 0;
                return;
            }
            let h = 0;
            e.y7.a2(e, e.zr(), d, e.z0(c), e.z1(c));
            e.y7.r = e.adi;
            e.y7.s = e.adj;
            e.y7.k = e.adi;
            e.y7.l = e.adj;
            let i = e.valueColumn.count;
            let j = c.ca;
            let k = c.b9;
            let l = this.getEffectiveViewport1(c);
            let m = false;
            let n = e.y7.b;
            if (n != null) {
                m = true;
            }
            let o = b.h;
            let p = e.yx();
            let q = p.cn ? p : null;
            let r = new ScalerParams(0, j, k, p.ch, l);
            let s = 0;
            for (let t of fromEnum(b.h)) {
                if (isInfinity(t[0]) || isNaN_(t[0]) || isInfinity(t[1]) || isInfinity(t[2]) || isNaN_(t[1]) || isNaN_(t[2])) {
                    s++;
                    continue;
                }
                let u = t[0] - 0.5 * g;
                let v = t[1];
                let w = t[2];
                w = Math.max(w, -100);
                v = Math.min(v, c.b9.right + 100);
                let x = f.du.item(h);
                x.height = g;
                x.width = Math.abs(v - w);
                let y = e.y7.aw(i, s)[0];
                if (m) {
                    e.aao(o, s, i, p, r, c.t, y);
                }
                if (x.dataContext != null) {
                    let z = x.dataContext;
                    if (e.y7.az == 1) {
                        if (y >= 0 && y < this.dp.count) {
                            if (q != null && q.i$b != null && q.i$b.count > y) {
                                y = q.i$b._inner[y];
                            }
                            z.item = this.dp.item(y);
                        }
                    }
                    else {
                        z.item = null;
                    }
                }
                e.y7.ad(x, false, false, false, false);
                x.ap = e.y7.k;
                x.aq = e.y7.l;
                f.d1(x, Math.min(v, w), u);
                h++;
                s++;
            }
            f.du.count = h;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.p6(a, c, b);
            return c.toArray();
        }
        p6(a, b, c) {
            this.aak(a, b, c, this.yy, 1);
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case StackedBarSeries.$$p[0]:
                case StackedBarSeries.$$p[1]:
                    for (let e of fromEnum(this.aa3)) {
                        e.g1();
                        e.g2();
                    }
                    this.ru(false);
                    break;
                case "SyncLink":
                    if (this.xAxis != null) {
                        this.xAxis.c1();
                    }
                    break;
                case "FastItemsSource":
                    if (this.xAxis != null && !this.xAxis.c1()) {
                        this.ab9.c9.g(this.ie);
                    }
                    this.ru(this.gh && c != null);
                    break;
                case "SeriesViewer":
                    if (c != null && d == null) {
                        this.pe(this.xAxis);
                        this.pe(this.yAxis);
                    }
                    if (c == null && d != null) {
                        this.rk(this.xAxis);
                        this.rk(this.yAxis);
                    }
                    this.ab9.c9.g(this.ie);
                    this.ru(false);
                    if (this.xAxis != null) {
                        this.xAxis.c1();
                    }
                    break;
            }
        }
        getPreferredCategoryMode() {
            return this.preferredCategoryMode(this.yAxis);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedBarSeries.$t = markType(StackedBarSeries, 'StackedBarSeries', VerticalStackedSeriesBase.$, [IBarSeries_$type]);
    StackedBarSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedBarSeries, 'raisePropertyChanged', ['RadiusX:aca:ace', [1, 0], 'RadiusY:acb:acf', [1, 0]]);
    return StackedBarSeries;
})();
/**
 * @hidden
 */
export let StackedColumnSeries = /*@__PURE__*/ (() => {
    class StackedColumnSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedColumnSeries.$;
        }
        bk() {
            return new StackedColumnSeries();
        }
        get_e1() {
            return true;
        }
        get_fm() {
            return true;
        }
        jl() {
            if (!isNaN_(this.jk)) {
                return super.jl();
            }
            return Defaults.h;
        }
        ct() {
            return new StackedColumnSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.ab9 = a;
        }
        aa2() {
            return this.ab9;
        }
        preferredCategoryMode(a) {
            return 2;
        }
        ay(a) {
            if (this.itemsSource == null) {
                return null;
            }
            if (a == this.xAxis) {
                return new AxisRange(0, this.dp.count - 1);
            }
            if (a == this.yAxis) {
                this.abs();
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        ix() {
            let a = this.getEffectiveViewport1(this.cw);
            return this.xAxis.k8(this.cw.ca, this.cw.b9, a);
        }
        abt(a, b, c, d) {
            let e = typeCast(ColumnFragment.$, a);
            let f = typeCast(ColumnFragmentView.$, c);
            if (!this.hf(c.b9, c.ca, c) || e == null || f == null) {
                return;
            }
            if (e == null) {
                return;
            }
            let g = this.getEffectiveViewport1(c);
            let h = this.xAxis.k8(c.ca, c.b9, g);
            if (isNaN_(h) || isInfinity(h)) {
                e.adf.du.count = 0;
                return;
            }
            let i = 0;
            e.y7.a2(e, e.zr(), d, e.z0(c), e.z1(c));
            e.y7.r = e.adi;
            e.y7.s = e.adj;
            e.y7.k = e.adi;
            e.y7.l = e.adj;
            let j = c.ca;
            let k = c.b9;
            let l = this.getEffectiveViewport1(c);
            let m = false;
            let n = e.y7.b;
            if (n != null) {
                m = true;
            }
            let o = b.h;
            let p = e.yx();
            let q = p.cn ? p : null;
            let r = new ScalerParams(0, j, k, p.ch, l);
            let s = e.valueColumn.count;
            let t = typeCast(ISortingAxis_$type, this.xAxis) !== null;
            let u = 0;
            for (let v of fromEnum(b.h)) {
                if (isInfinity(v[0]) || isNaN_(v[0]) || isInfinity(v[1]) || isInfinity(v[2]) || isNaN_(v[1]) || isNaN_(v[2])) {
                    u++;
                    continue;
                }
                let w = v[0] - 0.5 * h;
                let x = v[1];
                let y = v[2];
                x = Math.max(x, -100);
                y = Math.min(y, c.b9.bottom + 100);
                let z = f.du.item(i);
                z.width = h;
                z.height = Math.abs(y - x);
                let aa = e.y7.aw(s, u)[0];
                if (t && b.o != null && i >= 0 && i < b.o.count) {
                    aa = truncate(Math.round(b.o._inner[i]));
                }
                if (m) {
                    e.aao(o, u, s, p, r, c.t, aa);
                }
                if (z.dataContext != null) {
                    let ab = z.dataContext;
                    if (e.y7.az == 1) {
                        if (aa >= 0 && aa < this.dp.count) {
                            if (q != null && q.i$b != null && q.i$b.count > aa) {
                                aa = q.i$b._inner[aa];
                            }
                            ab.item = this.dp.item(aa);
                        }
                    }
                    else {
                        ab.item = null;
                    }
                }
                e.y7.ad(z, false, false, false, false);
                z.ap = e.y7.k;
                z.aq = e.y7.l;
                f.d1(z, w, Math.min(y, x));
                i++;
                u++;
            }
            f.du.count = i;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.p6(a, c, b);
            return c.toArray();
        }
        p6(a, b, c) {
            this.aak(a, b, c, this.yy, 1);
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case StackedColumnSeries.$$p[0]:
                case StackedColumnSeries.$$p[1]:
                    for (let e of fromEnum(this.aa3)) {
                        e.g1();
                        e.g2();
                    }
                    this.ru(false);
                    break;
                case "SyncLink":
                    if (this.yAxis != null) {
                        this.yAxis.c1();
                    }
                    break;
                case "SeriesViewer":
                    if (this.yAxis != null) {
                        this.yAxis.c1();
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedColumnSeries.$t = markType(StackedColumnSeries, 'StackedColumnSeries', HorizontalStackedSeriesBase.$);
    StackedColumnSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedColumnSeries, 'raisePropertyChanged', ['RadiusX:aca:ace', [1, 0], 'RadiusY:acb:acf', [1, 0]]);
    return StackedColumnSeries;
})();
/**
 * @hidden
 */
export let StackedSplineAreaSeries = /*@__PURE__*/ (() => {
    class StackedSplineAreaSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedSplineAreaSeries.$;
        }
        bk() {
            return new StackedSplineAreaSeries();
        }
        jl() {
            if (!isNaN_(this.jk)) {
                return super.jl();
            }
            return this.ab9.dn();
        }
        get_ew() {
            return true;
        }
        get_f1() {
            return true;
        }
        ac() {
            super.ac();
            this.ru(false);
        }
        ct() {
            return new StackedSplineAreaSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.ab9 = a;
        }
        ay(a) {
            if (this.itemsSource == null) {
                return null;
            }
            if (a == this.xAxis) {
                return new AxisRange(0, this.dp.count - 1);
            }
            if (a == this.yAxis) {
                this.abs();
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        rc(a, b, c, d) {
            super.rc(a, b, c, d);
            switch (b) {
                case StackedSplineAreaSeries.$$p[0]:
                    for (let e of fromEnum(this.aa3)) {
                        e.ge();
                    }
                    break;
            }
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.p6(a, c, b);
            return c.toArray();
        }
        p6(a, b, c) {
            this.aak(a, b, c, this.yy, 0);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedSplineAreaSeries.$t = markType(StackedSplineAreaSeries, 'StackedSplineAreaSeries', HorizontalStackedSeriesBase.$);
    StackedSplineAreaSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSplineAreaSeries, 'raisePropertyChanged', ['IsSplineShapePartOfRange:aca:acc', [0, false]]);
    return StackedSplineAreaSeries;
})();
/**
 * @hidden
 */
export let StackedSplineSeries = /*@__PURE__*/ (() => {
    class StackedSplineSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedSplineSeries.$;
        }
        bk() {
            return new StackedSplineSeries();
        }
        get_f1() {
            return true;
        }
        jl() {
            if (!isNaN_(this.jk)) {
                return super.jl();
            }
            return this.ab9.dn();
        }
        ac() {
            super.ac();
            this.ru(false);
        }
        ct() {
            return new StackedSplineSeriesView(this);
        }
        q3(a) {
            super.q3(a);
            this.ab9 = a;
        }
        ay(a) {
            if (this.itemsSource == null) {
                return null;
            }
            if (a == this.xAxis) {
                return new AxisRange(0, this.dp.count - 1);
            }
            if (a == this.yAxis) {
                this.abs();
                return new AxisRange(this.abj, this.abi);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.p6(a, c, b);
            return c.toArray();
        }
        p6(a, b, c) {
            this.aak(a, b, c, this.yy, 0);
        }
        get useHighMarkerFidelity() {
            return this.zv;
        }
    }
    StackedSplineSeries.$t = markType(StackedSplineSeries, 'StackedSplineSeries', HorizontalStackedSeriesBase.$);
    StackedSplineSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSplineSeries, 'raisePropertyChanged', ['IsSplineShapePartOfRange:aca:acc', [0, false]]);
    return StackedSplineSeries;
})();
/**
 * @hidden
 */
export let StackedFragmentSeries = /*@__PURE__*/ (() => {
    class StackedFragmentSeries extends DependencyObject {
        constructor() {
            super();
            this._parentSeries = null;
            this.cc = 0;
            this.af = null;
            this.ak = null;
            this._visualSeriesLink = null;
            this.a7 = null;
            this.a8 = null;
            this.a6 = null;
            this.az = false;
            this.b5 = null;
            this.propertyChanged = null;
            this.propertyUpdated = null;
            this.a5 = new List$1(String_$type, 0);
            this.a7 = new List$1(Number_$type, 0);
            this.a8 = new List$1(Number_$type, 0);
            this.a6 = new List$1(Array_$type, 0);
            this.propertyUpdated = delegateCombine(this.propertyUpdated, (a, b) => this.fy(a, b.propertyName, b.oldValue, b.newValue));
        }
        cg(a, b) {
            let c = new DataLegendSeriesValueInfo();
            c.l = this.bt({ $type: Point_$type, x: a, y: b }, false, false);
            c.q = "Value";
            c.r = this.ft != null ? this.ft : "Value";
            c.s = this.fp != null ? this.fp : "";
            c.t = this.fr != null ? this.fr : "";
            let d = new DataLegendSeriesContext();
            d.e = ((() => {
                let $ret = new List$1(DataLegendSeriesValueInfo.$, 0);
                $ret.add(c);
                return $ret;
            })());
            d.h = this.eb();
            return d;
        }
        eb() {
            return "Stacked";
        }
        get parentSeries() {
            return this._parentSeries;
        }
        set parentSeries(a) {
            this._parentSeries = a;
        }
        get visualSeriesLink() {
            return this._visualSeriesLink;
        }
        set visualSeriesLink(a) {
            this._visualSeriesLink = a;
        }
        b8(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.j4(a);
            }
            return -1;
        }
        ch(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ko(a);
            }
            return null;
        }
        cb(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kb(a, b);
            }
            return -1;
        }
        ca(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.j9(a, b);
            }
            return -1;
        }
        bt(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i6(a, b, c);
            }
            return NaN;
        }
        li(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wh(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        lm(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ws(a);
            }
            return Rect.empty;
        }
        j(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ao(a);
            }
            return null;
        }
        ln(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wt(a);
            }
            return Rect.empty;
        }
        k(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ap(a);
            }
            return null;
        }
        lo(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wu(a);
            }
            return Rect.empty;
        }
        lp(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wv(a);
            }
            return Rect.empty;
        }
        bp(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i2(a, b, c);
            }
            return NaN;
        }
        le(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wd(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        br(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i4(a, b, c);
            }
            return NaN;
        }
        lg(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wf(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        lj(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wi(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bu(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i7(a, b, c);
            }
            return NaN;
        }
        lf(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.we(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bq(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i3(a, b, c);
            }
            return NaN;
        }
        lh(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wg(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bs(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i5(a, b, c);
            }
            return NaN;
        }
        b9(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.j5(a);
            }
            return -1;
        }
        bo() {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ix();
            }
            return 0;
        }
        bn(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.it(a);
            }
            return NaN;
        }
        ci(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kp(a);
            }
            return null;
        }
        as(a, b, c, d, e) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ed(a, b, c, d, e);
            }
            return false;
        }
        lk(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wm(a);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        ld(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wc(a);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        a0(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ge(a);
            }
            return false;
        }
        ll() {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.getEffectiveViewport();
            }
            return Rect.empty;
        }
        fx() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.qp();
            }
        }
        f2(a) {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.sa(a);
            }
        }
        a1(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.gx(a, b);
            }
            return false;
        }
        fw(a) {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.qe(a);
            }
        }
        provideRenderer(a) {
            this.b5 = a;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.provideRenderer(a);
            }
        }
        hm() {
            if (this.parentSeries == null) {
                return;
            }
            this.lt = this.parentSeries._visibility != 0 ? 1 : this.lv;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink._visibility = this.lt;
            }
        }
        gu() {
            if (this.parentSeries == null) {
                return;
            }
            this.hp = this.hs != null ? this.hs : this.parentSeries.x7;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.x7 = this.hp;
            }
        }
        gw() {
            if (this.parentSeries == null) {
                return;
            }
            let a = this.x == 0 || this.x == 2;
            let b = a ? this.parentSeries.xd : this.x;
            if (b == 2 || b == 0) {
                b = 1;
            }
            this.w = b;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xf = this.w;
            }
        }
        f4() {
            if (this.parentSeries == null) {
                return;
            }
            this.k4 = this.kz != null ? this.kz : this.parentSeries.vk;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.vk = this.k4;
            }
        }
        f5() {
            if (this.parentSeries == null) {
                return;
            }
            this.k7 = this.k8 != null ? this.k8 : this.parentSeries.v7;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.v7 = this.k7;
            }
        }
        gb() {
            if (this.parentSeries == null) {
                return;
            }
            this.bc = !isNaN_(this.bv) ? this.bv : this.parentSeries.jg;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jg = this.bc;
            }
        }
        ga() {
            if (this.parentSeries == null) {
                return;
            }
            this.z = this.parentSeries.bw;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.bw = this.z;
            }
        }
        g0() {
            if (this.parentSeries == null) {
                return;
            }
            this.aa = this.ab != 0 ? this.ab : this.parentSeries.cj;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.cj = this.aa;
            }
        }
        gq() {
            if (this.parentSeries == null) {
                return;
            }
            this.bd = !isNaN_(this.bw) || this.ay("MarkerFillOpacity") ? this.bw : this.parentSeries.jh;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jh = this.bd;
            }
        }
        f6() {
            if (this.parentSeries == null) {
                return;
            }
            this.k9 = this.at("DashCap") ? this.parentSeries.v8 : this.lb;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.v8 = this.k9;
            }
        }
        gc() {
            if (this.parentSeries == null) {
                return;
            }
            this.al = this.at("IsDropShadowEnabled") ? this.parentSeries.e6 : this.au;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.e6 = this.al;
            }
        }
        g3() {
            if (this.parentSeries == null) {
                return;
            }
            this.bi = !isNaN_(this.b1) || this.ay("ShadowBlur") ? this.b1 : this.parentSeries.jn;
            if (this.visualSeriesLink != null && !isNaN_(this.bi)) {
                this.visualSeriesLink.jn = this.bi;
            }
        }
        g4() {
            if (this.parentSeries == null) {
                return;
            }
            this.k5 = Color.e(toNullable(Color.$, this.k6), toNullable(Color.$, null)) ? this.k6 : this.parentSeries.v6;
            if (this.visualSeriesLink != null && Color.e(toNullable(Color.$, this.k5), toNullable(Color.$, null))) {
                this.visualSeriesLink.v6 = this.k5;
            }
        }
        hi() {
            if (this.parentSeries == null) {
                return;
            }
            this.ar = this.at("UseSingleShadow") ? this.parentSeries.hd : this.a4;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.hd = this.ar;
            }
        }
        g5() {
            if (this.parentSeries == null) {
                return;
            }
            this.bj = !isNaN_(this.b2) || this.ay("ShadowOffsetX") ? this.b2 : this.parentSeries.jo;
            if (this.visualSeriesLink != null && !isNaN_(this.bj)) {
                this.visualSeriesLink.jo = this.bj;
            }
        }
        g6() {
            if (this.parentSeries == null) {
                return;
            }
            this.bk = !isNaN_(this.b3) || this.ay("ShadowOffsetY") ? this.b3 : this.parentSeries.jp;
            if (this.visualSeriesLink != null && !isNaN_(this.bk)) {
                this.visualSeriesLink.jp = this.bk;
            }
        }
        gd() {
            if (this.parentSeries == null) {
                return;
            }
            this.am = this.av;
        }
        gj() {
            if (this.parentSeries == null) {
                return;
            }
            this.hn = this.hq != null ? this.hq : this.parentSeries.legendItemBadgeTemplate;
            if (this.visualSeriesLink != null) {
                if (this.hn != null) {
                    this.visualSeriesLink.legendItemBadgeTemplate = this.hn;
                }
                else {
                    this.visualSeriesLink.legendItemBadgeTemplate = null;
                }
            }
        }
        gk() {
            if (this.parentSeries == null) {
                return;
            }
            this.ho = this.hr != null ? this.hr : this.parentSeries.legendItemTemplate;
            if (this.visualSeriesLink != null) {
                if (this.ho != null) {
                    this.visualSeriesLink.legendItemTemplate = this.ho;
                }
                else {
                    this.visualSeriesLink.legendItemTemplate = null;
                }
            }
        }
        gl() {
            if (this.parentSeries == null) {
                return;
            }
            this.ls = this.parentSeries.legendItemVisibility != 0 ? 1 : this.lu;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.legendItemVisibility = this.ls;
            }
        }
        gi() {
            if (this.parentSeries == null) {
                return;
            }
            this.q = this.r != 0 ? this.r : this.parentSeries.legendItemBadgeShape;
            if (this.visualSeriesLink != null) {
                if (this.q != 0) {
                    this.visualSeriesLink.legendItemBadgeShape = this.q;
                }
                else {
                    this.visualSeriesLink.legendItemBadgeShape = 0;
                }
            }
        }
        gh() {
            if (this.parentSeries == null) {
                return;
            }
            this.o = this.p != 0 ? this.p : this.parentSeries.be;
            if (this.visualSeriesLink != null) {
                if (this.o != 0) {
                    this.visualSeriesLink.be = this.o;
                }
                else {
                    this.visualSeriesLink.be = 0;
                }
            }
        }
        go() {
            if (this.parentSeries == null) {
                return;
            }
            this.kv = this.k0 != null ? this.k0 : this.parentSeries.yo;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.yo = this.kv;
            }
        }
        gr() {
            if (this.parentSeries == null) {
                return;
            }
            this.kw = this.k1 != null ? this.k1 : this.parentSeries.yp;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.yp = this.kw;
            }
        }
        gt() {
            if (this.parentSeries == null) {
                return;
            }
            this.lq = this.lr != null ? this.lr : this.parentSeries.yq;
            if (this.visualSeriesLink != null) {
                if (this.lq != null) {
                    this.visualSeriesLink.yq = this.lq;
                }
                else {
                    this.visualSeriesLink.yq = null;
                }
            }
        }
        gx() {
            if (this.parentSeries == null) {
                return;
            }
            this.bf = !isNaN_(this.by) || this.ay("Opacity") ? this.by : this.parentSeries._opacity;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink._opacity = this.bf;
            }
        }
        gy() {
        }
        gz() {
            if (this.parentSeries == null) {
                return;
            }
            this.ky = this.k3 != null ? this.k3 : this.parentSeries.v0;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.v0 = this.ky;
            }
        }
        gg() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.itemsSource = this.itemsSource;
            }
        }
        f9() {
            let a = this.highlightedItemsSource;
            if (a == null && this.parentSeries != null) {
                a = this.parentSeries.highlightedItemsSource;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.highlightedItemsSource = a;
            }
        }
        f3() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.ew && !this.parentSeries.f1) {
                a = this.parentSeries.ia;
            }
            if (this.parentSeries.isStacked && this.parentSeries.ew && this.parentSeries.f1) {
                a = this.parentSeries.ia;
            }
            this.bb = !isNaN_(this.bm) || this.ay("AreaFillOpacity") ? this.bm : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(AreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.il = this.bb;
                }
                if (typeCast(SplineAreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.il = this.bb;
                }
            }
        }
        ge() {
            if (this.parentSeries == null) {
                return;
            }
            let a = false;
            if (this.parentSeries.isStacked && this.parentSeries.f1 && this.parentSeries.ew) {
                a = this.parentSeries.aca;
            }
            if (this.parentSeries.isStacked && this.parentSeries.ez) {
                a = this.parentSeries.aca;
            }
            this.an = a;
            if (this.visualSeriesLink != null) {
                if (typeCast(SplineFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ac8 = this.an;
                }
                if (typeCast(SplineAreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ac8 = this.an;
                }
            }
        }
        g1() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.e1) {
                a = this.parentSeries.aca;
            }
            if (this.parentSeries.isStacked && this.parentSeries.ez) {
                a = this.parentSeries.aca;
            }
            this.bg = !isNaN_(this.bz) && this.bz != a ? this.bz : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(ColumnFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adi = this.bg;
                }
                if (typeCast(BarFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adi = this.bg;
                }
            }
        }
        g2() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.e1) {
                a = this.parentSeries.acb;
            }
            if (this.parentSeries.isStacked && this.parentSeries.ez) {
                a = this.parentSeries.acb;
            }
            this.bh = !isNaN_(this.b0) && this.b0 != a ? this.b0 : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(ColumnFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adj = this.bh;
                }
                if (typeCast(BarFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adj = this.bh;
                }
            }
        }
        gm() {
            if (this.parentSeries == null) {
                return;
            }
            this.la = this.at("StartCap") ? this.parentSeries.v9 : this.lc;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.v9 = this.la;
            }
        }
        g7() {
            if (this.parentSeries == null) {
                return;
            }
            this.bl = !isNaN_(this.b4) && this.b4 != this.parentSeries.jq ? this.b4 : this.parentSeries.jq;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jq = this.bl;
            }
        }
        gn() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wa = this.parentSeries.wa;
            }
        }
        gv() {
            if (this.parentSeries == null) {
                return;
            }
            this.be = !isNaN_(this.bx) || this.ay("MarkerThickness") ? this.bx : this.parentSeries.xo;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xo = this.be;
            }
        }
        g9() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.toolTip = this.ck;
            }
        }
        hb() {
            if (this.parentSeries == null) {
                return;
            }
            this.ag = this.ai || this.parentSeries.de;
        }
        ha() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.ke != 0) {
                this.b6 = this.parentSeries.ke;
                return;
            }
            this.b6 = this.at("IsDropShadowEnabled") ? this.parentSeries.ke : this.cd;
        }
        hd() {
            if (this.parentSeries == null) {
                return;
            }
            this.ah = this.at("IsDropShadowEnabled") ? this.parentSeries.df : this.aj;
        }
        he() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.za != 0) {
                this.m = this.parentSeries.za;
                return;
            }
            this.m = this.n;
        }
        hf() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.c6 != 0) {
                this.ad = this.parentSeries.c6;
                return;
            }
            this.ad = this.ae;
        }
        gf() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.zq != false) {
                this.ao = this.parentSeries.zq;
                return;
            }
            this.ao = this.ax;
        }
        hc() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.kf != 1000) {
                this.b7 = this.parentSeries.kf;
                return;
            }
            this.b7 = this.ce;
        }
        hh() {
            if (this.parentSeries == null) {
                return;
            }
            this.aq = this.at("UseLightweightMarkers") ? this.parentSeries.xn : this.a3;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xn = this.aq;
            }
        }
        g8() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.title = this.cj;
            }
        }
        gp() {
            if (this.parentSeries == null) {
                return;
            }
            this.s = this.t != 0 ? this.t : this.parentSeries.w5;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.w5 = this.s;
            }
        }
        gs() {
            if (this.parentSeries == null) {
                return;
            }
            this.u = this.v != 0 ? this.v : this.parentSeries.w9;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.w9 = this.u;
            }
        }
        hg() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.zv = this.ay("UseHighMarkerFidelity") ? this.a2 : this.parentSeries.zv;
            }
        }
        hk() {
            if (this.parentSeries == null) {
                return;
            }
            this.d2 = this.ay("ValueMemberAsLegendUnit") ? this.fr : null;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.abs = this.fr;
            }
        }
        hj() {
            if (this.parentSeries == null) {
                return;
            }
            this.d0 = this.ay("ValueMemberAsLegendLabel") ? this.fp : this.cj != null ? this.cj.toString() : null;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.abq = this.d0;
            }
        }
        f7() {
            if (this.parentSeries == null) {
                return;
            }
            this.cp = this.ay("DataLegendGroup") ? this.d9 : this.eb();
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.l5 = this.cp;
            }
        }
        f8() {
            if (this.parentSeries == null) {
                return;
            }
            this.cr = this.ay("HighlightedDataLegendGroup") ? this.ed : this.d9;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.ml = this.cr;
            }
        }
        hl() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.abu = this.ft;
            }
        }
        f0(a, b, c) {
            if (this.propertyChanged != null) {
                this.propertyChanged(this, new PropertyChangedEventArgs(a));
            }
            if (this.propertyUpdated != null) {
                this.propertyUpdated(this, new PropertyUpdatedEventArgs(a, b, c));
            }
        }
        at(a) {
            return !this.a5.contains(a);
        }
        ay(a) {
            return this.a5.contains(a);
        }
        fy(a, b, c, d) {
            if (this.parentSeries == null) {
                return;
            }
            if (!this.a5.contains(b)) {
                this.a5.add(b);
            }
            switch (b) {
                case StackedFragmentSeries.$$p[92]:
                    this.g8();
                    break;
                case StackedFragmentSeries.$$p[105]:
                    this.hl();
                    break;
                case StackedFragmentSeries.$$p[104]:
                    this.hk();
                    break;
                case StackedFragmentSeries.$$p[103]:
                    this.hj();
                    break;
                case StackedFragmentSeries.$$p[106]:
                    this.hm();
                    break;
                case StackedFragmentSeries.$$p[52]:
                    this.f4();
                    break;
                case StackedFragmentSeries.$$p[53]:
                    this.f5();
                    break;
                case StackedFragmentSeries.$$p[54]:
                    this.f6();
                    break;
                case StackedFragmentSeries.$$p[59]:
                    this.gc();
                    break;
                case StackedFragmentSeries.$$p[87]:
                    this.g3();
                    break;
                case StackedFragmentSeries.$$p[88]:
                    this.g4();
                    break;
                case StackedFragmentSeries.$$p[102]:
                    this.hi();
                    break;
                case StackedFragmentSeries.$$p[89]:
                    this.g5();
                    break;
                case StackedFragmentSeries.$$p[90]:
                    this.g6();
                    break;
                case StackedFragmentSeries.$$p[69]:
                    this.gm();
                    break;
                case StackedFragmentSeries.$$p[60]:
                    this.gd();
                    break;
                case StackedFragmentSeries.$$p[76]:
                    this.gu();
                    break;
                case StackedFragmentSeries.$$p[78]:
                    this.gw();
                    break;
                case StackedFragmentSeries.$$p[71]:
                    this.gp();
                    break;
                case StackedFragmentSeries.$$p[73]:
                    this.gs();
                    break;
                case StackedFragmentSeries.$$p[66]:
                    this.gj();
                    break;
                case StackedFragmentSeries.$$p[67]:
                    this.gk();
                    break;
                case StackedFragmentSeries.$$p[68]:
                    this.gl();
                    break;
                case StackedFragmentSeries.$$p[65]:
                    this.gi();
                    break;
                case StackedFragmentSeries.$$p[64]:
                    this.gh();
                    break;
                case StackedFragmentSeries.$$p[70]:
                    this.go();
                    break;
                case StackedFragmentSeries.$$p[74]:
                    this.gr();
                    break;
                case StackedFragmentSeries.$$p[75]:
                    this.gt();
                    break;
                case StackedFragmentSeries.$$p[77]:
                    this.gv();
                    break;
                case StackedFragmentSeries.$$p[81]:
                    this.gx();
                    break;
                case StackedFragmentSeries.$$p[80]:
                    this.gy();
                    break;
                case StackedFragmentSeries.$$p[63]:
                    this.gg();
                    break;
                case StackedFragmentSeries.$$p[56]:
                    this.f9();
                    break;
                case StackedFragmentSeries.$$p[83]:
                    this.gz();
                    break;
                case StackedFragmentSeries.$$p[82]:
                    this.g0();
                    break;
                case StackedFragmentSeries.$$p[72]:
                    this.gq();
                    break;
                case StackedFragmentSeries.$$p[51]:
                    this.f3();
                    break;
                case StackedFragmentSeries.$$p[85]:
                    this.g1();
                    break;
                case StackedFragmentSeries.$$p[86]:
                    this.g2();
                    break;
                case StackedFragmentSeries.$$p[61]:
                    this.ge();
                    break;
                case StackedFragmentSeries.$$p[91]:
                    this.g7();
                    break;
                case StackedFragmentSeries.$$p[93]:
                    this.g9();
                    break;
                case StackedFragmentSeries.$$p[95]:
                    this.hb();
                    break;
                case StackedFragmentSeries.$$p[97]:
                    this.hd();
                    break;
                case StackedFragmentSeries.$$p[94]:
                    this.ha();
                    break;
                case StackedFragmentSeries.$$p[62]:
                    this.gf();
                    break;
                case StackedFragmentSeries.$$p[98]:
                    this.he();
                    break;
                case StackedFragmentSeries.$$p[99]:
                    this.hf();
                    break;
                case StackedFragmentSeries.$$p[96]:
                    this.hc();
                    break;
                case StackedFragmentSeries.$$p[101]:
                    this.hh();
                    break;
                case StackedFragmentSeries.$$p[100]:
                    this.hg();
                    break;
            }
            this.parentSeries.ru(false);
        }
        f1() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.rz();
            }
        }
    }
    StackedFragmentSeries.$t = markType(StackedFragmentSeries, 'StackedFragmentSeries', DependencyObject.$, [INotifyPropertyChanged_$type]);
    StackedFragmentSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedFragmentSeries, 'f0', ['ActualAreaFillOpacity:bb:ht', [1, NaN], 'ActualBrush:ku:hu', [Brush.$], 'ActualDashArray:k7:hv', [DoubleCollection.$], 'ActualDashCap:k9:hw', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'ActualDataLegendGroup:cp:hx', [2, null], 'ActualHighlightedValuesDataLegendGroup:cr:hy', [2, null], 'ActualHighlightedValuesDisplayMode:z:hz', [SeriesHighlightedValuesDisplayMode_$type, enumGetBox(SeriesHighlightedValuesDisplayMode_$type, 1)], 'ActualHighlightingFadeOpacity:bc:h0', [1, NaN], 'ActualIsDropShadowEnabled:al:h1', [0, false], 'ActualIsHitTestVisible:am:h2', [0, true], 'ActualIsSplineShapePartOfRange:an:h3', [0, false], 'ActualIsTransitionInEnabled:ao:h4', [0], 'ActualLegendItemBadgeMode:o:h5', [LegendItemBadgeMode_$type], 'ActualLegendItemBadgeShape:q:h6', [LegendItemBadgeShape_$type], 'ActualLegendItemBadgeTemplate:hn:h7', [DataTemplate.$], 'ActualLegendItemTemplate:ho:h8', [DataTemplate.$], 'ActualLegendItemVisibility:ls:h9', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'ActualLineCap:la:ia', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'ActualMarkerBrush:kv:ib', [Brush.$], 'ActualMarkerFillMode:s:ic', [MarkerFillMode_$type, enumGetBox(MarkerFillMode_$type, 0)], 'ActualMarkerFillOpacity:bd:id', [1, NaN], 'ActualMarkerOutlineMode:u:ie', [MarkerOutlineMode_$type, enumGetBox(MarkerOutlineMode_$type, 0)], 'ActualMarkerOutline:kw:ig', [Brush.$], 'ActualMarkerStyle:lq:ih', [Style.$], 'ActualMarkerTemplate:hp:ii', [DataTemplate.$], 'ActualMarkerThickness:be:ij', [1, 1], 'ActualMarkerType:w:ik', [MarkerType_$type, enumGetBox(MarkerType_$type, 1)], 'ActualOpacityMask:kx:il', [Brush.$], 'ActualOpacity:bf:im', [1, NaN], 'ActualOutlineMode:aa:io', [SeriesOutlineMode_$type, enumGetBox(SeriesOutlineMode_$type, 0)], 'ActualOutline:ky:ip', [Brush.$], 'ActualRadiusX:bg:iq', [1, 0], 'ActualRadiusY:bh:ir', [1, 0], 'ActualShadowBlur:bi:is', [1, NaN], 'ActualShadowColor:k5:it', [Color.$], 'ActualShadowOffsetX:bj:iu', [1, NaN], 'ActualShadowOffsetY:bk:iv', [1, NaN], 'ActualThickness:bl:iw', [1, 1], 'ActualToolTip:cf:ix', [4], 'ActualTransitionDuration:b6:iy', [1], 'ActualTransitionEasingFunction:ag:iz', [Delegate_$type], 'ActualTransitionInDuration:b7:i0', [1], 'ActualTransitionInEasingFunction:ah:i1', [Delegate_$type], 'ActualTransitionInMode:m:i2', [CategoryTransitionInMode_$type], 'ActualTransitionInSpeedType:ad:i3', [TransitionInSpeedType_$type], 'ActualUseHighMarkerFidelity:ap:i4', [0, false], 'ActualUseLightweightMarkers:aq:i5', [0, false], 'ActualUseSingleShadow:ar:i6', [0, true], 'ActualValueMemberAsLegendLabel:d0:i7', [2, null], 'ActualValueMemberAsLegendUnit:d2:i8', [2, null], 'ActualVisibility:lt:i9', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'AreaFillOpacity:bm:ja', [1, NaN], 'Brush:kz:jb', [Brush.$], 'DashArray:k8:jc', [DoubleCollection.$], 'DashCap:lb:jd', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'DataLegendGroup:d9:je', [2, null], 'HighlightedItemsSource::jf', [IEnumerable_$type, null], 'HighlightedValuesDataLegendGroup:ed:jg', [2, null], 'HighlightingFadeOpacity:bv:jh', [1, NaN], 'IsDropShadowEnabled:au:ji', [0], 'IsHitTestVisible:av:jj', [0, true], 'IsSplineShapePartOfRange:aw:jk', [0, false], 'IsTransitionInEnabled:ax:jl', [0, false], 'ItemsSource::jm', [IEnumerable_$type, null], 'LegendItemBadgeMode:p:jn', [LegendItemBadgeMode_$type, enumGetBox(LegendItemBadgeMode_$type, 0)], 'LegendItemBadgeShape:r:jo', [LegendItemBadgeShape_$type, enumGetBox(LegendItemBadgeShape_$type, 0)], 'LegendItemBadgeTemplate:hq:jp', [DataTemplate.$, null], 'LegendItemTemplate:hr:jq', [DataTemplate.$, null], 'LegendItemVisibility:lu:jr', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'LineCap:lc:js', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'MarkerBrush:k0:jt', [Brush.$], 'MarkerFillMode:t:ju', [MarkerFillMode_$type, enumGetBox(MarkerFillMode_$type, 0)], 'MarkerFillOpacity:bw:jv', [1, NaN], 'MarkerOutlineMode:v:jw', [MarkerOutlineMode_$type, enumGetBox(MarkerOutlineMode_$type, 0)], 'MarkerOutline:k1:jx', [Brush.$], 'MarkerStyle:lr:jy', [Style.$], 'MarkerTemplate:hs:jz', [DataTemplate.$, null], 'MarkerThickness:bx:j0', [1, NaN], 'MarkerType:x:j1', [MarkerType_$type, enumGetBox(MarkerType_$type, 2)], 'Name:e0:j2', [2], 'OpacityMask:k2:j3', [Brush.$], 'Opacity:by:j4', [1, 1], 'OutlineMode:ab:j5', [SeriesOutlineMode_$type, enumGetBox(SeriesOutlineMode_$type, 0)], 'Outline:k3:j6', [Brush.$, null], 'ParentOrLocalBrush:k4:j7', [Brush.$], 'RadiusX:bz:j8', [1, NaN], 'RadiusY:b0:j9', [1, NaN], 'ShadowBlur:b1:ka', [1, NaN], 'ShadowColor:k6:kb', [Color.$], 'ShadowOffsetX:b2:kc', [1, NaN], 'ShadowOffsetY:b3:kd', [1, NaN], 'Thickness:b4:ke', [1, NaN], 'Title:cj:kf', [4, "Series Title"], 'ToolTip:ck:kg', [4, null], 'TransitionDuration:cd:kh', [1, 0], 'TransitionEasingFunction:ai:ki', [Delegate_$type, null], 'TransitionInDuration:ce:kj', [1, 1000], 'TransitionInEasingFunction:aj:kk', [Delegate_$type, null], 'TransitionInMode:n:kl', [CategoryTransitionInMode_$type, enumGetBox(CategoryTransitionInMode_$type, 0)], 'TransitionInSpeedType:ae:km', [TransitionInSpeedType_$type, enumGetBox(TransitionInSpeedType_$type, 0)], 'UseHighMarkerFidelity:a2:kn', [0, false], 'UseLightweightMarkers:a3:ko', [0, false], 'UseSingleShadow:a4:kp', [0], 'ValueMemberAsLegendLabel:fp:kq', [2, null], 'ValueMemberAsLegendUnit:fr:kr', [2, null], 'ValueMemberPath:ft:ks', [2, null], 'Visibility:lv:kt', [Visibility_$type, enumGetBox(Visibility_$type, 0)]]);
    return StackedFragmentSeries;
})();
/**
 * @hidden
 */
export let StackedSeriesCollection = /*@__PURE__*/ (() => {
    class StackedSeriesCollection extends ObservableCollection$1 {
        constructor() {
            super(StackedFragmentSeries.$, 0);
            this.collectionResetting = null;
        }
        p() {
            if (this.collectionResetting != null) {
                this.collectionResetting(this, null);
            }
            super.p();
        }
    }
    StackedSeriesCollection.$t = markType(StackedSeriesCollection, 'StackedSeriesCollection', ObservableCollection$1.$.specialize(StackedFragmentSeries.$));
    return StackedSeriesCollection;
})();
/**
 * @hidden
 */
export let StackedSeriesFramePreparer = /*@__PURE__*/ (() => {
    class StackedSeriesFramePreparer extends CategoryFramePreparer {
        constructor(a, ..._rest) {
            a = (a == void 0) ? 0 : a;
            switch (a) {
                case 0:
                    {
                        let c = _rest[0];
                        super(0, c);
                    }
                    break;
                case 1:
                    {
                        let c = _rest[0];
                        let d = _rest[1];
                        let e = _rest[2];
                        let f = _rest[3];
                        let g = _rest[4];
                        super(1, c, d, e, f, g);
                    }
                    break;
            }
        }
        j(a) {
            let b = new SingleValuesHolder();
            if (typeCast(StackedColumnSeries.$, this.h) !== null || typeCast(StackedBarSeries.$, this.h) !== null) {
                let c = typeCast(StackedSeriesBase.$, this.h);
                if (c.aa3.count > 0) {
                    b.f = c.aa3._inner[0].ak;
                }
                return b;
            }
            let d = this.ad.valueColumn;
            b.f = d;
            return b;
        }
        t(a, b, c, d, e) {
            let f = 0;
            let g = false;
            let h;
            let i = a.d != null;
            let j = this.h.provideCollisionDetector();
            let k = a.f;
            let l = a.n;
            let m = this.h.mayContainUnknowns;
            let n = new ScalerParams(0, a.p, a.o, a.b.j$b, l);
            let o = new ScalerParams(0, a.p, a.o, a.c.j$b, l);
            o.b = this.h.getHostReferenceValue();
            let p = (a.b.j$d(2, n) - a.b.j$d(1, n));
            let q = a.p;
            let r = a.o;
            let s = typeCast(NumericAxisBase.$, a.c) !== null && a.c.lp;
            for (let t = a.k; t <= a.l; ++t) {
                let u;
                if (a.d == null) {
                    if (!m) {
                        u = this.g.getBucketWithoutUnknowns(t);
                    }
                    else {
                        u = this.g.getBucket(t);
                    }
                }
                else {
                    u = ((() => { let v = this.f(a, t, b, p, g, h, c); t = v.p1; g = v.p4; h = v.p5; return v.ret; })());
                }
                let v = !s || (s && u[1] > 0);
                let w = u[0];
                if (!isNaN_(u[0])) {
                    this.x(a, u, c, i, n, o);
                    a.a.h.add(u);
                    let x = t * a.j;
                    let y = x;
                    if (a.d != null && a.d.i$b != null && x >= 0 && x < a.d.i$b.count) {
                        x = a.d.i$b._inner[x];
                    }
                    let z = u;
                    if (k && x < b.e) {
                        z = new Array(u.length);
                        z[0] = w;
                        this.z(b, x, true, a.e);
                        z[1] = b.c;
                        z[2] = b.d;
                        this.x(a, z, c, i, n, o);
                    }
                    if (d && v && this.l(a.a, z, j, Math.min(x, b.e - 1), f, a.a.h.count - 1)) {
                        ++f;
                    }
                }
            }
            return f;
        }
        l(a, b, c, d, e, f) {
            let g = b[0];
            let h = b[1];
            if (typeCast(IBarSeries_$type, this.c) !== null) {
                h = b[0];
                g = b[1];
            }
            let i = new Rect(0, g - 5, h - 5, 11, 11);
            if (!isNaN_(g) && !isNaN_(h) && !isInfinity(g) && !isInfinity(h) && c.tryAdd(i)) {
                a.p.add({ $type: Point_$type, x: g, y: h });
                this.c.updateMarkerTemplate(e, d, f);
                return true;
            }
            return false;
        }
    }
    StackedSeriesFramePreparer.$t = markType(StackedSeriesFramePreparer, 'StackedSeriesFramePreparer', CategoryFramePreparer.$);
    return StackedSeriesFramePreparer;
})();
/**
 * @hidden
 */
export let AreaFragmentView = /*@__PURE__*/ (() => {
    class AreaFragmentView extends AnchoredCategorySeriesView {
        constructor(a) {
            super(a);
            this.dt = null;
            this.dz = new Path();
            this.d1 = new Path();
            this.d0 = new Path();
            this.d2 = new Path();
            this.dv = new Path();
            this.dx = new Path();
            this.dw = new Path();
            this.dy = new Path();
            this.dt = a;
        }
        a4() {
            super.a4();
            if (!this.t) {
            }
        }
        du() {
            this.dz.an = null;
            this.d0.an = null;
            this.d1.an = null;
            this.d2.an = null;
            this.dv.an = null;
            this.dw.an = null;
            this.dx.an = null;
            this.dy.an = null;
        }
        da() {
            return new AreaFragmentBucketCalculator(this);
        }
        bp() {
            super.bp();
        }
        bq() {
            super.bq();
            let a = this.b3();
            this.dv.an = this.dz.an;
            this.dw.an = this.d0.an;
            this.dx.an = this.d1.an;
            this.dy.an = this.d2.an;
            this.dv._fill = a;
            this.dw._fill = a;
            this.dv._opacity = 1;
            this.dw._opacity = 1;
            this.dx._stroke = a;
            this.dx.ad = this.f.ig + 3;
            this.dy._stroke = a;
            this.dy.ad = this.f.ig + 3;
        }
        bj(a, b) {
            super.bj(a, b);
            if (a.d) {
                if (b) {
                    a.t(this.dv);
                    a.t(this.dw);
                    a.t(this.dx);
                    a.t(this.dy);
                }
                else {
                    a.t(this.dz);
                    a.t(this.d0);
                    a.t(this.d1);
                    a.t(this.d2);
                }
            }
        }
        get_index() {
            let a = this.dt.parentSeries;
            let b = a.series.count;
            let c = a.series.indexOf(this.dt.logicalSeriesLink);
            let d = (b - 1) - c;
            let e = a.cw.index;
            return e + d;
        }
        ax(a) {
            super.ax(a);
            this.f.bc.exportPathData(a, this.d1, "lowerShape", ["Lower"]);
            this.f.bc.exportPathData(a, this.d2, "upperShape", ["Upper", "Main"]);
            this.f.bc.exportPathData(a, this.d0, "translucentShape", ["Translucent"]);
            this.f.bc.exportPathData(a, this.dz, "fillShape", ["Fill"]);
        }
    }
    AreaFragmentView.$t = markType(AreaFragmentView, 'AreaFragmentView', AnchoredCategorySeriesView.$);
    return AreaFragmentView;
})();
/**
 * @hidden
 */
export let ColumnFragmentView = /*@__PURE__*/ (() => {
    class ColumnFragmentView extends AnchoredCategorySeriesView {
        constructor(a) {
            super(a);
            this.dt = null;
            this.dx = null;
            this.du = null;
            this.dv = null;
            this.dw = null;
            this.d2 = new Rectangle();
            this.dt = a;
            this.dv = new List$1(Number_$type, 0);
            this.dw = new List$1(Number_$type, 0);
            this.du = ((() => {
                let $ret = new Pool$1(Rectangle.$);
                $ret.create = runOn(this, this.d3);
                $ret.activate = runOn(this, this.dy);
                $ret.disactivate = runOn(this, this.d0);
                $ret.destroy = runOn(this, this.dz);
                return $ret;
            })());
            this.dx = new List$1(Rectangle.$, 0);
        }
        a4() {
            super.a4();
            if (!this.t) {
            }
        }
        d3() {
            let a = ((() => {
                let $ret = new Rectangle();
                $ret.dataContext = ((() => {
                    let $ret = new DataContext();
                    $ret.series = this.f;
                    return $ret;
                })());
                return $ret;
            })());
            this.dx.add(a);
            a._visibility = 1;
            return a;
        }
        dy(a) {
            a._visibility = 0;
        }
        d0(a) {
            a._visibility = 1;
        }
        dz(a) {
            this.dx.remove(a);
        }
        bs(a, b) {
            super.bs(a, b);
            let c = a;
        }
        d1(a, b, c) {
            let d = false;
            if (a.o != c) {
                d = true;
                a.o = c;
            }
            if (a.n != b) {
                d = true;
                a.n = b;
            }
            if (d) {
                this.a2();
            }
        }
        bt(a, b) {
            super.bt(a, b);
        }
        ak(a) {
            return this.dx._inner[a];
        }
        aj(a) {
            let b = this.dx._inner[a];
            this.d2._visibility = b._visibility;
            this.d2.n = b.n;
            this.d2.o = b.o;
            this.d2.width = b.width;
            this.d2.height = b.height;
            let c = this.b4(a);
            this.d2._fill = c;
            this.d2._stroke = c;
            this.d2.ad = this.f.ig + 3;
            return this.d2;
        }
        bj(a, b) {
            super.bj(a, b);
            if (a.d) {
                for (let c = 0; c < this.dx.count; c++) {
                    let d = this.ai(c, b);
                    this.br(d, c, b);
                    a.w(d);
                }
            }
        }
        get_index() {
            let a = this.dt.parentSeries;
            let b = a.series.count;
            let c = a.series.indexOf(this.dt.logicalSeriesLink);
            let d = (b - 1) - c;
            let e = a.cw.index;
            return e + d;
        }
        ax(a) {
            super.ax(a);
            let b = 0;
            let c = new List$1(Rectangle.$, 0);
            for (let d of fromEnum(this.du.a)) {
                c.add(d);
            }
            c.aa((e, f) => {
                if (e.n < f.n) {
                    return -1;
                }
                else if (e.n > f.n) {
                    return 1;
                }
                else {
                    return 0;
                }
            });
            for (let e of fromEnum(c)) {
                this.f.bc.exportRectangleData(a, e, "column" + b, ["Main", "Fill"]);
            }
            b++;
        }
        getDefaultTooltipTemplate() {
            let a = "<div class='ui-chart-default-tooltip-content'>";
            let b = null;
            if (this.dt.yx().cb) {
                b = this.dt.fragmentXAxis;
            }
            else if (this.dt.fragmentYAxis.cb) {
                b = this.dt.fragmentYAxis;
            }
            if (b.ce) {
                let c = b;
                a += "<span>${item." + c.dateTimeMemberPath + "}</span><br/>";
            }
            if (b != null && b.f2 != null) {
                a += "<span>${item." + b.f2 + "}</span><br/>";
            }
            a += "<span";
            let d = this.f.ba.a$u(this.f);
            if (!stringIsNullOrEmpty(d)) {
                a += " style='color:" + d + "'";
            }
            a += ">" + this.dt.title + ": </span><span class='ui-priority-primary'>" + "${item." + this.dt.abu + "}</span></div>";
            return a;
        }
    }
    ColumnFragmentView.$t = markType(ColumnFragmentView, 'ColumnFragmentView', AnchoredCategorySeriesView.$);
    return ColumnFragmentView;
})();
/**
 * @hidden
 */
export let LineFragmentView = /*@__PURE__*/ (() => {
    class LineFragmentView extends AnchoredCategorySeriesView {
        constructor(a) {
            super(a);
            this.dt = null;
            this.dz = new Path();
            this.dy = new Path();
            this.d0 = new Path();
            this.dw = new Path();
            this.dv = new Path();
            this.dx = new Path();
            this.dt = a;
        }
        du() {
            this.dy.an = null;
            this.dz.an = null;
            this.d0.an = null;
            this.dv.an = null;
            this.dw.an = null;
            this.dx.an = null;
        }
        da() {
            return new LineFragmentBucketCalculator(this);
        }
        bp() {
            super.bp();
        }
        bq() {
            super.bq();
            let a = this.b3();
            this.dv.an = this.dy.an;
            this.dw.an = this.dz.an;
            this.dx.an = this.d0.an;
            this.dw._stroke = a;
            this.dw.ad = this.f.ig + 3;
            this.dx._stroke = a;
            this.dx.ad = this.f.ig + 3;
            this.dv._fill = a;
            this.dv._opacity = 1;
        }
        bj(a, b) {
            super.bj(a, b);
            if (a.d) {
                if (b) {
                    a.t(this.dv);
                    a.t(this.dw);
                    a.t(this.dx);
                }
                else {
                    a.t(this.dy);
                    a.t(this.dz);
                    a.t(this.d0);
                }
            }
        }
        get_index() {
            let a = this.dt.parentSeries;
            let b = a.series.count;
            let c = a.series.indexOf(this.dt.logicalSeriesLink);
            let d = (b - 1) - c;
            let e = a.cw.index;
            return e + d;
        }
        ax(a) {
            super.ax(a);
            this.f.bc.exportPathData(a, this.dz, "lowerShape", ["Lower", "Main"]);
            this.f.bc.exportPathData(a, this.d0, "upperShape", ["Upper"]);
            this.f.bc.exportPathData(a, this.dy, "translucentShape", ["Translucent"]);
        }
    }
    LineFragmentView.$t = markType(LineFragmentView, 'LineFragmentView', AnchoredCategorySeriesView.$);
    return LineFragmentView;
})();
/**
 * @hidden
 */
export let SplineAreaFragmentView = /*@__PURE__*/ (() => {
    class SplineAreaFragmentView extends SplineSeriesBaseView {
        constructor(a) {
            super(a);
            this.dv = null;
            this.d1 = new Path();
            this.d3 = new Path();
            this.d2 = new Path();
            this.d4 = new Path();
            this.dx = new Path();
            this.dz = new Path();
            this.dy = new Path();
            this.d0 = new Path();
            this.dv = a;
        }
        a4() {
            super.a4();
            if (!this.t) {
            }
        }
        dw() {
            this.d1.an = null;
            this.d2.an = null;
            this.d3.an = null;
            this.d4.an = null;
            this.dx.an = null;
            this.dy.an = null;
            this.dz.an = null;
            this.d0.an = null;
        }
        bp() {
            super.bp();
        }
        bq() {
            super.bq();
            let a = this.b3();
            this.dx.an = this.d1.an;
            this.dy.an = this.d2.an;
            this.dz.an = this.d3.an;
            this.d0.an = this.d4.an;
            this.dx._fill = a;
            this.dy._fill = a;
            this.dy._opacity = 1;
            this.dx._opacity = 1;
            this.dz._stroke = a;
            this.dz.ad = this.f.ig + 3;
            this.d0._stroke = a;
            this.d0.ad = this.f.ig + 3;
        }
        bj(a, b) {
            super.bj(a, b);
            if (a.d) {
                if (b) {
                    a.t(this.dx);
                    a.t(this.dy);
                    a.t(this.dz);
                    a.t(this.d0);
                }
                else {
                    a.t(this.d1);
                    a.t(this.d2);
                    a.t(this.d3);
                    a.t(this.d4);
                }
            }
        }
        get_index() {
            let a = this.dv.parentSeries;
            let b = a.series.count;
            let c = a.series.indexOf(this.dv.logicalSeriesLink);
            let d = (b - 1) - c;
            let e = a.cw.index;
            return e + d;
        }
        ax(a) {
            super.ax(a);
            this.f.bc.exportPathData(a, this.d3, "lowerShape", ["Lower"]);
            this.f.bc.exportPathData(a, this.d4, "upperShape", ["Upper", "Main"]);
            this.f.bc.exportPathData(a, this.d2, "translucentShape", ["Translucent"]);
            this.f.bc.exportPathData(a, this.d1, "fillShape", ["Fill"]);
        }
    }
    SplineAreaFragmentView.$t = markType(SplineAreaFragmentView, 'SplineAreaFragmentView', SplineSeriesBaseView.$);
    return SplineAreaFragmentView;
})();
/**
 * @hidden
 */
export let SplineFragmentView = /*@__PURE__*/ (() => {
    class SplineFragmentView extends SplineSeriesBaseView {
        constructor(a) {
            super(a);
            this.dv = null;
            this.d1 = new Path();
            this.d0 = new Path();
            this.d2 = new Path();
            this.dy = new Path();
            this.dx = new Path();
            this.dz = new Path();
            this.dv = a;
        }
        da() {
            return new SplineFragmentBucketCalculator(this);
        }
        dw() {
            this.d0.an = null;
            this.d1.an = null;
            this.d2.an = null;
            this.dx.an = null;
            this.dy.an = null;
            this.dz.an = null;
        }
        bp() {
            super.bp();
        }
        bq() {
            super.bq();
            let a = this.b3();
            this.dx.an = this.d0.an;
            this.dy.an = this.d1.an;
            this.dz.an = this.d2.an;
            this.dy._stroke = a;
            this.dy.ad = this.f.ig + 3;
            this.dz._stroke = a;
            this.dz.ad = this.f.ig + 3;
            this.dx._fill = a;
            this.dx._opacity = 0.75;
        }
        bj(a, b) {
            super.bj(a, b);
            if (a.d) {
                if (b) {
                    a.t(this.dx);
                    a.t(this.dy);
                    a.t(this.dz);
                }
                else {
                    a.t(this.d0);
                    a.t(this.d1);
                    a.t(this.d2);
                }
            }
        }
        get_index() {
            let a = this.dv.parentSeries;
            let b = a.series.count;
            let c = a.series.indexOf(this.dv.logicalSeriesLink);
            let d = (b - 1) - c;
            let e = a.cw.index;
            return e + d;
        }
        ax(a) {
            super.ax(a);
            this.f.bc.exportPathData(a, this.d1, "lowerShape", ["Lower", "Main"]);
            this.f.bc.exportPathData(a, this.d2, "upperShape", ["Upper"]);
            this.f.bc.exportPathData(a, this.d0, "translucentShape", ["Translucent"]);
        }
    }
    SplineFragmentView.$t = markType(SplineFragmentView, 'SplineFragmentView', SplineSeriesBaseView.$);
    return SplineFragmentView;
})();
/**
 * @hidden
 */
export let StackedSeriesView = /*@__PURE__*/ (() => {
    class StackedSeriesView extends CategorySeriesView {
        constructor(a) {
            super(a);
            this.di = null;
            this.dj = new Canvas();
            this.dl = new Panel();
            this.di = a;
        }
        get dk() {
            return this.dj;
        }
        get dm() {
            return this.dl;
        }
        da() {
            return new StackedBucketCalculator(this);
        }
        a1() {
            super.a1();
            for (let a = 0; a < this.di.aa8.f.count; a++) {
                this.di.aa8.f._inner[a].cw.a1();
            }
        }
        a3(a, b) {
            super.a3(a, b);
            for (let c of fromEnum(this.di.series)) {
                c.visualSeriesLink.cw.a3(a, b);
            }
        }
        an() {
            let a = "rgba(95,95,95,0.5)";
            let b = true;
            let c = 5, d = 5, e = 5;
            let f = this.f;
            if ((f.isStacked && f.ew) || (f.isStacked && f.f1 && f.ew)) {
                d = 1;
                e = -3;
            }
            else if ((f.isStacked && f.fl) || (f.isStacked && f.f1)) {
                c = 3;
                d = 1;
                e = 4;
                b = false;
            }
            else if ((f.isStacked && f.e1)) {
                d = 5;
                e = 0;
            }
            let g = new Color();
            g.colorString = a;
            f.v6 = g;
            f.jn = c;
            f.jo = d;
            f.jp = e;
            f.hd = b;
        }
    }
    StackedSeriesView.$t = markType(StackedSeriesView, 'StackedSeriesView', CategorySeriesView.$);
    return StackedSeriesView;
})();
/**
 * @hidden
 */
export let StackedBarSeriesView = /*@__PURE__*/ (() => {
    class StackedBarSeriesView extends StackedSeriesView {
        constructor(a) {
            super(a);
            this.dn = null;
            this.dn = a;
        }
        da() {
            return new StackedBarBucketCalculator(this);
        }
        a4() {
            super.a4();
            if (!this.t) {
                this.di.xf = Defaults.c;
                this.di.jq = Defaults.i;
            }
        }
    }
    StackedBarSeriesView.$t = markType(StackedBarSeriesView, 'StackedBarSeriesView', StackedSeriesView.$);
    return StackedBarSeriesView;
})();
/**
 * @hidden
 */
export let StackedColumnSeriesView = /*@__PURE__*/ (() => {
    class StackedColumnSeriesView extends StackedSeriesView {
        constructor(a) {
            super(a);
        }
        da() {
            return new StackedColumnBucketCalculator(this);
        }
        a4() {
            super.a4();
            if (!this.t) {
                this.di.xf = Defaults.c;
                this.di.jq = Defaults.i;
            }
        }
    }
    StackedColumnSeriesView.$t = markType(StackedColumnSeriesView, 'StackedColumnSeriesView', StackedSeriesView.$);
    return StackedColumnSeriesView;
})();
/**
 * @hidden
 */
export let StackedAreaSeriesView = /*@__PURE__*/ (() => {
    class StackedAreaSeriesView extends StackedSeriesView {
        constructor(a) {
            super(a);
        }
        a4() {
            super.a4();
            if (!this.t) {
                this.di.xf = Defaults.e;
            }
        }
    }
    StackedAreaSeriesView.$t = markType(StackedAreaSeriesView, 'StackedAreaSeriesView', StackedSeriesView.$);
    return StackedAreaSeriesView;
})();
/**
 * @hidden
 */
export let StackedSplineAreaSeriesView = /*@__PURE__*/ (() => {
    class StackedSplineAreaSeriesView extends StackedSeriesView {
        constructor(a) {
            super(a);
        }
        a4() {
            super.a4();
            if (!this.t) {
                this.di.xf = Defaults.e;
            }
        }
        dn() {
            let a = 1;
            if (this.di.dc != null) {
                a = this.di.dc.hp;
            }
            return Math.max(1 / (a * 3), 0.3);
        }
    }
    StackedSplineAreaSeriesView.$t = markType(StackedSplineAreaSeriesView, 'StackedSplineAreaSeriesView', StackedSeriesView.$);
    return StackedSplineAreaSeriesView;
})();
/**
 * @hidden
 */
export let StackedSplineSeriesView = /*@__PURE__*/ (() => {
    class StackedSplineSeriesView extends StackedSeriesView {
        constructor(a) {
            super(a);
        }
        a4() {
            super.a4();
            if (!this.t) {
                this.di.xf = Defaults.e;
            }
        }
        dn() {
            let a = 1;
            if (this.di.dc != null) {
                a = this.di.dc.hp;
            }
            return Math.max(1 / (a * 3), 0.3);
        }
    }
    StackedSplineSeriesView.$t = markType(StackedSplineSeriesView, 'StackedSplineSeriesView', StackedSeriesView.$);
    return StackedSplineSeriesView;
})();
/**
 * @hidden
 */
export let StackedSeriesManager = /*@__PURE__*/ (() => {
    class StackedSeriesManager extends Base {
        constructor(a) {
            super();
            this.b = null;
            this.f = null;
            this.c = null;
            this.e = null;
            this.d = null;
            this.l = null;
            this.m = null;
            if (a == null) {
                return;
            }
            this.b = a;
            this.f = new ObservableCollection$1(AnchoredCategorySeries.$, 0);
            this.c = new StackedSeriesCollection();
            this.e = new ObservableCollection$1(AnchoredCategorySeries.$, 0);
            this.d = new ObservableCollection$1(AnchoredCategorySeries.$, 0);
            this.l = this.b.aa9.dk;
            this.m = this.b.aa9.dm;
            let b = this.c;
            b.collectionChanged = delegateCombine(b.collectionChanged, (b, c) => {
                if (c.oldItems != null) {
                    for (let d of fromEn(c.oldItems)) {
                        if (this.f.contains(d.visualSeriesLink)) {
                            this.f.remove(d.visualSeriesLink);
                        }
                    }
                }
                if (c.newItems != null) {
                    let e = c.newStartingIndex;
                    for (let f of fromEn(c.newItems)) {
                        let g = this.a(f);
                        this.f.insert(e, g);
                        e++;
                    }
                }
            });
            let c = this.f;
            c.collectionChanged = delegateCombine(c.collectionChanged, (c, d) => {
                if (d.oldItems != null) {
                    for (let e of fromEn(d.oldItems)) {
                        Series.po(e, this.b.dc, true);
                        e.o7(true, e.cw);
                        e.dc = null;
                        e.c4 = null;
                        e.itemsSource = null;
                        e.legend = null;
                        if (this.m != null && this.m.ab.contains(e)) {
                            this.m.ab.remove(e);
                        }
                        if (this.b.dc != null) {
                            this.b.dc.rn(e);
                        }
                    }
                }
                if (d.newItems != null) {
                    for (let f of fromEn(d.newItems)) {
                        Series.po(f, this.b.dc, false);
                        f.dc = this.b.dc;
                        f.c4 = this.b.c4;
                        if (!this.m.ab.contains(f)) {
                            this.m.ab.add(f);
                        }
                        if (this.b.dc != null) {
                            this.b.dc.nq(f);
                        }
                    }
                }
                this.b.ru(false);
            });
        }
        a(a) {
            if (this.b.isStacked && this.b.fl) {
                let b = new LineFragment();
                b.provideRenderer(a.b5);
                b.parentSeries = this.b;
                a.visualSeriesLink = b;
                b.logicalSeriesLink = a;
                b.cw.b9 = this.b.cw.b9;
                this.j(b, a);
                this.h(b);
                return b;
            }
            if (this.b.isStacked && this.b.e1) {
                let c = new ColumnFragment();
                c.provideRenderer(a.b5);
                c.parentSeries = this.b;
                a.visualSeriesLink = c;
                c.logicalSeriesLink = a;
                c.cw.b9 = this.b.cw.b9;
                this.j(c, a);
                this.h(c);
                return c;
            }
            if (this.b.isStacked && this.b.ez) {
                let d = new BarFragment();
                d.provideRenderer(a.b5);
                d.parentSeries = typeCast(StackedBarSeries.$, this.b);
                a.visualSeriesLink = d;
                d.logicalSeriesLink = a;
                d.cw.b9 = this.b.cw.b9;
                this.j(d, a);
                this.h(d);
                return d;
            }
            if (this.b.isStacked && this.b.ew && !this.b.f1) {
                let e = new AreaFragment();
                e.provideRenderer(a.b5);
                e.parentSeries = this.b;
                a.visualSeriesLink = e;
                e.logicalSeriesLink = a;
                e.cw.b9 = this.b.cw.b9;
                this.j(e, a);
                this.h(e);
                return e;
            }
            if (this.b.isStacked && this.b.f1 && !this.b.ew) {
                let f = new SplineFragment();
                f.provideRenderer(a.b5);
                f.parentSeries = this.b;
                a.visualSeriesLink = f;
                f.logicalSeriesLink = a;
                f.cw.b9 = this.b.cw.b9;
                this.j(f, a);
                this.h(f);
                return f;
            }
            if (this.b.isStacked && this.b.f1 && this.b.ew) {
                let g = new SplineAreaFragment();
                g.provideRenderer(a.b5);
                g.parentSeries = this.b;
                a.visualSeriesLink = g;
                g.logicalSeriesLink = a;
                g.cw.b9 = this.b.cw.b9;
                this.j(g, a);
                this.h(g);
                return g;
            }
            return null;
        }
        k() {
            if (this.b == null) {
                return;
            }
            for (let a of fromEnum(this.f)) {
                a.jk = this.b.ie;
            }
        }
        j(a, b) {
            if (b.itemsSource == null) {
                a.itemsSource = this.b.itemsSource;
            }
            else {
                a.itemsSource = b.itemsSource;
            }
            if (b.highlightedItemsSource == null) {
                a.highlightedItemsSource = this.b.highlightedItemsSource;
            }
            else {
                a.highlightedItemsSource = b.highlightedItemsSource;
            }
            a.legend = this.b.a5;
            a.legendItemTemplate = b.ho;
            a.legendItemVisibility = b.ls;
            a.ji = this.b.ji;
            a.v9 = b.la;
            a.v7 = b.k7;
            a.v8 = b.k9;
            a.vk = b.k4;
            a._opacity = b.by;
            a.v0 = b.ky;
            a.cj = b.aa;
            a.jk = this.b.jk;
            a.jq = b.bl;
            a.title = b.cj;
            a.abu = b.ft;
            a.abq = b.fp;
            a.abs = b.fr;
            a._visibility = b.lt;
            a.jg = b.bc;
            a.bw = b.z;
            a.l5 = b.d9;
            a.ml = b.ed;
            a.yo = b.kv;
            a.yp = b.kw;
            a.w9 = b.u;
            a.yq = b.lq;
            a.x7 = b.hp;
            a.xf = b.w;
            a.xo = b.be;
            a.jh = b.bd;
            a.w5 = b.s;
            a.xn = b.aq;
            a.zv = b.ap;
            a.ke = b.b6;
            a.de = b.ag;
            a.kf = b.b7;
            a.za = b.m;
            a.c6 = b.ad;
            a.kf = b.b7;
            a.df = b.ah;
            a.zq = b.ao;
            let c = typeCast(AreaFragment.$, a);
            if (c != null) {
                c.ia = b.bb;
            }
            let d = typeCast(SplineAreaFragment.$, a);
            if (d != null) {
                d.ia = b.bb;
            }
            let e = typeCast(ColumnFragment.$, a);
            if (e != null) {
                e.adi = b.bg;
                e.adj = b.bh;
            }
            let f = typeCast(BarFragment.$, a);
            if (f != null) {
                f.adi = b.bg;
                f.adj = b.bh;
            }
            a.toolTip = b.ck;
            a.e6 = b.al;
            a.hd = b.ar;
            b.g3();
            b.g4();
            b.g5();
            b.g6();
        }
        i(a) {
            this.e.clear();
            this.d.clear();
            let b = 0;
            for (let c of fromEnum(this.f)) {
                c.g1 = true;
                c.index = this.b.abl(this.c._inner[b]);
                c.c4 = this.b.c4;
                c.dc = this.b.dc;
                if (this.c._inner[b].az) {
                    this.e.add(c);
                }
                else {
                    this.d.add(c);
                }
                if ((this.b.isStacked && this.b.fl) || (this.b.isStacked && this.b.ew) || (this.b.isStacked && this.b.f1)) {
                    c.aby(this.b.fetchXAxis());
                    c.abz(this.b.fetchYAxis());
                }
                c.ru(a);
                b++;
            }
        }
        h(a) {
            let fragment_ = a;
            fragment_.externalObject = TypeRegistrar.createFromInternal(fragment_, PlatformConstants.Prefix, PlatformConstants.Postfix);
            fragment_.externalObject._implementation = fragment_;
        }
        g() {
            if (this.f != null) {
                for (let a of fromEnum(this.f)) {
                    a.o4();
                }
            }
        }
    }
    StackedSeriesManager.$t = markType(StackedSeriesManager, 'StackedSeriesManager');
    return StackedSeriesManager;
})();