@visactor/vscale
Version:
Scales for visual encoding, used in VGrammar, VTable
29 lines (25 loc) • 1.23 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.PowScale = void 0;
const linear_scale_1 = require("./linear-scale"), type_1 = require("./type"), utils_1 = require("./utils/utils");
class PowScale extends linear_scale_1.LinearScale {
constructor() {
super(), this.type = type_1.ScaleEnum.Pow, this._exponent = 1;
}
clone() {
return (new PowScale).domain(this._domain, !0).range(this._range, !0).unknown(this._unknown).clamp(this.clamp(), null, !0).interpolate(this._interpolate, !0).exponent(this._exponent);
}
rescale(slience) {
return slience || (1 === this._exponent ? (this.transformer = utils_1.identity,
this.untransformer = utils_1.identity) : .5 === this._exponent ? (this.transformer = utils_1.sqrt,
this.untransformer = utils_1.square) : (this.transformer = (0, utils_1.generatePow)(this._exponent),
this.untransformer = (0, utils_1.generatePow)(1 / this._exponent)), super.rescale()),
this;
}
exponent(_, slience) {
return arguments.length ? (this._exponent = _, this.rescale(slience)) : this._exponent;
}
}
exports.PowScale = PowScale;
//# sourceMappingURL=pow-scale.js.map