adaptor.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { animation, annotation, pattern, scale, theme, tooltip } from '../../adaptor/common';
  2. import { area, line, point } from '../../adaptor/geometries';
  3. import { deepAssign, flow } from '../../utils';
  4. import { adjustYMetaByZero } from '../../utils/data';
  5. import { X_FIELD, Y_FIELD } from '../tiny-line/constants';
  6. import { getTinyData } from '../tiny-line/utils';
  7. /**
  8. * 字段
  9. * @param params
  10. */
  11. function geometry(params) {
  12. var chart = params.chart, options = params.options;
  13. var data = options.data, color = options.color, areaStyle = options.areaStyle, pointOptions = options.point, lineOptions = options.line;
  14. var pointState = pointOptions === null || pointOptions === void 0 ? void 0 : pointOptions.state;
  15. var seriesData = getTinyData(data);
  16. chart.data(seriesData);
  17. var primary = deepAssign({}, params, {
  18. options: {
  19. xField: X_FIELD,
  20. yField: Y_FIELD,
  21. area: { color: color, style: areaStyle },
  22. line: lineOptions,
  23. point: pointOptions,
  24. },
  25. });
  26. var second = deepAssign({}, primary, { options: { tooltip: false } });
  27. var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } });
  28. // area geometry 处理
  29. area(primary);
  30. line(second);
  31. point(pointParams);
  32. chart.axis(false);
  33. chart.legend(false);
  34. return params;
  35. }
  36. /**
  37. * meta 配置
  38. * @param params
  39. */
  40. export function meta(params) {
  41. var _a, _b;
  42. var options = params.options;
  43. var xAxis = options.xAxis, yAxis = options.yAxis, data = options.data;
  44. var seriesData = getTinyData(data);
  45. return flow(scale((_a = {},
  46. _a[X_FIELD] = xAxis,
  47. _a[Y_FIELD] = yAxis,
  48. _a), (_b = {},
  49. _b[X_FIELD] = {
  50. type: 'cat',
  51. },
  52. _b[Y_FIELD] = adjustYMetaByZero(seriesData, Y_FIELD),
  53. _b)))(params);
  54. }
  55. /**
  56. * 迷你面积图适配器
  57. * @param chart
  58. * @param options
  59. */
  60. export function adaptor(params) {
  61. return flow(pattern('areaStyle'), geometry, meta, tooltip, theme, animation, annotation())(params);
  62. }
  63. //# sourceMappingURL=adaptor.js.map