import { IgxFunnelChartSelectedItemsCollection } from "./igx-funnel-chart-selected-items-collection";
import { FunnelChartSelectedItemsCollection as FunnelChartSelectedItemsCollection_internal } from "./FunnelChartSelectedItemsCollection";
import { Base } from "igniteui-angular-core";
import { SyncableObservableCollection$1 } from "igniteui-angular-core";
/**
 * Provides data for the SelectedItemsChanged event.
*/
var IgxFunnelChartSelectedItemsChangedEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgxFunnelChartSelectedItemsChangedEventArgs() {
        this._oldItems = null;
        this._newItems = null;
        this._currentItems = null;
    }
    Object.defineProperty(IgxFunnelChartSelectedItemsChangedEventArgs.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxFunnelChartSelectedItemsChangedEventArgs.prototype.onImplementationCreated = function () {
    };
    IgxFunnelChartSelectedItemsChangedEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgxFunnelChartSelectedItemsChangedEventArgs.prototype, "oldItems", {
        /**
         * A list of the previously selected items.
        */
        get: function () {
            if (this._oldItems === null) {
                var coll = new IgxFunnelChartSelectedItemsCollection();
                var innerColl = this.i.oldItems;
                if (!innerColl) {
                    innerColl = new FunnelChartSelectedItemsCollection_internal();
                }
                this._oldItems = coll._fromInner(innerColl);
                this.i.oldItems = innerColl;
            }
            return this._oldItems;
        },
        set: function (v) {
            if (this._oldItems !== null) {
                this._oldItems._setSyncTarget(null);
                this._oldItems = null;
            }
            var coll = new IgxFunnelChartSelectedItemsCollection();
            this._oldItems = coll._fromOuter(v);
            var syncColl = new SyncableObservableCollection$1(Base.$type);
            var innerColl = this.i.oldItems;
            if (!innerColl) {
                innerColl = new FunnelChartSelectedItemsCollection_internal();
            }
            syncColl._inner = innerColl;
            syncColl.clear();
            this._oldItems._setSyncTarget(syncColl);
            this.i.oldItems = innerColl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFunnelChartSelectedItemsChangedEventArgs.prototype, "newItems", {
        /**
         * A list of the items being selected.
        */
        get: function () {
            if (this._newItems === null) {
                var coll = new IgxFunnelChartSelectedItemsCollection();
                var innerColl = this.i.newItems;
                if (!innerColl) {
                    innerColl = new FunnelChartSelectedItemsCollection_internal();
                }
                this._newItems = coll._fromInner(innerColl);
                this.i.newItems = innerColl;
            }
            return this._newItems;
        },
        set: function (v) {
            if (this._newItems !== null) {
                this._newItems._setSyncTarget(null);
                this._newItems = null;
            }
            var coll = new IgxFunnelChartSelectedItemsCollection();
            this._newItems = coll._fromOuter(v);
            var syncColl = new SyncableObservableCollection$1(Base.$type);
            var innerColl = this.i.newItems;
            if (!innerColl) {
                innerColl = new FunnelChartSelectedItemsCollection_internal();
            }
            syncColl._inner = innerColl;
            syncColl.clear();
            this._newItems._setSyncTarget(syncColl);
            this.i.newItems = innerColl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFunnelChartSelectedItemsChangedEventArgs.prototype, "currentItems", {
        /**
         * A list of the current items selected.
        */
        get: function () {
            if (this._currentItems === null) {
                var coll = new IgxFunnelChartSelectedItemsCollection();
                var innerColl = this.i.currentItems;
                if (!innerColl) {
                    innerColl = new FunnelChartSelectedItemsCollection_internal();
                }
                this._currentItems = coll._fromInner(innerColl);
                this.i.currentItems = innerColl;
            }
            return this._currentItems;
        },
        set: function (v) {
            if (this._currentItems !== null) {
                this._currentItems._setSyncTarget(null);
                this._currentItems = null;
            }
            var coll = new IgxFunnelChartSelectedItemsCollection();
            this._currentItems = coll._fromOuter(v);
            var syncColl = new SyncableObservableCollection$1(Base.$type);
            var innerColl = this.i.currentItems;
            if (!innerColl) {
                innerColl = new FunnelChartSelectedItemsCollection_internal();
            }
            syncColl._inner = innerColl;
            syncColl.clear();
            this._currentItems._setSyncTarget(syncColl);
            this.i.currentItems = innerColl;
        },
        enumerable: false,
        configurable: true
    });
    return IgxFunnelChartSelectedItemsChangedEventArgs;
}());
export { IgxFunnelChartSelectedItemsChangedEventArgs };
