| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import { isArray, isNil, each } from '@antv/util';
- import Base from './base';
- class Position extends Base {
- constructor(cfg) {
- super(cfg);
- this.names = ['x', 'y'];
- this.type = 'position';
- }
- 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,
- 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
- });
- 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,
- y
- });
- rstX = point.x;
- rstY = point.y;
- }
- return [rstX, rstY];
- }
- }
- export default Position;
|