interval.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { __assign } from "tslib";
  2. import { getTheme } from '@antv/g2';
  3. import { isNil, isObject } from '@antv/util';
  4. import { deepAssign } from '../../utils';
  5. import { getTooltipMapping } from '../../utils/tooltip';
  6. import { geometry } from './base';
  7. /**
  8. * 柱形图其他的 adaptor
  9. * @param params
  10. */
  11. function otherAdaptor(params) {
  12. var chart = params.chart, options = params.options, ext = params.ext;
  13. var seriesField = options.seriesField, isGroup = options.isGroup, isStack = options.isStack, marginRatio = options.marginRatio, widthRatio = options.widthRatio, groupField = options.groupField, theme = options.theme;
  14. /**
  15. * adjust
  16. */
  17. var adjust = [];
  18. if (seriesField) {
  19. // group
  20. if (isGroup) {
  21. adjust.push({
  22. type: 'dodge',
  23. dodgeBy: groupField || seriesField,
  24. marginRatio: marginRatio,
  25. });
  26. }
  27. // stack
  28. if (isStack) {
  29. adjust.push({
  30. type: 'stack',
  31. marginRatio: marginRatio,
  32. });
  33. }
  34. }
  35. if (adjust.length && (ext === null || ext === void 0 ? void 0 : ext.geometry)) {
  36. var g = ext === null || ext === void 0 ? void 0 : ext.geometry;
  37. g.adjust(adjust);
  38. }
  39. // widthRatio
  40. if (!isNil(widthRatio)) {
  41. chart.theme(deepAssign({}, isObject(theme) ? theme : getTheme(theme), {
  42. // columWidthRatio 配置覆盖 theme 中的配置
  43. columnWidthRatio: widthRatio,
  44. }));
  45. }
  46. return params;
  47. }
  48. export function interval(params) {
  49. var options = params.options;
  50. var xField = options.xField, yField = options.yField, interval = options.interval, seriesField = options.seriesField, tooltip = options.tooltip, minColumnWidth = options.minColumnWidth, maxColumnWidth = options.maxColumnWidth, columnBackground = options.columnBackground, dodgePadding = options.dodgePadding, intervalPadding = options.intervalPadding, useDeferredLabel = options.useDeferredLabel;
  51. var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]), fields = _a.fields, formatter = _a.formatter;
  52. // 保障一定要存在 interval 映射
  53. var ext = (interval
  54. ? geometry(deepAssign({}, params, {
  55. options: {
  56. type: 'interval',
  57. colorField: seriesField,
  58. tooltipFields: fields,
  59. mapping: __assign({ tooltip: formatter }, interval),
  60. args: {
  61. dodgePadding: dodgePadding,
  62. intervalPadding: intervalPadding,
  63. minColumnWidth: minColumnWidth,
  64. maxColumnWidth: maxColumnWidth,
  65. background: columnBackground,
  66. useDeferredLabel: useDeferredLabel,
  67. },
  68. },
  69. }))
  70. : params).ext;
  71. return otherAdaptor(__assign(__assign({}, params), { ext: ext }));
  72. }
  73. //# sourceMappingURL=interval.js.map