UNPKG

@antv/g2plot

Version:

G2 Plot, a market of plots built with the Grammar of Graphics'

84 lines 2.85 kB
"use strict"; 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