@antv/g2plot
Version:
An interactive and responsive charting library
107 lines • 4.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.adaptor = exports.geometry = exports.meta = void 0;
var tslib_1 = require("tslib");
var common_1 = require("../../adaptor/common");
var utils_1 = require("../../utils");
var adaptor_1 = require("../column/adaptor");
var adaptor_2 = require("../column/adaptor");
Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return adaptor_2.meta; } });
/**
* 处理默认配置项
* 1. switch xField、 yField
* 2. switch xAxis、 yAxis and adjust axis.position configuration
*/
function defaultOptions(params) {
var options = params.options;
var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis;
var position = {
left: 'bottom',
right: 'top',
top: 'left',
bottom: 'right',
};
var verticalAxis = yAxis !== false
? tslib_1.__assign({ position: position[(yAxis === null || yAxis === void 0 ? void 0 : yAxis.position) || 'left'] }, yAxis) : false;
var horizontalAxis = xAxis !== false
? tslib_1.__assign({ position: position[(xAxis === null || xAxis === void 0 ? void 0 : xAxis.position) || 'bottom'] }, xAxis) : false;
return tslib_1.__assign(tslib_1.__assign({}, params), { options: tslib_1.__assign(tslib_1.__assign({}, options), { xField: yField, yField: xField,
// 条形图 xAxis,yAxis 不可以做 deepAssign
xAxis: verticalAxis, yAxis: horizontalAxis }) });
}
/**
* label 适配器
* @param params
*/
function label(params) {
var options = params.options;
var label = options.label;
// label of bar charts default position is left, if plot has label
if (label && !label.position) {
label.position = 'left';
// 配置默认的 label layout: 如果用户没有指定 layout 和 position, 则自动配置 layout
if (!label.layout) {
label.layout = [
{ type: 'interval-adjust-position' },
{ type: 'interval-hide-overlap' },
{ type: 'adjust-color' },
{ type: 'limit-in-plot', cfg: { action: 'hide' } },
];
}
}
return (0, utils_1.deepAssign)({}, params, { options: { label: label } });
}
/**
* legend 适配器
* @param params
*/
function legend(params) {
var options = params.options;
// 默认 legend 位置
var seriesField = options.seriesField, isStack = options.isStack;
var legend = options.legend;
if (seriesField) {
if (legend !== false) {
legend = tslib_1.__assign({ position: isStack ? 'top-left' : 'right-top' }, (legend || {}));
}
}
else {
legend = false;
}
return (0, utils_1.deepAssign)({}, params, { options: { legend: legend } });
}
/**
* coordinate 适配器
* @param params
*/
function coordinate(params) {
// transpose column to bar 对角变换 & y 方向镜像变换
var options = params.options;
var coordinateOptions = [{ type: 'transpose' }, { type: 'reflectY' }].concat(options.coordinate || []);
return (0, utils_1.deepAssign)({}, params, { options: { coordinate: coordinateOptions } });
}
/**
* 柱形图适配器
* @param params
*/
function geometry(params) {
var chart = params.chart, options = params.options;
var barStyle = options.barStyle, barWidthRatio = options.barWidthRatio, minBarWidth = options.minBarWidth, maxBarWidth = options.maxBarWidth, barBackground = options.barBackground;
return (0, adaptor_1.adaptor)({
chart: chart,
options: tslib_1.__assign(tslib_1.__assign({}, options), {
// rename attrs as column
columnStyle: barStyle, columnWidthRatio: barWidthRatio, minColumnWidth: minBarWidth, maxColumnWidth: maxBarWidth, columnBackground: barBackground }),
}, true);
}
exports.geometry = geometry;
/**
* @param chart
* @param options
*/
function adaptor(params) {
// flow 的方式处理所有的配置到 G2 API
return (0, utils_1.flow)(defaultOptions, label, legend, common_1.tooltip, coordinate, geometry)(params);
}
exports.adaptor = adaptor;
//# sourceMappingURL=adaptor.js.map