adaptor.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.adaptor = exports.axis = exports.meta = void 0;
  4. var tslib_1 = require("tslib");
  5. var common_1 = require("../../adaptor/common");
  6. var geometries_1 = require("../../adaptor/geometries");
  7. var pattern_1 = require("../../adaptor/pattern");
  8. var utils_1 = require("../../utils");
  9. var utils_2 = require("./utils");
  10. /**
  11. * geometry 处理
  12. * @param params
  13. */
  14. function geometry(params) {
  15. var chart = params.chart, options = params.options;
  16. var style = options.barStyle, color = options.color, tooltip = options.tooltip, colorField = options.colorField, type = options.type, xField = options.xField, yField = options.yField, data = options.data, shape = options.shape;
  17. // 处理不合法的数据
  18. var processData = (0, utils_1.processIllegalData)(data, yField);
  19. chart.data(processData);
  20. var p = (0, utils_1.deepAssign)({}, params, {
  21. options: {
  22. tooltip: tooltip,
  23. seriesField: colorField,
  24. interval: {
  25. style: style,
  26. color: color,
  27. shape: shape || (type === 'line' ? 'line' : 'intervel'),
  28. },
  29. // 柱子的一些样式设置:柱子最小宽度、柱子最大宽度、柱子背景
  30. minColumnWidth: options.minBarWidth,
  31. maxColumnWidth: options.maxBarWidth,
  32. columnBackground: options.barBackground,
  33. },
  34. });
  35. (0, geometries_1.interval)(p);
  36. if (type === 'line') {
  37. (0, geometries_1.point)({
  38. chart: chart,
  39. options: { xField: xField, yField: yField, seriesField: colorField, point: { shape: 'circle', color: color } },
  40. });
  41. }
  42. return params;
  43. }
  44. /**
  45. * meta 配置
  46. * @param params
  47. */
  48. function meta(params) {
  49. var _a;
  50. var options = params.options;
  51. var yField = options.yField, xField = options.xField, data = options.data, isStack = options.isStack, isGroup = options.isGroup, colorField = options.colorField, maxAngle = options.maxAngle;
  52. var actualData = isStack && !isGroup && colorField ? (0, utils_2.getStackedData)(data, xField, yField) : data;
  53. var processData = (0, utils_1.processIllegalData)(actualData, yField);
  54. return (0, utils_1.flow)((0, common_1.scale)((_a = {},
  55. _a[yField] = {
  56. min: 0,
  57. max: (0, utils_2.getScaleMax)(maxAngle, yField, processData),
  58. },
  59. _a)))(params);
  60. }
  61. exports.meta = meta;
  62. /**
  63. * coordinate 配置
  64. * @param params
  65. */
  66. function coordinate(params) {
  67. var chart = params.chart, options = params.options;
  68. var radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle;
  69. chart
  70. .coordinate({
  71. type: 'polar',
  72. cfg: {
  73. radius: radius,
  74. innerRadius: innerRadius,
  75. startAngle: startAngle,
  76. endAngle: endAngle,
  77. },
  78. })
  79. .transpose();
  80. return params;
  81. }
  82. /**
  83. * axis 配置
  84. * @param params
  85. */
  86. function axis(params) {
  87. var chart = params.chart, options = params.options;
  88. var xField = options.xField, xAxis = options.xAxis;
  89. chart.axis(xField, xAxis);
  90. return params;
  91. }
  92. exports.axis = axis;
  93. /**
  94. * 数据标签
  95. * @param params
  96. */
  97. function label(params) {
  98. var chart = params.chart, options = params.options;
  99. var label = options.label, yField = options.yField;
  100. var intervalGeometry = (0, utils_1.findGeometry)(chart, 'interval');
  101. // label 为 false, 空 则不显示 label
  102. if (!label) {
  103. intervalGeometry.label(false);
  104. }
  105. else {
  106. var callback = label.callback, cfg = tslib_1.__rest(label, ["callback"]);
  107. intervalGeometry.label({
  108. fields: [yField],
  109. callback: callback,
  110. cfg: tslib_1.__assign(tslib_1.__assign({}, (0, utils_1.transformLabel)(cfg)), { type: 'polar' }),
  111. });
  112. }
  113. return params;
  114. }
  115. /**
  116. * 图适配器
  117. * @param chart
  118. * @param options
  119. */
  120. function adaptor(params) {
  121. return (0, utils_1.flow)((0, pattern_1.pattern)('barStyle'), geometry, meta, axis, coordinate, common_1.interaction, common_1.animation, common_1.theme, common_1.tooltip, common_1.legend, (0, common_1.annotation)(), label)(params);
  122. }
  123. exports.adaptor = adaptor;
  124. //# sourceMappingURL=adaptor.js.map