UNPKG

igniteui-angular-charts

Version:

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

6,596 lines 235 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, delegateRemove, 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.lb;
        }
        set brush(a) {
            this.c.lb = a;
        }
        get legendItemTemplate() {
            return this.c.h1;
        }
        set legendItemTemplate(a) {
            this.c.h1 = a;
        }
        get legendItemBadgeTemplate() {
            return this.c.h0;
        }
        set legendItemBadgeTemplate(a) {
            this.c.h0 = a;
        }
        get legendItemVisibility() {
            return this.c.l6;
        }
        set legendItemVisibility(a) {
            this.c.l6 = a;
        }
        get outline() {
            return this.c.lf;
        }
        set outline(a) {
            this.c.lf = a;
        }
        get dashArray() {
            return this.c.lk;
        }
        set dashArray(a) {
            this.c.lk = a;
        }
        get dashCap() {
            return this.c.ln;
        }
        set dashCap(a) {
            this.c.ln = a;
        }
        get index() {
            return this.c.ch;
        }
        get thickness() {
            return this.c.b9;
        }
        set thickness(a) {
            this.c.b9 = a;
        }
        get title() {
            return this.c.co;
        }
        set title(a) {
            this.c.co = a;
        }
        get transitionDuration() {
            return this.c.ci;
        }
        set transitionDuration(a) {
            this.c.ci = a;
        }
        get transitionEasingFunction() {
            return this.c.al;
        }
        set transitionEasingFunction(a) {
            this.c.al = a;
        }
        get markerBrush() {
            return this.c.lc;
        }
        set markerBrush(a) {
            this.c.lc = a;
        }
        get markerOutline() {
            return this.c.ld;
        }
        set markerOutline(a) {
            this.c.ld = a;
        }
        get markerStyle() {
            return this.c.l3;
        }
        set markerStyle(a) {
            this.c.l3 = a;
        }
        get markerTemplate() {
            return this.c.h2;
        }
        set markerTemplate(a) {
            this.c.h2 = a;
        }
        get markerType() {
            return this.c.aa;
        }
        set markerType(a) {
            this.c.aa = a;
        }
        get markerThickness() {
            return this.c.b2;
        }
        set markerThickness(a) {
            this.c.b2 = a;
        }
        get lineCap() {
            return this.c.lm;
        }
        set lineCap(a) {
            this.c.lo = a;
        }
    }
    StackedSeriesCreatedEventArgs.$t = markType(StackedSeriesCreatedEventArgs, 'StackedSeriesCreatedEventArgs', EventArgs.$);
    return StackedSeriesCreatedEventArgs;
})();
/**
 * @hidden
 */
