import { GridEasingFunctionType_$type } from "./GridEasingFunctionType";
import { GridAnimationPhaseSettings as GridAnimationPhaseSettings_internal } from "./GridAnimationPhaseSettings";
import { ensureBool, ensureEnum } from "igniteui-webcomponents-core";
/**
 * This class is used to group the settings to define an animation phase.
*/
var IgcGridAnimationPhaseSettings = /** @class */ /*@__PURE__*/ (function () {
    function IgcGridAnimationPhaseSettings() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    IgcGridAnimationPhaseSettings.prototype.createImplementation = function () {
        return new GridAnimationPhaseSettings_internal();
    };
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    IgcGridAnimationPhaseSettings.prototype.onImplementationCreated = function () {
    };
    IgcGridAnimationPhaseSettings.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "durationMilliseconds", {
        /**
         * The duration of an animation, in milliseconds
        */
        get: function () {
            return this.i.l;
        },
        set: function (v) {
            this.i.l = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "holdInitialMilliseconds", {
        /**
         * The amount of time to delay an animation, in milliseconds.
        */
        get: function () {
            return this.i.m;
        },
        set: function (v) {
            this.i.m = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "perItemDelayMilliseconds", {
        /**
         * The amount of time to delay each item animating, in milliseconds
        */
        get: function () {
            return this.i.n;
        },
        set: function (v) {
            this.i.n = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "subItemDurationMilliseconds", {
        /**
         * The amount of time each item animating should take, in milliseconds
        */
        get: function () {
            return this.i.o;
        },
        set: function (v) {
            this.i.o = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "desiredSubItemDurationMilliseconds", {
        /**
         * The desired amount of time each item animating should take, in milliseconds
        */
        get: function () {
            return this.i.k;
        },
        set: function (v) {
            this.i.k = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "shouldItemsFinishSimultaneously", {
        /**
         * Configures whether all items animating should finish simultaneously
        */
        get: function () {
            return this.i.e;
        },
        set: function (v) {
            this.i.e = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcGridAnimationPhaseSettings.prototype, "easingFunctionType", {
        /**
         * Configures the Easing function used to animate the individual items
        */
        get: function () {
            return this.i.c;
        },
        set: function (v) {
            this.i.c = ensureEnum(GridEasingFunctionType_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    IgcGridAnimationPhaseSettings.prototype.findByName = function (name) {
        return null;
    };
    return IgcGridAnimationPhaseSettings;
}());
export { IgcGridAnimationPhaseSettings };
//# sourceMappingURL=igc-grid-animation-phase-settings.js.map
