You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.6 KiB
67 lines
2.6 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.CrosshairBase = void 0;
|
|
var tslib_1 = require("tslib");
|
|
var core_1 = require("../../core");
|
|
var util_1 = require("../../util");
|
|
var tag_1 = require("../tag");
|
|
var constant_1 = require("./constant");
|
|
var CrosshairBase = /** @class */ (function (_super) {
|
|
tslib_1.__extends(CrosshairBase, _super);
|
|
function CrosshairBase(options) {
|
|
// @ts-ignore
|
|
return _super.call(this, options, constant_1.CROSSHAIR_BASE_DEFAULT_STYLE) || this;
|
|
}
|
|
Object.defineProperty(CrosshairBase.prototype, "localPointer", {
|
|
/**
|
|
* 获得 pointer 的相对坐标
|
|
*/
|
|
get: function () {
|
|
var _a = tslib_1.__read(this.getPosition(), 2), bx = _a[0], by = _a[1];
|
|
var _b = tslib_1.__read(this.pointer, 2), x = _b[0], y = _b[1];
|
|
return [x - bx, y - by];
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(CrosshairBase.prototype, "tagStyle", {
|
|
get: function () {
|
|
var style = (0, util_1.subStyleProps)(this.attributes, 'tag');
|
|
return style;
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(CrosshairBase.prototype, "crosshairStyle", {
|
|
get: function () {
|
|
var style = (0, util_1.subStyleProps)(this.attributes, 'line');
|
|
return tslib_1.__assign(tslib_1.__assign({}, style), { d: this.crosshairPath });
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
CrosshairBase.prototype.render = function (attributes, container) {
|
|
var group = (0, util_1.select)(container).maybeAppendByClassName('.crosshair-group', 'g').node();
|
|
this.shapesGroup = group;
|
|
var tagStyle = this.tagStyle;
|
|
var crosshairStyle = this.crosshairStyle;
|
|
this.tagShape = (0, util_1.select)(group)
|
|
.maybeAppendByClassName('crosshair-tag', function () { return new tag_1.Tag({ style: tagStyle }); })
|
|
.styles(tagStyle)
|
|
.node();
|
|
this.crosshairShape = (0, util_1.select)(group).maybeAppendByClassName('.crosshair-path', 'path').styles(crosshairStyle).node();
|
|
this.adjustLayout();
|
|
};
|
|
/**
|
|
* 设置当前指针的位置
|
|
* 1. 线条类型 调整位置即可
|
|
* 2. circle 和 polygon 需要重新计算 path
|
|
*/
|
|
CrosshairBase.prototype.setPointer = function (pointer) {
|
|
this.pointer = pointer;
|
|
};
|
|
CrosshairBase.tag = 'crosshair-base';
|
|
return CrosshairBase;
|
|
}(core_1.Component));
|
|
exports.CrosshairBase = CrosshairBase;
|
|
//# sourceMappingURL=base.js.map
|