export let FragmentBase = /*@__PURE__*/ (() => {
    class FragmentBase extends HorizontalAnchoredCategorySeries {
        constructor() {
            super();
            this.___neverPassByValue = true;
            this.adk = null;
            this._logicalSeriesLink = null;
            this.adm = null;
            this.adk = new CategoryLineRasterizer();
        }
        get logicalSeriesLink() {
            return this._logicalSeriesLink;
        }
        set logicalSeriesLink(a) {
            this._logicalSeriesLink = a;
        }
        get parentSeries() {
            return this.adm;
        }
        set parentSeries(a) {
            this.adm = a;
        }
        get_e9() {
            return false;
        }
        get_isFragment() {
            return true;
        }
        nn() {
            if (this.logicalSeriesLink != null) {
                return this.logicalSeriesLink.e7;
            }
            return null;
        }
        kb() {
            let a = this.parentSeries;
            if (a.index == -1 || a.abo == null || a.abo.f.indexOf(this) == -1) {
                return -1;
            }
            return a.abo.f.indexOf(this);
        }
        qo(a) {
            super.qo(a);
            a.parentSeries = this.parentSeries;
            a.logicalSeriesLink = this.logicalSeriesLink;
        }
        kg() {
            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.abs) {
                return -1 + a.index + a.abj.count - a.abo.f.indexOf(this);
            }
            return super.resolveLegendIndex();
        }
        bq() {
            return this.parentSeries;
        }
        zd() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchXAxis();
        }
        adj() {
            if (this.parentSeries == null) {
                return this.zk;
            }
            return this.parentSeries.zk;
        }
        zu() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchYAxis();
        }
        adp(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.s.add({ $type: Point_$type, x: i, y: j });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        aa5(a, b) {
            a.aa();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null) {
                return;
            }
            if (this.logicalSeriesLink.bd.count == 0 || this.logicalSeriesLink.bc.count == 0) {
                return;
            }
            this.zl(b).d(a, b);
        }
        ww(a, b, c) {
            return this.wy(a, b, c, this.adj().r(this.zd(), this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw)), this.zu(), this.zd(), runOn(this, this.adq), (d, e) => this.kk(d, e, this.zd(), runOn(this, this.aae), this.valueColumn != null ? new FragmentBaseValueList(this) : null), (d, e) => this.ki(d, e, this.zd(), runOn(this, this.aae), this.valueColumn != null ? new FragmentBaseValueList(this) : null));
        }
        ai() {
            return [this.zd(), this.zu()];
        }
        adq(a, b, c) {
            if (this.dc == null) {
                return NaN;
            }
            let d = this.getEffectiveViewport1(this.cw);
            let e = new ScalerParams(0, this.dc.yr, this.cw.b9, this.zd().dn, d);
            let f = this.zk.r(this.zd(), this.dc.yr, this.cw.b9, d);
            return this.jf(this.valueColumn != null ? new FragmentBaseValueList(this) : null, a, this.zd(), e, f, runOn(this, this.aae), b, c);
        }
        ads(a, b, c) {
            let d = this.abw(c);
            let e = d;
            let f = this.logicalSeriesLink.a4;
            let g = f ? this.parentSeries.abo.e : this.parentSeries.abo.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.adk != null && l.adk.o.count > 0 && this.cw != null && l.hk(this.cw.b9, this.cw.ca, this.cw)) {
                    j = true;
                    for (let m = l.adk.o.count - 1; m >= 0; m--) {
                        a.add(l.adk.o._inner[m]);
                    }
                }
            }
        }
        hk(a, b, c) {
            let d = super.hk(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.b7 == null || f.b7 == 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;
        }
        abw(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.zu().dn, e);
            f.b = this.i5();
            if (!c.isEmpty && !d.isEmpty && this.zu() != null) {
                b = this.zu().f6(0, f);
            }
            return b;
        }
        ay(a) {
            return null;
        }
        adr() {
            if (this.parentSeries == null) {
                return -1;
            }
            let a = this.parentSeries.index;
            let b = 0;
            let c = 1;
            if (this.parentSeries.abs) {
                b = this.parentSeries.abj.count - 1;
                c = -1;
            }
            for (let d = b; this.parentSeries.abs ? d >= 0 : d < this.parentSeries.abj.count; d += c) {
                let e = this.parentSeries.abj._inner[d];
                if (e.visualSeriesLink == this) {
                    return a;
                }
                if (this.parentSeries.a5 == null || e.l5 != 0 || e.l4 != 0) {
                    continue;
                }
                a++;
            }
            return -1;
        }
        adt(a) {
            if (a == null) {
            }
        }
        rq(a, b, c, d) {
            super.rq(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.abi.dl) {
                        this.abi.dk.g$m();
                    }
                    if (e != null && !e.ed()) {
                        this.parentSeries.abi().c9.g(this.ik);
                        this.r8(this.gm && this.d9);
                    }
                    break;
                case "ActualBrush":
                    if (this.logicalSeriesLink != null) {
                        this.logicalSeriesLink.k6 = this.vt;
                    }
                    break;
            }
        }
        sa(a, b) {
            super.sa(a, b);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    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);
        }
        rh(a) {
            super.rh(a);
            this.adu = a;
        }
        get_ey() {
            return true;
        }
        get_ex() {
            return true;
        }
        zp() {
            return 1;
        }
        adw(a, b) {
            let c = this.adu.dz.an;
            if (this.g4(a, c)) {
                return true;
            }
            let d = this.adu.d0.an;
            if (this.g4(a, d)) {
                return true;
            }
            return false;
        }
        g2(a, b) {
            if (this.adv(a, b)) {
                return true;
            }
            if (this.adw(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        adv(a, b) {
            let c = this.adu.d1.an;
            if (this.g3(a, b, c)) {
                return true;
            }
            let d = this.adu.d2.an;
            if (this.g3(a, b, d)) {
                return true;
            }
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        pi(a, b) {
            super.pi(a, b);
            let c = b;
            c.du();
        }
        aa8(a, b) {
            super.aa8(a, b);
            this.adk.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = typeCast(AreaFragmentView.$, b);
            let d = a.k;
            let e = this.getEffectiveViewport1(c);
            this.zn.a2(this, this.z7(), runOn(this, this.y7), this.aag(b), this.aah(b));
            let f = false;
            let g = this.zn.b;
            if (g != null) {
                f = true;
            }
            if (f) {
                let h = new ScalerParams(0, b.ca, b.b9, this.ac0.dn, e);
                this.aa4(d, -1, this.valueColumn.count, this.ac0, h, b.t, -1);
            }
            this.zn.ad(c.d1, true, false, true, true);
            this.zn.ad(c.d2, true, false, true, true);
            this.zn.ad(c.dz, false, true, false, false);
            this.zn.ad(c.d0, false, true, false, false);
            let i = c.c9.d;
            this.adk.i(c.dz, c.d1, c.d0, c.d2, a.k.count, a.k, true, i, this.ik, (j, k, l, m, n) => this.ads(j, a.k, b), 0);
            c.dz._opacity = this.zn.j * this.ig;
            c.d0._opacity = 0.5 * this.zn.j * this.ig;
        }
        sv() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ig = isNaN_(this.ir) ? this.parentSeries.ig : this.ir;
            }
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    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_e2() {
            return true;
        }
        get_fo() {
            return true;
        }
        js() {
            if (!isNaN_(this.jr)) {
                return super.js();
            }
            return Defaults.h;
        }
        zp() {
            return 1;
        }
        ct() {
            return new ColumnFragmentView(this);
        }
        rh(a) {
            super.rh(a);
            this.adv = 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;
        }
        zd() {
            return this.fragmentXAxis;
        }
        zu() {
            return this.fragmentYAxis;
        }
        get_ef() {
            return true;
        }
        fetchXAxis() {
            return null;
        }
        fetchYAxis() {
            return null;
        }
        pi(a, b) {
            super.pi(a, b);
            let c = b;
            if (a && c.du != null) {
                this.zf.s.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);
        }
        hk(a, b, c) {
            if (this.parentSeries == null) {
                return false;
            }
            return this.parentSeries.abt(this, a, b, this.adx(c));
        }
        hh() {
            return true;
        }
        aag(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.aag(this.parentSeries.cw);
            }
            return super.aag(a);
        }
        aah(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.aah(this.parentSeries.cw);
            }
            return super.aag(a);
        }
        aai(a) {
            if (this.parentSeries != null) {
                return this.parentSeries.aai(this.parentSeries.cw);
            }
            return super.aai(a);
        }
        w8(a) {
            if (this.zd() == null || this.fragmentYAxis == null) {
                return Rect.empty;
            }
            let b = this.wr(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.dn, e);
            let g = this.an(this.zd(), this.zf.k, this.aag(this.cw), this.aah(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.zd().pz(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));
            }
        }
        g2(a, b) {
            if (this.g5(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        g5(a, b) {
            let c = this.w9(a);
            if (c.isEmpty) {
                return false;
            }
            let d = this.ad4(c, this.i1(b));
            return d.containsPoint(a);
        }
        ad4(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);
        }
        k6(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.yr : 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.kw(h);
            }
            return e;
        }
        kw(a) {
            let b = 0;
            if (typeCast(ISortingAxis_$type, this.zd()) !== null) {
                b = this.ke(a);
                if (b == -1) {
                    return null;
                }
            }
            else {
                b = this.kc(a);
            }
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        ke(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.zd();
            let f = new ScalerParams(0, b, c, e.dn, d);
            let g = typeCast(ISortingAxis_$type, this.fragmentXAxis);
            let h = this.w4(this.cw);
            let i = e.f9(h.left, f);
            let j = e.f9(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;
        }
        kc(a) {
            if (this.parentSeries == null) {
                return -1;
            }
            return this.parentSeries.ab0(a);
        }
        adp(a, b, c, d, e, f, g, h) {
            if (!a.shouldDisplayMarkers) {
                return false;
            }
            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.s.add({ $type: Point_$type, x: j, y: k });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        adx(a) {
            if (a.s) {
                return this.parentSeries.ba.a$k.item(a.al);
            }
            else if (a == this.cv) {
                return this.parentSeries.cv;
            }
            else {
                return this.parentSeries.zo;
            }
        }
        r7(a, b, c, d, e) {
            this.ba.a$aa(this, a, b, d, e);
            let f = this.ba.a$k.item(d);
            let g = f;
            f.bd(c);
            let h = this.adx(f);
            h.c9.g(this.ik);
            if (this.d7(g)) {
                return;
            }
            if (this.abj == null) {
                this.abj = new CategoryFrame(3);
            }
            this.abj.aa();
            this.aa5(this.abj, g);
            this.aa8(this.abj, g);
        }
        aa5(a, b) {
            a.aa();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null || this.logicalSeriesLink.bc.count == 0 || this.logicalSeriesLink.bd.count == 0) {
                return;
            }
            let c;
            if (b.s) {
                c = this.parentSeries.abh;
            }
            else if (b == this.cv) {
                c = this.parentSeries.zi;
            }
            else {
                c = this.parentSeries.zf;
            }
            let d = typeCast(CategorySeriesView.$, this.adx(b));
            a.k.clear();
            if (a.r != null) {
                a.r.clear();
            }
            a.s.clear();
            let e = d.c9.e;
            let f = d.c9.f;
            let g = this.parentSeries.zk.h.yScaler;
            let h = typeCast(ISortingAxis_$type, this.parentSeries.zk.h.scaler);
            let i = typeCast(NumericAxisBase.$, g) !== null && g.qh;
            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.k.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.k.add(q);
                    if (h != null) {
                        if (a.r == null) {
                            a.r = new List$1(Number_$type, 0);
                        }
                        a.r.add(n);
                    }
                    if (p) {
                        if (this.adp(b, a, q, this.zk.h.provideCollisionDetector(), o, n, l, a.k.count - 1)) {
                            l++;
                        }
                    }
                }
            }
            b.dc.count = l;
        }
        aa8(a, b) {
            super.aa8(a, b);
            if (this.parentSeries == null) {
                return;
            }
            this.parentSeries.ab9(this, a, b, runOn(this, this.y7));
            CategoryMarkerManager.e(this, a.s, b.dc, this.x3);
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    ColumnFragment.$t = markType(ColumnFragment, 'ColumnFragment', FragmentBase.$);
    ColumnFragment.$$p = markDep(DependencyProperty, PropertyMetadata, ColumnFragment, 'raisePropertyChanged', ['RadiusX:ady:ad2', [1, 0], 'RadiusY:adz:ad3', [1, 0]]);
    return ColumnFragment;
})();
/**
 * @hidden
 */
export let BarFragment = /*@__PURE__*/ (() => {
    class BarFragment extends ColumnFragment {
        constructor() {
            super();
            this.ab = BarFragment.$;
        }
        get_e0() {
            return true;
        }
        get_fo() {
            return true;
        }
        get_e2() {
            return false;
        }
        zp() {
            return 1;
        }
        get barFragmentXAxis() {
            return this.parentSeries != null ? this.parentSeries.xAxis : null;
        }
        get barFragmentYAxis() {
            return this.parentSeries != null ? this.parentSeries.yAxis : null;
        }
        zd() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.fetchYAxis();
        }
        get_isVertical() {
            return true;
        }
        iy(a) {
            let b = this.dc != null ? this.dc.yr : Rect.empty;
            let c = this.cw.b9;
            let d = this.w4(this.cw);
            let e = this.getEffectiveViewport1(this.cw);
            let f = this.zd();
            let g = -1;
            if (f != null && !b.isEmpty && !c.isEmpty) {
                let h = new ScalerParams(0, b, c, f.dn, e);
                let i = f.f9(d.top, h);
                let j = f.f9(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;
        }
        zu() {
            if (this.parentSeries == null) {
                return null;
            }
            return this.parentSeries.zu();
        }
        ad4(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);
        }
        w8(a) {
            if (this.zd() == null) {
                return Rect.empty;
            }
            let b = this.wr(a);
            let c = this.cw.ca;
            let d = this.cw.b9;
            let e = this.getEffectiveViewport1(this.cw);
            let f = this.zd();
            let g = new ScalerParams(0, c, d, f.dn, e);
            let h = this.an(this.zd(), this.zf.k, this.aag(this.cw), this.aah(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.pz(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);
            }
        }
        g2(a, b) {
            if (this.g5(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        adp(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.s.add({ $type: Point_$type, x: j, y: i });
                a.updateMarkerTemplate(g, f, h);
                return true;
            }
            return false;
        }
        kw(a) {
            let b = 0;
            if (typeCast(ISortingAxis_$type, this.barFragmentYAxis) !== null) {
                b = this.ke(a);
                if (b == -1) {
                    return null;
                }
            }
            else {
                b = this.kc(a);
            }
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        ke(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.dn, d);
            let f = typeCast(ISortingAxis_$type, this.barFragmentYAxis);
            let g = this.w4(this.cw);
            let h = this.barFragmentYAxis.f9(g.top, e);
            let i = this.barFragmentYAxis.f9(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;
        }
        abw(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.dn, e);
            if (!c.isEmpty && !d.isEmpty && this.barFragmentXAxis != null) {
                b = this.barFragmentXAxis.f6(0, f);
            }
            return b;
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            if (this.parentSeries == null || this.barFragmentXAxis == null) {
                return;
            }
            let e = this.barFragmentXAxis;
            switch (b) {
                case "ValueColumn":
                    if (this.abi.dl) {
                        this.abi.dk.g$m();
                    }
                    if (e != null && !e.ed()) {
                        this.parentSeries.abi().c9.g(this.ik);
                        this.r8(this.gm && this.d9);
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    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.abf;
            let k = g.abg;
            let l = f.logicalSeriesLink.bd;
            let m = f.logicalSeriesLink.bc;
            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.abg[h]) + g.abf[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.bd._inner[h] + i) / j * 100;
                    }
                    else {
                        i = (f.logicalSeriesLink.bc._inner[h] + i) / j * 100;
                    }
                }
                else {
                    i = i < 0 ? f.logicalSeriesLink.bd._inner[h] + i : f.logicalSeriesLink.bc._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.abg[h]) + g.abf[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.bd._inner[h] + i) / j * 100;
                    }
                    else {
                        i = (f.logicalSeriesLink.bc._inner[h] + i) / j * 100;
                    }
                }
                else {
                    i = i < 0 ? f.logicalSeriesLink.bd._inner[h] + i : f.logicalSeriesLink.bc._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.abg != null ? b.abg.length : 0, b.abf != null ? b.abf.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.abg[h], b.abf[h]);
                let j = Math.max(b.abg[h], b.abf[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.dn, f);
            let h = d.w4(this.c);
            let i = Math.floor(d.yAxis.ga(h.top, g, 0));
            let j = Math.ceil(d.yAxis.ga(h.bottom, g, 0));
            if (!d.yAxis.dn) {
                j = Math.ceil(d.yAxis.ga(h.top, g, 0));
                i = Math.floor(d.yAxis.ga(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.abg != null ? i.abg.length : 0, i.abf != null ? i.abf.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.bd._inner[t] + j);
                        n = Math.max(n, h.logicalSeriesLink.bd._inner[t]);
                    }
                    else {
                        o = Math.min(o, h.logicalSeriesLink.bc._inner[t]);
                        n = Math.max(n, h.logicalSeriesLink.bc._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.dn, p);
            g = [f.k._inner[b - this.e][0], i.xAxis.f6(m, u), i.xAxis.f6(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.abg != null ? i.abg.length : 0, i.abf != null ? i.abf.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.bd._inner[t] + j);
                        n = Math.max(n, h.logicalSeriesLink.bd._inner[t]);
                    }
                    else {
                        o = Math.min(o, h.logicalSeriesLink.bc._inner[t]);
                        n = Math.max(n, h.logicalSeriesLink.bc._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.dn, p);
            g = [f.k._inner[b - this.e][0], i.yAxis.f6(m, u), i.yAxis.f6(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.abr;
                }
                let c = this.a.parentSeries;
                if (c == null) {
                    return NaN;
                }
                if (c.abg == null || c.abf == null || c.abg.length == 0 || c.abf.length == 0) {
                    return NaN;
                }
                let d = this.a.valueColumn.item(a);
                let e = Math.abs(c.abg[a]) + c.abf[a];
                let f = this.a.logicalSeriesLink.bc;
                let g = this.a.logicalSeriesLink.bd;
                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_fn() {
            return true;
        }
        z9() {
            return true;
        }
        ct() {
            return new LineFragmentView(this);
        }
        rh(a) {
            super.rh(a);
            this.adu = a;
        }
        adw(a, b) {
            let c = this.adu.dy.an;
            if (this.g4(a, c)) {
                return true;
            }
            return false;
        }
        get_ey() {
            return true;
        }
        g2(a, b) {
            if (this.adv(a, b)) {
                return true;
            }
            if (this.adw(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        adv(a, b) {
            let c = this.adu.dz.an;
            if (this.g3(a, b, c)) {
                return true;
            }
            let d = this.adu.d0.an;
            if (this.g3(a, b, d)) {
                return true;
            }
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        pi(a, b) {
            super.pi(a, b);
            let c = b;
            c.du();
        }
        aa8(a, b) {
            super.aa8(a, b);
            let c = (d) => a.k._inner[d][0];
            let d = (e) => a.k._inner[e][1];
            let e = (f) => a.k._inner[f][0];
            let f = (g) => a.k._inner[g][2];
            this.adk.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.k;
            this.zn.a2(this, this.z7(), runOn(this, this.y7), this.aag(b), this.aah(b));
            let k = false;
            let l = this.zn.b;
            if (l != null) {
                k = true;
            }
            if (k) {
                let m = new ScalerParams(0, b.ca, b.b9, this.ac0.dn, i);
                this.aa4(j, -1, this.valueColumn.count, this.ac0, m, b.t, -1);
            }
            this.zn.ad(h.dz, true, false, true, false);
            this.zn.ad(h.d0, true, false, true, false);
            this.zn.ad(h.dy, false, true, false, false);
            h.dy._opacity = 0.75 * this.zn.j;
            this.adk.m(h.dz, h.dy, h.d0, a.k.count, a.k, true, 0, this.abg(a.k, a.k.count - 1, b.b9, b.ca), g, this.ik);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    LineFragment.$t = markType(LineFragment, 'LineFragment', FragmentBase.$);
    return LineFragment;
})();
/**
 * @hidden
 */
export let SplineFragmentBase = /*@__PURE__*/ (() => {
    class SplineFragmentBase extends SplineSeriesBase {
        constructor() {
            super();
            this._logicalSeriesLink = null;
            this.ad3 = null;
            this.ad5 = null;
            this.ad3 = new CategoryLineRasterizer();
        }
        get logicalSeriesLink() {
            return this._logicalSeriesLink;
        }
        set logicalSeriesLink(a) {
            this._logicalSeriesLink = a;
        }
        get parentSeries() {
            return this.ad5;
        }
        set parentSeries(a) {
            this.ad5 = a;
        }
        qo(a) {
            super.qo(a);
            a.parentSeries = this.parentSeries;
            a.logicalSeriesLink = this.logicalSeriesLink;
        }
        get_e9() {
            return false;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        get_isFragment() {
            return true;
        }
        nn() {
            if (this.logicalSeriesLink != null) {
                return this.logicalSeriesLink.e7;
            }
            return null;
        }
        ww(a, b, c) {
            return this.wy(a, b, c, this.zk.r(this.zd(), this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw)), this.zu(), this.zd(), runOn(this, this.ad7), (d, e) => this.kk(d, e, this.zd(), runOn(this, this.aae), new SplineFragmentBaseValueList(this)), (d, e) => this.ki(d, e, this.zd(), runOn(this, this.aae), new SplineFragmentBaseValueList(this)));
        }
        ai() {
            return [this.zd(), this.zu()];
        }
        ad7(a, b, c) {
            if (this.dc == null) {
                return NaN;
            }
            let d = this.getEffectiveViewport1(this.cw);
            let e = new ScalerParams(0, this.dc.yr, this.cw.b9, this.zd().dn, d);
            let f = this.zk.r(this.zd(), this.dc.yr, this.cw.b9, d);
            return this.jf(new SplineFragmentBaseValueList(this), a, this.zd(), e, f, runOn(this, this.aae), b, c);
        }
        kb() {
            let a = this.parentSeries;
            if (a.index == -1 || a.abo == null || a.abo.f.indexOf(this) == -1) {
                return -1;
            }
            return a.abo.f.indexOf(this);
        }
        resolveLegendIndex() {
            let a = this.parentSeries;
            if (a.abs) {
                return -1 + a.index + a.abj.count - a.abo.f.indexOf(this);
            }
            return super.resolveLegendIndex();
        }
        kg() {
            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;
        }
        adp(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.s.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;
        }
        hk(a, b, c) {
            let d = super.hk(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.b7 == null || f.b7 == 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;
        }
        ad8(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.dn, h);
            let j = new ScalerParams(0, b, c, e.dn, h);
            let k = d.f9(2, i) - d.f9(1, i);
            let l = this.x1();
            let m = 0;
            let n = this.adt(d, b, c, h);
            let o = (p) => Math.abs(this.parentSeries.abg[p]) + this.parentSeries.abf[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.bd._inner[s] + this.valueColumn.item(s)) / o(s) * 100 : (this.logicalSeriesLink.bc._inner[s] + this.valueColumn.item(s)) / o(s) * 100;
                }
                else {
                    return this.valueColumn.item(s) < 0 ? this.logicalSeriesLink.bd._inner[s] + this.valueColumn.item(s) : this.logicalSeriesLink.bc._inner[s] + this.valueColumn.item(s);
                }
            };
            let r = this.zo.c9.f;
            let s = this.zo.c9.e;
            let t = truncate(Math.ceil(c.width / (r - s)));
            let u = new CollisionAvoider();
            let v = this.zo.c9.d;
            if (v <= 0 || (s <= 0 && r <= 0)) {
                this.zo.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.adp(a, a.k._inner[a.k.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.adl[x];
                let ag = this.adl[x + 1];
                let ah = g.i$d(g.i$b._inner[x]);
                let ai = d.f6(ah, i) + n;
                let aj = e.f6(ab, j);
                a.k.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.f6(as, i) + n;
                    ap = e.f6(ap, j);
                    a.k.add([am, ap, ap]);
                    w++;
                }
                if (l) {
                    y = [ai, aj, aj];
                }
                if (l && this.adp(a, y, u, Math.min(z, this.dp.count - 1), m, f, w - 1)) {
                    ++m;
                }
            }
            this.zo.dc.count = m;
        }
        aa5(a, b) {
            a.aa();
            if (this.valueColumn == null || this.parentSeries == null || this.logicalSeriesLink == null) {
                return;
            }
            if (this.logicalSeriesLink.bd.count == 0 || this.logicalSeriesLink.bc.count == 0) {
                return;
            }
            if (this.zo.c9.d == 0) {
                return;
            }
            super.aa5(a, b);
            if (a.k.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.dn, e);
            let i = new ScalerParams(0, c, d, g.dn, e);
            a.k.clear();
            a.s.clear();
            let j = this.x1();
            let k = 0;
            let l;
            let m;
            if (b.s) {
                l = this.parentSeries.abh;
                m = this.parentSeries.ba.a$k.item(b.al);
            }
            else if (b == this.cv) {
                l = this.parentSeries.zi;
                m = typeCast(CategorySeriesView.$, this.parentSeries.cv);
            }
            else {
                l = this.parentSeries.zf;
                m = this.parentSeries.zo;
            }
            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.dn) {
                q = -q;
            }
            let s = (t) => Math.abs(this.parentSeries.abg[t]) + this.parentSeries.abf[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.bd._inner[v] + w) / s(v) * 100 : (this.logicalSeriesLink.bc._inner[v] + w) / s(v) * 100;
                }
                return w < 0 ? this.logicalSeriesLink.bd._inner[v] + w : this.logicalSeriesLink.bc._inner[v] + w;
            };
            let v = b.c9.d;
            this.ady(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.ad8(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.k.count > 0 && this.adp(a, a.k._inner[a.k.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.adl[ac];
                    let ak = this.adl[ac + 1];
                    let al = f.f6(ae, h) + q;
                    let am = g.f6(ag, i);
                    a.k.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.f6(ao, h) + q;
                        ar = g.f6(ar, i);
                        a.k.add([ao, ar, ar]);
                        aa++;
                    }
                    if (j) {
                        ad = [al, am, am];
                    }
                }
                else {
                    ad = b.c9.getBucket(ac);
                    if (!isNaN_(ad[0])) {
                        ad[0] = f.f6(ad[0], h) + q;
                        ad[1] = g.f6(ad[1], i);
                        ad[2] = g.f6(ad[2], i);
                        a.k.add(ad);
                        aa++;
                        ab = aa;
                    }
                }
                if (j && this.adp(a, ad, z, Math.min(ac * v, this.dp.count - 1), k, b, ab - 1)) {
                    ++k;
                }
            }
            b.dc.count = k;
        }
        adj(a) {
            let b = (c) => Math.abs(this.parentSeries.abg[c]) + this.parentSeries.abf[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.bd._inner[e] + f) / b(e) * 100 : (this.logicalSeriesLink.bc._inner[e] + f) / b(e) * 100;
                }
                return f < 0 ? this.logicalSeriesLink.bd._inner[e] + f : this.logicalSeriesLink.bc._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.ac0);
            let i = 0;
            let j = 0;
            let k = 0;
            let l = this.ik;
            let m = this.w4(this.cw);
            let n = this.ac0;
            let o = this.getEffectiveViewport1(a);
            if (h == null || h.i$b == null) {
                let p = new ScalerParams(0, f, g, n.dn, o);
                let q = 0;
                let r = n.qb - 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.qb - 1;
                i = 1;
            }
            let t = truncate(Math.ceil(g.width / (k - j)));
            let u = new CollisionAvoider();
            if (h != null) {
                return this.adk(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.adl[x];
                    let af = this.adl[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();
        }
        adk(a) {
            let b = new List$1(Array_$type, 0);
            let c = a.ca;
            let d = a.b9;
            let e = this.ac0;
            let f = typeCast(ISortingAxis_$type, e);
            if (f == null) {
                return null;
            }
            let g = this.getEffectiveViewport1(a);
            let h = this.x1();
            let i = 0;
            let j = (k) => Math.abs(this.parentSeries.abg[k]) + this.parentSeries.abf[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.bd._inner[n] + this.valueColumn.item(n)) / j(n) * 100 : (this.logicalSeriesLink.bc._inner[n] + this.valueColumn.item(n)) / j(n) * 100;
                }
                else {
                    return this.valueColumn.item(n) < 0 ? this.logicalSeriesLink.bd._inner[n] + this.valueColumn.item(n) : this.logicalSeriesLink.bc._inner[n] + this.valueColumn.item(n);
                }
            };
            let m = 0;
            let n = 0;
            let o = 0;
            let p = this.ik;
            let q = this.w4(this.cw);
            if (f == null || f.i$b == null) {
                let r = 0;
                let s = e.qb - 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.qb - 1;
                m = 1;
            }
            if (m <= 0 || (n <= 0 && o <= 0)) {
                this.zo.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.adl[x];
                let af = this.adl[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();
        }
        ady(a) {
            super.ady(a);
            let b = (c) => Math.abs(this.parentSeries.abg[c]) + this.parentSeries.abf[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.bd._inner[e] + f) / b(e) * 100 : (this.logicalSeriesLink.bc._inner[e] + f) / b(e) * 100;
                }
                return f < 0 ? this.logicalSeriesLink.bd._inner[e] + f : this.logicalSeriesLink.bc._inner[e] + f;
            };
            let e = this.ac0;
            let f = this.adn == 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);
            }
            let h = this.adl == null;
            this.adl = Numeric.c(this.valueColumn.count, c, d, f, f);
            if (this.ado) {
                let i = -1.7976931348623157E+308;
                let j = 1.7976931348623157E+308;
                let k = this.adj(a);
                if (k == null) {
                    return;
                }
                for (let l = 0; l < k.length; l++) {
                    if (isNaN_(k[l][0]) || isNaN_(k[l][1])) {
                        continue;
                    }
                    if (k[l][1] > i) {
                        i = k[l][1];
                    }
                    if (k[l][0] < j) {
                        j = k[l][0];
                    }
                }
                this.adv = j;
                this.adu = i;
                if (h) {
                    if (this.yAxis != null) {
                        if (!this.yAxis.ed()) {
                            this.r8(false);
                        }
                    }
                }
            }
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case "ActualBrush":
                    if (this.logicalSeriesLink != null) {
                        this.logicalSeriesLink.k6 = this.vt;
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    SplineFragmentBase.$t = markType(SplineFragmentBase, 'SplineFragmentBase', SplineSeriesBase.$);
    return SplineFragmentBase;
})();
/**
 * @hidden
 */
export let SplineAreaFragment = /*@__PURE__*/ (() => {
    class SplineAreaFragment extends SplineFragmentBase {
        constructor() {
            super();
            this.aed = null;
            this.ab = SplineAreaFragment.$;
        }
        bk() {
            return new SplineAreaFragment();
        }
        ct() {
            return new SplineAreaFragmentView(this);
        }
        rh(a) {
            super.rh(a);
            this.ad9 = typeCast(SplineAreaFragmentView.$, a);
        }
        ac() {
            super.ac();
            this.r8(false);
        }
        get_ey() {
            return true;
        }
        get_ex() {
            return true;
        }
        get_f3() {
            return true;
        }
        zp() {
            return 1;
        }
        aeb(a, b) {
            let c = this.ad9.d1.an;
            if (this.g4(a, c)) {
                return true;
            }
            let d = this.ad9.d2.an;
            if (this.g4(a, d)) {
                return true;
            }
            return false;
        }
        g2(a, b) {
            if (this.aea(a, b)) {
                return true;
            }
            if (this.aeb(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        aea(a, b) {
            let c = this.ad9.d3.an;
            if (this.g3(a, b, c)) {
                return true;
            }
            let d = this.ad9.d4.an;
            if (this.g3(a, b, d)) {
                return true;
            }
            return false;
        }
        pi(a, b) {
            super.pi(a, b);
            let c = b;
            c.dw();
        }
        aa8(a, b) {
            super.aa8(a, b);
            this.ad3.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = a.k;
            let d = this.getEffectiveViewport1(b);
            this.zn.a2(this, this.z7(), runOn(this, this.y7), this.aag(b), this.aah(b));
            let e = false;
            let f = this.zn.b;
            if (f != null) {
                e = true;
            }
            if (e) {
                let g = new ScalerParams(0, b.ca, b.b9, this.ac0.dn, d);
                this.aa4(c, -1, this.valueColumn.count, this.ac0, g, b.t, -1);
            }
            let h = typeCast(SplineAreaFragmentView.$, b);
            let i = b.c9.d;
            this.zn.ad(h.d3, true, false, true, true);
            this.zn.ad(h.d4, true, false, true, true);
            this.zn.ad(h.d1, false, true, false, false);
            this.zn.ad(h.d2, false, true, false, false);
            h.d1._opacity = this.zn.j * this.ig;
            h.d2._opacity = 0.5 * this.zn.j * this.ig;
            this.ad3.i(h.d1, h.d3, h.d2, h.d4, a.k.count, a.k, true, i, this.ik, (j, k, l, m, n) => this.aec(j, a.k, b), 1);
        }
        sa(a, b) {
            super.sa(a, b);
        }
        aec(a, b, c) {
            let d = this.abw(c);
            let e = d;
            let f = this.logicalSeriesLink.a4;
            let g = f ? this.parentSeries.abo.e : this.parentSeries.abo.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.ad3 != null && k.ad3.o.count > 0 && this.cw != null && k.hk(this.cw.b9, this.cw.ca, this.cw)) {
                    i = true;
                    for (let l = k.ad3.o.count - 1; l >= 0; l--) {
                        a.add(k.ad3.o._inner[l]);
                    }
                }
            }
        }
        abw(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.dn, e);
            if (!c.isEmpty && !d.isEmpty && this.yAxis != null) {
                b = this.yAxis.f6(0, f);
            }
            return b;
        }
        sv() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ig = isNaN_(this.ir) ? this.parentSeries.ig : this.ir;
            }
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    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_f3() {
            return true;
        }
        z9() {
            return true;
        }
        ct() {
            return new SplineFragmentView(this);
        }
        rh(a) {
            super.rh(a);
            this.ad9 = a;
        }
        aeb(a, b) {
            let c = this.ad9.d0.an;
            if (this.g4(a, c)) {
                return true;
            }
            return false;
        }
        get_ey() {
            return true;
        }
        g2(a, b) {
            if (this.aea(a, b)) {
                return true;
            }
            if (this.aeb(a, b)) {
                return true;
            }
            if (this.x2(a, b)) {
                return true;
            }
            return false;
        }
        aea(a, b) {
            let c = this.ad9.d1.an;
            if (this.g3(a, b, c)) {
                return true;
            }
            let d = this.ad9.d2.an;
            if (this.g3(a, b, d)) {
                return true;
            }
            return false;
        }
        pi(a, b) {
            super.pi(a, b);
            let c = b;
            c.dw();
        }
        aa8(a, b) {
            super.aa8(a, b);
            this.ad3.a = typeCast(ISortingAxis_$type, this.xAxis) !== null ? true : false;
            let c = typeCast(SplineFragmentView.$, b);
            let d = a.k;
            let e = this.getEffectiveViewport1(b);
            this.zn.a2(this, this.z7(), runOn(this, this.y7), this.aag(b), this.aah(b));
            let f = false;
            let g = this.zn.b;
            if (g != null) {
                f = true;
            }
            if (f) {
                let h = new ScalerParams(0, b.ca, b.b9, this.ac0.dn, e);
                this.aa4(d, -1, this.valueColumn.count, this.ac0, h, b.t, -1);
            }
            this.zn.ad(c.d1, true, false, true, false);
            this.zn.ad(c.d2, true, false, true, false);
            this.zn.ad(c.d0, false, true, false, false);
            c.d0._opacity = 0.75 * this.zn.j;
            let i = c.c9.d;
            this.ad3.m(c.d1, c.d0, c.d2, a.k.count, a.k, true, 1, this.abg(a.k, a.k.count - 1, b.b9, b.ca), i, this.ik);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    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.abr;
                }
                let c = this.a.parentSeries;
                if (c == null) {
                    return NaN;
                }
                let d = this.a.valueColumn.item(a);
                let e = Math.abs(c.abg[a]) + c.abf[a];
                let f = this.a.logicalSeriesLink.bc;
                let g = this.a.logicalSeriesLink.bd;
                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.abz = 0;
            this.aby = 0;
            this.abf = null;
            this.abg = null;
            this.abn = null;
            this.abk = null;
            this.abu = new Dictionary$2(String_$type, Boolean_$type, 0);
            this.abh = null;
            this.series = new StackedSeriesCollection();
            let a = this.series;
            a.collectionResetting = delegateCombine(a.collectionResetting, runOn(this, this.acb));
            let b = this.series;
            b.collectionChanged = delegateCombine(b.collectionChanged, runOn(this, this.aca));
            this.zk = new StackedSeriesFramePreparer(1, this, this.abp, this, this, this.abp.c9);
            this.abk = new StackedSeriesCollection();
            let c = this.abk;
            c.collectionChanged = delegateCombine(c.collectionChanged, runOn(this, this.aca));
            let d = this.abk;
            d.collectionResetting = delegateCombine(d.collectionResetting, runOn(this, this.ab5));
        }
        qv() {
            for (let a of fromEnum(this.abj)) {
                a.g6();
            }
            super.qv();
        }
        get_fh() {
            return false;
        }
        getHostReferenceValue() {
            return this.i5();
        }
        ct() {
            return new StackedSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.abp = a;
        }
        ri(a, b) {
            super.ri(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;
        }
        kl() {
            if (this.series == null) {
                return -1;
            }
            return this.series.count;
        }
        qh(a) {
            for (let b = 0; b < this.abo.f.count; b++) {
                let c = this.abo.f._inner[b];
                if (!a(c)) {
                    break;
                }
            }
            super.qh(a);
        }
        get_isStacked() {
            return true;
        }
        get abo() {
            if (this.abn == null) {
                this.abn = new StackedSeriesManager(this);
            }
            return this.abn;
        }
        set abo(a) {
            this.abn = a;
        }
        get abj() {
            return this.abq ? this.abk : this.series;
        }
        ab5(a, b) {
            for (let c of fromEnum(this.abk)) {
                if (this.abo != null && this.abo.c.contains(c)) {
                    c.parentSeries = null;
                    this.abo.c.remove(c);
                }
            }
        }
        acb(a, b) {
            for (let c of fromEnum(this.series)) {
                if (this.abo != null && this.abo.c.contains(c)) {
                    c.parentSeries = null;
                    this.abo.c.remove(c);
                }
            }
        }
        aca(a, b) {
            if (b.oldItems != null) {
                for (let c of fromEn(b.oldItems)) {
                    if (this.abo != null && this.abo.c.contains(c)) {
                        c.parentSeries = null;
                        this.abo.c.remove(c);
                    }
                }
            }
            if (b.newItems != null) {
                let d = b.newStartingIndex;
                for (let e of fromEn(b.newItems)) {
                    if (this.abo != null && !this.abo.c.contains(e)) {
                        e.parentSeries = this;
                        e.gm();
                        e.hd();
                        e.he();
                        e.hs();
                        e.hf();
                        e.hg();
                        e.ge();
                        e.gf();
                        e.gl();
                        e.gk();
                        e.gg();
                        e.gn();
                        e.gt();
                        e.gu();
                        e.gv();
                        e.g4();
                        e.g6();
                        e.gy();
                        e.g1();
                        e.g3();
                        e.g4();
                        e.g5();
                        e.g2();
                        e.gz();
                        e.hq();
                        e.hu();
                        e.ht();
                        e.gh();
                        e.gi();
                        e.g7();
                        e.g8();
                        e.g9();
                        e.gj();
                        e.gd();
                        e.hb();
                        e.hc();
                        e.gw();
                        e.hh();
                        e.gx();
                        e.hj();
                        e.g0();
                        e.ha();
                        e.hk();
                        e.hl();
                        e.gp();
                        e.hp();
                        e.hm();
                        e.ho();
                        e.hr();
                        e.hw();
                        if (!this.abq) {
                            this.abo.c.insert(d, e);
                            d++;
                        }
                    }
                }
            }
            if (!this.abq) {
                this.acc();
            }
        }
        so(a) {
            this.da.tp(a);
        }
        zl(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.dw.o, this, b.c9);
                }
            }
            else {
                return this.zk;
            }
        }
        aa5(a, b) {
            a.aa();
            this.ab8();
            this.zl(b).d(a, b);
        }
        r9(a) {
            super.r9(a);
            this.abo.i(a);
        }
        get_gz() {
            return false;
        }
        pi(a, b) {
            super.pi(a, b);
            for (let c of fromEnum(this.abj)) {
                if (c.visualSeriesLink != null) {
                    c.visualSeriesLink.pi(a, c.visualSeriesLink.cw);
                }
            }
        }
        ab6() {
            this.ab8();
        }
        acc() {
            let a = this.fetchXAxis();
            if (a != null) {
                a.ee(true);
            }
            let b = this.fetchYAxis();
            if (b != null) {
                b.ee(true);
            }
        }
        get_abr() {
            return false;
        }
        get abr() {
            return this.get_abr();
        }
        gj(a) {
            let b = this.dp != null ? this.dp.indexOf(a) : -1;
            let c = this.dc != null ? this.dc.yr : Rect.empty;
            c = c.copy();
            let d = this.cw.b9;
            let e = new Rect(0, 0, 0, 1, 1);
            let f = this.w6(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.dn, f);
                    let i = g.f6(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.abf != null && b < this.abf.length) {
                    let k = new ScalerParams(0, e, e, j.dn, f);
                    let l = j.f6(this.abf[b], k);
                    let m = j.f6(this.abg[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.abg == null || this.abg.length == 0 || this.abf == null || this.abf.length == 0) {
                return null;
            }
            if (a == this.fetchXAxis()) {
                let b = Math.min(this.abg.length, this.abf.length);
                return new AxisRange(0, b - 1);
            }
            if (a == this.fetchYAxis()) {
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        x1() {
            return false;
        }
        po(a, b, c, d) {
            this.ab8();
            this.aaa();
            this.r8(true);
        }
        abi() {
            return this.abp;
        }
        abv() {
            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.dn, d);
                a = e.f6(e.rb, f);
            }
            return a;
        }
        abw() {
            let a = typeCast(NumericYAxis.$, this.fetchYAxis());
            if (a != null) {
                return a.rb;
            }
            return 0;
        }
        ab1(a) {
            return this.index < 0 || this.abj == null || this.abj.count == 0 ? -1 : this.index + this.abj.indexOf(a);
        }
        ab0(a) {
            let b = this.dc != null ? this.dc.yr : 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.dn, d);
                let h = this.w4(this.cw);
                let i = e.f9(h.left, g);
                let j = e.f9(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;
        }
        abt(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.b7 == null || g.b7 == null || g.qw == g.qv) {
                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;
        }
        ab7() {
            if (this.dc == null || this.abo == null) {
                return;
            }
            if (!this.abq) {
                this.abk.clear();
                for (let a of fromEnum(this.series)) {
                    if (!this.abo.c.contains(a)) {
                        this.abo.c.add(a);
                    }
                }
                this.acc();
                return;
            }
        }
        aa8(a, b) {
            super.aa8(a, b);
        }
        ab9(a, b, c, d) {
        }
        az(a) {
            if (a.isEmpty && this.dc != null) {
                a = this.dc.yr;
            }
            let b = this.zd();
            if (this.abf == null || this.abg == null) {
                return null;
            }
            let c = this.w4(this.cw);
            let d = new ScalerParams(0, a, this.dc.y9, b.dn, this.getEffectiveViewport());
            let e = (b.f9(c.left, d));
            let f = (b.f9(c.right, d));
            if (b.dn) {
                let g = e;
                e = f;
                f = g;
            }
            let h = null;
            if (b.dv) {
                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.abg.length - 1, e));
            f = Math.max(0, Math.min(this.abg.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.abg[l];
                if (isInfinity(m) || isNaN_(m)) {
                    continue;
                }
                let n = this.abf[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.zu();
            o = this.ax(o, p, a);
            return o;
        }
        sd() {
            super.sd();
            for (let a of fromEnum(this.abj)) {
                a.gb();
            }
        }
        ab8() {
            if (this.dp == null) {
                return;
            }
            let a = this.dp.count;
            this.abf = new Array(a);
            this.abg = new Array(a);
            for (let b = 0; b < a; b++) {
                this.abf[b] = 0;
                this.abg[b] = 0;
            }
            this.abz = Number.POSITIVE_INFINITY;
            this.aby = Number.NEGATIVE_INFINITY;
            let c = 0;
            for (let d of fromEnum(this.abj)) {
                if (d.itemsSource != null && d.visualSeriesLink == null) {
                    continue;
                }
                if (d.itemsSource != null) {
                    d.an = d.visualSeriesLink.valueColumn;
                }
                if (d.itemsSource == null) {
                    this.dp.deregisterColumn(d.an);
                    d.an = this.dl(d.f0);
                }
                if (d.visualSeriesLink != null && d.itemsSource == null) {
                    d.visualSeriesLink.abt = true;
                    d.visualSeriesLink.valueColumn = d.an;
                    d.visualSeriesLink.abt = false;
                }
                d.a4 = true;
                if (d.an != null) {
                    d.bc.clear();
                    d.bd.clear();
                    for (let e = 0; e < d.an.count; e++) {
                        let f = d.an.item(e);
                        if (f < c) {
                            d.bc.add(c);
                            d.bd.add(this.abg[e]);
                            this.abg[e] = this.abg[e] + f;
                            if (d.a4) {
                                d.a4 = false;
                            }
                        }
                        else if (f >= c) {
                            d.bc.add(this.abf[e]);
                            d.bd.add(c);
                            this.abf[e] = this.abf[e] + f;
                        }
                        else if (isNaN_(f) || isInfinity(f)) {
                            d.bc.add(this.abf[e]);
                            d.bd.add(this.abg[e]);
                        }
                    }
                }
            }
            for (let g = 0; g < a; g++) {
                this.abz = Math.min(this.abz, this.abg[g]);
                this.aby = Math.max(this.aby, this.abf[g]);
            }
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case "SeriesViewer":
                    if (c != null && d == null) {
                        this.pp(this.fetchXAxis());
                        this.pp(this.fetchYAxis());
                    }
                    if (c == null && d != null) {
                        this.ry(this.fetchXAxis());
                        this.ry(this.fetchYAxis());
                    }
                    if (this.abj != null) {
                        for (let e of fromEnum(this.abj)) {
                            e.ai = this.dc;
                            if (e.visualSeriesLink != null) {
                                e.visualSeriesLink.dc = this.dc;
                            }
                        }
                        this.r8(false);
                    }
                    break;
                case "ItemsSource":
                    if (this.abj != null) {
                        for (let f of fromEnum(this.abj)) {
                            if (f.itemsSource == null) {
                                if (f.visualSeriesLink != null) {
                                    f.visualSeriesLink.itemsSource = d;
                                }
                            }
                        }
                    }
                    break;
                case "HighlightedItemsSource":
                    if (this.abj != null) {
                        for (let g of fromEnum(this.abj)) {
                            if (g.highlightedItemsSource == null) {
                                if (g.visualSeriesLink != null) {
                                    g.visualSeriesLink.highlightedItemsSource = d;
                                }
                            }
                        }
                    }
                    break;
                case "FastItemsSource":
                    if (this.abq) {
                        this.ab7();
                    }
                    if (!this.aaa()) {
                        this.abp.c9.g(this.ik);
                    }
                    this.r8(this.gm && c != null);
                    break;
                case StackedSeriesBase.$$p[0]:
                    this.ab7();
                    break;
                case StackedSeriesBase.$$p[1]:
                    if (this.dc != null) {
                        this.dc.q4(this.abo.f);
                    }
                    break;
                case StackedSeriesBase.$$p[2]:
                    for (let h of fromEnum(this.abj)) {
                        h.hw();
                    }
                    break;
                case "Brush":
                    for (let i of fromEnum(this.abj)) {
                        i.ge();
                    }
                    break;
                case "DashArray":
                    for (let j of fromEnum(this.abj)) {
                        j.gf();
                    }
                    break;
                case "HighlightingFadeOpacity":
                    for (let k of fromEnum(this.abj)) {
                        k.gl();
                    }
                    break;
                case "HighlightedValuesDisplayMode":
                    for (let l of fromEnum(this.abj)) {
                        l.gk();
                    }
                    break;
                case "DashCap":
                    for (let m of fromEnum(this.abj)) {
                        m.gg();
                    }
                    break;
                case "IsDropShadowEnabled":
                    for (let n of fromEnum(this.abj)) {
                        n.gm();
                    }
                    break;
                case "ShadowBlur":
                    for (let o of fromEnum(this.abj)) {
                        o.hd();
                    }
                    break;
                case "ShadowColor":
                    for (let p of fromEnum(this.abj)) {
                        p.he();
                    }
                    break;
                case "UseSingleShadow":
                    for (let q of fromEnum(this.abj)) {
                        q.hs();
                    }
                    break;
                case "ShadowOffsetX":
                    for (let r of fromEnum(this.abj)) {
                        r.hf();
                    }
                    break;
                case "ShadowOffsetY":
                    for (let s of fromEnum(this.abj)) {
                        s.hg();
                    }
                    break;
                case "IsHitTestVisible":
                    for (let t of fromEnum(this.abj)) {
                        t.gn();
                    }
                    break;
                case "LegendItemBadgeTemplate":
                    for (let u of fromEnum(this.abj)) {
                        u.gt();
                    }
                    break;
                case "LegendItemTemplate":
                    for (let v of fromEnum(this.abj)) {
                        v.gu();
                    }
                    break;
                case "LegendItemVisibility":
                    for (let w of fromEnum(this.abj)) {
                        w.gv();
                    }
                    break;
                case "LegendItemBadgeShape":
                    for (let x of fromEnum(this.abj)) {
                        x.gs();
                    }
                    break;
                case "LegendItemBadgeMode":
                    for (let y of fromEnum(this.abj)) {
                        y.gr();
                    }
                    break;
                case "MarkerTemplate":
                    for (let z of fromEnum(this.abj)) {
                        z.g4();
                    }
                    break;
                case "MarkerType":
                    for (let aa of fromEnum(this.abj)) {
                        aa.g6();
                    }
                    break;
                case "MarkerThickness":
                    for (let ab of fromEnum(this.abj)) {
                        ab.g5();
                    }
                    break;
                case "MarkerBrush":
                    for (let ac of fromEnum(this.abj)) {
                        ac.gy();
                    }
                    break;
                case "MarkerOutline":
                    for (let ad of fromEnum(this.abj)) {
                        ad.g1();
                    }
                    break;
                case "MarkerOutlineMode":
                    for (let ae of fromEnum(this.abj)) {
                        ae.g2();
                    }
                    break;
                case "MarkerFillMode":
                    for (let af of fromEnum(this.abj)) {
                        af.gz();
                    }
                    break;
                case "MarkerStyle":
                    for (let ag of fromEnum(this.abj)) {
                        ag.g3();
                    }
                    break;
                case "Opacity":
                    for (let ah of fromEnum(this.abj)) {
                        ah.g7();
                    }
                    break;
                case "OpacityMask":
                    for (let ai of fromEnum(this.abj)) {
                        ai.g8();
                    }
                    break;
                case "AreaFillOpacity":
                    for (let aj of fromEnum(this.abj)) {
                        aj.gd();
                    }
                    break;
                case "Outline":
                    for (let ak of fromEnum(this.abj)) {
                        ak.g9();
                    }
                    break;
                case "LineCap":
                    for (let al of fromEnum(this.abj)) {
                        al.gw();
                    }
                    break;
                case "OutlineMode":
                    for (let am of fromEnum(this.abj)) {
                        am.ha();
                    }
                    break;
                case "MarkerFillOpacity":
                    for (let an of fromEnum(this.abj)) {
                        an.g0();
                    }
                    break;
                case "Thickness":
                    for (let ao of fromEnum(this.abj)) {
                        ao.hh();
                    }
                    break;
                case "LineJoin":
                    for (let ap of fromEnum(this.abj)) {
                        ap.gx();
                    }
                    break;
                case "ToolTip":
                    for (let aq of fromEnum(this.abj)) {
                        aq.hj();
                    }
                    break;
                case "TransitionEasingFunction":
                    for (let ar of fromEnum(this.abj)) {
                        ar.hl();
                    }
                    break;
                case "TransitionDuration":
                    for (let as of fromEnum(this.abj)) {
                        as.hk();
                    }
                    break;
                case "IsTransitionInEnabled":
                    for (let at of fromEnum(this.abj)) {
                        at.gp();
                    }
                    break;
                case "TransitionInMode":
                    for (let au of fromEnum(this.abj)) {
                        au.ho();
                    }
                    break;
                case "TransitionInDuration":
                    for (let av of fromEnum(this.abj)) {
                        av.gp();
                    }
                    break;
                case "TransitionInSpeedType":
                    for (let aw of fromEnum(this.abj)) {
                        aw.gp();
                    }
                    break;
                case "TransitionInEasingFunction":
                    for (let ax of fromEnum(this.abj)) {
                        ax.hn();
                    }
                    break;
                case "UseLightweightMarkers":
                    for (let ay of fromEnum(this.abj)) {
                        ay.hr();
                    }
                    break;
                case "UseHighMarkerFidelity":
                    for (let az of fromEnum(this.abj)) {
                        az.hq();
                    }
                    break;
            }
        }
        get currentCategoryMode() {
            return this.preferredCategoryMode(typeCast(CategoryAxisBase.$, this.zd()));
        }
        get scaler() {
            return typeCast(ICategoryScaler_$type, this.zd());
        }
        get yScaler() {
            return typeCast(IScaler_$type, this.zu());
        }
        get bucketizer() {
            return this.zo.c9;
        }
        get currentMode2Index() {
            return this.aaj();
        }
        provideCollisionDetector() {
            return new CollisionAvoider();
        }
        gt() {
            return false;
        }
        get_e9() {
            return false;
        }
        sa(a, b) {
            let c = this.g6;
            super.sa(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.sa(a, b);
            }
            this.g6 = false;
        }
        r7(a, b, c, d, e) {
            super.r7(a, b, c, d, e);
            let f = this.ba.a$k.item(d);
            f.c9.g(this.ik);
            f.bd(c);
            if (this.d7(f)) {
                return;
            }
            if (this.abh == null) {
                this.abh = new CategoryFrame(3);
            }
            this.abh.aa();
            this.ab8();
            this.zl(f).d(this.abh, f);
            this.aa8(this.abh, f);
            for (let g of fromEnum(this.series)) {
                g.visualSeriesLink.r7(a, b, c, d, e);
            }
        }
        aa1(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.abx(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;
                }
            }
        }
        abx(a, b) {
            let c = this.series._inner[a];
            return c.an.item(b);
        }
        aas(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;
                    })()));
                }
            }
        }
        kv() {
            let a = this.bc.exportStackedVisualData(this, this.xd);
            for (let b of fromEnum(this.series)) {
                let c = this.bc.createFragmentVisualData(this, this.xd, getInstanceType(b).typeName, b.e7);
                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.xd, getInstanceType(d.target).typeName, d.target.name);
                    d.target.cw.ax(e);
                    this.bc.addSubSeriesLayerVisualData(c, e);
                }
            }
            this.qd(a);
            this.cw.ax(a);
            return a;
        }
        get mayContainUnknowns() {
            return true;
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedSeriesBase.$t = markType(StackedSeriesBase, 'StackedSeriesBase', CategorySeries.$, [IIsCategoryBased_$type]);
    StackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSeriesBase, 'raisePropertyChanged', ['AutoGenerateSeries:abq:acd', [0, false], 'ReverseLegendOrder:abs:ace', [0, false], 'SeriesVisibility:acg:acf', [Visibility_$type, enumGetBox(Visibility_$type, 0)]]);
    return StackedSeriesBase;
})();
/**
 * @hidden
 */
export let HorizontalStackedSeriesBase = /*@__PURE__*/ (() => {
    class HorizontalStackedSeriesBase extends StackedSeriesBase {
        get_em() {
            return true;
        }
        get_gb() {
            return this.zu() != null && this.zu().dn;
        }
        pf() {
            super.pf();
            this.xAxis = null;
            this.yAxis = null;
            this.abo.g();
        }
        cl() {
            return 1;
        }
        cm() {
            if (this.yAxis != null && this.yAxis.dn) {
                return 4;
            }
            return 3;
        }
        getOffsetValue() {
            return this.zk.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()];
        }
        aaa() {
            return this.yAxis != null && this.yAxis.ed();
        }
        sv() {
            let a = (typeCast(XamDataChart.$, this.dc));
            if (a != null) {
                this.ig = isNaN_(this.ir) ? a.z3.fs : this.ir;
                for (let b of fromEnum(this.abj)) {
                    b.gd();
                }
            }
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case "Resolution":
                    this.abo.k();
                    break;
                case HorizontalStackedSeriesBase.$$p[0]:
                    if (c != d) {
                        this.pp(typeCast(Axis.$, c));
                        this.ry(typeCast(Axis.$, d));
                        this.zo.c9.g(this.ik);
                        this.r8(false);
                        this.q0();
                    }
                    break;
                case HorizontalStackedSeriesBase.$$p[1]:
                    if (c != d) {
                        this.pp(typeCast(Axis.$, c));
                        this.ry(typeCast(Axis.$, d));
                        this.zo.c9.g(this.ik);
                        if (this.dc != null) {
                            this.dc.pq();
                        }
                        this.aaa();
                        this.r8(false);
                        this.q0();
                    }
                    break;
            }
        }
        ack(a) {
            if (typeCast(NumericYAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        acj(a) {
            if (typeCast(CategoryXAxis.$, a) !== null || a.dj) {
                return true;
            }
            return false;
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    HorizontalStackedSeriesBase.$t = markType(HorizontalStackedSeriesBase, 'HorizontalStackedSeriesBase', StackedSeriesBase.$);
    HorizontalStackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, HorizontalStackedSeriesBase, 'raisePropertyChanged', ['XAxis::acn', [CategoryAxisBase.$, null], 'YAxis::aco', [NumericYAxis.$, null]]);
    return HorizontalStackedSeriesBase;
})();
/**
 * @hidden
 */
export let StackedAreaSeries = /*@__PURE__*/ (() => {
    class StackedAreaSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedAreaSeries.$;
        }
        bk() {
            return new StackedAreaSeries();
        }
        get_ex() {
            return true;
        }
        ac() {
            super.ac();
            this.r8(false);
        }
        ct() {
            return new StackedAreaSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.acp = 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.ab8();
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.qi(a, c, b);
            return c.toArray();
        }
        qi(a, b, c) {
            this.aa0(a, b, c, this.ze, 0);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedAreaSeries.$t = markType(StackedAreaSeries, 'StackedAreaSeries', HorizontalStackedSeriesBase.$);
    return StackedAreaSeries;
})();
/**
 * @hidden
 */
export let VerticalStackedSeriesBase = /*@__PURE__*/ (() => {
    class VerticalStackedSeriesBase extends StackedSeriesBase {
        zd() {
            return this.yAxis;
        }
        zu() {
            return this.xAxis;
        }
        pf() {
            super.pf();
            this.xAxis = null;
            this.yAxis = null;
            this.abo.g();
        }
        cl() {
            if (this.xAxis != null && this.xAxis.dn) {
                return 4;
            }
            return 3;
        }
        cm() {
            return 1;
        }
        az(a) {
            if (a.isEmpty && this.dc != null) {
                a = this.dc.yr;
            }
            let b = this.zd();
            if (this.abf == null || this.abg == null) {
                return null;
            }
            let c = this.w4(this.cw);
            let d = new ScalerParams(0, a, this.dc.y9, b.dn, this.getEffectiveViewport());
            let e = (b.f9(c.top, d));
            let f = (b.f9(c.bottom, d));
            if (!b.dn) {
                let g = e;
                e = f;
                f = g;
            }
            let h = null;
            if (b.dv) {
                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.abg.length - 1, e));
            f = Math.max(0, Math.min(this.abg.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.abg[l];
                if (isInfinity(m) || isNaN_(m)) {
                    continue;
                }
                let n = this.abf[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.zu();
            o = this.ax(o, p, a);
            return o;
        }
        getOffsetValue() {
            return this.zk.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;
        }
        aaa() {
            return this.xAxis != null && this.xAxis.ed();
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case VerticalStackedSeriesBase.$$p[0]:
                    if (c != d) {
                        this.pp(typeCast(Axis.$, c));
                        this.ry(typeCast(Axis.$, d));
                        this.zo.c9.g(this.ik);
                        if (this.dc != null) {
                            this.dc.pq();
                        }
                        this.r8(false);
                        this.q0();
                    }
                    break;
                case VerticalStackedSeriesBase.$$p[1]:
                    if (c != d) {
                        this.pp(typeCast(Axis.$, c));
                        this.ry(typeCast(Axis.$, d));
                        this.zo.c9.g(this.ik);
                        this.aaa();
                        this.r8(false);
                        this.q0();
                    }
                    break;
            }
        }
        ack(a) {
            if (typeCast(CategoryYAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        acj(a) {
            if (typeCast(NumericXAxis.$, a) !== null) {
                return true;
            }
            return false;
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    VerticalStackedSeriesBase.$t = markType(VerticalStackedSeriesBase, 'VerticalStackedSeriesBase', StackedSeriesBase.$);
    VerticalStackedSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, VerticalStackedSeriesBase, 'raisePropertyChanged', ['XAxis::acn', [NumericXAxis.$, null], 'YAxis::aco', [CategoryYAxis.$, null]]);
    return VerticalStackedSeriesBase;
})();
/**
 * @hidden
 */
export let StackedBarSeries = /*@__PURE__*/ (() => {
    class StackedBarSeries extends VerticalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedBarSeries.$;
        }
        bk() {
            return new StackedBarSeries();
        }
        get_e0() {
            return true;
        }
        get_fo() {
            return true;
        }
        js() {
            if (!isNaN_(this.jr)) {
                return super.js();
            }
            return Defaults.h;
        }
        ac() {
            super.ac();
            this.r8(false);
        }
        ct() {
            return new StackedBarSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.acp = a;
        }
        abi() {
            return this.acp;
        }
        preferredCategoryMode(a) {
            return 2;
        }
        aaj() {
            let a = 0;
            for (let b of fromEnum(this.dc.b9)) {
                if (b == this) {
                    return a;
                }
                let c = typeCast(IBarSeries_$type, b);
                if (c != null && c.yAxis == this.yAxis && c.getPreferredCategoryMode() == 2) {
                    a++;
                }
            }
            return -1;
        }
        abv() {
            let a = 0;
            let b = this.dc != null ? this.dc.yr : 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.dn, d);
                a = this.xAxis.f6(this.xAxis.rb, e);
            }
            return a;
        }
        abw() {
            if (this.xAxis != null) {
                return this.xAxis.rb;
            }
            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.ab8();
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        gj(a) {
            let b = this.dp != null ? this.dp.indexOf(a) : -1;
            let c = this.dc != null ? this.dc.yr : Rect.empty;
            c = c.copy();
            let d = this.cw.b9;
            let e = new Rect(0, 0, 0, 1, 1);
            let f = this.w6(this.cw);
            let g = new ScalerParams(0, e, e, this.xAxis.dn, f);
            let h = new ScalerParams(0, e, e, this.yAxis.dn, f);
            if (b >= 0 && Rect.l_op_Inequality(c, null) && Rect.l_op_Inequality(d, null)) {
                if (this.yAxis != null) {
                    let i = this.yAxis.f6(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.abf != null && b < this.abf.length) {
                    let j = this.xAxis.f6(this.abf[b], g);
                    let k = this.xAxis.f6(this.abg[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;
        }
        hk(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.b7 == null || this.yAxis.b7 == null || this.xAxis.qw == this.xAxis.qv) {
                e.c9.d = 0;
                d = false;
            }
            return d;
        }
        po(a, b, c, d) {
            switch (a) {
                case 4:
                case 1:
                case 0:
                    this.zo.c9.g(this.ik);
                    break;
            }
            switch (a) {
                case 4:
                    if (this.xAxis != null && !this.xAxis.ed()) {
                        this.r8(true);
                    }
                    break;
                case 1:
                    if (this.xAxis != null && !this.xAxis.ed()) {
                        this.r8(true);
                    }
                    break;
                case 0:
                    if (this.xAxis != null && !this.xAxis.ed()) {
                        this.r8(true);
                    }
                    break;
                case 2:
                    if (this.zo.c9.d > 0) {
                        this.r8(true);
                    }
                    break;
                case 3:
                    if (this.xAxis != null && !this.xAxis.ed()) {
                        this.r8(true);
                    }
                    break;
            }
        }
        kc(a) {
            let b = this.dc != null ? this.dc.yr : 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.dn, d);
                let g = this.w4(this.cw);
                let h = this.yAxis.f9(g.top, f);
                let i = this.yAxis.f9(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;
        }
        kw(a) {
            let b = this.kc(a);
            return b >= 0 && this.dp != null && b < this.dp.count ? this.dp.item(b) : null;
        }
        acc() {
            if (this.xAxis != null) {
                this.xAxis.ee(true);
            }
            if (this.yAxis != null) {
                this.yAxis.ee(true);
            }
        }
        ab0(a) {
            return this.kc(a);
        }
        abt(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.b7 == null || this.yAxis.b7 == null) {
                e = false;
            }
            let f = d;
            if (a.valueColumn == null || a.valueColumn.count == 0 || f.c9.d < 1) {
                e = false;
            }
            return e;
        }
        i3() {
            return this.yAxis.pz(this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
        }
        ab9(a, b, c, d) {
            let e = typeCast(BarFragment.$, a);
            let f = typeCast(ColumnFragmentView.$, c);
            if (!this.hk(c.b9, c.ca, c) || e == null || f == null) {
                return;
            }
            let g = this.yAxis.pz(c.ca, c.b9, this.getEffectiveViewport1(c));
            if (isNaN_(g) || isInfinity(g)) {
                e.adv.du.count = 0;
                return;
            }
            let h = 0;
            e.zn.a2(e, e.z7(), d, e.aag(c), e.aah(c));
            e.zn.r = e.ady;
            e.zn.s = e.adz;
            e.zn.k = e.ady;
            e.zn.l = e.adz;
            let i = e.valueColumn.count;
            let j = c.ca;
            let k = c.b9;
            let l = this.getEffectiveViewport1(c);
            let m = false;
            let n = e.zn.b;
            if (n != null) {
                m = true;
            }
            let o = b.k;
            let p = e.zd();
            let q = p.dv ? p : null;
            let r = new ScalerParams(0, j, k, p.dn, l);
            let s = 0;
            for (let t of fromEnum(b.k)) {
                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.zn.aw(i, s)[0];
                if (m) {
                    e.aa4(o, s, i, p, r, c.t, y);
                }
                if (x.dataContext != null) {
                    let z = x.dataContext;
                    if (e.zn.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.zn.ad(x, false, false, false, false);
                x.ap = e.zn.k;
                x.aq = e.zn.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.qi(a, c, b);
            return c.toArray();
        }
        qi(a, b, c) {
            this.aa0(a, b, c, this.ze, 1);
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case StackedBarSeries.$$p[0]:
                case StackedBarSeries.$$p[1]:
                    for (let e of fromEnum(this.abj)) {
                        e.hb();
                        e.hc();
                    }
                    this.r8(false);
                    break;
                case "SyncLink":
                    if (this.xAxis != null) {
                        this.xAxis.ed();
                    }
                    break;
                case "FastItemsSource":
                    if (this.xAxis != null && !this.xAxis.ed()) {
                        this.acp.c9.g(this.ik);
                    }
                    this.r8(this.gm && c != null);
                    break;
                case "SeriesViewer":
                    if (c != null && d == null) {
                        this.pp(this.xAxis);
                        this.pp(this.yAxis);
                    }
                    if (c == null && d != null) {
                        this.ry(this.xAxis);
                        this.ry(this.yAxis);
                    }
                    this.acp.c9.g(this.ik);
                    this.r8(false);
                    if (this.xAxis != null) {
                        this.xAxis.ed();
                    }
                    break;
            }
        }
        getPreferredCategoryMode() {
            return this.preferredCategoryMode(this.yAxis);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedBarSeries.$t = markType(StackedBarSeries, 'StackedBarSeries', VerticalStackedSeriesBase.$, [IBarSeries_$type]);
    StackedBarSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedBarSeries, 'raisePropertyChanged', ['RadiusX:acq:acu', [1, 0], 'RadiusY:acr:acv', [1, 0]]);
    return StackedBarSeries;
})();
/**
 * @hidden
 */
export let StackedColumnSeries = /*@__PURE__*/ (() => {
    class StackedColumnSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedColumnSeries.$;
        }
        bk() {
            return new StackedColumnSeries();
        }
        get_e2() {
            return true;
        }
        get_fo() {
            return true;
        }
        js() {
            if (!isNaN_(this.jr)) {
                return super.js();
            }
            return Defaults.h;
        }
        ct() {
            return new StackedColumnSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.acp = a;
        }
        abi() {
            return this.acp;
        }
        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.ab8();
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        i3() {
            let a = this.getEffectiveViewport1(this.cw);
            return this.xAxis.pz(this.cw.ca, this.cw.b9, a);
        }
        ab9(a, b, c, d) {
            let e = typeCast(ColumnFragment.$, a);
            let f = typeCast(ColumnFragmentView.$, c);
            if (!this.hk(c.b9, c.ca, c) || e == null || f == null) {
                return;
            }
            if (e == null) {
                return;
            }
            let g = this.getEffectiveViewport1(c);
            let h = this.xAxis.pz(c.ca, c.b9, g);
            if (isNaN_(h) || isInfinity(h)) {
                e.adv.du.count = 0;
                return;
            }
            let i = 0;
            e.zn.a2(e, e.z7(), d, e.aag(c), e.aah(c));
            e.zn.r = e.ady;
            e.zn.s = e.adz;
            e.zn.k = e.ady;
            e.zn.l = e.adz;
            let j = c.ca;
            let k = c.b9;
            let l = this.getEffectiveViewport1(c);
            let m = false;
            let n = e.zn.b;
            if (n != null) {
                m = true;
            }
            let o = b.k;
            let p = e.zd();
            let q = p.dv ? p : null;
            let r = new ScalerParams(0, j, k, p.dn, l);
            let s = e.valueColumn.count;
            let t = typeCast(ISortingAxis_$type, this.xAxis) !== null;
            let u = 0;
            for (let v of fromEnum(b.k)) {
                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.zn.aw(s, u)[0];
                if (t && b.r != null && i >= 0 && i < b.r.count) {
                    aa = truncate(Math.round(b.r._inner[i]));
                }
                if (m) {
                    e.aa4(o, u, s, p, r, c.t, aa);
                }
                if (z.dataContext != null) {
                    let ab = z.dataContext;
                    if (e.zn.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.zn.ad(z, false, false, false, false);
                z.ap = e.zn.k;
                z.aq = e.zn.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.qi(a, c, b);
            return c.toArray();
        }
        qi(a, b, c) {
            this.aa0(a, b, c, this.ze, 1);
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case StackedColumnSeries.$$p[0]:
                case StackedColumnSeries.$$p[1]:
                    for (let e of fromEnum(this.abj)) {
                        e.hb();
                        e.hc();
                    }
                    this.r8(false);
                    break;
                case "SyncLink":
                    if (this.yAxis != null) {
                        this.yAxis.ed();
                    }
                    break;
                case "SeriesViewer":
                    if (this.yAxis != null) {
                        this.yAxis.ed();
                    }
                    break;
            }
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedColumnSeries.$t = markType(StackedColumnSeries, 'StackedColumnSeries', HorizontalStackedSeriesBase.$);
    StackedColumnSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedColumnSeries, 'raisePropertyChanged', ['RadiusX:acq:acu', [1, 0], 'RadiusY:acr:acv', [1, 0]]);
    return StackedColumnSeries;
})();
/**
 * @hidden
 */
export let StackedSplineAreaSeries = /*@__PURE__*/ (() => {
    class StackedSplineAreaSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedSplineAreaSeries.$;
        }
        bk() {
            return new StackedSplineAreaSeries();
        }
        js() {
            if (!isNaN_(this.jr)) {
                return super.js();
            }
            return this.acp.dn();
        }
        get_ex() {
            return true;
        }
        get_f3() {
            return true;
        }
        ac() {
            super.ac();
            this.r8(false);
        }
        ct() {
            return new StackedSplineAreaSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.acp = 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.ab8();
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        rq(a, b, c, d) {
            super.rq(a, b, c, d);
            switch (b) {
                case StackedSplineAreaSeries.$$p[0]:
                    for (let e of fromEnum(this.abj)) {
                        e.go();
                    }
                    break;
            }
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.qi(a, c, b);
            return c.toArray();
        }
        qi(a, b, c) {
            this.aa0(a, b, c, this.ze, 0);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedSplineAreaSeries.$t = markType(StackedSplineAreaSeries, 'StackedSplineAreaSeries', HorizontalStackedSeriesBase.$);
    StackedSplineAreaSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSplineAreaSeries, 'raisePropertyChanged', ['IsSplineShapePartOfRange:acq:acs', [0, false]]);
    return StackedSplineAreaSeries;
})();
/**
 * @hidden
 */
export let StackedSplineSeries = /*@__PURE__*/ (() => {
    class StackedSplineSeries extends HorizontalStackedSeriesBase {
        constructor() {
            super();
            this.ab = StackedSplineSeries.$;
        }
        bk() {
            return new StackedSplineSeries();
        }
        get_f3() {
            return true;
        }
        js() {
            if (!isNaN_(this.jr)) {
                return super.js();
            }
            return this.acp.dn();
        }
        ac() {
            super.ac();
            this.r8(false);
        }
        ct() {
            return new StackedSplineSeriesView(this);
        }
        rh(a) {
            super.rh(a);
            this.acp = 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.ab8();
                return new AxisRange(this.abz, this.aby);
            }
            return null;
        }
        preferredCategoryMode(a) {
            return 0;
        }
        ak(a, b) {
            let c = new List$1(ChartSelection.$, 0);
            this.qi(a, c, b);
            return c.toArray();
        }
        qi(a, b, c) {
            this.aa0(a, b, c, this.ze, 0);
        }
        get useHighMarkerFidelity() {
            return this.aab;
        }
    }
    StackedSplineSeries.$t = markType(StackedSplineSeries, 'StackedSplineSeries', HorizontalStackedSeriesBase.$);
    StackedSplineSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedSplineSeries, 'raisePropertyChanged', ['IsSplineShapePartOfRange:acq:acs', [0, false]]);
    return StackedSplineSeries;
})();
/**
 * @hidden
 */
export let StackedFragmentSeries = /*@__PURE__*/ (() => {
    class StackedFragmentSeries extends DependencyObject {
        constructor() {
            super();
            this._parentSeries = null;
            this.ch = 0;
            this.ai = null;
            this.an = null;
            this.l = null;
            this.bc = null;
            this.bd = null;
            this.bb = null;
            this.a4 = false;
            this.ca = null;
            this.assigningCategoryStyle = null;
            this.assigningCategoryMarkerStyle = null;
            this.propertyChanged = null;
            this.propertyUpdated = null;
            this.ba = new List$1(String_$type, 0);
            this.bc = new List$1(Number_$type, 0);
            this.bd = new List$1(Number_$type, 0);
            this.bb = new List$1(Array_$type, 0);
            this.propertyUpdated = delegateCombine(this.propertyUpdated, (a, b) => this.f8(a, b.propertyName, b.oldValue, b.newValue));
        }
        cl(a, b) {
            let c = new DataLegendSeriesValueInfo();
            c.l = this.by({ $type: Point_$type, x: a, y: b }, false, false);
            c.q = "Value";
            c.r = this.f0 != null ? this.f0 : "Value";
            c.s = this.fw != null ? this.fw : "";
            c.t = this.fy != null ? this.fy : "";
            let d = new DataLegendSeriesContext();
            d.e = ((() => {
                let $ret = new List$1(DataLegendSeriesValueInfo.$, 0);
                $ret.add(c);
                return $ret;
            })());
            d.h = this.eg();
            return d;
        }
        eg() {
            return "Stacked";
        }
        get parentSeries() {
            return this._parentSeries;
        }
        set parentSeries(a) {
            this._parentSeries = a;
        }
        get visualSeriesLink() {
            return this.l;
        }
        set visualSeriesLink(a) {
            let b = this.l;
            this.l = a;
            if (b != a) {
                this.f8(this, "VisualSeriesLink", b, a);
            }
        }
        cd(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kc(a);
            }
            return -1;
        }
        cm(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kw(a);
            }
            return null;
        }
        cg(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kj(a, b);
            }
            return -1;
        }
        cf(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kh(a, b);
            }
            return -1;
        }
        by(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.jd(a, b, c);
            }
            return NaN;
        }
        lu(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ww(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        ly(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.w8(a);
            }
            return Rect.empty;
        }
        j(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ao(a);
            }
            return null;
        }
        lz(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.w9(a);
            }
            return Rect.empty;
        }
        k(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ap(a);
            }
            return null;
        }
        l0(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.xa(a);
            }
            return Rect.empty;
        }
        l1(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.xb(a);
            }
            return Rect.empty;
        }
        bu(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i9(a, b, c);
            }
            return NaN;
        }
        lq(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ws(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bw(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.jb(a, b, c);
            }
            return NaN;
        }
        ls(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wu(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        lv(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wx(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bz(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.je(a, b, c);
            }
            return NaN;
        }
        lr(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wt(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bv(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ja(a, b, c);
            }
            return NaN;
        }
        lt(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wv(a, b, c);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        bx(a, b, c) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.jc(a, b, c);
            }
            return NaN;
        }
        ce(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kd(a);
            }
            return -1;
        }
        bt() {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.i3();
            }
            return 0;
        }
        bs(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.iz(a);
            }
            return NaN;
        }
        cn(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.kx(a);
            }
            return null;
        }
        av(a, b, c, d, e) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.ed(a, b, c, d, e);
            }
            return false;
        }
        lw(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.w2(a);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        lp(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.wr(a);
            }
            return { $type: Point_$type, x: NaN, y: NaN };
        }
        a5(a) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.gj(a);
            }
            return false;
        }
        lx() {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.getEffectiveViewport();
            }
            return Rect.empty;
        }
        f5() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.q2();
            }
        }
        gc(a) {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.so(a);
            }
        }
        a6(a, b) {
            if (this.visualSeriesLink != null) {
                return this.visualSeriesLink.g2(a, b);
            }
            return false;
        }
        f4(a) {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.qq(a);
            }
        }
        provideRenderer(a) {
            this.ca = a;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.provideRenderer(a);
            }
        }
        hw() {
            if (this.parentSeries == null) {
                return;
            }
            this.l5 = this.parentSeries._visibility != 0 ? 1 : this.l7;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink._visibility = this.l5;
            }
        }
        g4() {
            if (this.parentSeries == null) {
                return;
            }
            this.hz = this.h2 != null ? this.h2 : this.parentSeries.yn;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.yn = this.hz;
            }
        }
        g6() {
            if (this.parentSeries == null) {
                return;
            }
            let a = this.aa == 0 || this.aa == 2;
            let b = a ? this.parentSeries.xt : this.aa;
            if (b == 2 || b == 0) {
                b = 1;
            }
            this.z = b;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xv = this.z;
            }
        }
        ge() {
            if (this.parentSeries == null) {
                return;
            }
            this.lg = this.lb != null ? this.lb : this.parentSeries.vz;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.vz = this.lg;
            }
        }
        gf() {
            if (this.parentSeries == null) {
                return;
            }
            this.lj = this.lk != null ? this.lk : this.parentSeries.wm;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wm = this.lj;
            }
        }
        gl() {
            if (this.parentSeries == null) {
                return;
            }
            this.bh = !isNaN_(this.b0) ? this.b0 : this.parentSeries.jn;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jn = this.bh;
            }
        }
        gk() {
            if (this.parentSeries == null) {
                return;
            }
            this.ac = this.parentSeries.bw;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.bw = this.ac;
            }
        }
        ha() {
            if (this.parentSeries == null) {
                return;
            }
            this.ad = this.ae != 0 ? this.ae : this.parentSeries.cj;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.cj = this.ad;
            }
        }
        g0() {
            if (this.parentSeries == null) {
                return;
            }
            this.bi = !isNaN_(this.b1) || this.a3("MarkerFillOpacity") ? this.b1 : this.parentSeries.jo;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jo = this.bi;
            }
        }
        gg() {
            if (this.parentSeries == null) {
                return;
            }
            this.ll = this.ay("DashCap") ? this.parentSeries.wn : this.ln;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wn = this.ll;
            }
        }
        gm() {
            if (this.parentSeries == null) {
                return;
            }
            this.ao = this.ay("IsDropShadowEnabled") ? this.parentSeries.e8 : this.az;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.e8 = this.ao;
            }
        }
        hd() {
            if (this.parentSeries == null) {
                return;
            }
            this.bn = !isNaN_(this.b6) || this.a3("ShadowBlur") ? this.b6 : this.parentSeries.jv;
            if (this.visualSeriesLink != null && !isNaN_(this.bn)) {
                this.visualSeriesLink.jv = this.bn;
            }
        }
        he() {
            if (this.parentSeries == null) {
                return;
            }
            this.lh = Color.e(toNullable(Color.$, this.li), toNullable(Color.$, null)) ? this.li : this.parentSeries.wl;
            if (this.visualSeriesLink != null && Color.e(toNullable(Color.$, this.lh), toNullable(Color.$, null))) {
                this.visualSeriesLink.wl = this.lh;
            }
        }
        hs() {
            if (this.parentSeries == null) {
                return;
            }
            this.au = this.ay("UseSingleShadow") ? this.parentSeries.hi : this.a9;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.hi = this.au;
            }
        }
        hf() {
            if (this.parentSeries == null) {
                return;
            }
            this.bo = !isNaN_(this.b7) || this.a3("ShadowOffsetX") ? this.b7 : this.parentSeries.jw;
            if (this.visualSeriesLink != null && !isNaN_(this.bo)) {
                this.visualSeriesLink.jw = this.bo;
            }
        }
        hg() {
            if (this.parentSeries == null) {
                return;
            }
            this.bp = !isNaN_(this.b8) || this.a3("ShadowOffsetY") ? this.b8 : this.parentSeries.jx;
            if (this.visualSeriesLink != null && !isNaN_(this.bp)) {
                this.visualSeriesLink.jx = this.bp;
            }
        }
        gn() {
            if (this.parentSeries == null) {
                return;
            }
            this.ap = this.a0;
        }
        gt() {
            if (this.parentSeries == null) {
                return;
            }
            this.hx = this.h0 != null ? this.h0 : this.parentSeries.legendItemBadgeTemplate;
            if (this.visualSeriesLink != null) {
                if (this.hx != null) {
                    this.visualSeriesLink.legendItemBadgeTemplate = this.hx;
                }
                else {
                    this.visualSeriesLink.legendItemBadgeTemplate = null;
                }
            }
        }
        gu() {
            if (this.parentSeries == null) {
                return;
            }
            this.hy = this.h1 != null ? this.h1 : this.parentSeries.legendItemTemplate;
            if (this.visualSeriesLink != null) {
                if (this.hy != null) {
                    this.visualSeriesLink.legendItemTemplate = this.hy;
                }
                else {
                    this.visualSeriesLink.legendItemTemplate = null;
                }
            }
        }
        gv() {
            if (this.parentSeries == null) {
                return;
            }
            this.l4 = this.parentSeries.legendItemVisibility != 0 ? 1 : this.l6;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.legendItemVisibility = this.l4;
            }
        }
        gs() {
            if (this.parentSeries == null) {
                return;
            }
            this.t = this.u != 0 ? this.u : this.parentSeries.legendItemBadgeShape;
            if (this.visualSeriesLink != null) {
                if (this.t != 0) {
                    this.visualSeriesLink.legendItemBadgeShape = this.t;
                }
                else {
                    this.visualSeriesLink.legendItemBadgeShape = 0;
                }
            }
        }
        gr() {
            if (this.parentSeries == null) {
                return;
            }
            this.r = this.s != 0 ? this.s : this.parentSeries.be;
            if (this.visualSeriesLink != null) {
                if (this.r != 0) {
                    this.visualSeriesLink.be = this.r;
                }
                else {
                    this.visualSeriesLink.be = 0;
                }
            }
        }
        gy() {
            if (this.parentSeries == null) {
                return;
            }
            this.k7 = this.lc != null ? this.lc : this.parentSeries.y4;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.y4 = this.k7;
            }
        }
        g1() {
            if (this.parentSeries == null) {
                return;
            }
            this.k8 = this.ld != null ? this.ld : this.parentSeries.y5;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.y5 = this.k8;
            }
        }
        g3() {
            if (this.parentSeries == null) {
                return;
            }
            this.l2 = this.l3 != null ? this.l3 : this.parentSeries.y6;
            if (this.visualSeriesLink != null) {
                if (this.l2 != null) {
                    this.visualSeriesLink.y6 = this.l2;
                }
                else {
                    this.visualSeriesLink.y6 = null;
                }
            }
        }
        g7() {
            if (this.parentSeries == null) {
                return;
            }
            this.bk = !isNaN_(this.b3) || this.a3("Opacity") ? this.b3 : this.parentSeries._opacity;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink._opacity = this.bk;
            }
        }
        g8() {
        }
        g9() {
            if (this.parentSeries == null) {
                return;
            }
            this.la = this.lf != null ? this.lf : this.parentSeries.wf;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wf = this.la;
            }
        }
        gq() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.itemsSource = this.itemsSource;
            }
        }
        gj() {
            let a = this.highlightedItemsSource;
            if (a == null && this.parentSeries != null) {
                a = this.parentSeries.highlightedItemsSource;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.highlightedItemsSource = a;
            }
        }
        gd() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.ex && !this.parentSeries.f3) {
                a = this.parentSeries.ig;
            }
            if (this.parentSeries.isStacked && this.parentSeries.ex && this.parentSeries.f3) {
                a = this.parentSeries.ig;
            }
            this.bg = !isNaN_(this.br) || this.a3("AreaFillOpacity") ? this.br : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(AreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ir = this.bg;
                }
                if (typeCast(SplineAreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ir = this.bg;
                }
            }
        }
        go() {
            if (this.parentSeries == null) {
                return;
            }
            let a = false;
            if (this.parentSeries.isStacked && this.parentSeries.f3 && this.parentSeries.ex) {
                a = this.parentSeries.acq;
            }
            if (this.parentSeries.isStacked && this.parentSeries.e0) {
                a = this.parentSeries.acq;
            }
            this.aq = a;
            if (this.visualSeriesLink != null) {
                if (typeCast(SplineFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ado = this.aq;
                }
                if (typeCast(SplineAreaFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ado = this.aq;
                }
            }
        }
        hb() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.e2) {
                a = this.parentSeries.acq;
            }
            if (this.parentSeries.isStacked && this.parentSeries.e0) {
                a = this.parentSeries.acq;
            }
            this.bl = !isNaN_(this.b4) && this.b4 != a ? this.b4 : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(ColumnFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ady = this.bl;
                }
                if (typeCast(BarFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.ady = this.bl;
                }
            }
        }
        hc() {
            if (this.parentSeries == null) {
                return;
            }
            let a = NaN;
            if (this.parentSeries.isStacked && this.parentSeries.e2) {
                a = this.parentSeries.acr;
            }
            if (this.parentSeries.isStacked && this.parentSeries.e0) {
                a = this.parentSeries.acr;
            }
            this.bm = !isNaN_(this.b5) && this.b5 != a ? this.b5 : a;
            if (this.visualSeriesLink != null) {
                if (typeCast(ColumnFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adz = this.bm;
                }
                if (typeCast(BarFragment.$, this.visualSeriesLink) !== null) {
                    this.visualSeriesLink.adz = this.bm;
                }
            }
        }
        gw() {
            if (this.parentSeries == null) {
                return;
            }
            this.lm = this.ay("StartCap") ? this.parentSeries.wo : this.lo;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wo = this.lm;
            }
        }
        hh() {
            if (this.parentSeries == null) {
                return;
            }
            this.bq = !isNaN_(this.b9) && this.b9 != this.parentSeries.jy ? this.b9 : this.parentSeries.jy;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.jy = this.bq;
            }
        }
        gx() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.wp = this.parentSeries.wp;
            }
        }
        g5() {
            if (this.parentSeries == null) {
                return;
            }
            this.bj = !isNaN_(this.b2) || this.a3("MarkerThickness") ? this.b2 : this.parentSeries.x4;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.x4 = this.bj;
            }
        }
        hj() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.toolTip = this.cp;
            }
        }
        hl() {
            if (this.parentSeries == null) {
                return;
            }
            this.aj = this.al || this.parentSeries.de;
        }
        hk() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.km != 0) {
                this.cb = this.parentSeries.km;
                return;
            }
            this.cb = this.ay("IsDropShadowEnabled") ? this.parentSeries.km : this.ci;
        }
        hn() {
            if (this.parentSeries == null) {
                return;
            }
            this.ak = this.ay("IsDropShadowEnabled") ? this.parentSeries.df : this.am;
        }
        ho() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.zq != 0) {
                this.p = this.parentSeries.zq;
                return;
            }
            this.p = this.q;
        }
        hp() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.c6 != 0) {
                this.ag = this.parentSeries.c6;
                return;
            }
            this.ag = this.ah;
        }
        gp() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.z6 != false) {
                this.ar = this.parentSeries.z6;
                return;
            }
            this.ar = this.a2;
        }
        hm() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.parentSeries.kn != 1000) {
                this.cc = this.parentSeries.kn;
                return;
            }
            this.cc = this.cj;
        }
        hr() {
            if (this.parentSeries == null) {
                return;
            }
            this.at = this.ay("UseLightweightMarkers") ? this.parentSeries.x3 : this.a8;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.x3 = this.at;
            }
        }
        hi() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.title = this.co;
            }
        }
        gz() {
            if (this.parentSeries == null) {
                return;
            }
            this.v = this.w != 0 ? this.w : this.parentSeries.xl;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xl = this.v;
            }
        }
        g2() {
            if (this.parentSeries == null) {
                return;
            }
            this.x = this.y != 0 ? this.y : this.parentSeries.xp;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.xp = this.x;
            }
        }
        hq() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.aab = this.a3("UseHighMarkerFidelity") ? this.a7 : this.parentSeries.aab;
            }
        }
        hu() {
            if (this.parentSeries == null) {
                return;
            }
            this.d7 = this.a3("ValueMemberAsLegendUnit") ? this.fy : null;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.ab8 = this.fy;
            }
        }
        ht() {
            if (this.parentSeries == null) {
                return;
            }
            this.d5 = this.a3("ValueMemberAsLegendLabel") ? this.fw : this.co != null ? this.co.toString() : null;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.ab6 = this.d5;
            }
        }
        gh() {
            if (this.parentSeries == null) {
                return;
            }
            this.cu = this.a3("DataLegendGroup") ? this.ee : this.eg();
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.me = this.cu;
            }
        }
        gi() {
            if (this.parentSeries == null) {
                return;
            }
            this.cw = this.a3("HighlightedDataLegendGroup") ? this.ei : this.ee;
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.mu = this.cw;
            }
        }
        hv() {
            if (this.parentSeries == null) {
                return;
            }
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.aca = this.f0;
            }
        }
        ga(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));
            }
        }
        ay(a) {
            return !this.ba.contains(a);
        }
        a3(a) {
            return this.ba.contains(a);
        }
        f8(a, b, c, d) {
            if (this.parentSeries == null) {
                return;
            }
            if (!this.ba.contains(b)) {
                this.ba.add(b);
            }
            switch (b) {
                case StackedFragmentSeries.$$p[94]:
                    this.hi();
                    break;
                case StackedFragmentSeries.$$p[107]:
                    this.hv();
                    break;
                case StackedFragmentSeries.$$p[106]:
                    this.hu();
                    break;
                case StackedFragmentSeries.$$p[105]:
                    this.ht();
                    break;
                case StackedFragmentSeries.$$p[108]:
                    this.hw();
                    break;
                case StackedFragmentSeries.$$p[52]:
                    this.ge();
                    break;
                case StackedFragmentSeries.$$p[53]:
                    this.gf();
                    break;
                case StackedFragmentSeries.$$p[54]:
                    this.gg();
                    break;
                case StackedFragmentSeries.$$p[61]:
                    this.gm();
                    break;
                case StackedFragmentSeries.$$p[89]:
                    this.hd();
                    break;
                case StackedFragmentSeries.$$p[90]:
                    this.he();
                    break;
                case StackedFragmentSeries.$$p[104]:
                    this.hs();
                    break;
                case StackedFragmentSeries.$$p[91]:
                    this.hf();
                    break;
                case StackedFragmentSeries.$$p[92]:
                    this.hg();
                    break;
                case StackedFragmentSeries.$$p[71]:
                    this.gw();
                    break;
                case StackedFragmentSeries.$$p[62]:
                    this.gn();
                    break;
                case StackedFragmentSeries.$$p[78]:
                    this.g4();
                    break;
                case StackedFragmentSeries.$$p[80]:
                    this.g6();
                    break;
                case StackedFragmentSeries.$$p[73]:
                    this.gz();
                    break;
                case StackedFragmentSeries.$$p[75]:
                    this.g2();
                    break;
                case StackedFragmentSeries.$$p[68]:
                    this.gt();
                    break;
                case StackedFragmentSeries.$$p[69]:
                    this.gu();
                    break;
                case StackedFragmentSeries.$$p[70]:
                    this.gv();
                    break;
                case StackedFragmentSeries.$$p[67]:
                    this.gs();
                    break;
                case StackedFragmentSeries.$$p[66]:
                    this.gr();
                    break;
                case StackedFragmentSeries.$$p[72]:
                    this.gy();
                    break;
                case StackedFragmentSeries.$$p[76]:
                    this.g1();
                    break;
                case StackedFragmentSeries.$$p[77]:
                    this.g3();
                    break;
                case StackedFragmentSeries.$$p[79]:
                    this.g5();
                    break;
                case StackedFragmentSeries.$$p[83]:
                    this.g7();
                    break;
                case StackedFragmentSeries.$$p[82]:
                    this.g8();
                    break;
                case StackedFragmentSeries.$$p[65]:
                    this.gq();
                    break;
                case StackedFragmentSeries.$$p[56]:
                    this.gj();
                    break;
                case StackedFragmentSeries.$$p[85]:
                    this.g9();
                    break;
                case StackedFragmentSeries.$$p[84]:
                    this.ha();
                    break;
                case StackedFragmentSeries.$$p[74]:
                    this.g0();
                    break;
                case StackedFragmentSeries.$$p[51]:
                    this.gd();
                    break;
                case StackedFragmentSeries.$$p[87]:
                    this.hb();
                    break;
                case StackedFragmentSeries.$$p[88]:
                    this.hc();
                    break;
                case StackedFragmentSeries.$$p[63]:
                    this.go();
                    break;
                case StackedFragmentSeries.$$p[93]:
                    this.hh();
                    break;
                case StackedFragmentSeries.$$p[95]:
                    this.hj();
                    break;
                case StackedFragmentSeries.$$p[97]:
                    this.hl();
                    break;
                case StackedFragmentSeries.$$p[99]:
                    this.hn();
                    break;
                case StackedFragmentSeries.$$p[96]:
                    this.hk();
                    break;
                case StackedFragmentSeries.$$p[64]:
                    this.gp();
                    break;
                case StackedFragmentSeries.$$p[100]:
                    this.ho();
                    break;
                case StackedFragmentSeries.$$p[101]:
                    this.hp();
                    break;
                case StackedFragmentSeries.$$p[98]:
                    this.hm();
                    break;
                case StackedFragmentSeries.$$p[103]:
                    this.hr();
                    break;
                case StackedFragmentSeries.$$p[102]:
                    this.hq();
                    break;
                case "VisualSeriesLink":
                    if (c != null) {
                        let e = c;
                        e.assigningCategoryStyle = delegateRemove(e.assigningCategoryStyle, runOn(this, this.f7));
                        e.assigningCategoryMarkerStyle = delegateRemove(e.assigningCategoryMarkerStyle, runOn(this, this.f6));
                    }
                    if (d != null) {
                        this.l.z5 = this.ax;
                        this.l.z4 = this.aw;
                        let f = this.l;
                        f.assigningCategoryStyle = delegateCombine(f.assigningCategoryStyle, runOn(this, this.f7));
                        let g = this.l;
                        g.assigningCategoryMarkerStyle = delegateCombine(g.assigningCategoryMarkerStyle, runOn(this, this.f6));
                    }
                    break;
                case StackedFragmentSeries.$$p[60]:
                case StackedFragmentSeries.$$p[59]:
                    if (this.l != null) {
                        this.l.z5 = this.ax;
                        this.l.z4 = this.aw;
                    }
                    break;
            }
            this.parentSeries.r8(false);
        }
        f7(a, b) {
            if (this.assigningCategoryStyle != null) {
                this.assigningCategoryStyle(this, b);
            }
        }
        f6(a, b) {
            if (this.assigningCategoryMarkerStyle != null) {
                this.assigningCategoryMarkerStyle(this, b);
            }
        }
        gb() {
            if (this.visualSeriesLink != null) {
                this.visualSeriesLink.sd();
            }
        }
    }
    StackedFragmentSeries.$t = markType(StackedFragmentSeries, 'StackedFragmentSeries', DependencyObject.$, [INotifyPropertyChanged_$type]);
    StackedFragmentSeries.$$p = markDep(DependencyProperty, PropertyMetadata, StackedFragmentSeries, 'ga', ['ActualAreaFillOpacity:bg:h3', [1, NaN], 'ActualBrush:k6:h4', [Brush.$], 'ActualDashArray:lj:h5', [DoubleCollection.$], 'ActualDashCap:ll:h6', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'ActualDataLegendGroup:cu:h7', [2, null], 'ActualHighlightedValuesDataLegendGroup:cw:h8', [2, null], 'ActualHighlightedValuesDisplayMode:ac:h9', [SeriesHighlightedValuesDisplayMode_$type, enumGetBox(SeriesHighlightedValuesDisplayMode_$type, 1)], 'ActualHighlightingFadeOpacity:bh:ia', [1, NaN], 'ActualIsDropShadowEnabled:ao:ib', [0, false], 'ActualIsHitTestVisible:ap:ic', [0, true], 'ActualIsSplineShapePartOfRange:aq:id', [0, false], 'ActualIsTransitionInEnabled:ar:ie', [0], 'ActualLegendItemBadgeMode:r:ig', [LegendItemBadgeMode_$type], 'ActualLegendItemBadgeShape:t:ih', [LegendItemBadgeShape_$type], 'ActualLegendItemBadgeTemplate:hx:ii', [DataTemplate.$], 'ActualLegendItemTemplate:hy:ij', [DataTemplate.$], 'ActualLegendItemVisibility:l4:ik', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'ActualLineCap:lm:il', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'ActualMarkerBrush:k7:im', [Brush.$], 'ActualMarkerFillMode:v:io', [MarkerFillMode_$type, enumGetBox(MarkerFillMode_$type, 0)], 'ActualMarkerFillOpacity:bi:ip', [1, NaN], 'ActualMarkerOutlineMode:x:iq', [MarkerOutlineMode_$type, enumGetBox(MarkerOutlineMode_$type, 0)], 'ActualMarkerOutline:k8:ir', [Brush.$], 'ActualMarkerStyle:l2:is', [Style.$], 'ActualMarkerTemplate:hz:it', [DataTemplate.$], 'ActualMarkerThickness:bj:iu', [1, 1], 'ActualMarkerType:z:iv', [MarkerType_$type, enumGetBox(MarkerType_$type, 1)], 'ActualOpacityMask:k9:iw', [Brush.$], 'ActualOpacity:bk:ix', [1, NaN], 'ActualOutlineMode:ad:iy', [SeriesOutlineMode_$type, enumGetBox(SeriesOutlineMode_$type, 0)], 'ActualOutline:la:iz', [Brush.$], 'ActualRadiusX:bl:i0', [1, 0], 'ActualRadiusY:bm:i1', [1, 0], 'ActualShadowBlur:bn:i2', [1, NaN], 'ActualShadowColor:lh:i3', [Color.$], 'ActualShadowOffsetX:bo:i4', [1, NaN], 'ActualShadowOffsetY:bp:i5', [1, NaN], 'ActualThickness:bq:i6', [1, 1], 'ActualToolTip:ck:i7', [4], 'ActualTransitionDuration:cb:i8', [1], 'ActualTransitionEasingFunction:aj:i9', [Delegate_$type], 'ActualTransitionInDuration:cc:ja', [1], 'ActualTransitionInEasingFunction:ak:jb', [Delegate_$type], 'ActualTransitionInMode:p:jc', [CategoryTransitionInMode_$type], 'ActualTransitionInSpeedType:ag:jd', [TransitionInSpeedType_$type], 'ActualUseHighMarkerFidelity:as:je', [0, false], 'ActualUseLightweightMarkers:at:jf', [0, false], 'ActualUseSingleShadow:au:jg', [0, true], 'ActualValueMemberAsLegendLabel:d5:jh', [2, null], 'ActualValueMemberAsLegendUnit:d7:ji', [2, null], 'ActualVisibility:l5:jj', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'AreaFillOpacity:br:jk', [1, NaN], 'Brush:lb:jl', [Brush.$], 'DashArray:lk:jm', [DoubleCollection.$], 'DashCap:ln:jn', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'DataLegendGroup:ee:jo', [2, null], 'HighlightedItemsSource::jp', [IEnumerable_$type, null], 'HighlightedValuesDataLegendGroup:ei:jq', [2, null], 'HighlightingFadeOpacity:b0:jr', [1, NaN], 'IsCustomCategoryMarkerStyleAllowed:aw:js', [0, false], 'IsCustomCategoryStyleAllowed:ax:jt', [0, false], 'IsDropShadowEnabled:az:ju', [0], 'IsHitTestVisible:a0:jv', [0, true], 'IsSplineShapePartOfRange:a1:jw', [0, false], 'IsTransitionInEnabled:a2:jx', [0, false], 'ItemsSource::jy', [IEnumerable_$type, null], 'LegendItemBadgeMode:s:jz', [LegendItemBadgeMode_$type, enumGetBox(LegendItemBadgeMode_$type, 0)], 'LegendItemBadgeShape:u:j0', [LegendItemBadgeShape_$type, enumGetBox(LegendItemBadgeShape_$type, 0)], 'LegendItemBadgeTemplate:h0:j1', [DataTemplate.$, null], 'LegendItemTemplate:h1:j2', [DataTemplate.$, null], 'LegendItemVisibility:l6:j3', [Visibility_$type, enumGetBox(Visibility_$type, 0)], 'LineCap:lo:j4', [PenLineCap_$type, enumGetBox(PenLineCap_$type, 0)], 'MarkerBrush:lc:j5', [Brush.$], 'MarkerFillMode:w:j6', [MarkerFillMode_$type, enumGetBox(MarkerFillMode_$type, 0)], 'MarkerFillOpacity:b1:j7', [1, NaN], 'MarkerOutlineMode:y:j8', [MarkerOutlineMode_$type, enumGetBox(MarkerOutlineMode_$type, 0)], 'MarkerOutline:ld:j9', [Brush.$], 'MarkerStyle:l3:ka', [Style.$], 'MarkerTemplate:h2:kb', [DataTemplate.$, null], 'MarkerThickness:b2:kc', [1, NaN], 'MarkerType:aa:kd', [MarkerType_$type, enumGetBox(MarkerType_$type, 2)], 'Name:e7:ke', [2], 'OpacityMask:le:kf', [Brush.$], 'Opacity:b3:kg', [1, 1], 'OutlineMode:ae:kh', [SeriesOutlineMode_$type, enumGetBox(SeriesOutlineMode_$type, 0)], 'Outline:lf:ki', [Brush.$, null], 'ParentOrLocalBrush:lg:kj', [Brush.$], 'RadiusX:b4:kk', [1, NaN], 'RadiusY:b5:kl', [1, NaN], 'ShadowBlur:b6:km', [1, NaN], 'ShadowColor:li:kn', [Color.$], 'ShadowOffsetX:b7:ko', [1, NaN], 'ShadowOffsetY:b8:kp', [1, NaN], 'Thickness:b9:kq', [1, NaN], 'Title:co:kr', [4, "Series Title"], 'ToolTip:cp:ks', [4, null], 'TransitionDuration:ci:kt', [1, 0], 'TransitionEasingFunction:al:ku', [Delegate_$type, null], 'TransitionInDuration:cj:kv', [1, 1000], 'TransitionInEasingFunction:am:kw', [Delegate_$type, null], 'TransitionInMode:q:kx', [CategoryTransitionInMode_$type, enumGetBox(CategoryTransitionInMode_$type, 0)], 'TransitionInSpeedType:ah:ky', [TransitionInSpeedType_$type, enumGetBox(TransitionInSpeedType_$type, 0)], 'UseHighMarkerFidelity:a7:kz', [0, false], 'UseLightweightMarkers:a8:k0', [0, false], 'UseSingleShadow:a9:k1', [0], 'ValueMemberAsLegendLabel:fw:k2', [2, null], 'ValueMemberAsLegendUnit:fy:k3', [2, null], 'ValueMemberPath:f0:k4', [2, null], 'Visibility:l7:k5', [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.abj.count > 0) {
                    b.f = c.abj._inner[0].an;
                }
                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.qh;
            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.k.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.k.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.s.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.il + 3;
            this.dy._stroke = a;
            this.dy.ad = this.f.il + 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.il + 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.zd().df) {
                b = this.dt.fragmentXAxis;
            }
            else if (this.dt.fragmentYAxis.df) {
                b = this.dt.fragmentYAxis;
            }
            if (b.dj) {
                let c = b;
                a += "<span>${item." + c.dateTimeMemberPath + "}</span><br/>";
            }
            if (b != null && b.hx != null) {
                a += "<span>${item." + b.hx + "}</span><br/>";
            }
            a += "<span";
            let d = this.f.ba.a$v(this.f);
            if (!stringIsNullOrEmpty(d)) {
                a += " style='color:" + d + "'";
            }
            a += ">" + this.dt.title + ": </span><span class='ui-priority-primary'>" + "${item." + this.dt.aca + "}</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.il + 3;
            this.dx._stroke = a;
            this.dx.ad = this.f.il + 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.il + 3;
            this.d0._stroke = a;
            this.d0.ad = this.f.il + 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.il + 3;
            this.dz._stroke = a;
            this.dz.ad = this.f.il + 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.abo.f.count; a++) {
                this.di.abo.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.ex) || (f.isStacked && f.f3 && f.ex)) {
                d = 1;
                e = -3;
            }
            else if ((f.isStacked && f.fn) || (f.isStacked && f.f3)) {
                c = 3;
                d = 1;
                e = 4;
                b = false;
            }
            else if ((f.isStacked && f.e2)) {
                d = 5;
                e = 0;
            }
            let g = new Color();
            g.colorString = a;
            f.wl = g;
            f.jv = c;
            f.jw = d;
            f.jx = e;
            f.hi = 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.xv = Defaults.c;
                this.di.jy = 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.xv = Defaults.c;
                this.di.jy = 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.xv = 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.xv = Defaults.e;
            }
        }
        dn() {
            let a = 1;
            if (this.di.dc != null) {
                a = this.di.dc.ij;
            }
            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.xv = Defaults.e;
            }
        }
        dn() {
            let a = 1;
            if (this.di.dc != null) {
                a = this.di.dc.ij;
            }
            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.abp.dk;
            this.m = this.b.abp.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.pz(e, this.b.dc, true);
                        e.pi(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.s9(e);
                        }
                    }
                }
                if (d.newItems != null) {
                    for (let f of fromEn(d.newItems)) {
                        Series.pz(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.on(f);
                        }
                    }
                }
                this.b.r8(false);
            });
        }
        a(a) {
            if (this.b.isStacked && this.b.fn) {
                let b = new LineFragment();
                b.provideRenderer(a.ca);
                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.e2) {
                let c = new ColumnFragment();
                c.provideRenderer(a.ca);
                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.e0) {
                let d = new BarFragment();
                d.provideRenderer(a.ca);
                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.ex && !this.b.f3) {
                let e = new AreaFragment();
                e.provideRenderer(a.ca);
                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.f3 && !this.b.ex) {
                let f = new SplineFragment();
                f.provideRenderer(a.ca);
                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.f3 && this.b.ex) {
                let g = new SplineAreaFragment();
                g.provideRenderer(a.ca);
                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.jr = this.b.ik;
            }
        }
        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.hy;
            a.legendItemVisibility = b.l4;
            a.jp = this.b.jp;
            a.wo = b.lm;
            a.wm = b.lj;
            a.wn = b.ll;
            a.vz = b.lg;
            a._opacity = b.b3;
            a.wf = b.la;
            a.cj = b.ad;
            a.jr = this.b.jr;
            a.jy = b.bq;
            a.title = b.co;
            a.aca = b.f0;
            a.ab6 = b.fw;
            a.ab8 = b.fy;
            a._visibility = b.l5;
            a.jn = b.bh;
            a.bw = b.ac;
            a.me = b.ee;
            a.mu = b.ei;
            a.y4 = b.k7;
            a.y5 = b.k8;
            a.xp = b.x;
            a.y6 = b.l2;
            a.yn = b.hz;
            a.xv = b.z;
            a.x4 = b.bj;
            a.jo = b.bi;
            a.xl = b.v;
            a.x3 = b.at;
            a.aab = b.as;
            a.km = b.cb;
            a.de = b.aj;
            a.kn = b.cc;
            a.zq = b.p;
            a.c6 = b.ag;
            a.kn = b.cc;
            a.df = b.ak;
            a.z6 = b.ar;
            let c = typeCast(AreaFragment.$, a);
            if (c != null) {
                c.ig = b.bg;
            }
            let d = typeCast(SplineAreaFragment.$, a);
            if (d != null) {
                d.ig = b.bg;
            }
            let e = typeCast(ColumnFragment.$, a);
            if (e != null) {
                e.ady = b.bl;
                e.adz = b.bm;
            }
            let f = typeCast(BarFragment.$, a);
            if (f != null) {
                f.ady = b.bl;
                f.adz = b.bm;
            }
            a.toolTip = b.cp;
            a.e8 = b.ao;
            a.hi = b.au;
            b.hd();
            b.he();
            b.hf();
            b.hg();
        }
        i(a) {
            this.e.clear();
            this.d.clear();
            let b = 0;
            for (let c of fromEnum(this.f)) {
                c.g6 = true;
                c.index = this.b.ab1(this.c._inner[b]);
                c.c4 = this.b.c4;
                c.dc = this.b.dc;
                if (this.c._inner[b].a4) {
                    this.e.add(c);
                }
                else {
                    this.d.add(c);
                }
                if ((this.b.isStacked && this.b.fn) || (this.b.isStacked && this.b.ex) || (this.b.isStacked && this.b.f3)) {
                    c.ace(this.b.fetchXAxis());
                    c.acf(this.b.fetchYAxis());
                }
                c.r8(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.pf();
                }
            }
        }
    }
    StackedSeriesManager.$t = markType(StackedSeriesManager, 'StackedSeriesManager');
    return StackedSeriesManager;
})();