import * as tslib_1 from "tslib";
import { IgcCellInfo } from "./igc-cell-info";
import { NumericCellModel as NumericCellModel_internal } from "./NumericCellModel";
import { ensureBool, arrayFindByName } from "igniteui-webcomponents-core";
/**
 * Backing information for a numeric cell in the grid.
*/
var IgcNumericCellInfo = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(IgcNumericCellInfo, _super);
    function IgcNumericCellInfo() {
        return _super.call(this) || this;
    }
    IgcNumericCellInfo.prototype.createImplementation = function () {
        return new NumericCellModel_internal();
    };
    Object.defineProperty(IgcNumericCellInfo.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "numericValue", {
        /**
         * Sets or gets the numeric value to use for the cell.
        */
        get: function () {
            return this.i.k5;
        },
        set: function (v) {
            this.i.k5 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "hasDecimalValue", {
        /**
         * Sets or gets whether there is a decimal numeric value to use for the cell.
        */
        get: function () {
            return this.i.k1;
        },
        set: function (v) {
            this.i.k1 = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "formatStringOverride", {
        /**
         * The format string to apply to the value
        */
        get: function () {
            return this.i.lz;
        },
        set: function (v) {
            this.i.lz = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "formatSpecifiers", {
        get: function () {
            return this.i.kx;
        },
        set: function (v) {
            this.i.kx = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "formatOverride", {
        /**
         * The format options to apply to the value
        */
        get: function () {
            return this.i.lr;
        },
        set: function (v) {
            this.i.lr = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "negativePrefix", {
        /**
         * Sets or gets the text prepended to a negative numeric value
        */
        get: function () {
            return this.i.l5;
        },
        set: function (v) {
            this.i.l5 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "positivePrefix", {
        /**
         * Sets or gets the text prepended to a positive numeric value
        */
        get: function () {
            return this.i.ma;
        },
        set: function (v) {
            this.i.ma = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "negativeSuffix", {
        /**
         * Sets or gets the text appended to a negative numeric value
        */
        get: function () {
            return this.i.l7;
        },
        set: function (v) {
            this.i.l7 = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "positiveSuffix", {
        /**
         * Sets or gets the text appended to a positive numeric value
        */
        get: function () {
            return this.i.mc;
        },
        set: function (v) {
            this.i.mc = v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "maxFractionDigits", {
        /**
         * The maximum number of decimal places to display when formatting
        */
        get: function () {
            return this.i.ld;
        },
        set: function (v) {
            this.i.ld = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "minFractionDigits", {
        /**
         * The minimum number of decimal places to display when formatting
        */
        get: function () {
            return this.i.lf;
        },
        set: function (v) {
            this.i.lf = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "minIntegerDigits", {
        /**
         * The minimum number of integer digits to display when formatting
        */
        get: function () {
            return this.i.lh;
        },
        set: function (v) {
            this.i.lh = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcNumericCellInfo.prototype, "showGroupingSeparator", {
        /**
         * Sets or gets if the grouping separator is shown
        */
        get: function () {
            return this.i.k3;
        },
        set: function (v) {
            this.i.k3 = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    IgcNumericCellInfo.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 IgcNumericCellInfo;
}(IgcCellInfo));
export { IgcNumericCellInfo };
//# sourceMappingURL=igc-numeric-cell-info.js.map
