import * as tslib_1 from "tslib";
import { IgrAxis } from "./igr-axis";
import { ensureBool } from "igniteui-react-core/ES5/componentUtil";
/**
 * Represents the base class for all IgxDataChartComponent numeric axes.
*/
var IgrNumericAxisBase = /** @class */ (function (_super) {
    tslib_1.__extends(IgrNumericAxisBase, _super);
    function IgrNumericAxisBase(props) {
        return _super.call(this, props) || this;
    }
    Object.defineProperty(IgrNumericAxisBase.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "isNumeric", {
        /**
         * Gets or sets if the current axis is of numeric axis type
        */
        get: function () {
            return this.i.ca;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "minimumValue", {
        /**
         * Gets or sets the MinimumValue property.
        */
        get: function () {
            return this.i.j4;
        },
        set: function (v) {
            this.i.j4 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualMinimumValue", {
        /**
         * Gets the effective minimum value for the current numeric axis object.
        */
        get: function () {
            return this.i.jw;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualVisibleMinimumValue", {
        /**
         * Gets the effective minimum value for the current numeric axis object.
        */
        get: function () {
            return this.i.jz;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "maximumValue", {
        /**
         * Gets or sets the MaximumValue property.
        */
        get: function () {
            return this.i.j3;
        },
        set: function (v) {
            this.i.j3 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualMaximumValue", {
        /**
         * Gets the effective maximum value for the current numeric axis object.
        */
        get: function () {
            return this.i.jv;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualVisibleMaximumValue", {
        /**
         * Gets the effective visible maximum value for the current numeric axis object.
        */
        get: function () {
            return this.i.jy;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "interval", {
        /**
         * Gets or sets the Interval property.
        */
        get: function () {
            return this.i.j0;
        },
        set: function (v) {
            this.i.j0 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualInterval", {
        /**
         * Gets the effective value for the current Interval.
        */
        get: function () {
            return this.i.ju;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "minorInterval", {
        /**
         * Gets or sets the MinorInterval property.
        */
        get: function () {
            return this.i.j5;
        },
        set: function (v) {
            this.i.j5 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualMinorInterval", {
        /**
         * Gets the effective value for the current MinorInterval.
        */
        get: function () {
            return this.i.jx;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "referenceValue", {
        /**
         * Gets or sets the ReferenceValue property.
        */
        get: function () {
            return this.i.j6;
        },
        set: function (v) {
            this.i.j6 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "isLogarithmic", {
        /**
         * Gets or sets the IsLogarithmic property.
        */
        get: function () {
            return this.i.jl;
        },
        set: function (v) {
            this.i.jl = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "actualIsLogarithmic", {
        /**
         * Determines if the axis has a valid logarithmic scale.
        */
        get: function () {
            return this.i.jh;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "logarithmBase", {
        /**
         * Gets or sets the LogarithmBase property.
        */
        get: function () {
            return this.i.j8;
        },
        set: function (v) {
            this.i.j8 = +v;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "hasUserMinimum", {
        /**
         * Determines if the axis has a user-defined minimum.
        */
        get: function () {
            return this.i.jk;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "hasUserMaximum", {
        /**
         * Determines if the axis has a user-defined maximum.
        */
        get: function () {
            return this.i.jj;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrNumericAxisBase.prototype, "abbreviateLargeNumbers", {
        get: function () {
            return this.i.jg;
        },
        set: function (v) {
            this.i.jg = ensureBool(v);
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Unscales a value from screen space into axis space.
    
    * @param unscaledValue  * The scaled value in screen coordinates to unscale into axis space.
    */
    IgrNumericAxisBase.prototype.unscaleValue = function (unscaledValue) {
        var iv = this.i.j7(unscaledValue);
        return (iv);
    };
    return IgrNumericAxisBase;
}(IgrAxis));
export { IgrNumericAxisBase };
