123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.pattern = exports.transformations = exports.limitInPlot = exports.annotation = exports.scale = exports.scrollbar = exports.slider = exports.state = exports.theme = exports.animation = exports.interaction = exports.tooltip = exports.legend = void 0;
- var tslib_1 = require("tslib");
- var util_1 = require("@antv/util");
- var constant_1 = require("../constant");
- var utils_1 = require("../utils");
- /**
- * 通用 legend 配置, 适用于带 colorField 或 seriesField 的图表
- * @param params
- */
- 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;
- }
- exports.legend = legend;
- /**
- * 通用 tooltip 配置
- * @param params
- */
- function tooltip(params) {
- var chart = params.chart, options = params.options;
- var tooltip = options.tooltip;
- if (tooltip !== undefined) {
- chart.tooltip(tooltip);
- }
- return params;
- }
- exports.tooltip = tooltip;
- /**
- * Interaction 配置
- * @param params
- */
- function interaction(params) {
- var chart = params.chart, options = params.options;
- var interactions = options.interactions;
- (0, util_1.each)(interactions, function (i) {
- if (i.enable === false) {
- chart.removeInteraction(i.type);
- }
- else {
- chart.interaction(i.type, i.cfg || {});
- }
- });
- return params;
- }
- exports.interaction = interaction;
- /**
- * 动画
- * @param params
- */
- function animation(params) {
- var chart = params.chart, options = params.options;
- var animation = options.animation;
- // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)
- (0, utils_1.addViewAnimation)(chart, animation);
- return params;
- }
- exports.animation = animation;
- /**
- * 设置全局主题配置
- * @param params
- */
- function theme(params) {
- var chart = params.chart, options = params.options;
- var theme = options.theme;
- // 存在主题才设置主题
- if (theme) {
- chart.theme(theme);
- }
- return params;
- }
- exports.theme = theme;
- /**
- * 状态 state 配置
- * @param params
- */
- function state(params) {
- var chart = params.chart, options = params.options;
- var state = options.state;
- if (state) {
- (0, util_1.each)(chart.geometries, function (geometry) {
- geometry.state(state);
- });
- }
- return params;
- }
- exports.state = state;
- /**
- * 处理缩略轴的 adaptor
- * @param params
- */
- function slider(params) {
- var chart = params.chart, options = params.options;
- var slider = options.slider;
- chart.option('slider', slider);
- return params;
- }
- exports.slider = slider;
- /**
- * 处理缩略轴的 adaptor
- * @param params
- */
- function scrollbar(params) {
- var chart = params.chart, options = params.options;
- var scrollbar = options.scrollbar;
- chart.option('scrollbar', scrollbar);
- return params;
- }
- exports.scrollbar = scrollbar;
- /**
- * scale 的 adaptor
- * @param axes
- */
- function scale(axes, meta) {
- return function (params) {
- var chart = params.chart, options = params.options;
- // 1. 轴配置中的 scale 信息
- var scales = {};
- (0, util_1.each)(axes, function (axis, field) {
- scales[field] = (0, utils_1.pick)(axis, constant_1.AXIS_META_CONFIG_KEYS);
- });
- // 2. meta 直接是 scale 的信息
- scales = (0, utils_1.deepAssign)({}, meta, options.meta, scales);
- chart.scale(scales);
- return params;
- };
- }
- exports.scale = scale;
- /**
- * annotation 配置
- * @param params
- */
- function annotation(annotationOptions) {
- return function (params) {
- var chart = params.chart, options = params.options;
- var annotationController = chart.getController('annotation');
- /** 自定义 annotation */
- (0, util_1.each)(tslib_1.__spreadArray(tslib_1.__spreadArray([], (options.annotations || []), true), (annotationOptions || []), true), function (annotationOption) {
- // @ts-ignore
- annotationController.annotation(annotationOption);
- });
- return params;
- };
- }
- exports.annotation = annotation;
- /**
- * 自动设置 limitInPlot
- * @param params
- */
- 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 ((0, util_1.isObject)(yAxis) && (0, util_1.isNil)(limitInPlot)) {
- if (Object.values((0, utils_1.pick)(yAxis, ['min', 'max', 'minLimit', 'maxLimit'])).some(function (value) { return !(0, util_1.isNil)(value); })) {
- value = true;
- }
- else {
- value = false;
- }
- }
- chart.limitInPlot = value;
- return params;
- }
- exports.limitInPlot = limitInPlot;
- /**
- * 坐标系转换
- */
- 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;
- };
- }
- exports.transformations = transformations;
- var pattern_1 = require("./pattern");
- Object.defineProperty(exports, "pattern", { enumerable: true, get: function () { return pattern_1.pattern; } });
- //# sourceMappingURL=common.js.map
|