@antv/g2plot
Version:
G2 Plot, a market of plots built with the Grammar of Graphics'
48 lines • 1.95 kB
JavaScript
import { __extends } from "tslib";
import { ElementLabels, registerElementLabels } from '@antv/g2';
import { deepMix, each } from '@antv/util';
var MARGIN = 10;
var AreaLineElementLabels = /** @class */ (function (_super) {
__extends(AreaLineElementLabels, _super);
function AreaLineElementLabels() {
return _super !== null && _super.apply(this, arguments) || this;
}
AreaLineElementLabels.prototype.showLabels = function (points, shapes) {
var _this = this;
var labelPoints = [];
each(shapes, function (shape) {
var originData = shape.get('origin');
var lastPoint = deepMix({}, originData[originData.length - 1]);
var bbox = shape.getBBox();
lastPoint.x = bbox.maxX + MARGIN;
lastPoint.y = lastPoint.y[1];
labelPoints.push(lastPoint);
});
_super.prototype.showLabels.call(this, labelPoints, shapes);
var renderer = this.get('labelsRenderer');
var labels = renderer.get('group').get('children');
var view = this.get('element').get('view');
each(labels, function (label) {
label.attr('textAlign', 'left');
label.attr('textBaseline', 'middle');
var origin = label.get('origin');
var shapeId = _this.get('element').getShapeId(origin);
var color = _this._adjustColor(shapeId, shapes);
label.attr('fill', color);
});
view.get('canvas').draw();
};
AreaLineElementLabels.prototype._adjustColor = function (shapeId, shapes) {
var color;
each(shapes, function (shape) {
var id = shape.id;
if (id === shapeId) {
color = shape.attr('fill');
}
});
return color;
};
return AreaLineElementLabels;
}(ElementLabels));
registerElementLabels('areaLine', AreaLineElementLabels);
//# sourceMappingURL=line-label.js.map