index.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. /**
  3. * @fileoverview marker
  4. * @author dengfuping_develop@163.com
  5. */
  6. Object.defineProperty(exports, "__esModule", { value: true });
  7. var tslib_1 = require("tslib");
  8. var util_1 = require("@antv/util");
  9. var base_1 = require("../base");
  10. var symbols_1 = require("./symbols");
  11. var Marker = /** @class */ (function (_super) {
  12. tslib_1.__extends(Marker, _super);
  13. function Marker() {
  14. var _this = _super !== null && _super.apply(this, arguments) || this;
  15. _this.type = 'marker';
  16. _this.canFill = true;
  17. _this.canStroke = true;
  18. return _this;
  19. }
  20. Marker.prototype.createPath = function (context) {
  21. var el = this.get('el');
  22. el.setAttribute('d', this._assembleMarker());
  23. };
  24. Marker.prototype._assembleMarker = function () {
  25. var d = this._getPath();
  26. if (util_1.isArray(d)) {
  27. return d
  28. .map(function (path) {
  29. return path.join(' ');
  30. })
  31. .join('');
  32. }
  33. return d;
  34. };
  35. Marker.prototype._getPath = function () {
  36. var attrs = this.attr();
  37. var x = attrs.x, y = attrs.y;
  38. // 兼容 r 和 radius 两种写法,推荐使用 r
  39. var r = attrs.r || attrs.radius;
  40. var symbol = attrs.symbol || 'circle';
  41. var method;
  42. if (util_1.isFunction(symbol)) {
  43. method = symbol;
  44. }
  45. else {
  46. method = symbols_1.default.get(symbol);
  47. }
  48. if (!method) {
  49. console.warn(method + " symbol is not exist.");
  50. return null;
  51. }
  52. return method(x, y, r);
  53. };
  54. // 作为其静态属性
  55. Marker.symbolsFactory = symbols_1.default;
  56. return Marker;
  57. }(base_1.default));
  58. exports.default = Marker;
  59. //# sourceMappingURL=index.js.map