import * as tslib_1 from "tslib";
import { DateTimeFormats_$type } from "./DateTimeFormats";
import { IgcCellInfo } from "./igc-cell-info";
import { DateTimeCellModel as DateTimeCellModel_internal } from "./DateTimeCellModel";
import { ensureEnum, ensureBool, arrayFindByName } from "igniteui-webcomponents-core";
/**
 * Backing information about a date time cell for the grid.
*/
var IgcDateTimeCellInfo = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(IgcDateTimeCellInfo, _super);
    function IgcDateTimeCellInfo() {
        return _super.call(this) || this;
    }
    IgcDateTimeCellInfo.prototype.createImplementation = function () {
        return new DateTimeCellModel_internal();
    };
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "dateTimeValue", {
        /**
         * Sets or gets the DateTime value for the cell.
        */
        get: function () {
            return this.i.k6;
        },
        set: function (v) {
            this.i.k6 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "formatStringOverride", {
        /**
         * The format string to apply to the value
        */
        get: function () {
            return this.i.ln;
        },
        set: function (v) {
            this.i.ln = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "formatSpecifiers", {
        get: function () {
            return this.i.kx;
        },
        set: function (v) {
            this.i.kx = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "formatOverride", {
        /**
         * The format options to apply to the value
        */
        get: function () {
            return this.i.lg;
        },
        set: function (v) {
            this.i.lg = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "dateTimeFormat", {
        /**
         * Sets or gets the simple DateTimeFormat to use for the cell.
        */
        get: function () {
            return this.i.k2;
        },
        set: function (v) {
            this.i.k2 = ensureEnum(DateTimeFormats_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcDateTimeCellInfo.prototype, "isOffsetValue", {
        /**
         * Sets or gets whether the value to use is a DateTimeOffset value.
        */
        get: function () {
            return this.i.k4;
        },
        set: function (v) {
            this.i.k4 = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    IgcDateTimeCellInfo.prototype.findByName = function (name) {
        var baseResult = _super.prototype.findByName.call(this, name);
        if (baseResult) {
            return baseResult;
        }
        if (this.formatSpecifiers != null && arrayFindByName(this.formatSpecifiers, name)) {
            return arrayFindByName(this.formatSpecifiers, name);
        }
        return null;
    };
    return IgcDateTimeCellInfo;
}(IgcCellInfo));
export { IgcDateTimeCellInfo };
//# sourceMappingURL=igc-date-time-cell-info.js.map
