UNPKG

@antv/g2plot

Version:

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

126 lines 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var _ = tslib_1.__importStar(require("@antv/util")); var base_1 = tslib_1.__importDefault(require("../base")); var COLOR_MAPPER = ['colorField', 'stackField', 'groupField']; var IntervalParser = /** @class */ (function (_super) { tslib_1.__extends(IntervalParser, _super); function IntervalParser() { return _super !== null && _super.apply(this, arguments) || this; } IntervalParser.prototype.init = function () { this.type = 'interval'; _super.prototype.init.call(this); var props = this.plot.options; if (this._needParserColor()) { this.parseColor(); } if (!this.config.color) { this.config.color = { values: ['#5b8ff9'] }; } var sizeProps = this._getSizeProps(props); if (sizeProps) { this.parseSize(sizeProps); } var styleProps = this._getStyleProps(props); if (styleProps) { this.parseStyle(styleProps); } }; IntervalParser.prototype.parseColor = function () { var props = this.plot.options; var colorField = this._getColorMappingField(props); var config = {}; if (colorField) { config.fields = colorField; } if (props.color) { if (_.isString(props.color)) { config.values = [props.color]; } else if (_.isFunction(props.color)) { config.callback = props.color; } else if (_.isArray(props.color)) { config.values = props.color; } else if (_.isObject(props.color)) { config.fields = colorField; config.callback = function (d) { return props.color[d]; }; } } this.config.color = config; }; IntervalParser.prototype.parseSize = function (sizeProps) { var props = this.plot.options; var config = {}; if (_.isFunction(props[sizeProps])) { config.fields = [this.config.position.fields]; config.callback = props[sizeProps]; } else { config.values = [props[sizeProps]]; } this.config.size = config; }; IntervalParser.prototype.parseStyle = function (styleProps) { var style = this.plot.options[styleProps]; var config = {}; if (_.isFunction(style)) { config.fields = [this.config.position.fields]; config.callback = style; } else { config.cfg = style; } this.config.style = config; }; IntervalParser.prototype._getSizeProps = function (props) { var sizeMapper = ['columnSize', 'barSize']; for (var _i = 0, sizeMapper_1 = sizeMapper; _i < sizeMapper_1.length; _i++) { var m = sizeMapper_1[_i]; if (_.get(props, m)) { return m; } } }; IntervalParser.prototype._getStyleProps = function (props) { var sizeMapper = ['columnStyle', 'barStyle', 'pieStyle', 'ringStyle']; for (var _i = 0, sizeMapper_2 = sizeMapper; _i < sizeMapper_2.length; _i++) { var m = sizeMapper_2[_i]; if (_.get(props, m)) { return m; } } }; IntervalParser.prototype._getColorMappingField = function (props) { /**如果有colorFiled或stackField配置项(后者为堆叠interval),则参与colorMapping的字段为对应值 * 如没有特别设定,则一般是callback中的传参,传入位置映射的字段 */ for (var _i = 0, COLOR_MAPPER_1 = COLOR_MAPPER; _i < COLOR_MAPPER_1.length; _i++) { var m = COLOR_MAPPER_1[_i]; if (_.get(props, m)) { return [props[m]]; } } }; IntervalParser.prototype._needParserColor = function () { var props = this.plot.options; if (props.color) { return true; } for (var _i = 0, COLOR_MAPPER_2 = COLOR_MAPPER; _i < COLOR_MAPPER_2.length; _i++) { var m = COLOR_MAPPER_2[_i]; if (props[m]) { return true; } } return false; }; return IntervalParser; }(base_1.default)); exports.default = IntervalParser; //# sourceMappingURL=main.js.map