NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/lib/geometry/label/interval.js
2023-09-14 14:47:11 +08:00

76 lines
2.9 KiB
Java

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("@antv/util");
var base_1 = tslib_1.__importDefault(require("./base"));
/**
* 柱状图 label
*/
var IntervalLabel = /** @class */ (function (_super) {
tslib_1.__extends(IntervalLabel, _super);
function IntervalLabel() {
return _super !== null && _super.apply(this, arguments) || this;
}
IntervalLabel.prototype.setLabelPosition = function (labelPointCfg, mappingData, index, position) {
var coordinate = this.getCoordinate();
var transposed = coordinate.isTransposed;
var shapePoints = mappingData.points;
var point0 = coordinate.convert(shapePoints[0]);
var point1 = coordinate.convert(shapePoints[2]);
var flag = transposed ? -1 : 1;
var width = ((point0.x - point1.x) / 2) * flag;
var height = ((point0.y - point1.y) / 2) * flag;
switch (position) {
case 'right':
if (!transposed) {
labelPointCfg.x -= width;
labelPointCfg.y += height;
}
labelPointCfg.textAlign = util_1.get(labelPointCfg, 'textAlign', 'left');
break;
case 'left':
if (transposed) {
labelPointCfg.x -= width * 2;
}
else {
labelPointCfg.x += width;
labelPointCfg.y += height;
}
labelPointCfg.textAlign = util_1.get(labelPointCfg, 'textAlign', 'right');
break;
case 'bottom':
if (transposed) {
labelPointCfg.x -= width;
labelPointCfg.y -= height;
}
else {
labelPointCfg.y += height * 2;
}
labelPointCfg.textAlign = util_1.get(labelPointCfg, 'textAlign', 'center');
labelPointCfg.textBaseline = util_1.get(labelPointCfg, 'textBaseline', 'top');
break;
case 'middle':
if (transposed) {
labelPointCfg.x -= width;
}
else {
labelPointCfg.y += height;
}
labelPointCfg.textAlign = util_1.get(labelPointCfg, 'textAlign', 'center');
break;
case 'top':
if (transposed) {
labelPointCfg.x -= width;
labelPointCfg.y += height;
}
labelPointCfg.textAlign = util_1.get(labelPointCfg, 'textAlign', 'center');
labelPointCfg.textBaseline = util_1.get(labelPointCfg, 'textBaseline', 'bottom');
break;
default:
break;
}
};
return IntervalLabel;
}(base_1.default));
exports.default = IntervalLabel;
//# sourceMappingURL=interval.js.map