import { EventEmitter, Output, Component, Input, ChangeDetectionStrategy } from '@angular/core';
import { delegateCombine } from "igniteui-angular-core";
import { Visibility_$type } from "igniteui-angular-core";
import { LegendItemBadgeShape_$type } from "igniteui-angular-core";
import { LegendItemBadgeMode_$type } from "igniteui-angular-core";
import { MarkerType_$type } from "./MarkerType";
import { SeriesOutlineMode_$type } from "./SeriesOutlineMode";
import { CategoryTransitionInMode_$type } from "./CategoryTransitionInMode";
import { TransitionInSpeedType_$type } from "./TransitionInSpeedType";
import { IgxPropertyUpdatedEventArgs } from "igniteui-angular-core";
import { StackedFragmentSeries } from "./StackedFragmentSeries";
import { TypeRegistrar } from "igniteui-angular-core";
import { NamePatcher, brushToString, stringToBrush, ensureBool, colorToString, stringToColor, ensureEnum, toSpinal, initializePropertiesFromCss, toPoint, fromPoint, fromRect } from "igniteui-angular-core";
import * as i0 from "@angular/core";
/**
 * Represents a non-visual child of StackedSeriesBase.
*/
var IgxStackedFragmentSeriesComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxStackedFragmentSeriesComponent() {
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._propertyUpdated = null;
        this._zoneRunner = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    IgxStackedFragmentSeriesComponent.prototype.createImplementation = function () {
        return new StackedFragmentSeries();
    };
    IgxStackedFragmentSeriesComponent.prototype.ngOnInit = function () {
    };
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: false,
        configurable: true
    });
    IgxStackedFragmentSeriesComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    IgxStackedFragmentSeriesComponent.prototype.onImplementationCreated = function () {
    };
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "dataSource", {
        /**
         * Gets or sets the ItemsSource property for the current series object. Normally you will want to provide data to the parent series instead.
         * But if you have data as individual columns, it can be assigned here. The data must be aligned and have the same number of items for each fragment.
        */
        get: function () {
            return this.i.itemsSource;
        },
        set: function (v) {
            this.i.itemsSource = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "brush", {
        /**
         * Gets or sets the brush of the stacked fragment.
        */
        get: function () {
            return brushToString(this.i.jk);
        },
        set: function (v) {
            this.i.jk = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualBrush", {
        /**
         * Gets the actual brush used by the series.
        */
        get: function () {
            return brushToString(this.i.jf);
        },
        set: function (v) {
            this.i.jf = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "isDropShadowEnabled", {
        /**
         * Gets or sets whether drop shadow should be enabled for this series.
        */
        get: function () {
            return this.i.ap;
        },
        set: function (v) {
            this.i.ap = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualIsDropShadowEnabled", {
        /**
         * Gets whether drop shadow is actually enabled for this series.
        */
        get: function () {
            return this.i.ai;
        },
        set: function (v) {
            this.i.ai = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "shadowBlur", {
        /**
         * Gets or sets the shadow blur.
         * This property is ignored when
         * StackedFragmentSeries.UseSingleShadow is set to true.
        */
        get: function () {
            return this.i.bs;
        },
        set: function (v) {
            this.i.bs = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualShadowBlur", {
        /**
         * Gets the actual shadow blur used by the series.
        */
        get: function () {
            return this.i.a9;
        },
        set: function (v) {
            this.i.a9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "shadowColor", {
        /**
         * Gets or sets the drop shadow color.
        */
        get: function () {
            return colorToString(this.i.jr);
        },
        set: function (v) {
            this.i.jr = stringToColor(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualShadowColor", {
        /**
         * Gets actual the drop shadow color used by the series.
        */
        get: function () {
            return colorToString(this.i.jq);
        },
        set: function (v) {
            this.i.jq = stringToColor(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "useSingleShadow", {
        /**
         * Gets or sets whether drop shadow is applied to the whole StackedFragmentSeries visual or to each of the individual shapes forming the StackedFragmentSeries.
         * When this property is set to true, no
         * StackedFragmentSeries.ShadowBlur is applied.
        */
        get: function () {
            return this.i.ax;
        },
        set: function (v) {
            this.i.ax = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualUseSingleShadow", {
        /**
         * Gets whether drop shadow is actually applied to the whole StackedFragmentSeries visual or to each of the individual shapes forming the StackedFragmentSeries.
        */
        get: function () {
            return this.i.an;
        },
        set: function (v) {
            this.i.an = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "shadowOffsetX", {
        /**
         * Gets or sets the drop shadow x-offset.
        */
        get: function () {
            return this.i.bt;
        },
        set: function (v) {
            this.i.bt = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualShadowOffsetX", {
        /**
         * Gets the actual drop shadow x-offset applied to the series.
        */
        get: function () {
            return this.i.ba;
        },
        set: function (v) {
            this.i.ba = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "shadowOffsetY", {
        /**
         * Gets or sets the drop shadow y-offset.
        */
        get: function () {
            return this.i.bu;
        },
        set: function (v) {
            this.i.bu = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualShadowOffsetY", {
        /**
         * Gets the actual drop shadow y-offset applied to the series.
        */
        get: function () {
            return this.i.bb;
        },
        set: function (v) {
            this.i.bb = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "legendItemBadgeTemplate", {
        /**
         * Gets or sets the LegendItemBadgeTemplate property.
         * The legend item badge is created according to the LegendItemBadgeTemplate on-demand by
         * the series object itself.
        */
        get: function () {
            return this.i.gn;
        },
        set: function (v) {
            this.i.gn = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualLegendItemBadgeTemplate", {
        /**
         * Gets the actual legend item badge template used by the series.
        */
        get: function () {
            return this.i.gk;
        },
        set: function (v) {
            this.i.gk = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "legendItemTemplate", {
        /**
         * Gets or sets the LegendItemTemplate property.
         * The legend item control content is created according to the LegendItemTemplate on-demand by
         * the series object itself.
        */
        get: function () {
            return this.i.go;
        },
        set: function (v) {
            this.i.go = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualLegendItemTemplate", {
        /**
         * Gets the actual legend item template used by the series.
        */
        get: function () {
            return this.i.gl;
        },
        set: function (v) {
            this.i.gl = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "legendItemVisibility", {
        /**
         * Gets or sets the legend item visibility for the current series object.
        */
        get: function () {
            return this.i.kh;
        },
        set: function (v) {
            this.i.kh = ensureEnum(Visibility_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualLegendItemVisibility", {
        /**
         * Gets the actual visibility of the legend items in the series.
        */
        get: function () {
            return this.i.kf;
        },
        set: function (v) {
            this.i.kf = ensureEnum(Visibility_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "legendItemBadgeShape", {
        /**
         * Gets or sets the type of legend badge representing the current series in a legend.
         * This property will be ignored when the LegendItemTemplate or LegendItemBadgeTemplate property is set on the series
        */
        get: function () {
            return this.i.r;
        },
        set: function (v) {
            this.i.r = ensureEnum(LegendItemBadgeShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "legendItemBadgeMode", {
        /**
         * Gets or sets the mode of legend badge representing the current series in a legend.
         * This property will be ignored when the LegendItemTemplate or LegendItemBadgeTemplate property is set on the series
        */
        get: function () {
            return this.i.p;
        },
        set: function (v) {
            this.i.p = ensureEnum(LegendItemBadgeMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualLegendItemBadgeShape", {
        /**
         * Gets the actual LegendItemBadgeShape of the series.
        */
        get: function () {
            return this.i.q;
        },
        set: function (v) {
            this.i.q = ensureEnum(LegendItemBadgeShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualLegendItemBadgeMode", {
        /**
         * Gets the actual LegendItemBadgeMode of the series.
        */
        get: function () {
            return this.i.o;
        },
        set: function (v) {
            this.i.o = ensureEnum(LegendItemBadgeMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerBrush", {
        /**
         * Gets or sets the brush that specifies how the current series object's marker interiors are painted.
        */
        get: function () {
            return brushToString(this.i.jl);
        },
        set: function (v) {
            this.i.jl = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerBrush", {
        /**
         * Gets the actual marker brush of the series.
        */
        get: function () {
            return brushToString(this.i.jg);
        },
        set: function (v) {
            this.i.jg = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerOutline", {
        /**
         * Gets or sets the brush that specifies how the current series object's marker outlines are painted.
        */
        get: function () {
            return brushToString(this.i.jm);
        },
        set: function (v) {
            this.i.jm = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerOutline", {
        /**
         * Gets the actual marker outline of the series.
        */
        get: function () {
            return brushToString(this.i.jh);
        },
        set: function (v) {
            this.i.jh = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerTemplate", {
        /**
         * Gets or sets the MarkerTemplate for the current series object.
        */
        get: function () {
            return this.i.gp;
        },
        set: function (v) {
            this.i.gp = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerTemplate", {
        /**
         * Gets the actual marker template used by the series.
        */
        get: function () {
            return this.i.gm;
        },
        set: function (v) {
            this.i.gm = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerType", {
        /**
         * Gets or sets the marker type for the current series object.
         * If the MarkerTemplate property is set, the setting of the MarkerType property will be ignored.
        */
        get: function () {
            return this.i.t;
        },
        set: function (v) {
            this.i.t = ensureEnum(MarkerType_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerType", {
        /**
         * Gets the actual marker type set used in the series.
        */
        get: function () {
            return this.i.s;
        },
        set: function (v) {
            this.i.s = ensureEnum(MarkerType_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "name", {
        /**
         * Gets or sets the Name of the stacked fragment.
        */
        get: function () {
            return this.i.d8;
        },
        set: function (v) {
            this.i.d8 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "opacity", {
        /**
         * Gets or sets the Opacity of the stacked fragment.
        */
        get: function () {
            return this.i.bp;
        },
        set: function (v) {
            this.i.bp = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualOpacity", {
        /**
         * Gets the series opacity.
        */
        get: function () {
            return this.i.a6;
        },
        set: function (v) {
            this.i.a6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "outline", {
        /**
         * Gets or sets the brush to use for the outline of the series.
         * Some series types, such as LineSeries, do not display outlines.  Therefore, this property does not affect some charts.
        */
        get: function () {
            return brushToString(this.i.jo);
        },
        set: function (v) {
            this.i.jo = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualOutline", {
        /**
         * Gets the series outline.
        */
        get: function () {
            return brushToString(this.i.jj);
        },
        set: function (v) {
            this.i.jj = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "areaFillOpacity", {
        /**
         * Gets or sets the AreaFillOpacity of the stacked fragment. This property only applies for area-like series.
        */
        get: function () {
            return this.i.bd;
        },
        set: function (v) {
            this.i.bd = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualAreaFillOpacity", {
        /**
         * Gets the series ActualAreaFillOpacity.  This property only applies for area-like series.
        */
        get: function () {
            return this.i.a2;
        },
        set: function (v) {
            this.i.a2 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerFillOpacity", {
        /**
         * Gets or sets the opacity to use for the marker fills.
        */
        get: function () {
            return this.i.bn;
        },
        set: function (v) {
            this.i.bn = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerFillOpacity", {
        /**
         * Gets the actual opacity to use for hte marker fills.
        */
        get: function () {
            return this.i.a4;
        },
        set: function (v) {
            this.i.a4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "outlineMode", {
        /**
         * Gets or sets the outline mode to use for the fragment.
        */
        get: function () {
            return this.i.w;
        },
        set: function (v) {
            this.i.w = ensureEnum(SeriesOutlineMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualOutlineMode", {
        /**
         * Gets the actual outline mode to use for the fragment.
        */
        get: function () {
            return this.i.v;
        },
        set: function (v) {
            this.i.v = ensureEnum(SeriesOutlineMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "highlightingFadeOpacity", {
        /**
         * Gets or sets the target opacity to fade to for fade style highlighting.
        */
        get: function () {
            return this.i.bm;
        },
        set: function (v) {
            this.i.bm = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualHighlightingFadeOpacity", {
        /**
         * Gets the actual target opacity to fade to for fade style highlighting.
        */
        get: function () {
            return this.i.a3;
        },
        set: function (v) {
            this.i.a3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "radiusX", {
        /**
         * Gets or sets the x-radius of the ellipse that is used to round the corners of the column. This only applies to Bar and Column series.
        */
        get: function () {
            return this.i.bq;
        },
        set: function (v) {
            this.i.bq = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualRadiusX", {
        /**
         * Gets the actual corner radius of the series
        */
        get: function () {
            return this.i.a7;
        },
        set: function (v) {
            this.i.a7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualIsSplineShapePartOfRange", {
        /**
         * Gets whether the spline part is considered to be part of the range
        */
        get: function () {
            return this.i.ak;
        },
        set: function (v) {
            this.i.ak = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "isSplineShapePartOfRange", {
        /**
         * Gets or sets whether to include the spline shape in the axis range requested of the axis.
        */
        get: function () {
            return this.i.ar;
        },
        set: function (v) {
            this.i.ar = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "radiusY", {
        /**
         * Gets or sets the y-radius of the ellipse that is used to round the corners of the column. This only applies to Bar and Column series.
        */
        get: function () {
            return this.i.br;
        },
        set: function (v) {
            this.i.br = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualRadiusY", {
        /**
         * Gets the actual corner radius of the series
        */
        get: function () {
            return this.i.a8;
        },
        set: function (v) {
            this.i.a8 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "thickness", {
        /**
         * Gets or sets the width of the current series object's line thickness.
        */
        get: function () {
            return this.i.bv;
        },
        set: function (v) {
            this.i.bv = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualThickness", {
        /**
         * Gets or sets the thickness of this stacked fragment.
        */
        get: function () {
            return this.i.bc;
        },
        set: function (v) {
            this.i.bc = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "markerThickness", {
        /**
         * Gets or sets the width of the current series object's marker thickness.
        */
        get: function () {
            return this.i.bo;
        },
        set: function (v) {
            this.i.bo = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualMarkerThickness", {
        /**
         * Gets actual marker thickness of this stacked fragment.
        */
        get: function () {
            return this.i.a5;
        },
        set: function (v) {
            this.i.a5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "title", {
        /**
         * Gets or sets the Title property.
         * The legend item control is created according to the Title on-demand by
         * the series object itself.
        */
        get: function () {
            return this.i.ca;
        },
        set: function (v) {
            this.i.ca = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionEasingFunction", {
        /**
         * Gets or sets the EasingFunction used to morph the current series.
        */
        get: function () {
            return this.i.ad;
        },
        set: function (v) {
            this.i.ad = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionDuration", {
        /**
         * Gets or sets the duration of the current series's morph.
        */
        get: function () {
            return this.i.b4;
        },
        set: function (v) {
            this.i.b4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionInDuration", {
        /**
         * Gets or sets the duration of the current series's transition in morph.
        */
        get: function () {
            return this.i.b5;
        },
        set: function (v) {
            this.i.b5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionInEasingFunction", {
        /**
         * Gets or sets the EasingFunction used to morph the current series during the initial transition.
        */
        get: function () {
            return this.i.ae;
        },
        set: function (v) {
            this.i.ae = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionInMode", {
        /**
         * Gets or sets the method by which to animate the data into the chart when the chart data source is swapped.
         * Note: Transitions are not currently supported for stacked series.
        */
        get: function () {
            return this.i.n;
        },
        set: function (v) {
            this.i.n = ensureEnum(CategoryTransitionInMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "isTransitionInEnabled", {
        /**
         * Gets or sets whether the series should transition into the plot area when a new data source is assigned.
         * Note: Transitions are not currently supported for stacked series.
        */
        get: function () {
            return this.i.as;
        },
        set: function (v) {
            this.i.as = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "transitionInSpeedType", {
        /**
         * Gets or sets the duration of the current series's transition in morph.
        */
        get: function () {
            return this.i.z;
        },
        set: function (v) {
            this.i.z = ensureEnum(TransitionInSpeedType_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualIsTransitionInEnabled", {
        /**
         * Gets the the resolved value of whether transition in is enabled.
        */
        get: function () {
            return this.i.al;
        },
        set: function (v) {
            this.i.al = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionInDuration", {
        /**
         * Gets the resolved transition in duration
        */
        get: function () {
            return this.i.by;
        },
        set: function (v) {
            this.i.by = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionInMode", {
        /**
         * Gets the series transition easing function.
        */
        get: function () {
            return this.i.m;
        },
        set: function (v) {
            this.i.m = ensureEnum(CategoryTransitionInMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionInSpeedType", {
        /**
         * Gets the series transition easing function.
        */
        get: function () {
            return this.i.y;
        },
        set: function (v) {
            this.i.y = ensureEnum(TransitionInSpeedType_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionInEasingFunction", {
        /**
         * Gets the series transition easing function.
        */
        get: function () {
            return this.i.ac;
        },
        set: function (v) {
            this.i.ac = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionEasingFunction", {
        /**
         * Gets the series transition easing function.
        */
        get: function () {
            return this.i.ab;
        },
        set: function (v) {
            this.i.ab = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualTransitionDuration", {
        /**
         * Gets the series transition duration.
        */
        get: function () {
            return this.i.bx;
        },
        set: function (v) {
            this.i.bx = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "valueMemberPath", {
        /**
         * Gets or sets the value mapping property for the current series object.
        */
        get: function () {
            return this.i.e1;
        },
        set: function (v) {
            this.i.e1 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "valueMemberAsLegendLabel", {
        /**
         * Gets or sets the label displayed before series value in the Data Legend.
        */
        get: function () {
            return this.i.ex;
        },
        set: function (v) {
            this.i.ex = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "valueMemberAsLegendUnit", {
        /**
         * Gets or sets the unit displayed after series value in the Data Legend.
        */
        get: function () {
            return this.i.ez;
        },
        set: function (v) {
            this.i.ez = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "visibility", {
        /**
         * Gets or sets the Visibility of the stacked fragment.
        */
        get: function () {
            return this.i.ki;
        },
        set: function (v) {
            this.i.ki = ensureEnum(Visibility_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "actualVisibility", {
        /**
         * Gets the actual visibility of the stacked fragment.
        */
        get: function () {
            return this.i.kg;
        },
        set: function (v) {
            this.i.kg = ensureEnum(Visibility_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "parentOrLocalBrush", {
        /**
         * Gets the resolved brush used between the local series and the parent series.
        */
        get: function () {
            return brushToString(this.i.jp);
        },
        set: function (v) {
            this.i.jp = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    IgxStackedFragmentSeriesComponent.prototype.findByName = function (name) {
        return null;
    };
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxStackedFragmentSeriesComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxStackedFragmentSeriesComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("StackedFragmentSeriesComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    /**
     * Gets the item index associated with the specified world position
    
    */
    IgxStackedFragmentSeriesComponent.prototype.getItemIndex = function (world) {
        var iv = this.i.bz(toPoint(world));
        return (iv);
    };
    /**
     * Gets the item that is the best match for the specified world coordinates.
    
    * @param world  * The world coordinates to use.
    */
    IgxStackedFragmentSeriesComponent.prototype.getItem = function (world) {
        var iv = this.i.b8(toPoint(world));
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getPreviousOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.b2(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getNextOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.b1(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.bk(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.j5(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    /**
     * If possible, will return the best available value bounding box within the series that has the best value match for the world position provided.
    
    * @param world  * The world coordinate for which to get a value bounding box for
    */
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValueBoundingBox = function (world) {
        var iv = this.i.j9(toPoint(world));
        return fromRect(iv);
    };
    /**
     * If possible, will return the best available value marker bounding box within the series that has the best value match for the world position provided.
    
    * @param world  * The world coordinates for which to get a value marker bounding box for
    */
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValueMarkerBoundingBox = function (world) {
        var iv = this.i.kb(toPoint(world));
        return fromRect(iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesHighValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.bg(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesHighValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.j1(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesLowValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.bi(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesLowValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.j3(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValuePositionFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.j6(toPoint(mouse), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgxStackedFragmentSeriesComponent.prototype.getSeriesValueFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.bl(toPoint(mouse), useInterpolation, skipUnknowns);
        return (iv);
    };
    /**
     * For a category plotted series, returns the current width of the items within the categories. This only returns a value if the items have some form of width (e.g. columns, bars, etc.) otherwise 0 is returned.
    
    */
    IgxStackedFragmentSeriesComponent.prototype.getItemSpan = function () {
        var iv = this.i.bf();
        return (iv);
    };
    /**
     * Converts a point from coordinates within the series plot area to a world position within axis space.
    
    * @param seriesPoint  * The pixel location within the plot area of the series.
    */
    IgxStackedFragmentSeriesComponent.prototype.toWorldPosition = function (seriesPoint) {
        var iv = this.i.j7(toPoint(seriesPoint));
        return fromPoint(iv);
    };
    /**
     * Converts a point from world coordinates to coordinates within the viewport of the series.
    
    * @param world  * The world position from which to convert.
    */
    IgxStackedFragmentSeriesComponent.prototype.fromWorldPosition = function (world) {
        var iv = this.i.j0(toPoint(world));
        return fromPoint(iv);
    };
    /**
     * Requests that the provided item should be brought into view if possible.
    
    * @param item  * The item to attempt to bring into view.
    */
    IgxStackedFragmentSeriesComponent.prototype.scrollIntoView = function (item) {
        var iv = this.i.au(item);
        return (iv);
    };
    /**
     * Gets the effective viewport, adjusted to account for margins and other factors.
    
    */
    IgxStackedFragmentSeriesComponent.prototype.getEffectiveViewport = function () {
        var iv = this.i.j8();
        return fromRect(iv);
    };
    /**
     * Notifies the series that a visual property has changed, requiring a visual update.
    
    */
    IgxStackedFragmentSeriesComponent.prototype.notifyVisualPropertiesChanged = function () {
        this.i.e5();
    };
    /**
     * Simulates a pointer hover over the series surface.
    
    * @param point  * The pointer position relative to the series viewport over which to hover.
    */
    IgxStackedFragmentSeriesComponent.prototype.simulateHover = function (point) {
        this.i.fa(toPoint(point));
    };
    /**
     * Moves the cursor point to the provided world position. Some series may react to the current cursor position.
    
    * @param point  * The cursor point, in world coordinates.
    */
    IgxStackedFragmentSeriesComponent.prototype.moveCursorPoint = function (point) {
        this.i.e4(toPoint(point));
    };
    IgxStackedFragmentSeriesComponent.prototype.replayTransitionIn = function () {
        this.i.e9();
    };
    Object.defineProperty(IgxStackedFragmentSeriesComponent.prototype, "propertyUpdated", {
        /**
         * Event raised when a property (including "effective" and non-dependency property) value changes.
        */
        get: function () {
            var _this = this;
            if (this._propertyUpdated == null) {
                this._propertyUpdated = new EventEmitter();
                this.i.propertyUpdated = delegateCombine(this.i.propertyUpdated, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxPropertyUpdatedEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforePropertyUpdated) {
                            _this.beforePropertyUpdated(_this, outerArgs);
                        }
                        _this._propertyUpdated.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._propertyUpdated;
        },
        enumerable: false,
        configurable: true
    });
    IgxStackedFragmentSeriesComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    IgxStackedFragmentSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: IgxStackedFragmentSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    IgxStackedFragmentSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: IgxStackedFragmentSeriesComponent, selector: "igx-stacked-fragment-series", inputs: { dataSource: "dataSource", brush: "brush", actualBrush: "actualBrush", isDropShadowEnabled: "isDropShadowEnabled", actualIsDropShadowEnabled: "actualIsDropShadowEnabled", shadowBlur: "shadowBlur", actualShadowBlur: "actualShadowBlur", shadowColor: "shadowColor", actualShadowColor: "actualShadowColor", useSingleShadow: "useSingleShadow", actualUseSingleShadow: "actualUseSingleShadow", shadowOffsetX: "shadowOffsetX", actualShadowOffsetX: "actualShadowOffsetX", shadowOffsetY: "shadowOffsetY", actualShadowOffsetY: "actualShadowOffsetY", legendItemBadgeTemplate: "legendItemBadgeTemplate", actualLegendItemBadgeTemplate: "actualLegendItemBadgeTemplate", legendItemTemplate: "legendItemTemplate", actualLegendItemTemplate: "actualLegendItemTemplate", legendItemVisibility: "legendItemVisibility", actualLegendItemVisibility: "actualLegendItemVisibility", legendItemBadgeShape: "legendItemBadgeShape", legendItemBadgeMode: "legendItemBadgeMode", actualLegendItemBadgeShape: "actualLegendItemBadgeShape", actualLegendItemBadgeMode: "actualLegendItemBadgeMode", markerBrush: "markerBrush", actualMarkerBrush: "actualMarkerBrush", markerOutline: "markerOutline", actualMarkerOutline: "actualMarkerOutline", markerTemplate: "markerTemplate", actualMarkerTemplate: "actualMarkerTemplate", markerType: "markerType", actualMarkerType: "actualMarkerType", name: "name", opacity: "opacity", actualOpacity: "actualOpacity", outline: "outline", actualOutline: "actualOutline", areaFillOpacity: "areaFillOpacity", actualAreaFillOpacity: "actualAreaFillOpacity", markerFillOpacity: "markerFillOpacity", actualMarkerFillOpacity: "actualMarkerFillOpacity", outlineMode: "outlineMode", actualOutlineMode: "actualOutlineMode", highlightingFadeOpacity: "highlightingFadeOpacity", actualHighlightingFadeOpacity: "actualHighlightingFadeOpacity", radiusX: "radiusX", actualRadiusX: "actualRadiusX", actualIsSplineShapePartOfRange: "actualIsSplineShapePartOfRange", isSplineShapePartOfRange: "isSplineShapePartOfRange", radiusY: "radiusY", actualRadiusY: "actualRadiusY", thickness: "thickness", actualThickness: "actualThickness", markerThickness: "markerThickness", actualMarkerThickness: "actualMarkerThickness", title: "title", transitionEasingFunction: "transitionEasingFunction", transitionDuration: "transitionDuration", transitionInDuration: "transitionInDuration", transitionInEasingFunction: "transitionInEasingFunction", transitionInMode: "transitionInMode", isTransitionInEnabled: "isTransitionInEnabled", transitionInSpeedType: "transitionInSpeedType", actualIsTransitionInEnabled: "actualIsTransitionInEnabled", actualTransitionInDuration: "actualTransitionInDuration", actualTransitionInMode: "actualTransitionInMode", actualTransitionInSpeedType: "actualTransitionInSpeedType", actualTransitionInEasingFunction: "actualTransitionInEasingFunction", actualTransitionEasingFunction: "actualTransitionEasingFunction", actualTransitionDuration: "actualTransitionDuration", valueMemberPath: "valueMemberPath", valueMemberAsLegendLabel: "valueMemberAsLegendLabel", valueMemberAsLegendUnit: "valueMemberAsLegendUnit", visibility: "visibility", actualVisibility: "actualVisibility", parentOrLocalBrush: "parentOrLocalBrush" }, outputs: { propertyUpdated: "propertyUpdated" }, providers: [], ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
    return IgxStackedFragmentSeriesComponent;
}());
export { IgxStackedFragmentSeriesComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: IgxStackedFragmentSeriesComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-stacked-fragment-series',
                    template: "",
                    providers: [],
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { dataSource: [{
                type: Input
            }], brush: [{
                type: Input
            }], actualBrush: [{
                type: Input
            }], isDropShadowEnabled: [{
                type: Input
            }], actualIsDropShadowEnabled: [{
                type: Input
            }], shadowBlur: [{
                type: Input
            }], actualShadowBlur: [{
                type: Input
            }], shadowColor: [{
                type: Input
            }], actualShadowColor: [{
                type: Input
            }], useSingleShadow: [{
                type: Input
            }], actualUseSingleShadow: [{
                type: Input
            }], shadowOffsetX: [{
                type: Input
            }], actualShadowOffsetX: [{
                type: Input
            }], shadowOffsetY: [{
                type: Input
            }], actualShadowOffsetY: [{
                type: Input
            }], legendItemBadgeTemplate: [{
                type: Input
            }], actualLegendItemBadgeTemplate: [{
                type: Input
            }], legendItemTemplate: [{
                type: Input
            }], actualLegendItemTemplate: [{
                type: Input
            }], legendItemVisibility: [{
                type: Input
            }], actualLegendItemVisibility: [{
                type: Input
            }], legendItemBadgeShape: [{
                type: Input
            }], legendItemBadgeMode: [{
                type: Input
            }], actualLegendItemBadgeShape: [{
                type: Input
            }], actualLegendItemBadgeMode: [{
                type: Input
            }], markerBrush: [{
                type: Input
            }], actualMarkerBrush: [{
                type: Input
            }], markerOutline: [{
                type: Input
            }], actualMarkerOutline: [{
                type: Input
            }], markerTemplate: [{
                type: Input
            }], actualMarkerTemplate: [{
                type: Input
            }], markerType: [{
                type: Input
            }], actualMarkerType: [{
                type: Input
            }], name: [{
                type: Input
            }], opacity: [{
                type: Input
            }], actualOpacity: [{
                type: Input
            }], outline: [{
                type: Input
            }], actualOutline: [{
                type: Input
            }], areaFillOpacity: [{
                type: Input
            }], actualAreaFillOpacity: [{
                type: Input
            }], markerFillOpacity: [{
                type: Input
            }], actualMarkerFillOpacity: [{
                type: Input
            }], outlineMode: [{
                type: Input
            }], actualOutlineMode: [{
                type: Input
            }], highlightingFadeOpacity: [{
                type: Input
            }], actualHighlightingFadeOpacity: [{
                type: Input
            }], radiusX: [{
                type: Input
            }], actualRadiusX: [{
                type: Input
            }], actualIsSplineShapePartOfRange: [{
                type: Input
            }], isSplineShapePartOfRange: [{
                type: Input
            }], radiusY: [{
                type: Input
            }], actualRadiusY: [{
                type: Input
            }], thickness: [{
                type: Input
            }], actualThickness: [{
                type: Input
            }], markerThickness: [{
                type: Input
            }], actualMarkerThickness: [{
                type: Input
            }], title: [{
                type: Input
            }], transitionEasingFunction: [{
                type: Input
            }], transitionDuration: [{
                type: Input
            }], transitionInDuration: [{
                type: Input
            }], transitionInEasingFunction: [{
                type: Input
            }], transitionInMode: [{
                type: Input
            }], isTransitionInEnabled: [{
                type: Input
            }], transitionInSpeedType: [{
                type: Input
            }], actualIsTransitionInEnabled: [{
                type: Input
            }], actualTransitionInDuration: [{
                type: Input
            }], actualTransitionInMode: [{
                type: Input
            }], actualTransitionInSpeedType: [{
                type: Input
            }], actualTransitionInEasingFunction: [{
                type: Input
            }], actualTransitionEasingFunction: [{
                type: Input
            }], actualTransitionDuration: [{
                type: Input
            }], valueMemberPath: [{
                type: Input
            }], valueMemberAsLegendLabel: [{
                type: Input
            }], valueMemberAsLegendUnit: [{
                type: Input
            }], visibility: [{
                type: Input
            }], actualVisibility: [{
                type: Input
            }], parentOrLocalBrush: [{
                type: Input
            }], propertyUpdated: [{
                type: Output
            }] } });
