@antv/g2
Version:
the Grammar of Graphics in Javascript
67 lines • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("@antv/util");
var base_1 = require("../base");
var get_style_1 = require("../util/get-style");
function getPath(points) {
var flag = points[0];
var i = 1;
var path = [['M', flag.x, flag.y]];
while (i < points.length) {
var c = points[i];
if (c.x !== points[i - 1].x || c.y !== points[i - 1].y) {
path.push(['L', c.x, c.y]);
if (c.x === flag.x && c.y === flag.y && i < points.length - 1) {
flag = points[i + 1];
path.push(['Z']);
path.push(['M', flag.x, flag.y]);
i++;
}
}
i++;
}
if (!(0, util_1.isEqual)((0, util_1.last)(path), flag)) {
path.push(['L', flag.x, flag.y]);
}
path.push(['Z']);
return path;
}
var PolygonShapeFactory = (0, base_1.registerShapeFactory)('polygon', {
defaultShapeType: 'polygon',
getDefaultPoints: function (pointInfo) {
var points = [];
(0, util_1.each)(pointInfo.x, function (subX, index) {
var subY = pointInfo.y[index];
points.push({
x: subX,
y: subY,
});
});
return points;
},
});
(0, base_1.registerShape)('polygon', 'polygon', {
draw: function (cfg, container) {
if (!(0, util_1.isEmpty)(cfg.points)) {
var shapeAttrs = (0, get_style_1.getStyle)(cfg, true, true);
var path = this.parsePath(getPath(cfg.points));
return container.addShape('path', {
attrs: tslib_1.__assign(tslib_1.__assign({}, shapeAttrs), { path: path }),
name: 'polygon',
});
}
},
getMarker: function (markerCfg) {
var color = markerCfg.color;
return {
symbol: 'square',
style: {
r: 4,
fill: color,
},
};
},
});
exports.default = PolygonShapeFactory;
//# sourceMappingURL=index.js.map