113 lines
2.4 KiB
Java
113 lines
2.4 KiB
Java
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
|
|
|
var isNil = require('@antv/util/lib/type/is-nil');
|
|
|
|
var isArray = require('@antv/util/lib/type/is-array');
|
|
|
|
var each = require('@antv/util/lib/each');
|
|
|
|
var Base = require('./base');
|
|
|
|
var Position =
|
|
/*#__PURE__*/
|
|
function (_Base) {
|
|
_inheritsLoose(Position, _Base);
|
|
|
|
function Position(cfg) {
|
|
var _this;
|
|
|
|
_this = _Base.call(this, cfg) || this;
|
|
_this.names = ['x', 'y'];
|
|
_this.type = 'position';
|
|
return _this;
|
|
}
|
|
|
|
var _proto = Position.prototype;
|
|
|
|
_proto.mapping = function mapping(x, y) {
|
|
var scales = this.scales;
|
|
var coord = this.coord;
|
|
var scaleX = scales[0];
|
|
var scaleY = scales[1];
|
|
var rstX;
|
|
var rstY;
|
|
var obj;
|
|
|
|
if (isNil(x) || isNil(y)) {
|
|
return [];
|
|
}
|
|
|
|
if (isArray(y) && isArray(x)) {
|
|
rstX = [];
|
|
rstY = [];
|
|
|
|
for (var i = 0, j = 0, xLen = x.length, yLen = y.length; i < xLen && j < yLen; i++, j++) {
|
|
obj = coord.convertPoint({
|
|
x: scaleX.scale(x[i]),
|
|
y: scaleY.scale(y[j])
|
|
});
|
|
rstX.push(obj.x);
|
|
rstY.push(obj.y);
|
|
}
|
|
} else if (isArray(y)) {
|
|
x = scaleX.scale(x);
|
|
rstY = [];
|
|
each(y, function (yVal) {
|
|
yVal = scaleY.scale(yVal);
|
|
obj = coord.convertPoint({
|
|
x: x,
|
|
y: yVal
|
|
});
|
|
|
|
if (rstX && rstX !== obj.x) {
|
|
if (!isArray(rstX)) {
|
|
rstX = [rstX];
|
|
}
|
|
|
|
rstX.push(obj.x);
|
|
} else {
|
|
rstX = obj.x;
|
|
}
|
|
|
|
rstY.push(obj.y);
|
|
});
|
|
} else if (isArray(x)) {
|
|
y = scaleY.scale(y);
|
|
rstX = [];
|
|
each(x, function (xVal) {
|
|
xVal = scaleX.scale(xVal);
|
|
obj = coord.convertPoint({
|
|
x: xVal,
|
|
y: y
|
|
});
|
|
|
|
if (rstY && rstY !== obj.y) {
|
|
if (!isArray(rstY)) {
|
|
rstY = [rstY];
|
|
}
|
|
|
|
rstY.push(obj.y);
|
|
} else {
|
|
rstY = obj.y;
|
|
}
|
|
|
|
rstX.push(obj.x);
|
|
});
|
|
} else {
|
|
x = scaleX.scale(x);
|
|
y = scaleY.scale(y);
|
|
var point = coord.convertPoint({
|
|
x: x,
|
|
y: y
|
|
});
|
|
rstX = point.x;
|
|
rstY = point.y;
|
|
}
|
|
|
|
return [rstX, rstY];
|
|
};
|
|
|
|
return Position;
|
|
}(Base);
|
|
|
|
module.exports = Position; |