1 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
2 |
|
3 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
4 |
|
5 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
6 |
|
7 | var each = require('@antv/util/lib/each');
|
8 | var mix = require('@antv/util/lib/mix');
|
9 | var ArrayUtil = {
|
10 | merge: require('@antv/util/lib/array/merge'),
|
11 | values: require('@antv/util/lib/array/values')
|
12 | };
|
13 |
|
14 | var Adjust = require('./base');
|
15 | var AdjustMixin = require('./mixin/adjust');
|
16 |
|
17 | var Jitter = function (_Adjust) {
|
18 | _inherits(Jitter, _Adjust);
|
19 |
|
20 | function Jitter() {
|
21 | _classCallCheck(this, Jitter);
|
22 |
|
23 | return _possibleConstructorReturn(this, _Adjust.apply(this, arguments));
|
24 | }
|
25 |
|
26 | Jitter.prototype._initDefaultCfg = function _initDefaultCfg() {
|
27 | this.xField = null;
|
28 | this.yField = null;
|
29 | this.adjustNames = ['x', 'y'];
|
30 | this.groupFields = null;
|
31 | };
|
32 |
|
33 | Jitter.prototype.processAdjust = function processAdjust(dataArray) {
|
34 | var self = this;
|
35 | var mergeData = ArrayUtil.merge(dataArray);
|
36 |
|
37 | self.adjDataArray = dataArray;
|
38 | self.mergeData = mergeData;
|
39 | self.adjustData(dataArray, mergeData);
|
40 | self.adjFrames = null;
|
41 | self.mergeData = null;
|
42 | };
|
43 |
|
44 | Jitter.prototype.getAdjustOffset = function getAdjustOffset(pre, next) {
|
45 | var r = Math.random();
|
46 | var avg = next - pre;
|
47 | var append = avg * 0.05;
|
48 | return pre + append + avg * 0.9 * r;
|
49 | };
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | Jitter.prototype._adjustGroup = function _adjustGroup(group, dim, key, values) {
|
55 | var self = this;
|
56 | var range = self.getAdjustRange(dim, key, values);
|
57 |
|
58 | each(group, function (record) {
|
59 | record[dim] = self.getAdjustOffset(range.pre, range.next);
|
60 | });
|
61 | };
|
62 |
|
63 | Jitter.prototype.adjustDim = function adjustDim(dim, values, data) {
|
64 | var self = this;
|
65 | var groupData = self.groupData(data, dim);
|
66 | each(groupData, function (group, key) {
|
67 | key = parseFloat(key);
|
68 | self._adjustGroup(group, dim, key, values);
|
69 | });
|
70 | };
|
71 |
|
72 | return Jitter;
|
73 | }(Adjust);
|
74 |
|
75 | mix(Jitter.prototype, AdjustMixin);
|
76 |
|
77 | Adjust.Jitter = Jitter;
|
78 | module.exports = Jitter; |
\ | No newline at end of file |