@antv/g2plot
Version:
An interactive and responsive charting library
77 lines • 3.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.interval = void 0;
var tslib_1 = require("tslib");
var g2_1 = require("@antv/g2");
var util_1 = require("@antv/util");
var utils_1 = require("../../utils");
var tooltip_1 = require("../../utils/tooltip");
var base_1 = require("./base");
/**
* 柱形图其他的 adaptor
* @param params
*/
function otherAdaptor(params) {
var chart = params.chart, options = params.options, ext = params.ext;
var seriesField = options.seriesField, isGroup = options.isGroup, isStack = options.isStack, marginRatio = options.marginRatio, widthRatio = options.widthRatio, groupField = options.groupField, theme = options.theme;
/**
* adjust
*/
var adjust = [];
if (seriesField) {
// group
if (isGroup) {
adjust.push({
type: 'dodge',
dodgeBy: groupField || seriesField,
marginRatio: marginRatio,
});
}
// stack
if (isStack) {
adjust.push({
type: 'stack',
marginRatio: marginRatio,
});
}
}
if (adjust.length && (ext === null || ext === void 0 ? void 0 : ext.geometry)) {
var g = ext === null || ext === void 0 ? void 0 : ext.geometry;
g.adjust(adjust);
}
// widthRatio
if (!util_1.isNil(widthRatio)) {
chart.theme(utils_1.deepAssign({}, util_1.isObject(theme) ? theme : g2_1.getTheme(theme), {
// columWidthRatio 配置覆盖 theme 中的配置
columnWidthRatio: widthRatio,
}));
}
return params;
}
function interval(params) {
var options = params.options;
var xField = options.xField, yField = options.yField, interval = options.interval, seriesField = options.seriesField, tooltip = options.tooltip, minColumnWidth = options.minColumnWidth, maxColumnWidth = options.maxColumnWidth, columnBackground = options.columnBackground, dodgePadding = options.dodgePadding, intervalPadding = options.intervalPadding, useDeferredLabel = options.useDeferredLabel;
var _a = tooltip_1.getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;
// 保障一定要存在 interval 映射
var ext = (interval
? base_1.geometry(utils_1.deepAssign({}, params, {
options: {
type: 'interval',
colorField: seriesField,
tooltipFields: fields,
mapping: tslib_1.__assign({ tooltip: formatter }, interval),
args: {
dodgePadding: dodgePadding,
intervalPadding: intervalPadding,
minColumnWidth: minColumnWidth,
maxColumnWidth: maxColumnWidth,
background: columnBackground,
useDeferredLabel: useDeferredLabel,
},
},
}))
: params).ext;
return otherAdaptor(tslib_1.__assign(tslib_1.__assign({}, params), { ext: ext }));
}
exports.interval = interval;
//# sourceMappingURL=interval.js.map