UNPKG

@quartic/bokehjs

Version:

Interactive, novel data visualization

94 lines (93 loc) 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var extend = function (child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; var range_1 = require("./range"); var p = require("core/properties"); exports.FactorRange = (function (superClass) { extend(FactorRange, superClass); function FactorRange() { return FactorRange.__super__.constructor.apply(this, arguments); } FactorRange.prototype.type = 'FactorRange'; FactorRange.define({ offset: [p.Number, 0], factors: [p.Array, []], bounds: [p.Any], min_interval: [p.Any], max_interval: [p.Any] }); FactorRange.internal({ _bounds_as_factors: [p.Any], start: [p.Number], end: [p.Number] }); FactorRange.prototype.initialize = function (attrs, options) { FactorRange.__super__.initialize.call(this, attrs, options); if ((this.bounds != null) && this.bounds !== 'auto') { this.setv({ _bounds_as_factors: this.bounds }, { silent: true }); } else { this.setv({ _bounds_as_factors: this.factors }, { silent: true }); } this._init(); this.listenTo(this, 'change:factors', this._update_factors); return this.listenTo(this, 'change:offset', this._init); }; FactorRange.getters({ min: function () { return this.start; }, max: function () { return this.end; } }); FactorRange.prototype.reset = function () { this._init(); return this.trigger('change'); }; FactorRange.prototype._update_factors = function () { this.setv('_bounds_as_factors', this.factors, { silent: true }); return this._init(); }; FactorRange.prototype._init = function () { var end, factors, start; factors = this.factors; if ((this.bounds != null) && this.bounds !== 'auto') { factors = this._bounds_as_factors; this.setv({ factors: factors }, { silent: true }); } start = 0.5 + this.offset; end = factors.length + start; this.setv({ start: start, end: end }, { silent: true }); if (this.bounds != null) { return this.setv({ bounds: [start, end] }, { silent: true }); } }; return FactorRange; })(range_1.Range);