@antv/g6
Version:
A Graph Visualization Framework in JavaScript
51 lines • 2.38 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Contour = void 0;
const g_1 = require("@antv/g");
const polygon_1 = require("../../utils/polygon");
const prefix_1 = require("../../utils/prefix");
const style_1 = require("../../utils/style");
const text_1 = require("../../utils/text");
const base_shape_1 = require("./base-shape");
const label_1 = require("./label");
class Contour extends base_shape_1.BaseShape {
constructor(options) {
super((0, style_1.mergeOptions)({ style: Contour.defaultStyleProps }, options));
}
getLabelStyle(attributes) {
if (!attributes.label || !attributes.d || attributes.d.length === 0)
return false;
const _a = (0, prefix_1.subStyleProps)(this.getGraphicStyle(attributes), 'label'), { maxWidth, offsetX, offsetY, autoRotate, placement, closeToPath } = _a, labelStyle = __rest(_a, ["maxWidth", "offsetX", "offsetY", "autoRotate", "placement", "closeToPath"]);
const key = this.shapeMap.key;
const keyBounds = key === null || key === void 0 ? void 0 : key.getRenderBounds();
return Object.assign((0, polygon_1.getPolygonTextStyleByPlacement)(keyBounds, placement, offsetX, offsetY, closeToPath, attributes.d, autoRotate), { wordWrapWidth: (0, text_1.getWordWrapWidthByBox)(keyBounds, maxWidth) }, labelStyle);
}
getKeyStyle(attributes) {
return this.getGraphicStyle(attributes);
}
render(attributes, container) {
this.upsert('key', g_1.Path, this.getKeyStyle(attributes), container);
this.upsert('label', label_1.Label, this.getLabelStyle(attributes), container);
}
}
exports.Contour = Contour;
Contour.defaultStyleProps = {
label: true,
labelPlacement: 'bottom',
labelCloseToPath: true,
labelAutoRotate: true,
labelOffsetX: 0,
labelOffsetY: 0,
};
//# sourceMappingURL=contour.js.map
;