@antv/f2
Version:
Charts for mobile visualization.
73 lines (72 loc) • 2.16 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _tslib = require("tslib");
var _src = require("../deps/f2-scale/src");
var _util = require("@antv/util");
var _src2 = require("../deps/d3-interpolate/src");
var _base = _interopRequireDefault(require("./base"));
// 只处理 number 和 color
var interpolate = function interpolate(a, b) {
if ((0, _util.isNumber)(b)) {
return (0, _src2.interpolateNumber)(a, b);
}
return (0, _src2.interpolateRgb)(a, b);
};
var Linear = /** @class */function (_super) {
(0, _tslib.__extends)(Linear, _super);
function Linear(options) {
var _this = _super.call(this, options) || this;
_this._updateInterpolate();
return _this;
}
Linear.prototype.createScale = function (scaleConfig) {
return new _src.Linear(scaleConfig);
};
Linear.prototype._updateInterpolate = function () {
var _a = this.range,
min = _a[0],
max = _a[1];
this.interpolate = interpolate(min, max);
};
Linear.prototype.update = function (options) {
_super.prototype.update.call(this, options);
this._updateInterpolate();
};
Linear.prototype._mapping = function (value) {
var _a = this,
scale = _a.scale,
interpolate = _a.interpolate;
if ((0, _util.isArray)(value)) {
return value.map(function (v) {
return interpolate(scale.scale(v));
});
}
return interpolate(scale.scale(value));
};
Linear.prototype.normalize = function (value) {
var scale = this.scale;
if ((0, _util.isArray)(value)) {
return value.map(function (v) {
return scale.scale(v);
});
}
return scale.scale(value);
};
Linear.prototype.convert = function (value) {
var range = this.range;
var min = range[0],
max = range[1];
if ((0, _util.isArray)(value)) {
return value.map(function (v) {
return min + (max - min) * v;
});
}
return min + (max - min) * value;
};
return Linear;
}(_base.default);
var _default = exports.default = Linear;
;