123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- "use strict";
- var Util = require('../util/common');
- var DEFAULT_CFG = {
- label: null,
- offsetX: 0,
- offsetY: 0
- };
- var DEFAULT_LABEL_CFG = {
- textBaseline: 'middle',
- fill: '#808080'
- }; // 2个点的中心点
- function getMiddlePoint(a, b) {
- var x = (a.x - b.x) / 2 + b.x;
- var y = (a.y - b.y) / 2 + b.y;
- return {
- x: x,
- y: y
- };
- } // function getLabelPoint(points, nextPoints) {
- // let start;
- // if (nextPoints && nextPoints.length) {
- // start = getMiddlePoint(points[1], nextPoints[1]);
- // } else {
- // const nextPoint = getMiddlePoint(points[2], points[3]);
- // start = getMiddlePoint(points[1], nextPoint);
- // }
- // const end = getMiddlePoint(points[1], points[2]);
- // return { start, end };
- // }
- var Controller = /*#__PURE__*/function () {
- function Controller(_ref) {
- var chart = _ref.chart,
- container = _ref.container;
- this.cfg = null;
- this.chart = chart;
- this.container = container;
- }
- var _proto = Controller.prototype;
- _proto.draw = function draw() {
- var chart = this.chart,
- container = this.container,
- cfg = this.cfg;
- if (!cfg) return;
- var labelCfg = Util.mix({}, DEFAULT_CFG, cfg);
- var coord = chart.get('coord');
- var geom = chart.get('geoms')[0];
- var shapes = geom.get('container').get('children');
- shapes.forEach(function (shape) {
- var origin = shape.get('origin');
- var _origin = origin._origin,
- color = origin.color,
- points = origin.points;
- if (labelCfg.label) {
- var labelAttrs = labelCfg.label(_origin, color);
- var group = container.addGroup();
- var point = coord.convertPoint(getMiddlePoint(points[1], points[2]));
- group.addShape('Text', {
- attrs: Util.mix({
- x: point.x + labelCfg.offsetX,
- y: point.y + labelCfg.offsetY
- }, labelAttrs, DEFAULT_LABEL_CFG)
- });
- }
- });
- };
- _proto.clear = function clear() {
- var container = this.container;
- container.clear();
- };
- return Controller;
- }();
- module.exports = {
- init: function init(chart) {
- var frontPlot = chart.get('frontPlot');
- var labelGroup = frontPlot.addGroup({
- className: 'label',
- zIndex: 0
- });
- var labelController = new Controller({
- chart: chart,
- container: labelGroup
- });
- chart.set('intervalLabelController', labelController);
- chart.intervalLabel = function (cfg) {
- labelController.cfg = cfg;
- };
- },
- afterGeomDraw: function afterGeomDraw(chart) {
- var labelController = chart.get('intervalLabelController');
- labelController.draw();
- },
- clearInner: function clearInner(chart) {
- var labelController = chart.get('intervalLabelController');
- labelController.clear();
- }
- };
|