/*
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 * as tslib_1 from "tslib";
import * as React from 'react';
import { Visibility_$type } from "igniteui-react-core/ES5/Visibility";
import { TransitionInSpeedType_$type } from './TransitionInSpeedType';
import { SeriesHitTestMode_$type } from './SeriesHitTestMode';
import { brushToString, stringToBrush, toPoint, fromPoint, fromRect, stringToColor, colorToString, ensureEnum, ensureBool, isValidProp, getModifiedProps } from "igniteui-react-core/ES5/componentUtil";
import { RenderRequestedEventArgs } from './RenderRequestedEventArgs';
import { delegateCombine, delegateRemove, TypeRegistrar } from "igniteui-react-core/ES5/type";
/**
 * Represents the base class for all IgxDataChartComponent series.
*/
var IgrSeries = /** @class */ (function (_super) {
    tslib_1.__extends(IgrSeries, _super);
    function IgrSeries(props) {
        var _this = _super.call(this, props) || this;
        _this._chartLevelData = null;
        _this._dataSource = null;
        _this._tooltipTemplate = null;
        _this._tooltipContent = null;
        _this._tooltipContainerTemplate = null;
        _this._renderer = null;
        _this._renderRequested = null;
        _this._renderRequested_wrapped = null;
        _this._implementation = _this.createImplementation();
        _this._implementation.externalObject = _this;
        _this.onImplementationCreated();
        return _this;
    }
    Object.defineProperty(IgrSeries.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype.onImplementationCreated = function () {
    };
    IgrSeries.prototype.createImplementation = function () {
        return null;
    };
    IgrSeries.prototype.initializeProperties = function () {
        try {
            for (var _a = tslib_1.__values(Object.keys(this.props)), _b = _a.next(); !_b.done; _b = _a.next()) {
                var p = _b.value;
                if (isValidProp(this, p)) {
                    this[p] = this.props[p];
                }
            }
        }
        catch (e_1_1) { e_1 = { error: e_1_1 }; }
        finally {
            try {
                if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
            }
            finally { if (e_1) throw e_1.error; }
        }
        var e_1, _c;
    };
    IgrSeries.prototype.componentDidMount = function () {
        this.initializeProperties();
    };
    Object.defineProperty(IgrSeries.prototype, "seriesInternal", {
        get: function () {
            return this.i;
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype.shouldComponentUpdate = function (nextProps, nextState) {
        var mod = getModifiedProps(this.props, nextProps);
        try {
            for (var _a = tslib_1.__values(Object.keys(mod)), _b = _a.next(); !_b.done; _b = _a.next()) {
                var p = _b.value;
                if (isValidProp(this, p)) {
                    this[p] = mod[p];
                }
            }
        }
        catch (e_2_1) { e_2 = { error: e_2_1 }; }
        finally {
            try {
                if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
            }
            finally { if (e_2) throw e_2.error; }
        }
        return true;
        var e_2, _c;
    };
    IgrSeries.prototype.render = function () {
        return null;
    };
    Object.defineProperty(IgrSeries.prototype, "name", {
        get: function () {
            return this.i.name;
        },
        set: function (value) {
            this.i.name = value;
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype.provideData = function (data) {
        this._chartLevelData = data;
        this.updateDataSource();
    };
    IgrSeries.prototype.updateDataSource = function () {
        if (this._dataSource == null) {
            this.i.itemsSource = this._chartLevelData;
        }
        else {
            this.i.itemsSource = this._dataSource;
        }
    };
    Object.defineProperty(IgrSeries.prototype, "dataSource", {
        get: function () {
            if (this._dataSource != null) {
                return this._dataSource;
            }
            return this.i.itemsSource;
        },
        set: function (value) {
            this._dataSource = value;
            this.updateDataSource();
            //console.log("setting axis data source: " + value)
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype.bindAxes = function (axes) {
    };
    Object.defineProperty(IgrSeries.prototype, "tooltipTemplate", {
        get: function () {
            return this._tooltipTemplate;
        },
        set: function (value) {
            this._tooltipTemplate = value;
            if (value == null) {
                if (this._tooltipContent !== null) {
                    //this._tooltipContent.destroy();
                    this._tooltipContent = null;
                }
            }
            if (this._tooltipContent != null) {
                this._tooltipContent.instance.template = this._tooltipTemplate;
            }
            else {
                if (this.owner != null) {
                    this.owner._ensureTooltipCreated(this);
                }
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "tooltipContainerTemplate", {
        get: function () {
            return this._tooltipContainerTemplate;
        },
        set: function (value) {
            this._tooltipContainerTemplate = value;
            if (this._tooltipContent != null) {
                this._tooltipContent.instance.containerTemplate = this._tooltipContainerTemplate;
            }
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype._ensureTooltipCreated = function (createTooltip, createWrapper) {
        if (this._tooltipTemplate == null) {
            this.i.toolTip = null;
        }
        if (this._tooltipContent == null && this._tooltipTemplate != null) {
            var tooltip = createTooltip();
            if (tooltip == null) {
                return;
            }
            this._tooltipContent = tooltip;
            tooltip.tooltipTemplate = this._tooltipTemplate;
            this.i.toolTip = createWrapper(tooltip);
        }
    };
    IgrSeries.prototype._ensureTooltipDestroyed = function () {
        if (this._tooltipContent !== null) {
            //this._tooltipContent.destroy();
            this._tooltipContent = null;
        }
    };
    IgrSeries.prototype._provideRenderer = function (renderer) {
        this._renderer = renderer;
    };
    IgrSeries._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(IgrSeries.prototype, "isAnnotationLayer", {
        /**
     * Gets whether the series is an annotation layer.
    */
        get: function () {
            return this.i.ci;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isVertical", {
        /**
         * Gets whether the current series is oriented vertically.
        */
        get: function () {
            return this.i.isVertical;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isFragment", {
        /**
         * Gets whether the current series is a stack fragment.
        */
        get: function () {
            return this.i.cr;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isAreaOrLine", {
        /**
         * Gets whether the current series shows an area or line shape.
        */
        get: function () {
            return this.i.cj;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isPolar", {
        /**
         * Gets whether the current series is a polar type series.
        */
        get: function () {
            return this.i.cz;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isScatter", {
        /**
         * Gets whether the current series is a scatter type series.
        */
        get: function () {
            return this.i.c3;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isRadial", {
        /**
         * Gets whether the current series is a radial type series.
        */
        get: function () {
            return this.i.c1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isStacked", {
        /**
         * Gets whether the current series is a stacked type series.
        */
        get: function () {
            return this.i.isStacked;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isFinancial", {
        /**
         * Gets whether the current series is a financial type series.
        */
        get: function () {
            return this.i.cq;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isRange", {
        /**
         * Gets whether the current series is a range type series.
        */
        get: function () {
            return this.i.c2;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isCategory", {
        /**
         * Gets whether the current series is a category type series.
        */
        get: function () {
            return this.i.ck;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isGeographic", {
        /**
         * Gets whether the current seires is a geogrpahic series.
        */
        get: function () {
            return this.i.cs;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isDefaultCrosshairBehaviorDisabled", {
        /**
         * Gets whether the default crosshair behavior should be disabled if this series is present.
        */
        get: function () {
            return this.i.cl;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isDefaultTooltipBehaviorDisabled", {
        /**
         * Gets whether the default tooltip behavior should be disabled if this series is present.
        */
        get: function () {
            return this.i.cm;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "hasMarkers", {
        /**
         * Returns whether the current series supports visual markers.
        */
        get: function () {
            return this.i.hasMarkers;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isIndexed", {
        /**
         * Gets if the series uses an index, which can be used to auto-assign it a color.
        */
        get: function () {
            return this.i.cv;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isUsableInLegend", {
        /**
         * Gets if the series should appear in any legends.
        */
        get: function () {
            return this.i.isUsableInLegend;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "legendItemVisibility", {
        /**
         * Gets or sets the legend item visibility for the current series object.
        */
        get: function () {
            return this.i.ln;
        },
        set: function (v) {
            this.i.ln = ensureEnum(Visibility_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.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.legendItemBadgeTemplate;
        },
        set: function (v) {
            this.i.legendItemBadgeTemplate = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.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.legendItemTemplate;
        },
        set: function (v) {
            this.i.legendItemTemplate = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "discreteLegendItemTemplate", {
        /**
         * Gets or sets the DiscreteLegendItemTemplate property.
         * The legend item control content is created according to the DiscreteLegendItemTemplate on-demand by
         * the series object itself.
        */
        get: function () {
            return this.i.jm;
        },
        set: function (v) {
            this.i.jm = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "transitionEasingFunction", {
        /**
         * Gets or sets the easing function used to morph the current series.
        */
        get: function () {
            return this.i.bu;
        },
        set: function (v) {
            this.i.bu = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "transitionInEasingFunction", {
        /**
         * Gets or sets the EasingFunction used to morph the current series during the initial transition.
        */
        get: function () {
            return this.i.bv;
        },
        set: function (v) {
            this.i.bv = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "transitionDuration", {
        /**
         * Gets or sets the duration of the current series's morph.
        */
        get: function () {
            return this.i.fc;
        },
        set: function (v) {
            this.i.fc = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "resolution", {
        /**
         * Gets or sets the current series object's rendering resolution.
        */
        get: function () {
            return this.i.eo;
        },
        set: function (v) {
            this.i.eo = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.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.fo;
        },
        set: function (v) {
            this.i.fo = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "brush", {
        /**
         * Gets or sets the brush to use for the series.
        */
        get: function () {
            return brushToString(this.i.kt);
        },
        set: function (v) {
            this.i.kt = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "actualBrush", {
        /**
         * Gets the effective brush for the current series object.
        */
        get: function () {
            return brushToString(this.i.kr);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.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.kw);
        },
        set: function (v) {
            this.i.kw = stringToBrush(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "actualOutline", {
        /**
         * Gets the effective outline for the current series object.
        */
        get: function () {
            return brushToString(this.i.ks);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "thickness", {
        /**
         * Gets or sets the width of the current series object's line thickness.
        */
        get: function () {
            return this.i.es;
        },
        set: function (v) {
            this.i.es = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isHighlightingEnabled", {
        /**
         * Gets or sets whether highlighting should be enabled for this series, if this type of series supports highlighting.
        */
        get: function () {
            return this.i.ct;
        },
        set: function (v) {
            this.i.ct = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isDropShadowEnabled", {
        /**
         * Gets or sets whether drop shadow should be enabled for this series.
        */
        get: function () {
            return this.i.co;
        },
        set: function (v) {
            this.i.co = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "shadowBlur", {
        /**
         * Gets or sets the shadow blur.
         * This property is ignored when Series.UseSingleShadow is set to true.
        */
        get: function () {
            return this.i.ep;
        },
        set: function (v) {
            this.i.ep = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "shadowColor", {
        /**
         * Gets or sets the drop shadow color.
        */
        get: function () {
            return colorToString(this.i.ky);
        },
        set: function (v) {
            this.i.ky = stringToColor(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "useSingleShadow", {
        /**
         * Gets or sets whether drop shadow is applied to the whole series visual or to each of the individual shapes forming the series.
         * When this property is set to true, no Series.ShadowBlur is applied.
        */
        get: function () {
            return this.i.dr;
        },
        set: function (v) {
            this.i.dr = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "shadowOffsetX", {
        /**
         * Gets or sets the drop shadow x-offset.
        */
        get: function () {
            return this.i.eq;
        },
        set: function (v) {
            this.i.eq = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "shadowOffsetY", {
        /**
         * Gets or sets the drop shadow y-offset.
        */
        get: function () {
            return this.i.er;
        },
        set: function (v) {
            this.i.er = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "areaFillOpacity", {
        /**
         * Gets or sets the opacity applied to the area fill visual.
         * This property only applies to series that have area visual.
        */
        get: function () {
            return this.i.d2;
        },
        set: function (v) {
            this.i.d2 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "actualAreaFillOpacity", {
        /**
         * Gets the actual opacity applied to the area fill visual.
        */
        get: function () {
            return this.i.d1;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isDefaultToolTipSelected", {
        /**
         * Gets if the default tooltip has been selected for display.
        */
        get: function () {
            return this.i.cn;
        },
        set: function (v) {
            this.i.cn = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "showDefaultTooltip", {
        /**
         * Gets or sets whether default tooltip will be shown.
        */
        get: function () {
            return this.i.da;
        },
        set: function (v) {
            this.i.da = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "transitionInDuration", {
        /**
         * Gets or sets the duration of the current series's transition in morph.
        */
        get: function () {
            return this.i.fd;
        },
        set: function (v) {
            this.i.fd = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "transitionInSpeedType", {
        /**
         * Gets or sets the duration of the current series's transition in morph.
        */
        get: function () {
            return this.i.bp;
        },
        set: function (v) {
            this.i.bp = ensureEnum(TransitionInSpeedType_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "mouseOverEnabled", {
        /**
         * Gets or sets the whether the chart reacts to mouse move events.
        */
        get: function () {
            return this.i.c4;
        },
        set: function (v) {
            this.i.c4 = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "coercionMethods", {
        /**
         * Gets or gets the coercion methods to use when loading data from data sources.
         * Should be specified before setting any member paths, if being used. Setting it later
         * will not cause data to be reimported into the chart.
        */
        get: function () {
            return this.i.coercionMethods;
        },
        set: function (v) {
            this.i.coercionMethods = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "expectFunctions", {
        /**
         * Gets or sets whether the series should expect that properties in its items source may be functions that need to be
         * evaluated to yield their value. This defaults to false, as there will be a subtle performance impact to using this feature.
         * This value must be set before assigning an item's source to take effect.
        */
        get: function () {
            return this.i.expectFunctions;
        },
        set: function (v) {
            this.i.expectFunctions = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "hitTestMode", {
        /**
         * Method of hit testing to use when pointing to items in this series.
        */
        get: function () {
            return this.i.be;
        },
        set: function (v) {
            this.i.be = ensureEnum(SeriesHitTestMode_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "actualHitTestMode", {
        /**
         * Resolved method of hit testing to use when pointing to items in the chart.
        */
        get: function () {
            return this.i.bc;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isNegativeColorSupported", {
        get: function () {
            return this.i.cy;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "isMarkerlessDisplayPreferred", {
        get: function () {
            return this.i.cx;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "finalValue", {
        get: function () {
            return this.i.d3;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrSeries.prototype, "percentChange", {
        get: function () {
            return this.i.en;
        },
        enumerable: true,
        configurable: true
    });
    IgrSeries.prototype.resolveTooltipBrush = function () {
        var iv = this.i.gl();
        return (iv);
    };
    /**
     * Gets the precise item index, if possible, based on the closeness to the previous or next whole integer. If the series cannot provide this information, GetExactItemIndex will return the same integer value as GetItemIndex.
    
    * @param world  * The world position for which to return the index.
    */
    IgrSeries.prototype.getExactItemIndex = function (world) {
        var iv = this.i.d6(toPoint(world));
        return (iv);
    };
    /**
     * Gets the item item index associated with the specified world position
    
    */
    IgrSeries.prototype.getItemIndex = function (world) {
        var iv = this.i.e2(toPoint(world));
        return (iv);
    };
    /**
     * Gets the item that is the best match for the specified world coordinates.
    
    * @param world  * The world coordinates to use.
    */
    IgrSeries.prototype.getItem = function (world) {
        var iv = this.i.fj(toPoint(world));
        return (iv);
    };
    IgrSeries.prototype.getPreviousOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.e8(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgrSeries.prototype.getNextOrExactIndex = function (world, skipUnknowns) {
        var iv = this.i.e6(toPoint(world), skipUnknowns);
        return (iv);
    };
    IgrSeries.prototype.getSeriesValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.eh(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrSeries.prototype.getSeriesValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.k9(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
    */
    IgrSeries.prototype.getSeriesValueBoundingBox = function (world) {
        var iv = this.i.li(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
    */
    IgrSeries.prototype.getSeriesValueMarkerBoundingBox = function (world) {
        var iv = this.i.lk(toPoint(world));
        return fromRect(iv);
    };
    IgrSeries.prototype.getSeriesHighValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.ed(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrSeries.prototype.getSeriesHighValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.k5(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrSeries.prototype.getSeriesLowValue = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.ef(toPoint(world), useInterpolation, skipUnknowns);
        return (iv);
    };
    IgrSeries.prototype.getSeriesLowValuePosition = function (world, useInterpolation, skipUnknowns) {
        var iv = this.i.k7(toPoint(world), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrSeries.prototype.getSeriesValuePositionFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.la(toPoint(mouse), useInterpolation, skipUnknowns);
        return fromPoint(iv);
    };
    IgrSeries.prototype.getSeriesValueFromSeriesPixel = function (mouse, useInterpolation, skipUnknowns) {
        var iv = this.i.ei(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.
    
    */
    IgrSeries.prototype.getItemSpan = function () {
        var iv = this.i.eb();
        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.
    */
    IgrSeries.prototype.toWorldPosition = function (seriesPoint) {
        var iv = this.i.lc(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.
    */
    IgrSeries.prototype.fromWorldPosition = function (world) {
        var iv = this.i.k4(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.
    */
    IgrSeries.prototype.scrollIntoView = function (item) {
        var iv = this.i.c6(item);
        return (iv);
    };
    /**
     * Renders the series.
    
    * @param animate  * True if the change should be animated.
    */
    IgrSeries.prototype.renderSeries = function (animate) {
        this.i.i1(animate);
    };
    /**
     * Gets the effective viewport, adjusted to account for margins and other factors.
    
    */
    IgrSeries.prototype.getEffectiveViewport = function () {
        var iv = this.i.getEffectiveViewport();
        return fromRect(iv);
    };
    IgrSeries.prototype.removeAllAlternateViews = function () {
        this.i.iw();
    };
    IgrSeries.prototype.removeAlternateView = function (viewIdentifier) {
        this.i.iy(viewIdentifier);
    };
    /**
     * Replays the assigned transition in animation, if any.
    
    */
    IgrSeries.prototype.replayTransitionIn = function () {
        this.i.i4();
    };
    /**
     * Simulates a pointer hover over the series surface.
    
    * @param point  * The pointer position relative to the series viewport over which to hover.
    */
    IgrSeries.prototype.simulateHover = function (point) {
        this.i.i8(toPoint(point));
    };
    IgrSeries.prototype.styleUpdated = function () {
        this.i.ja();
    };
    IgrSeries.prototype.setNegativeColors = function (negativeBrush, negativeOutline) {
        this.i.i6(stringToBrush(negativeBrush), stringToBrush(negativeOutline));
    };
    /**
     * 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.
    */
    IgrSeries.prototype.moveCursorPoint = function (point) {
        this.i.h1(toPoint(point));
    };
    Object.defineProperty(IgrSeries.prototype, "renderRequested", {
        /**
         * This event is raised every time a render has been requested from a series.
        */
        get: function () {
            return this._renderRequested;
        },
        set: function (ev) {
            var _this = this;
            if (this._renderRequested !== null) {
                this.i.renderRequested = delegateRemove(this.i.renderRequested, this._renderRequested_wrapped);
                this._renderRequested_wrapped = null;
                this._renderRequested = null;
            }
            this._renderRequested = ev;
            this._renderRequested_wrapped = function (o, e) {
                var outerArgs = new RenderRequestedEventArgs();
                outerArgs._provideImplementation(e);
                _this._renderRequested(_this, outerArgs);
            };
            this.i.renderRequested = delegateCombine(this.i.renderRequested, this._renderRequested_wrapped);
        },
        enumerable: true,
        configurable: true
    });
    return IgrSeries;
}(React.Component));
export { IgrSeries };
