@antv/g2plot
Version:
G2 Plot, a market of plots built with the Grammar of Graphics'
84 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var _ = tslib_1.__importStar(require("@antv/util"));
var global_1 = require("../../base/global");
var factory_1 = require("../../components/factory");
var layer_1 = tslib_1.__importDefault(require("../area/layer"));
require("./component/label/area-label");
require("./component/label/line-label");
var StackAreaLayer = /** @class */ (function (_super) {
tslib_1.__extends(StackAreaLayer, _super);
function StackAreaLayer() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = 'stackArea';
return _this;
}
StackAreaLayer.getDefaultOptions = function () {
return _.deepMix({}, _super.getDefaultOptions.call(this), {
label: {
visible: false,
type: 'area',
},
});
};
StackAreaLayer.prototype.label = function () {
var props = this.options;
var label = props.label;
if (label && label.visible === false) {
this.area.label = false;
return;
}
var labelType = this.getLabelType(label);
/** label类型为line,即跟随在折线尾部时,设置offset为0 */
if (labelType === 'areaLine' || labelType === 'area') {
label.offset = 0;
}
if (labelType === 'area') {
label.style = _.deepMix({}, label.style, {
lineWidth: 0,
stroke: 'rgba(0,0,0,0)',
});
}
this.area.label = factory_1.getComponent('label', tslib_1.__assign({ fields: [this.getLabelField(labelType, props)], labelType: labelType, plot: this }, label));
};
StackAreaLayer.prototype.adjustArea = function (ele) {
ele.adjust = [
{
type: 'stack',
},
];
};
StackAreaLayer.prototype.adjustLine = function (ele) {
ele.adjust = [
{
type: 'stack',
},
];
};
StackAreaLayer.prototype.adjustPoint = function (ele) {
ele.adjust = [
{
type: 'stack',
},
];
};
StackAreaLayer.prototype.getLabelField = function (type, props) {
var mapper = {
point: props.yField,
areaLine: props.stackField,
area: props.stackField,
};
return mapper[type];
};
StackAreaLayer.prototype.getLabelType = function (labelProps) {
if (labelProps.type === 'line') {
return 'areaLine';
}
return labelProps.type;
};
return StackAreaLayer;
}(layer_1.default));
exports.default = StackAreaLayer;
global_1.registerPlotType('stackArea', StackAreaLayer);
//# sourceMappingURL=layer.js.map