/*
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 { Base, INotifyPropertyChanged_$type, PropertyChangedEventArgs, enumGetBox, markType } from "igniteui-webcomponents-core";
import { GridEasingFunctionType_$type } from "./GridEasingFunctionType";
/**
 * @hidden
 */
var GridAnimationPhaseSettings = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(GridAnimationPhaseSettings, _super);
    function GridAnimationPhaseSettings() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.p = null;
        _this.g = 300;
        _this.h = 0;
        _this.i = -1;
        _this.j = -1;
        _this.f = 300;
        _this.d = false;
        _this.b = 1;
        _this.propertyChanged = null;
        return _this;
    }
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "l", {
        get: function () {
            return this.g;
        },
        set: function (a) {
            var b = this.g;
            this.g = a;
            if (b != this.g) {
                this.x("DurationMilliseconds", b, this.g);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "m", {
        get: function () {
            return this.h;
        },
        set: function (a) {
            var b = this.h;
            this.h = a;
            if (b != this.h) {
                this.x("HoldInitialMilliseconds", b, this.h);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "n", {
        get: function () {
            return this.i;
        },
        set: function (a) {
            var b = this.i;
            this.i = a;
            if (b != this.i) {
                this.x("PerItemDelayMilliseconds", b, this.i);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "o", {
        get: function () {
            return this.j;
        },
        set: function (a) {
            var b = this.j;
            this.j = a;
            if (b != this.j) {
                this.x("SubItemDurationMilliseconds", b, this.j);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "k", {
        get: function () {
            return this.f;
        },
        set: function (a) {
            var b = this.f;
            this.f = a;
            if (b != this.f) {
                this.x("DesiredSubItemDurationMilliseconds", b, this.f);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "e", {
        get: function () {
            return this.d;
        },
        set: function (a) {
            var b = this.d;
            this.d = a;
            if (b != this.d) {
                this.x("ShouldItemsFinishSimultaneously", b, this.d);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(GridAnimationPhaseSettings.prototype, "c", {
        get: function () {
            return this.b;
        },
        set: function (a) {
            var b = this.b;
            this.b = a;
            if (b != this.b) {
                this.x("EasingFunctionType", enumGetBox(GridEasingFunctionType_$type, b), enumGetBox(GridEasingFunctionType_$type, this.b));
            }
        },
        enumerable: true,
        configurable: true
    });
    GridAnimationPhaseSettings.prototype.x = function (a, b, c) {
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    GridAnimationPhaseSettings.prototype.a = function () {
        var _this = this;
        return ((function () {
            var $ret = new GridAnimationPhaseSettings();
            $ret.l = _this.l;
            $ret.c = _this.c;
            $ret.m = _this.m;
            $ret.n = _this.n;
            $ret.e = _this.e;
            $ret.o = _this.o;
            $ret.k = _this.k;
            return $ret;
        })());
    };
    GridAnimationPhaseSettings.$t = markType(GridAnimationPhaseSettings, 'GridAnimationPhaseSettings', Base.$, [INotifyPropertyChanged_$type]);
    return GridAnimationPhaseSettings;
}(Base));
export { GridAnimationPhaseSettings };
//# sourceMappingURL=GridAnimationPhaseSettings.js.map
