| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import { __assign, __extends, __rest } from "tslib";
- import { isFunction } from '@antv/util';
- import { GUI } from '../../core';
- import { ifShow, select } from '../../util';
- import { bowtie, circle, cross, dash, diamond, dot, hexagon, hv, hvh, hyphen, line, plus, point, smooth, square, tick, triangle, triangleDown, vh, vhv, } from './symbol';
- import { parseMarker } from './utils';
- function getType(symbol) {
- var markerType = parseMarker(symbol);
- if (['base64', 'url', 'image'].includes(markerType)) {
- return 'image';
- }
- if (symbol && markerType === 'symbol') {
- return 'path';
- }
- return null;
- }
- var Marker = /** @class */ (function (_super) {
- __extends(Marker, _super);
- function Marker() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- Marker.prototype.render = function (attributes, container) {
- var symbol = attributes.symbol, _a = attributes.size, size = _a === void 0 ? 16 : _a, style = __rest(attributes, ["symbol", "size"]);
- var type = getType(symbol);
- ifShow(!!type, select(container), function (group) {
- group
- .maybeAppendByClassName("marker", type)
- .attr('className', "marker ".concat(type, "-marker"))
- .call(function (selection) {
- if (type === 'image') {
- // todo 大小和 path symbol 保持一致
- var r = size * 2;
- selection.styles({
- img: symbol,
- width: r,
- height: r,
- x: -size,
- y: -size,
- });
- }
- else {
- var r = size / 2;
- var symbolFn = isFunction(symbol) ? symbol : Marker.getSymbol(symbol);
- selection.styles(__assign({ path: symbolFn === null || symbolFn === void 0 ? void 0 : symbolFn(0, 0, r) }, style));
- }
- });
- });
- };
- Marker.MARKER_SYMBOL_MAP = new Map();
- /**
- * 注册 icon 类型
- * @param type
- * @param path
- */
- Marker.registerSymbol = function (type, symbol) {
- Marker.MARKER_SYMBOL_MAP.set(type, symbol);
- };
- /**
- * 获取已经注册的 icon 的 path
- */
- Marker.getSymbol = function (type) {
- return Marker.MARKER_SYMBOL_MAP.get(type);
- };
- return Marker;
- }(GUI));
- export { Marker };
- /** Shapes for Point Geometry */
- Marker.registerSymbol('cross', cross);
- Marker.registerSymbol('hyphen', hyphen);
- Marker.registerSymbol('line', line);
- Marker.registerSymbol('plus', plus);
- Marker.registerSymbol('tick', tick);
- Marker.registerSymbol('circle', circle);
- Marker.registerSymbol('point', point);
- Marker.registerSymbol('bowtie', bowtie);
- Marker.registerSymbol('hexagon', hexagon);
- Marker.registerSymbol('square', square);
- Marker.registerSymbol('diamond', diamond);
- Marker.registerSymbol('triangle', triangle);
- Marker.registerSymbol('triangle-down', triangleDown);
- /** LineSymbols */
- Marker.registerSymbol('line', line);
- Marker.registerSymbol('dot', dot);
- Marker.registerSymbol('dash', dash);
- Marker.registerSymbol('smooth', smooth);
- Marker.registerSymbol('hv', hv);
- Marker.registerSymbol('vh', vh);
- Marker.registerSymbol('hvh', hvh);
- Marker.registerSymbol('vhv', vhv);
- //# sourceMappingURL=index.js.map
|