common.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. 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;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("@antv/util");
  6. var constant_1 = require("../constant");
  7. var utils_1 = require("../utils");
  8. /**
  9. * 通用 legend 配置, 适用于带 colorField 或 seriesField 的图表
  10. * @param params
  11. */
  12. function legend(params) {
  13. var chart = params.chart, options = params.options;
  14. var legend = options.legend, colorField = options.colorField, seriesField = options.seriesField;
  15. if (legend === false) {
  16. chart.legend(false);
  17. }
  18. else if (colorField || seriesField) {
  19. chart.legend(colorField || seriesField, legend);
  20. }
  21. return params;
  22. }
  23. exports.legend = legend;
  24. /**
  25. * 通用 tooltip 配置
  26. * @param params
  27. */
  28. function tooltip(params) {
  29. var chart = params.chart, options = params.options;
  30. var tooltip = options.tooltip;
  31. if (tooltip !== undefined) {
  32. chart.tooltip(tooltip);
  33. }
  34. return params;
  35. }
  36. exports.tooltip = tooltip;
  37. /**
  38. * Interaction 配置
  39. * @param params
  40. */
  41. function interaction(params) {
  42. var chart = params.chart, options = params.options;
  43. var interactions = options.interactions;
  44. (0, util_1.each)(interactions, function (i) {
  45. if (i.enable === false) {
  46. chart.removeInteraction(i.type);
  47. }
  48. else {
  49. chart.interaction(i.type, i.cfg || {});
  50. }
  51. });
  52. return params;
  53. }
  54. exports.interaction = interaction;
  55. /**
  56. * 动画
  57. * @param params
  58. */
  59. function animation(params) {
  60. var chart = params.chart, options = params.options;
  61. var animation = options.animation;
  62. // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)
  63. (0, utils_1.addViewAnimation)(chart, animation);
  64. return params;
  65. }
  66. exports.animation = animation;
  67. /**
  68. * 设置全局主题配置
  69. * @param params
  70. */
  71. function theme(params) {
  72. var chart = params.chart, options = params.options;
  73. var theme = options.theme;
  74. // 存在主题才设置主题
  75. if (theme) {
  76. chart.theme(theme);
  77. }
  78. return params;
  79. }
  80. exports.theme = theme;
  81. /**
  82. * 状态 state 配置
  83. * @param params
  84. */
  85. function state(params) {
  86. var chart = params.chart, options = params.options;
  87. var state = options.state;
  88. if (state) {
  89. (0, util_1.each)(chart.geometries, function (geometry) {
  90. geometry.state(state);
  91. });
  92. }
  93. return params;
  94. }
  95. exports.state = state;
  96. /**
  97. * 处理缩略轴的 adaptor
  98. * @param params
  99. */
  100. function slider(params) {
  101. var chart = params.chart, options = params.options;
  102. var slider = options.slider;
  103. chart.option('slider', slider);
  104. return params;
  105. }
  106. exports.slider = slider;
  107. /**
  108. * 处理缩略轴的 adaptor
  109. * @param params
  110. */
  111. function scrollbar(params) {
  112. var chart = params.chart, options = params.options;
  113. var scrollbar = options.scrollbar;
  114. chart.option('scrollbar', scrollbar);
  115. return params;
  116. }
  117. exports.scrollbar = scrollbar;
  118. /**
  119. * scale 的 adaptor
  120. * @param axes
  121. */
  122. function scale(axes, meta) {
  123. return function (params) {
  124. var chart = params.chart, options = params.options;
  125. // 1. 轴配置中的 scale 信息
  126. var scales = {};
  127. (0, util_1.each)(axes, function (axis, field) {
  128. scales[field] = (0, utils_1.pick)(axis, constant_1.AXIS_META_CONFIG_KEYS);
  129. });
  130. // 2. meta 直接是 scale 的信息
  131. scales = (0, utils_1.deepAssign)({}, meta, options.meta, scales);
  132. chart.scale(scales);
  133. return params;
  134. };
  135. }
  136. exports.scale = scale;
  137. /**
  138. * annotation 配置
  139. * @param params
  140. */
  141. function annotation(annotationOptions) {
  142. return function (params) {
  143. var chart = params.chart, options = params.options;
  144. var annotationController = chart.getController('annotation');
  145. /** 自定义 annotation */
  146. (0, util_1.each)(tslib_1.__spreadArray(tslib_1.__spreadArray([], (options.annotations || []), true), (annotationOptions || []), true), function (annotationOption) {
  147. // @ts-ignore
  148. annotationController.annotation(annotationOption);
  149. });
  150. return params;
  151. };
  152. }
  153. exports.annotation = annotation;
  154. /**
  155. * 自动设置 limitInPlot
  156. * @param params
  157. */
  158. function limitInPlot(params) {
  159. var chart = params.chart, options = params.options;
  160. var yAxis = options.yAxis, limitInPlot = options.limitInPlot;
  161. var value = limitInPlot;
  162. // 用户没有设置 limitInPlot,则自动根据 yAxis 是否有 min/max 来设置 limitInPlot
  163. if ((0, util_1.isObject)(yAxis) && (0, util_1.isNil)(limitInPlot)) {
  164. if (Object.values((0, utils_1.pick)(yAxis, ['min', 'max', 'minLimit', 'maxLimit'])).some(function (value) { return !(0, util_1.isNil)(value); })) {
  165. value = true;
  166. }
  167. else {
  168. value = false;
  169. }
  170. }
  171. chart.limitInPlot = value;
  172. return params;
  173. }
  174. exports.limitInPlot = limitInPlot;
  175. /**
  176. * 坐标系转换
  177. */
  178. function transformations(coordinateType) {
  179. if (coordinateType === void 0) { coordinateType = 'rect'; }
  180. return function (params) {
  181. var chart = params.chart, options = params.options;
  182. var coordinate = options.coordinate;
  183. var actions = Array.from(coordinate || [])
  184. .map(function (cfg) {
  185. if (cfg.type === 'reflectX')
  186. return ['reflect', 'x'];
  187. if (cfg.type === 'reflectY')
  188. return ['reflect', 'y'];
  189. if (cfg.type === 'transpose')
  190. return ['transpose'];
  191. return null;
  192. })
  193. .filter(function (d) { return !!d; });
  194. if (actions.length !== 0) {
  195. chart.coordinate({ type: coordinateType, actions: actions });
  196. }
  197. return params;
  198. };
  199. }
  200. exports.transformations = transformations;
  201. var pattern_1 = require("./pattern");
  202. Object.defineProperty(exports, "pattern", { enumerable: true, get: function () { return pattern_1.pattern; } });
  203. //# sourceMappingURL=common.js.map