1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var util_1 = require("@antv/util");
|
5 | var base_1 = require("../base");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | var Continuous = (function (_super) {
|
11 | tslib_1.__extends(Continuous, _super);
|
12 | function Continuous() {
|
13 | var _this = _super !== null && _super.apply(this, arguments) || this;
|
14 | _this.isContinuous = true;
|
15 | return _this;
|
16 | }
|
17 | Continuous.prototype.scale = function (value) {
|
18 | if (util_1.isNil(value)) {
|
19 | return NaN;
|
20 | }
|
21 | var rangeMin = this.rangeMin();
|
22 | var rangeMax = this.rangeMax();
|
23 | var max = this.max;
|
24 | var min = this.min;
|
25 | if (max === min) {
|
26 | return rangeMin;
|
27 | }
|
28 | var percent = this.getScalePercent(value);
|
29 | return rangeMin + percent * (rangeMax - rangeMin);
|
30 | };
|
31 | Continuous.prototype.init = function () {
|
32 | _super.prototype.init.call(this);
|
33 |
|
34 | var ticks = this.ticks;
|
35 | var firstTick = util_1.head(ticks);
|
36 | var lastTick = util_1.last(ticks);
|
37 | if (firstTick < this.min) {
|
38 | this.min = firstTick;
|
39 | }
|
40 | if (lastTick > this.max) {
|
41 | this.max = lastTick;
|
42 | }
|
43 |
|
44 | if (!util_1.isNil(this.minLimit)) {
|
45 | this.min = firstTick;
|
46 | }
|
47 | if (!util_1.isNil(this.maxLimit)) {
|
48 | this.max = lastTick;
|
49 | }
|
50 | };
|
51 | Continuous.prototype.setDomain = function () {
|
52 | var _a = util_1.getRange(this.values), min = _a.min, max = _a.max;
|
53 | if (util_1.isNil(this.min)) {
|
54 | this.min = min;
|
55 | }
|
56 | if (util_1.isNil(this.max)) {
|
57 | this.max = max;
|
58 | }
|
59 | if (this.min > this.max) {
|
60 | this.min = min;
|
61 | this.max = max;
|
62 | }
|
63 | };
|
64 | Continuous.prototype.calculateTicks = function () {
|
65 | var _this = this;
|
66 | var ticks = _super.prototype.calculateTicks.call(this);
|
67 | if (!this.nice) {
|
68 | ticks = util_1.filter(ticks, function (tick) {
|
69 | return tick >= _this.min && tick <= _this.max;
|
70 | });
|
71 | }
|
72 | return ticks;
|
73 | };
|
74 |
|
75 | Continuous.prototype.getScalePercent = function (value) {
|
76 | var max = this.max;
|
77 | var min = this.min;
|
78 | return (value - min) / (max - min);
|
79 | };
|
80 | Continuous.prototype.getInvertPercent = function (value) {
|
81 | return (value - this.rangeMin()) / (this.rangeMax() - this.rangeMin());
|
82 | };
|
83 | return Continuous;
|
84 | }(base_1.default));
|
85 | exports.default = Continuous;
|
86 |
|
\ | No newline at end of file |