import * as tslib_1 from "tslib";
import { NumericScaleMode_$type } from "./NumericScaleMode";
import { IgrNumericAxisBase } from "./igr-numeric-axis-base";
import { ensureEnum } from "igniteui-react-core/ES5/componentUtil";
/**
 * Defines a set of basic methods and properties used to create a StraightNumeric axis.
*/
var IgrStraightNumericAxisBase = /** @class */ (function (_super) {
    tslib_1.__extends(IgrStraightNumericAxisBase, _super);
    function IgrStraightNumericAxisBase(props) {
        return _super.call(this, props) || this;
    }
    Object.defineProperty(IgrStraightNumericAxisBase.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgrStraightNumericAxisBase.prototype, "scaleMode", {
        /**
         * Gets or sets the axis scale mode.
        *
        * `scaleMode` can be used on numeric axes to allow scaling data values using built-in scalers. The available scalers are linear or logarithmic.
        *
        * ```ts
        * this.yAxis.scaleMode = NumericScaleMode.Logarithmic;
        * ```
        *
        * ```ts
        *  <IgrDataChart
        *     dataSource={this.state.dataSource} >
        *
        *     <IgrCategoryXAxis name="xAxis" />
        *     <IgrNumericYAxis name="yAxis" scaleMode="logarithmic" />
        *
        *     <IgrLineSeries
        *      name="series1"
        *     xAxisName="xAxis"
        * 	yAxisName="yAxis"
        * 	valueMemberPath="Value"
        * />
        *  </IgrDataChart>
        * ```
        */
        get: function () {
            return this.i.k5;
        },
        set: function (v) {
            this.i.k5 = ensureEnum(NumericScaleMode_$type, v);
        },
        enumerable: true,
        configurable: true
    });
    return IgrStraightNumericAxisBase;
}(IgrNumericAxisBase));
export { IgrStraightNumericAxisBase };
