"use strict";
/* Copyright 2015 Bloomberg Finance L.P.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateScaleModel = void 0;
const LinearScaleModel_1 = require("./LinearScaleModel");
const utils_1 = require("./utils");
class DateScaleModel extends LinearScaleModel_1.LinearScaleModel {
    defaults() {
        return Object.assign(Object.assign({}, LinearScaleModel_1.LinearScaleModel.prototype.defaults()), { _model_name: 'DateScaleModel', _view_name: 'DateScale', min: null, max: null });
    }
    typedRange(values) {
        const ar = new Float64Array(values.map(Number));
        ar.type = 'date';
        return ar;
    }
    set_init_state() {
        this.type = 'date';
        this.global_min = new Date().setTime(0);
        this.global_max = new Date();
    }
    min_max_changed() {
        this.min = utils_1.getDate(this.get('min'));
        this.max = utils_1.getDate(this.get('max'));
        this.min_from_data = this.min === null;
        this.max_from_data = this.max === null;
        this.update_domain();
    }
}
exports.DateScaleModel = DateScaleModel;
//# sourceMappingURL=DateScaleModel.js.map