| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- "use strict";
- exports.__esModule = true;
- exports.init = init;
- exports.afterGeomDraw = afterGeomDraw;
- exports.clearInner = clearInner;
- exports["default"] = void 0;
- var _common = 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 = (0, _common.mix)({}, DEFAULT_CFG, cfg);
- var geom = chart.get('geoms')[0];
- var shapes = geom.get('container').get('children');
- shapes.forEach(function (shape) {
- var origin = shape.get('origin');
- var attrs = shape.get('attrs');
- var _origin = origin._origin,
- color = origin.color;
- var points = attrs.points;
- if (labelCfg.label) {
- var labelAttrs = labelCfg.label(_origin, color);
- var point = getMiddlePoint(points[1], points[2]);
- container.addShape('Text', {
- attrs: (0, _common.mix)({
- x: point.x + labelCfg.offsetX,
- y: point.y + labelCfg.offsetY
- }, DEFAULT_LABEL_CFG, labelAttrs)
- });
- }
- if (labelCfg.guide) {
- var _labelAttrs = labelCfg.guide(_origin, color);
- var _point = getMiddlePoint(getMiddlePoint(points[0], points[1]), getMiddlePoint(points[2], points[3] || points[2]));
- container.addShape('Text', {
- attrs: (0, _common.mix)({
- x: _point.x,
- y: _point.y,
- textBaseline: 'middle',
- textAlign: 'center'
- }, DEFAULT_LABEL_CFG, _labelAttrs)
- });
- }
- });
- };
- _proto.clear = function clear() {
- var container = this.container;
- container.clear();
- };
- return Controller;
- }();
- 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;
- };
- }
- function afterGeomDraw(chart) {
- var labelController = chart.get('intervalLabelController');
- labelController.draw();
- }
- function clearInner(chart) {
- var labelController = chart.get('intervalLabelController');
- labelController.clear();
- }
- var _default = {
- init: init,
- afterGeomDraw: afterGeomDraw,
- clearInner: clearInner
- };
- exports["default"] = _default;
|