import * as tslib_1 from "tslib";
import * as React from 'react';
import { delegateCombine, delegateRemove } from "igniteui-react-core";
import { Visibility_$type } from "igniteui-react-core";
import { MarkerType_$type } from "./MarkerType";
import { IgrPropertyUpdatedEventArgs } from "igniteui-react-core";
import { StackedFragmentSeries } from "./StackedFragmentSeries";
import { getModifiedProps, isValidProp, brushToString, stringToBrush, ensureBool, colorToString, stringToColor, ensureEnum, toSpinal, initializePropertiesFromCss, NamePatcher, fromPoint, toPoint, fromRect } from "igniteui-react-core";
import { TypeRegistrar } from "igniteui-react-core";
import { SeriesOutlineMode_$type } from './SeriesOutlineMode';
/**
 * Represents a non-visual child of StackedSeriesBase.
*/
var IgrStackedFragmentSeries = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(IgrStackedFragmentSeries, _super);
    function IgrStackedFragmentSeries(props) {
        var _this = _super.call(this, props) || this;
        _this.__p = null;
        _this._hasUserValues = new Set();
        _this._stylingContainer = null;
        _this._stylingParent = null;
        _this._inStyling = false;
        _this._propertyUpdated = null;
        _this._propertyUpdated_wrapped = null;
        if (_this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(_this));
        }
        _this._implementation = _this.createImplementation();
        _this._implementation.externalObject = _this;
        _this.onImplementationCreated();
        return _this;
    }
    IgrStackedFragmentSeries.prototype.createImplementation = function () {
        return new StackedFragmentSeries();
    };
    IgrStackedFragmentSeries.prototype.onImplementationCreated = function () {
    };
    IgrStackedFragmentSeries.prototype.componentDidMount = function () {
        var e_1, _a;
        try {
            for (var _b = tslib_1.__values(Object.keys(this.props)), _c = _b.next(); !_c.done; _c = _b.next()) {
                var p = _c.value;
                if (isValidProp(this, p)) {
                    this[p] = this.props[p];
                }
            }
        }
        catch (e_1_1) {
            e_1 = { error: e_1_1 };
        }
        finally {
            try {
                if (_c && !_c.done && (_a = _b.return))
                    _a.call(_b);
            }
            finally {
                if (e_1)
                    throw e_1.error;
            }
        }
    };
    IgrStackedFragmentSeries.prototype.shouldComponentUpdate = function (nextProps, nextState) {
        var e_2, _a;
        var mod = getModifiedProps(this.props, nextProps);
        try {
            for (var _b = tslib_1.__values(Object.keys(mod)), _c = _b.next(); !_c.done; _c = _b.next()) {
                var p = _c.value;
                if (isValidProp(this, p)) {
                    this[p] = mod[p];
                }
            }
        }
        catch (e_2_1) {
            e_2 = { error: e_2_1 };
        }
        finally {
            try {
                if (_c && !_c.done && (_a = _b.return))
                    _a.call(_b);
            }
            finally {
                if (e_2)
                    throw e_2.error;
            }
        }
        return true;
    };
    IgrStackedFragmentSeries.prototype.render = function () {
        return null;
    };
    IgrStackedFragmentSeries.prototype.provideRenderer = function (renderer) {
        this._renderer = renderer;
        this.i.visualSeriesLink.provideRenderer(renderer);
    };
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: true,
        configurable: true
    });
    IgrStackedFragmentSeries._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igr" + name;
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgrStackedFragmentSeries.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: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "brush", {
        /**
         * Gets or sets the brush of the stacked fragment.
        */
        get: function () {
            return brushToString(this.i.hc);
        },
        set: function (v) {
            this.i.hc = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualBrush", {
        /**
         * Gets the actual brush used by the series.
        */
        get: function () {
            return brushToString(this.i.g7);
        },
        set: function (v) {
            this.i.g7 = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "isDropShadowEnabled", {
        /**
         * Gets or sets whether drop shadow should be enabled for this series.
        */
        get: function () {
            return this.i.ab;
        },
        set: function (v) {
            this.i.ab = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualIsDropShadowEnabled", {
        /**
         * Gets whether drop shadow is actually enabled for this series.
        */
        get: function () {
            return this.i.w;
        },
        set: function (v) {
            this.i.w = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "shadowBlur", {
        /**
         * Gets or sets the shadow blur.
         * This property is ignored when StackedFragmentSeries.UseSingleShadow is set to true.
        */
        get: function () {
            return this.i.bc;
        },
        set: function (v) {
            this.i.bc = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualShadowBlur", {
        /**
         * Gets the actual shadow blur used by the series.
        */
        get: function () {
            return this.i.at;
        },
        set: function (v) {
            this.i.at = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "shadowColor", {
        /**
         * Gets or sets the drop shadow color.
        */
        get: function () {
            return colorToString(this.i.hj);
        },
        set: function (v) {
            this.i.hj = stringToColor(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualShadowColor", {
        /**
         * Gets actual the drop shadow color used by the series.
        */
        get: function () {
            return colorToString(this.i.hi);
        },
        set: function (v) {
            this.i.hi = stringToColor(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.ah;
        },
        set: function (v) {
            this.i.ah = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.z;
        },
        set: function (v) {
            this.i.z = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "shadowOffsetX", {
        /**
         * Gets or sets the drop shadow x-offset.
        */
        get: function () {
            return this.i.bd;
        },
        set: function (v) {
            this.i.bd = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualShadowOffsetX", {
        /**
         * Gets the actual drop shadow x-offset applied to the series.
        */
        get: function () {
            return this.i.au;
        },
        set: function (v) {
            this.i.au = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "shadowOffsetY", {
        /**
         * Gets or sets the drop shadow y-offset.
        */
        get: function () {
            return this.i.be;
        },
        set: function (v) {
            this.i.be = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualShadowOffsetY", {
        /**
         * Gets the actual drop shadow y-offset applied to the series.
        */
        get: function () {
            return this.i.av;
        },
        set: function (v) {
            this.i.av = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.e3;
        },
        set: function (v) {
            this.i.e3 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualLegendItemBadgeTemplate", {
        /**
         * Gets the actual legend item badge template used by the series.
        */
        get: function () {
            return this.i.e0;
        },
        set: function (v) {
            this.i.e0 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.e4;
        },
        set: function (v) {
            this.i.e4 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualLegendItemTemplate", {
        /**
         * Gets the actual legend item template used by the series.
        */
        get: function () {
            return this.i.e1;
        },
        set: function (v) {
            this.i.e1 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "legendItemVisibility", {
        /**
         * Gets or sets the legend item visibility for the current series object.
        */
        get: function () {
            return this.i.h9;
        },
        set: function (v) {
            this.i.h9 = ensureEnum(Visibility_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualLegendItemVisibility", {
        /**
         * Gets the actual visibility of the legend items in the series.
        */
        get: function () {
            return this.i.h7;
        },
        set: function (v) {
            this.i.h7 = ensureEnum(Visibility_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.hd);
        },
        set: function (v) {
            this.i.hd = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerBrush", {
        /**
         * Gets the actual marker brush of the series.
        */
        get: function () {
            return brushToString(this.i.g8);
        },
        set: function (v) {
            this.i.g8 = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.he);
        },
        set: function (v) {
            this.i.he = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerOutline", {
        /**
         * Gets the actual marker outline of the series.
        */
        get: function () {
            return brushToString(this.i.g9);
        },
        set: function (v) {
            this.i.g9 = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "markerTemplate", {
        /**
         * Gets or sets the MarkerTemplate for the current series object.
        */
        get: function () {
            return this.i.e5;
        },
        set: function (v) {
            this.i.e5 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerTemplate", {
        /**
         * Gets the actual marker template used by the series.
        */
        get: function () {
            return this.i.e2;
        },
        set: function (v) {
            this.i.e2 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.n;
        },
        set: function (v) {
            this.i.n = ensureEnum(MarkerType_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerType", {
        /**
         * Gets the actual marker type set used in the series.
        */
        get: function () {
            return this.i.m;
        },
        set: function (v) {
            this.i.m = ensureEnum(MarkerType_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "name", {
        /**
         * Gets or sets the Name of the stacked fragment.
        */
        get: function () {
            return this.i.c8;
        },
        set: function (v) {
            this.i.c8 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "opacity", {
        /**
         * Gets or sets the Opacity of the stacked fragment.
        */
        get: function () {
            return this.i.a9;
        },
        set: function (v) {
            this.i.a9 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualOpacity", {
        /**
         * Gets the series opacity.
        */
        get: function () {
            return this.i.aq;
        },
        set: function (v) {
            this.i.aq = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.hg);
        },
        set: function (v) {
            this.i.hg = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualOutline", {
        /**
         * Gets the series outline.
        */
        get: function () {
            return brushToString(this.i.hb);
        },
        set: function (v) {
            this.i.hb = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "areaFillOpacity", {
        /**
         * Gets or sets the AreaFillOpacity of the stacked fragment. This property only applies for area-like series.
        */
        get: function () {
            return this.i.ax;
        },
        set: function (v) {
            this.i.ax = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualAreaFillOpacity", {
        /**
         * Gets the series ActualAreaFillOpacity.  This property only applies for area-like series.
        */
        get: function () {
            return this.i.am;
        },
        set: function (v) {
            this.i.am = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "markerFillOpacity", {
        /**
         * Gets or sets the opacity to use for the marker fills.
        */
        get: function () {
            return this.i.a7;
        },
        set: function (v) {
            this.i.a7 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerFillOpacity", {
        /**
         * Gets the actual opacity to use for hte marker fills.
        */
        get: function () {
            return this.i.ao;
        },
        set: function (v) {
            this.i.ao = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "outlineMode", {
        /**
         * Gets or sets the outline mode to use for the fragment.
        */
        get: function () {
            return this.i.q;
        },
        set: function (v) {
            this.i.q = ensureEnum(SeriesOutlineMode_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualOutlineMode", {
        /**
         * Gets the actual outline mode to use for the fragment.
        */
        get: function () {
            return this.i.p;
        },
        set: function (v) {
            this.i.p = ensureEnum(SeriesOutlineMode_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "highlightingFadeOpacity", {
        /**
         * Gets or sets the target opacity to fade to for fade style highlighting.
        */
        get: function () {
            return this.i.a6;
        },
        set: function (v) {
            this.i.a6 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualHighlightingFadeOpacity", {
        /**
         * Gets the actual target opacity to fade to for fade style highlighting.
        */
        get: function () {
            return this.i.an;
        },
        set: function (v) {
            this.i.an = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.ba;
        },
        set: function (v) {
            this.i.ba = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualRadiusX", {
        /**
         * Gets the actual corner radius of the series
        */
        get: function () {
            return this.i.ar;
        },
        set: function (v) {
            this.i.ar = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.bb;
        },
        set: function (v) {
            this.i.bb = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualRadiusY", {
        /**
         * Gets the actual corner radius of the series
        */
        get: function () {
            return this.i.as;
        },
        set: function (v) {
            this.i.as = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "thickness", {
        /**
         * Gets or sets the width of the current series object's line thickness.
        */
        get: function () {
            return this.i.bf;
        },
        set: function (v) {
            this.i.bf = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualThickness", {
        /**
         * Gets or sets the thickness of this stacked fragment.
        */
        get: function () {
            return this.i.aw;
        },
        set: function (v) {
            this.i.aw = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "markerThickness", {
        /**
         * Gets or sets the width of the current series object's marker thickness.
        */
        get: function () {
            return this.i.a8;
        },
        set: function (v) {
            this.i.a8 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualMarkerThickness", {
        /**
         * Gets actual marker thickness of this stacked fragment.
        */
        get: function () {
            return this.i.ap;
        },
        set: function (v) {
            this.i.ap = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.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.bp;
        },
        set: function (v) {
            this.i.bp = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "valueMemberPath", {
        /**
         * Gets or sets the value mapping property for the current series object.
        */
        get: function () {
            return this.i.ds;
        },
        set: function (v) {
            this.i.ds = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "visibility", {
        /**
         * Gets or sets the Visibility of the stacked fragment.
        */
        get: function () {
            return this.i.ia;
        },
        set: function (v) {
            this.i.ia = ensureEnum(Visibility_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "actualVisibility", {
        /**
         * Gets the actual visibility of the stacked fragment.
        */
        get: function () {
            return this.i.h8;
        },
        set: function (v) {
            this.i.h8 = ensureEnum(Visibility_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "parentOrLocalBrush", {
        /**
         * Gets the resolved brush used between the local series and the parent series.
        */
        get: function () {
            return brushToString(this.i.hh);
        },
        set: function (v) {
            this.i.hh = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    IgrStackedFragmentSeries.prototype.findByName = function (name) {
        return null;
    };
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: true,
        configurable: true
    });
    IgrStackedFragmentSeries.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgrStackedFragmentSeries.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("StackedFragmentSeries");
        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 item index associated with the specified world position

*/
    IgrStackedFragmentSeries.prototype.getItemIndex = function (world) {
        var iv = this.i.bh(toPoint(world));
        return (iv);
    };
    /**
     * Gets the item that is the best match for the specified world coordinates.
    
    * @param world  * The world coordinates to use.
    */
    IgrStackedFragmentSeries.prototype.getItem = function (world) {
        var iv = this.i.bn(toPoint(world));
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getPreviousOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.bk(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getNextOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.bj(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.a4(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.hx(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
    */
    IgrStackedFragmentSeries.prototype.getSeriesValueBoundingBox = function (world) {
        var iv = this.i.h1(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
    */
    IgrStackedFragmentSeries.prototype.getSeriesValueMarkerBoundingBox = function (world) {
        var iv = this.i.h3(toPoint(world));
        return fromRect(iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesHighValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.a0(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesHighValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.ht(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesLowValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.a2(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesLowValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.hv(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesValuePositionFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.hy(toPoint(mouse), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrStackedFragmentSeries.prototype.getSeriesValueFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.a5(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.
    
    */
    IgrStackedFragmentSeries.prototype.getItemSpan = function () {
        var iv = this.i.az();
        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.
    */
    IgrStackedFragmentSeries.prototype.toWorldPosition = function (seriesPoint) {
        var iv = this.i.hz(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.
    */
    IgrStackedFragmentSeries.prototype.fromWorldPosition = function (world) {
        var iv = this.i.hs(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.
    */
    IgrStackedFragmentSeries.prototype.scrollIntoView = function (item) {
        var iv = this.i.ae(item);
        return (iv);
    };
    /**
     * Gets the effective viewport, adjusted to account for margins and other factors.
    
    */
    IgrStackedFragmentSeries.prototype.getEffectiveViewport = function () {
        var iv = this.i.h0();
        return fromRect(iv);
    };
    /**
     * Notifies the series that a visual property has changed, requiring a visual update.
    
    */
    IgrStackedFragmentSeries.prototype.notifyVisualPropertiesChanged = function () {
        this.i.dw();
    };
    /**
     * Simulates a pointer hover over the series surface.
    
    * @param point  * The pointer position relative to the series viewport over which to hover.
    */
    IgrStackedFragmentSeries.prototype.simulateHover = function (point) {
        this.i.d0(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.
    */
    IgrStackedFragmentSeries.prototype.moveCursorPoint = function (point) {
        this.i.dv(toPoint(point));
    };
    Object.defineProperty(IgrStackedFragmentSeries.prototype, "propertyUpdated", {
        /**
         * Event raised when a property (including "effective" and non-dependency property) value changes.
        */
        get: function () {
            return this._propertyUpdated;
        },
        set: function (ev) {
            var _this = this;
            if (this._propertyUpdated_wrapped !== null) {
                this.i.propertyUpdated = delegateRemove(this.i.propertyUpdated, this._propertyUpdated_wrapped);
                this._propertyUpdated_wrapped = null;
                this._propertyUpdated = null;
            }
            this._propertyUpdated = ev;
            this._propertyUpdated_wrapped = function (o, e) {
                var outerArgs = new IgrPropertyUpdatedEventArgs();
                outerArgs._provideImplementation(e);
                if (_this.beforePropertyUpdated) {
                    _this.beforePropertyUpdated(_this, outerArgs);
                }
                if (_this._propertyUpdated) {
                    _this._propertyUpdated(_this, outerArgs);
                }
            };
            this.i.propertyUpdated = delegateCombine(this.i.propertyUpdated, this._propertyUpdated_wrapped);
        },
        enumerable: true,
        configurable: true
    });
    return IgrStackedFragmentSeries;
}(React.Component));
export { IgrStackedFragmentSeries };
//# sourceMappingURL=igr-stacked-fragment-series.js.map
