@antv/g2plot
Version:
G2 Plot, a market of plots built with the Grammar of Graphics'
35 lines • 1.34 kB
JavaScript
import { __extends } from "tslib";
import { registerElementLabels } from '@antv/g2';
import * as _ from '@antv/util';
import { ColumnLabels } from '../../../column/component/label/column-label';
import { VALUE_FIELD } from '../../layer';
var WaterfallLabels = /** @class */ (function (_super) {
__extends(WaterfallLabels, _super);
function WaterfallLabels() {
return _super !== null && _super.apply(this, arguments) || this;
}
WaterfallLabels.prototype.adjustPosition = function (label, shape, item) {
var MARGIN = 2;
var shapeBox = shape.getBBox();
var origin = label.get('origin');
var yField = item.fields[0];
var values = origin[VALUE_FIELD];
var diff = origin[yField];
var value = _.isArray(values) ? values[1] : values;
var yPos = (shapeBox.minY + shapeBox.maxY) / 2;
var textBaseline = 'bottom';
if (diff < 0) {
yPos = shapeBox.maxY + MARGIN;
textBaseline = 'top';
}
else {
yPos = shapeBox.minY - MARGIN;
}
label.attr('y', yPos);
label.attr('text', value);
label.attr('textBaseline', textBaseline);
};
return WaterfallLabels;
}(ColumnLabels));
registerElementLabels('waterfall', WaterfallLabels);
//# sourceMappingURL=waterfall-label.js.map