position.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
  2. var isNil = require('@antv/util/lib/type/is-nil');
  3. var isArray = require('@antv/util/lib/type/is-array');
  4. var each = require('@antv/util/lib/each');
  5. var Base = require('./base');
  6. var Position =
  7. /*#__PURE__*/
  8. function (_Base) {
  9. _inheritsLoose(Position, _Base);
  10. function Position(cfg) {
  11. var _this;
  12. _this = _Base.call(this, cfg) || this;
  13. _this.names = ['x', 'y'];
  14. _this.type = 'position';
  15. return _this;
  16. }
  17. var _proto = Position.prototype;
  18. _proto.mapping = function mapping(x, y) {
  19. var scales = this.scales;
  20. var coord = this.coord;
  21. var scaleX = scales[0];
  22. var scaleY = scales[1];
  23. var rstX;
  24. var rstY;
  25. var obj;
  26. if (isNil(x) || isNil(y)) {
  27. return [];
  28. }
  29. if (isArray(y) && isArray(x)) {
  30. rstX = [];
  31. rstY = [];
  32. for (var i = 0, j = 0, xLen = x.length, yLen = y.length; i < xLen && j < yLen; i++, j++) {
  33. obj = coord.convertPoint({
  34. x: scaleX.scale(x[i]),
  35. y: scaleY.scale(y[j])
  36. });
  37. rstX.push(obj.x);
  38. rstY.push(obj.y);
  39. }
  40. } else if (isArray(y)) {
  41. x = scaleX.scale(x);
  42. rstY = [];
  43. each(y, function (yVal) {
  44. yVal = scaleY.scale(yVal);
  45. obj = coord.convertPoint({
  46. x: x,
  47. y: yVal
  48. });
  49. if (rstX && rstX !== obj.x) {
  50. if (!isArray(rstX)) {
  51. rstX = [rstX];
  52. }
  53. rstX.push(obj.x);
  54. } else {
  55. rstX = obj.x;
  56. }
  57. rstY.push(obj.y);
  58. });
  59. } else if (isArray(x)) {
  60. y = scaleY.scale(y);
  61. rstX = [];
  62. each(x, function (xVal) {
  63. xVal = scaleX.scale(xVal);
  64. obj = coord.convertPoint({
  65. x: xVal,
  66. y: y
  67. });
  68. if (rstY && rstY !== obj.y) {
  69. if (!isArray(rstY)) {
  70. rstY = [rstY];
  71. }
  72. rstY.push(obj.y);
  73. } else {
  74. rstY = obj.y;
  75. }
  76. rstX.push(obj.x);
  77. });
  78. } else {
  79. x = scaleX.scale(x);
  80. y = scaleY.scale(y);
  81. var point = coord.convertPoint({
  82. x: x,
  83. y: y
  84. });
  85. rstX = point.x;
  86. rstY = point.y;
  87. }
  88. return [rstX, rstY];
  89. };
  90. return Position;
  91. }(Base);
  92. module.exports = Position;