adaptor.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.adaptor = exports.geometry = exports.meta = void 0;
  4. var tslib_1 = require("tslib");
  5. var common_1 = require("../../adaptor/common");
  6. var utils_1 = require("../../utils");
  7. var adaptor_1 = require("../column/adaptor");
  8. var adaptor_2 = require("../column/adaptor");
  9. Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return adaptor_2.meta; } });
  10. /**
  11. * 处理默认配置项
  12. * 1. switch xField、 yField
  13. * 2. switch xAxis、 yAxis and adjust axis.position configuration
  14. */
  15. function defaultOptions(params) {
  16. var options = params.options;
  17. var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis;
  18. var position = {
  19. left: 'bottom',
  20. right: 'top',
  21. top: 'left',
  22. bottom: 'right',
  23. };
  24. var verticalAxis = yAxis !== false
  25. ? tslib_1.__assign({ position: position[(yAxis === null || yAxis === void 0 ? void 0 : yAxis.position) || 'left'] }, yAxis) : false;
  26. var horizontalAxis = xAxis !== false
  27. ? tslib_1.__assign({ position: position[(xAxis === null || xAxis === void 0 ? void 0 : xAxis.position) || 'bottom'] }, xAxis) : false;
  28. return tslib_1.__assign(tslib_1.__assign({}, params), { options: tslib_1.__assign(tslib_1.__assign({}, options), { xField: yField, yField: xField,
  29. // 条形图 xAxis,yAxis 不可以做 deepAssign
  30. xAxis: verticalAxis, yAxis: horizontalAxis }) });
  31. }
  32. /**
  33. * label 适配器
  34. * @param params
  35. */
  36. function label(params) {
  37. var options = params.options;
  38. var label = options.label;
  39. // label of bar charts default position is left, if plot has label
  40. if (label && !label.position) {
  41. label.position = 'left';
  42. // 配置默认的 label layout: 如果用户没有指定 layout 和 position, 则自动配置 layout
  43. if (!label.layout) {
  44. label.layout = [
  45. { type: 'interval-adjust-position' },
  46. { type: 'interval-hide-overlap' },
  47. { type: 'adjust-color' },
  48. { type: 'limit-in-plot', cfg: { action: 'hide' } },
  49. ];
  50. }
  51. }
  52. return (0, utils_1.deepAssign)({}, params, { options: { label: label } });
  53. }
  54. /**
  55. * legend 适配器
  56. * @param params
  57. */
  58. function legend(params) {
  59. var options = params.options;
  60. // 默认 legend 位置
  61. var seriesField = options.seriesField, isStack = options.isStack;
  62. var legend = options.legend;
  63. if (seriesField) {
  64. if (legend !== false) {
  65. legend = tslib_1.__assign({ position: isStack ? 'top-left' : 'right-top' }, (legend || {}));
  66. }
  67. }
  68. else {
  69. legend = false;
  70. }
  71. return (0, utils_1.deepAssign)({}, params, { options: { legend: legend } });
  72. }
  73. /**
  74. * coordinate 适配器
  75. * @param params
  76. */
  77. function coordinate(params) {
  78. // transpose column to bar 对角变换 & y 方向镜像变换
  79. var options = params.options;
  80. var coordinateOptions = [{ type: 'transpose' }, { type: 'reflectY' }].concat(options.coordinate || []);
  81. return (0, utils_1.deepAssign)({}, params, { options: { coordinate: coordinateOptions } });
  82. }
  83. /**
  84. * 柱形图适配器
  85. * @param params
  86. */
  87. function geometry(params) {
  88. var chart = params.chart, options = params.options;
  89. var barStyle = options.barStyle, barWidthRatio = options.barWidthRatio, minBarWidth = options.minBarWidth, maxBarWidth = options.maxBarWidth, barBackground = options.barBackground;
  90. return (0, adaptor_1.adaptor)({
  91. chart: chart,
  92. options: tslib_1.__assign(tslib_1.__assign({}, options), {
  93. // rename attrs as column
  94. columnStyle: barStyle, columnWidthRatio: barWidthRatio, minColumnWidth: minBarWidth, maxColumnWidth: maxBarWidth, columnBackground: barBackground }),
  95. }, true);
  96. }
  97. exports.geometry = geometry;
  98. /**
  99. * @param chart
  100. * @param options
  101. */
  102. function adaptor(params) {
  103. // flow 的方式处理所有的配置到 G2 API
  104. return (0, utils_1.flow)(defaultOptions, label, legend, common_1.tooltip, coordinate, geometry)(params);
  105. }
  106. exports.adaptor = adaptor;
  107. //# sourceMappingURL=adaptor.js.map