@antv/g2
Version:
the Grammar of Graphics in Javascript
62 lines • 2.07 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_path_points_1 = require("../util/get-path-points");
var get_style_1 = require("../util/get-style");
function normalizeSize(arr) {
if (!(0, util_1.isArray)(arr)) {
return [];
}
var maxValue = (0, util_1.max)(arr);
return (0, util_1.map)(arr, function (num) { return num / maxValue; });
}
var ViolinShapeFactory = (0, base_1.registerShapeFactory)('violin', {
defaultShapeType: 'violin',
getDefaultPoints: function (pointInfo) {
var radius = pointInfo.size / 2;
var points = [];
var sizeArr = normalizeSize(pointInfo._size);
(0, util_1.each)(pointInfo.y, function (y, index) {
var offset = sizeArr[index] * radius;
var isMin = index === 0;
var isMax = index === pointInfo.y.length - 1;
points.push({
isMin: isMin,
isMax: isMax,
x: pointInfo.x - offset,
y: y,
});
points.unshift({
isMin: isMin,
isMax: isMax,
x: pointInfo.x + offset,
y: y,
});
});
return points;
},
});
(0, base_1.registerShape)('violin', 'violin', {
draw: function (cfg, container) {
var shapeAttrs = (0, get_style_1.getStyle)(cfg, true, true);
var path = this.parsePath((0, get_path_points_1.getViolinPath)(cfg.points));
return container.addShape('path', {
attrs: tslib_1.__assign(tslib_1.__assign({}, shapeAttrs), { path: path }),
name: 'violin',
});
},
getMarker: function (markerCfg) {
var color = markerCfg.color;
return {
symbol: 'circle',
style: {
r: 4,
fill: color,
},
};
},
});
exports.default = ViolinShapeFactory;
//# sourceMappingURL=index.js.map