adaptor.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.adaptor = 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 histogram_1 = require("../../utils/transform/histogram");
  10. var constant_1 = require("./constant");
  11. /**
  12. * geometry 处理
  13. * @param params
  14. */
  15. function geometry(params) {
  16. var chart = params.chart, options = params.options;
  17. var data = options.data, binField = options.binField, binNumber = options.binNumber, binWidth = options.binWidth, color = options.color, stackField = options.stackField, legend = options.legend, columnStyle = options.columnStyle;
  18. // 处理数据
  19. var plotData = (0, histogram_1.binHistogram)(data, binField, binWidth, binNumber, stackField);
  20. chart.data(plotData);
  21. var p = (0, utils_1.deepAssign)({}, params, {
  22. options: {
  23. xField: constant_1.HISTOGRAM_X_FIELD,
  24. yField: constant_1.HISTOGRAM_Y_FIELD,
  25. seriesField: stackField,
  26. isStack: true,
  27. interval: {
  28. color: color,
  29. style: columnStyle,
  30. },
  31. },
  32. });
  33. (0, geometries_1.interval)(p);
  34. // 图例
  35. if (legend && stackField) {
  36. chart.legend(stackField, legend);
  37. }
  38. else {
  39. chart.legend(false);
  40. }
  41. return params;
  42. }
  43. /**
  44. * meta 配置
  45. * @param params
  46. */
  47. function meta(params) {
  48. var _a;
  49. var options = params.options;
  50. var xAxis = options.xAxis, yAxis = options.yAxis;
  51. return (0, utils_1.flow)((0, common_1.scale)((_a = {},
  52. _a[constant_1.HISTOGRAM_X_FIELD] = xAxis,
  53. _a[constant_1.HISTOGRAM_Y_FIELD] = yAxis,
  54. _a)))(params);
  55. }
  56. /**
  57. * axis 配置
  58. * @param params
  59. */
  60. function axis(params) {
  61. var chart = params.chart, options = params.options;
  62. var xAxis = options.xAxis, yAxis = options.yAxis;
  63. // 为 false 则是不显示轴
  64. if (xAxis === false) {
  65. chart.axis(constant_1.HISTOGRAM_X_FIELD, false);
  66. }
  67. else {
  68. chart.axis(constant_1.HISTOGRAM_X_FIELD, xAxis);
  69. }
  70. if (yAxis === false) {
  71. chart.axis(constant_1.HISTOGRAM_Y_FIELD, false);
  72. }
  73. else {
  74. chart.axis(constant_1.HISTOGRAM_Y_FIELD, yAxis);
  75. }
  76. return params;
  77. }
  78. /**
  79. * label 配置
  80. * @param params
  81. */
  82. function label(params) {
  83. var chart = params.chart, options = params.options;
  84. var label = options.label;
  85. var geometry = (0, utils_1.findGeometry)(chart, 'interval');
  86. if (!label) {
  87. geometry.label(false);
  88. }
  89. else {
  90. var callback = label.callback, cfg = tslib_1.__rest(label, ["callback"]);
  91. geometry.label({
  92. fields: [constant_1.HISTOGRAM_Y_FIELD],
  93. callback: callback,
  94. cfg: (0, utils_1.transformLabel)(cfg),
  95. });
  96. }
  97. return params;
  98. }
  99. /**
  100. * 直方图适配器
  101. * @param chart
  102. * @param options
  103. */
  104. function adaptor(params) {
  105. // flow 的方式处理所有的配置到 G2 API
  106. return (0, utils_1.flow)(common_1.theme, (0, pattern_1.pattern)('columnStyle'), geometry, meta, axis, common_1.state, label, common_1.tooltip, common_1.interaction, common_1.animation)(params);
  107. }
  108. exports.adaptor = adaptor;
  109. //# sourceMappingURL=adaptor.js.map