import { IgxSeriesComponent } from "./igx-series-component";
import { fromPoint, toPoint, ensureBool } from "igniteui-angular-core";
/**
 * Represents event arguments for chart's SeriesAdded and SeriesRemoved events
*
* The `DomainChartSeriesPointerEventArgs` class provide events for chart's SeriesAdded and SeriesRemoved.
*
* `SeriesPointerDown` get fired when the pointer is press down over a Series.
*
* ```html
*  <igx-financial-chart
*       #chart
*       [dataSource]="data"
*       (seriesPointerDown)=chart_seriesPointerDown()
*       >
*     </igx-financial-chart>
* ```
*
* ```ts
* this.chart.seriesPointerDown = this.chart_seriesPointerDown();
* ```
*/
var IgxDomainChartSeriesPointerEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgxDomainChartSeriesPointerEventArgs() {
    }
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxDomainChartSeriesPointerEventArgs.prototype.onImplementationCreated = function () {
    };
    IgxDomainChartSeriesPointerEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "series", {
        /**
         * Gets the series hit by the pointer.
        *
        * Use the `Series` property to get the series.
        *
        * ```ts
        *  var series= args.series;
        * ```
        */
        get: function () {
            var r = this.i.series;
            if (r == null) {
                return null;
            }
            if (!r.externalObject) {
                var e = IgxSeriesComponent._createFromInternal(r);
                if (e) {
                    e._implementation = r;
                }
                r.externalObject = e;
            }
            return r.externalObject;
        },
        set: function (v) {
            v == null ? this.i.series = null : this.i.series = v.i;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "item", {
        /**
         * Gets the item hit by the pointer.
        *
        * Use the `Item` property to get the items.
        *
        * <https://www.infragistics.com/help/wpf/infragisticswpf.controls.charts.xamdatachart~infragistics.controls.charts.domainchartseriespointereventargs~item>
        *
        * ```ts
        * var Chartitem = args.item;
        * ```
        */
        get: function () {
            return this.i.item;
        },
        set: function (v) {
            this.i.item = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "plotAreaPosition", {
        /**
         * Gets the pointer position relative to the plot area.
        */
        get: function () {
            return fromPoint(this.i.plotAreaPosition);
        },
        set: function (v) {
            this.i.plotAreaPosition = toPoint(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "chartPosition", {
        /**
         * Gets the mouse position relative to the chart.
        */
        get: function () {
            return fromPoint(this.i.chartPosition);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "worldPosition", {
        /**
        
        */
        get: function () {
            return fromPoint(this.i.worldPosition);
        },
        set: function (v) {
            this.i.worldPosition = toPoint(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDomainChartSeriesPointerEventArgs.prototype, "cancelSelection", {
        /**
         * Gets or sets whether to cancel series selection.
        */
        get: function () {
            return this.i.cancelSelection;
        },
        set: function (v) {
            this.i.cancelSelection = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    return IgxDomainChartSeriesPointerEventArgs;
}());
export { IgxDomainChartSeriesPointerEventArgs };
