base.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.CrosshairBase = void 0;
  4. var tslib_1 = require("tslib");
  5. var core_1 = require("../../core");
  6. var util_1 = require("../../util");
  7. var tag_1 = require("../tag");
  8. var constant_1 = require("./constant");
  9. var CrosshairBase = /** @class */ (function (_super) {
  10. tslib_1.__extends(CrosshairBase, _super);
  11. function CrosshairBase(options) {
  12. // @ts-ignore
  13. return _super.call(this, options, constant_1.CROSSHAIR_BASE_DEFAULT_STYLE) || this;
  14. }
  15. Object.defineProperty(CrosshairBase.prototype, "localPointer", {
  16. /**
  17. * 获得 pointer 的相对坐标
  18. */
  19. get: function () {
  20. var _a = tslib_1.__read(this.getPosition(), 2), bx = _a[0], by = _a[1];
  21. var _b = tslib_1.__read(this.pointer, 2), x = _b[0], y = _b[1];
  22. return [x - bx, y - by];
  23. },
  24. enumerable: false,
  25. configurable: true
  26. });
  27. Object.defineProperty(CrosshairBase.prototype, "tagStyle", {
  28. get: function () {
  29. var style = (0, util_1.subStyleProps)(this.attributes, 'tag');
  30. return style;
  31. },
  32. enumerable: false,
  33. configurable: true
  34. });
  35. Object.defineProperty(CrosshairBase.prototype, "crosshairStyle", {
  36. get: function () {
  37. var style = (0, util_1.subStyleProps)(this.attributes, 'line');
  38. return tslib_1.__assign(tslib_1.__assign({}, style), { path: this.crosshairPath });
  39. },
  40. enumerable: false,
  41. configurable: true
  42. });
  43. CrosshairBase.prototype.render = function (attributes, container) {
  44. var group = (0, util_1.select)(container).maybeAppendByClassName('.crosshair-group', 'g').node();
  45. this.shapesGroup = group;
  46. var tagStyle = this.tagStyle;
  47. var crosshairStyle = this.crosshairStyle;
  48. this.tagShape = (0, util_1.select)(group)
  49. .maybeAppendByClassName('crosshair-tag', function () { return new tag_1.Tag({ style: tagStyle }); })
  50. .styles(tagStyle)
  51. .node();
  52. this.crosshairShape = (0, util_1.select)(group).maybeAppendByClassName('.crosshair-path', 'path').styles(crosshairStyle).node();
  53. this.adjustLayout();
  54. };
  55. /**
  56. * 设置当前指针的位置
  57. * 1. 线条类型 调整位置即可
  58. * 2. circle 和 polygon 需要重新计算 path
  59. */
  60. CrosshairBase.prototype.setPointer = function (pointer) {
  61. this.pointer = pointer;
  62. };
  63. CrosshairBase.tag = 'crosshair-base';
  64. return CrosshairBase;
  65. }(core_1.GUI));
  66. exports.CrosshairBase = CrosshairBase;
  67. //# sourceMappingURL=base.js.map