adaptor.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import { __assign, __rest } from "tslib";
  2. import { animation, annotation, interaction, legend, scale, theme, tooltip } from '../../adaptor/common';
  3. import { area, line, point } from '../../adaptor/geometries';
  4. import { deepAssign, findGeometry, flow, transformLabel } from '../../utils';
  5. /**
  6. * geometry 配置处理
  7. * @param params
  8. */
  9. function geometry(params) {
  10. var chart = params.chart, options = params.options;
  11. var data = options.data, lineStyle = options.lineStyle, color = options.color, pointOptions = options.point, areaOptions = options.area;
  12. chart.data(data);
  13. // 雷达图 主 geometry
  14. var primary = deepAssign({}, params, {
  15. options: {
  16. line: {
  17. style: lineStyle,
  18. color: color,
  19. },
  20. point: pointOptions
  21. ? __assign({ color: color }, pointOptions) : pointOptions,
  22. area: areaOptions
  23. ? __assign({ color: color }, areaOptions) : areaOptions,
  24. // label 不传递给各个 geometry adaptor,由 label adaptor 处理
  25. label: undefined,
  26. },
  27. });
  28. // 副 Geometry
  29. var second = deepAssign({}, primary, {
  30. options: {
  31. tooltip: false,
  32. },
  33. });
  34. // 优先使用 point.state, 其次取主元素的 state 状态样式配置
  35. var pointState = (pointOptions === null || pointOptions === void 0 ? void 0 : pointOptions.state) || options.state;
  36. var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } });
  37. line(primary);
  38. point(pointParams);
  39. area(second);
  40. return params;
  41. }
  42. /**
  43. * meta 配置
  44. * @param params
  45. */
  46. function meta(params) {
  47. var _a;
  48. var options = params.options;
  49. var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField;
  50. return flow(scale((_a = {},
  51. _a[xField] = xAxis,
  52. _a[yField] = yAxis,
  53. _a)))(params);
  54. }
  55. /**
  56. * coord 配置
  57. * @param params
  58. */
  59. function coord(params) {
  60. var chart = params.chart, options = params.options;
  61. var radius = options.radius, startAngle = options.startAngle, endAngle = options.endAngle;
  62. chart.coordinate('polar', {
  63. radius: radius,
  64. startAngle: startAngle,
  65. endAngle: endAngle,
  66. });
  67. return params;
  68. }
  69. /**
  70. * axis 配置
  71. * @param params
  72. */
  73. function axis(params) {
  74. var chart = params.chart, options = params.options;
  75. var xField = options.xField, xAxis = options.xAxis, yField = options.yField, yAxis = options.yAxis;
  76. chart.axis(xField, xAxis);
  77. chart.axis(yField, yAxis);
  78. return params;
  79. }
  80. /**
  81. * label 配置
  82. * @param params
  83. */
  84. function label(params) {
  85. var chart = params.chart, options = params.options;
  86. var label = options.label, yField = options.yField;
  87. var geometry = findGeometry(chart, 'line');
  88. if (!label) {
  89. geometry.label(false);
  90. }
  91. else {
  92. var callback = label.callback, cfg = __rest(label, ["callback"]);
  93. geometry.label({
  94. fields: [yField],
  95. callback: callback,
  96. cfg: transformLabel(cfg),
  97. });
  98. }
  99. return params;
  100. }
  101. /**
  102. * 雷达图适配器
  103. * @param chart
  104. * @param options
  105. */
  106. export function adaptor(params) {
  107. // flow 的方式处理所有的配置到 G2 API
  108. return flow(geometry, meta, theme, coord, axis, legend, tooltip, label, interaction, animation, annotation())(params);
  109. }
  110. //# sourceMappingURL=adaptor.js.map