| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { __assign, __extends } from "tslib";
- import { get } from '@antv/util';
- import GroupComponent from '../abstract/group-component';
- import Theme from '../util/theme';
- import { pointsToBBox } from '../util/util';
- import { renderTag } from '../util/graphic';
- var DataRegionAnnotation = /** @class */ (function (_super) {
- __extends(DataRegionAnnotation, _super);
- function DataRegionAnnotation() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- /**
- * 默认的配置项
- * @returns {object} 默认的配置项
- */
- DataRegionAnnotation.prototype.getDefaultCfg = function () {
- var cfg = _super.prototype.getDefaultCfg.call(this);
- return __assign(__assign({}, cfg), { name: 'annotation', type: 'dataRegion', locationType: 'points', points: [], lineLength: 0, region: {}, text: {}, defaultCfg: {
- region: {
- style: {
- lineWidth: 0,
- fill: Theme.regionColor,
- opacity: 0.4,
- },
- },
- text: {
- content: '',
- style: {
- textAlign: 'center',
- textBaseline: 'bottom',
- fontSize: 12,
- fill: Theme.textColor,
- fontFamily: Theme.fontFamily,
- },
- },
- } });
- };
- DataRegionAnnotation.prototype.renderInner = function (group) {
- var regionStyle = get(this.get('region'), 'style', {});
- var textStyle = get(this.get('text'), 'style', {});
- var lineLength = this.get('lineLength') || 0;
- var points = this.get('points');
- if (!points.length) {
- return;
- }
- var bbox = pointsToBBox(points);
- // render region
- var path = [];
- path.push(['M', points[0].x, bbox.minY - lineLength]);
- points.forEach(function (point) {
- path.push(['L', point.x, point.y]);
- });
- path.push(['L', points[points.length - 1].x, points[points.length - 1].y - lineLength]);
- this.addShape(group, {
- type: 'path',
- id: this.getElementId('region'),
- name: 'annotation-region',
- attrs: __assign({ path: path }, regionStyle),
- });
- // render text
- var textCfg = __assign({ id: this.getElementId('text'), name: 'annotation-text', x: (bbox.minX + bbox.maxX) / 2, y: bbox.minY - lineLength }, this.get('text'));
- renderTag(group, textCfg);
- };
- return DataRegionAnnotation;
- }(GroupComponent));
- export default DataRegionAnnotation;
- //# sourceMappingURL=data-region.js.map
|