data-region.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var tslib_1 = require("tslib");
  4. var util_1 = require("@antv/util");
  5. var group_component_1 = require("../abstract/group-component");
  6. var theme_1 = require("../util/theme");
  7. var util_2 = require("../util/util");
  8. var graphic_1 = require("../util/graphic");
  9. var DataRegionAnnotation = /** @class */ (function (_super) {
  10. tslib_1.__extends(DataRegionAnnotation, _super);
  11. function DataRegionAnnotation() {
  12. return _super !== null && _super.apply(this, arguments) || this;
  13. }
  14. /**
  15. * 默认的配置项
  16. * @returns {object} 默认的配置项
  17. */
  18. DataRegionAnnotation.prototype.getDefaultCfg = function () {
  19. var cfg = _super.prototype.getDefaultCfg.call(this);
  20. return tslib_1.__assign(tslib_1.__assign({}, cfg), { name: 'annotation', type: 'dataRegion', locationType: 'points', points: [], lineLength: 0, region: {}, text: {}, defaultCfg: {
  21. region: {
  22. style: {
  23. lineWidth: 0,
  24. fill: theme_1.default.regionColor,
  25. opacity: 0.4,
  26. },
  27. },
  28. text: {
  29. content: '',
  30. style: {
  31. textAlign: 'center',
  32. textBaseline: 'bottom',
  33. fontSize: 12,
  34. fill: theme_1.default.textColor,
  35. fontFamily: theme_1.default.fontFamily,
  36. },
  37. },
  38. } });
  39. };
  40. DataRegionAnnotation.prototype.renderInner = function (group) {
  41. var regionStyle = util_1.get(this.get('region'), 'style', {});
  42. var textStyle = util_1.get(this.get('text'), 'style', {});
  43. var lineLength = this.get('lineLength') || 0;
  44. var points = this.get('points');
  45. if (!points.length) {
  46. return;
  47. }
  48. var bbox = util_2.pointsToBBox(points);
  49. // render region
  50. var path = [];
  51. path.push(['M', points[0].x, bbox.minY - lineLength]);
  52. points.forEach(function (point) {
  53. path.push(['L', point.x, point.y]);
  54. });
  55. path.push(['L', points[points.length - 1].x, points[points.length - 1].y - lineLength]);
  56. this.addShape(group, {
  57. type: 'path',
  58. id: this.getElementId('region'),
  59. name: 'annotation-region',
  60. attrs: tslib_1.__assign({ path: path }, regionStyle),
  61. });
  62. // render text
  63. var textCfg = tslib_1.__assign({ id: this.getElementId('text'), name: 'annotation-text', x: (bbox.minX + bbox.maxX) / 2, y: bbox.minY - lineLength }, this.get('text'));
  64. graphic_1.renderTag(group, textCfg);
  65. };
  66. return DataRegionAnnotation;
  67. }(group_component_1.default));
  68. exports.default = DataRegionAnnotation;
  69. //# sourceMappingURL=data-region.js.map