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.
*/
export class IgcDateTimeCellInfo extends IgcCellInfo {
    createImplementation() {
        return new DateTimeCellModel_internal();
    }
    /**
                                 * @hidden
                                 */
    get i() {
        return this._implementation;
    }
    constructor() {
        super();
    }
    /**
     * Sets or gets the DateTime value for the cell.
    */
    get dateTimeValue() {
        return this.i.k6;
    }
    set dateTimeValue(v) {
        this.i.k6 = v;
    }
    /**
     * The format string to apply to the value
    */
    get formatStringOverride() {
        return this.i.ln;
    }
    set formatStringOverride(v) {
        this.i.ln = v;
    }
    get formatSpecifiers() {
        return this.i.kx;
    }
    set formatSpecifiers(v) {
        this.i.kx = v;
    }
    /**
     * The format options to apply to the value
    */
    get formatOverride() {
        return this.i.lg;
    }
    set formatOverride(v) {
        this.i.lg = v;
    }
    /**
     * Sets or gets the simple DateTimeFormat to use for the cell.
    */
    get dateTimeFormat() {
        return this.i.k2;
    }
    set dateTimeFormat(v) {
        this.i.k2 = ensureEnum(DateTimeFormats_$type, v);
    }
    /**
     * Sets or gets whether the value to use is a DateTimeOffset value.
    */
    get isOffsetValue() {
        return this.i.k4;
    }
    set isOffsetValue(v) {
        this.i.k4 = ensureBool(v);
    }
    findByName(name) {
        var baseResult = super.findByName(name);
        if (baseResult) {
            return baseResult;
        }
        if (this.formatSpecifiers != null && arrayFindByName(this.formatSpecifiers, name)) {
            return arrayFindByName(this.formatSpecifiers, name);
        }
        return null;
    }
}
//# sourceMappingURL=igc-date-time-cell-info.js.map
