| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- import { __spreadArray } from "tslib";
- import { each, isNil, isObject } from '@antv/util';
- import { AXIS_META_CONFIG_KEYS } from '../constant';
- import { addViewAnimation, deepAssign, pick } from '../utils';
- /**
- * 通用 legend 配置, 适用于带 colorField 或 seriesField 的图表
- * @param params
- */
- export function legend(params) {
- var chart = params.chart, options = params.options;
- var legend = options.legend, colorField = options.colorField, seriesField = options.seriesField;
- if (legend === false) {
- chart.legend(false);
- }
- else if (colorField || seriesField) {
- chart.legend(colorField || seriesField, legend);
- }
- return params;
- }
- /**
- * 通用 tooltip 配置
- * @param params
- */
- export function tooltip(params) {
- var chart = params.chart, options = params.options;
- var tooltip = options.tooltip;
- if (tooltip !== undefined) {
- chart.tooltip(tooltip);
- }
- return params;
- }
- /**
- * Interaction 配置
- * @param params
- */
- export function interaction(params) {
- var chart = params.chart, options = params.options;
- var interactions = options.interactions;
- each(interactions, function (i) {
- if (i.enable === false) {
- chart.removeInteraction(i.type);
- }
- else {
- chart.interaction(i.type, i.cfg || {});
- }
- });
- return params;
- }
- /**
- * 动画
- * @param params
- */
- export function animation(params) {
- var chart = params.chart, options = params.options;
- var animation = options.animation;
- // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)
- addViewAnimation(chart, animation);
- return params;
- }
- /**
- * 设置全局主题配置
- * @param params
- */
- export function theme(params) {
- var chart = params.chart, options = params.options;
- var theme = options.theme;
- // 存在主题才设置主题
- if (theme) {
- chart.theme(theme);
- }
- return params;
- }
- /**
- * 状态 state 配置
- * @param params
- */
- export function state(params) {
- var chart = params.chart, options = params.options;
- var state = options.state;
- if (state) {
- each(chart.geometries, function (geometry) {
- geometry.state(state);
- });
- }
- return params;
- }
- /**
- * 处理缩略轴的 adaptor
- * @param params
- */
- export function slider(params) {
- var chart = params.chart, options = params.options;
- var slider = options.slider;
- chart.option('slider', slider);
- return params;
- }
- /**
- * 处理缩略轴的 adaptor
- * @param params
- */
- export function scrollbar(params) {
- var chart = params.chart, options = params.options;
- var scrollbar = options.scrollbar;
- chart.option('scrollbar', scrollbar);
- return params;
- }
- /**
- * scale 的 adaptor
- * @param axes
- */
- export function scale(axes, meta) {
- return function (params) {
- var chart = params.chart, options = params.options;
- // 1. 轴配置中的 scale 信息
- var scales = {};
- each(axes, function (axis, field) {
- scales[field] = pick(axis, AXIS_META_CONFIG_KEYS);
- });
- // 2. meta 直接是 scale 的信息
- scales = deepAssign({}, meta, options.meta, scales);
- chart.scale(scales);
- return params;
- };
- }
- /**
- * annotation 配置
- * @param params
- */
- export function annotation(annotationOptions) {
- return function (params) {
- var chart = params.chart, options = params.options;
- var annotationController = chart.getController('annotation');
- /** 自定义 annotation */
- each(__spreadArray(__spreadArray([], (options.annotations || []), true), (annotationOptions || []), true), function (annotationOption) {
- // @ts-ignore
- annotationController.annotation(annotationOption);
- });
- return params;
- };
- }
- /**
- * 自动设置 limitInPlot
- * @param params
- */
- export function limitInPlot(params) {
- var chart = params.chart, options = params.options;
- var yAxis = options.yAxis, limitInPlot = options.limitInPlot;
- var value = limitInPlot;
- // 用户没有设置 limitInPlot,则自动根据 yAxis 是否有 min/max 来设置 limitInPlot
- if (isObject(yAxis) && isNil(limitInPlot)) {
- if (Object.values(pick(yAxis, ['min', 'max', 'minLimit', 'maxLimit'])).some(function (value) { return !isNil(value); })) {
- value = true;
- }
- else {
- value = false;
- }
- }
- chart.limitInPlot = value;
- return params;
- }
- /**
- * 坐标系转换
- */
- export function transformations(coordinateType) {
- if (coordinateType === void 0) { coordinateType = 'rect'; }
- return function (params) {
- var chart = params.chart, options = params.options;
- var coordinate = options.coordinate;
- var actions = Array.from(coordinate || [])
- .map(function (cfg) {
- if (cfg.type === 'reflectX')
- return ['reflect', 'x'];
- if (cfg.type === 'reflectY')
- return ['reflect', 'y'];
- if (cfg.type === 'transpose')
- return ['transpose'];
- return null;
- })
- .filter(function (d) { return !!d; });
- if (actions.length !== 0) {
- chart.coordinate({ type: coordinateType, actions: actions });
- }
- return params;
- };
- }
- export { pattern } from './pattern';
- //# sourceMappingURL=common.js.map
|