@antv/g2plot
Version:
An interactive and responsive charting library
73 lines • 2.98 kB
JavaScript
import { __assign } from "tslib";
import { getTheme } from '@antv/g2';
import { isNil, isObject } from '@antv/util';
import { deepAssign } from '../../utils';
import { getTooltipMapping } from '../../utils/tooltip';
import { geometry } from './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 (!isNil(widthRatio)) {
chart.theme(deepAssign({}, isObject(theme) ? theme : getTheme(theme), {
// columWidthRatio 配置覆盖 theme 中的配置
columnWidthRatio: widthRatio,
}));
}
return params;
}
export 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 = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;
// 保障一定要存在 interval 映射
var ext = (interval
? geometry(deepAssign({}, params, {
options: {
type: 'interval',
colorField: seriesField,
tooltipFields: fields,
mapping: __assign({ tooltip: formatter }, interval),
args: {
dodgePadding: dodgePadding,
intervalPadding: intervalPadding,
minColumnWidth: minColumnWidth,
maxColumnWidth: maxColumnWidth,
background: columnBackground,
useDeferredLabel: useDeferredLabel,
},
},
}))
: params).ext;
return otherAdaptor(__assign(__assign({}, params), { ext: ext }));
}
//# sourceMappingURL=interval.js.map