"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.IndexDeltaCalculator = void 0;
var DateTimeDeltaCalculator_1 = require("./DateTimeDeltaCalculator");
var DeltaCalculator_1 = require("./DeltaCalculator");
var IndexDeltaCalculator = /** @class */ (function (_super) {
    __extends(IndexDeltaCalculator, _super);
    function IndexDeltaCalculator(webAssemblyContext, options) {
        var _this = _super.call(this) || this;
        _this.baseDeltaCalculator = new DateTimeDeltaCalculator_1.DateTimeDeltaCalculator(webAssemblyContext, options);
        return _this;
    }
    IndexDeltaCalculator.prototype.getDeltaFromRange = function (min, max, minorsPerMajor, maxTicks) {
        var dataGap = this.parentAxis.dataGap;
        var coordCalc = this.parentAxis.getCurrentCoordinateCalculator();
        if (dataGap > 0) {
            var minIndex = coordCalc.transformDataToIndex(min);
            var maxIndex = coordCalc.transformDataToIndex(max);
            var dataMax = min + dataGap * (maxIndex - minIndex);
            return this.baseDeltaCalculator.getDeltaFromRange(min, dataMax, minorsPerMajor, maxTicks);
        }
        else {
            return this.baseDeltaCalculator.getDeltaFromRange(min, max, minorsPerMajor, maxTicks);
        }
    };
    return IndexDeltaCalculator;
}(DeltaCalculator_1.DeltaCalculator));
exports.IndexDeltaCalculator = IndexDeltaCalculator;
