NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/adjust/lib/dodge.js
2023-09-14 14:47:11 +08:00

69 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var Adjust = require('./base');
var each = require('@antv/util/lib/each');
var MARGIN_RATIO = 1 / 2;
var DODGE_RATIO = 1 / 2;
var Dodge =
/*#__PURE__*/
function (_Adjust) {
_inheritsLoose(Dodge, _Adjust);
function Dodge() {
return _Adjust.apply(this, arguments) || this;
}
var _proto = Dodge.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
/**
* 调整过程中,2个数据的间距
* @type {Number}
*/
this.marginRatio = MARGIN_RATIO;
/**
* 调整占单位宽度的比例,例如占2个分类间距的 1/2
* @type {Number}
*/
this.dodgeRatio = DODGE_RATIO;
this.adjustNames = ['x', 'y']; // 调整的维度,默认,x,y都做调整
};
_proto.getDodgeOffset = function getDodgeOffset(range, index, count) {
var self = this;
var pre = range.pre;
var next = range.next;
var tickLength = next - pre;
var width = tickLength * self.dodgeRatio / count;
var margin = self.marginRatio * width;
var offset = 1 / 2 * (tickLength - count * width - (count - 1) * margin) + ((index + 1) * width + index * margin) - 1 / 2 * width - 1 / 2 * tickLength;
return (pre + next) / 2 + offset;
};
_proto.processAdjust = function processAdjust(dataArray) {
var self = this;
var count = dataArray.length;
var xField = self.xField;
each(dataArray, function (data, index) {
for (var i = 0, len = data.length; i < len; i++) {
var obj = data[i];
var value = obj[xField];
var range = {
pre: len === 1 ? value - 1 : value - 0.5,
next: len === 1 ? value + 1 : value + 0.5
};
var dodgeValue = self.getDodgeOffset(range, index, count);
obj[xField] = dodgeValue;
}
});
};
return Dodge;
}(Adjust);
Adjust.Dodge = Dodge;
module.exports = Dodge;