cat.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import { filter, isNil, isNumber } from '@antv/util';
  2. import extended from '../util/extended';
  3. /**
  4. * 计算分类 ticks
  5. * @param cfg 度量的配置项
  6. * @returns 计算后的 ticks
  7. */
  8. export default function calculateCatTicks(cfg) {
  9. var values = cfg.values, tickInterval = cfg.tickInterval, tickCount = cfg.tickCount;
  10. var ticks = values;
  11. if (isNumber(tickInterval)) {
  12. return filter(ticks, function (__, i) { return i % tickInterval === 0; });
  13. }
  14. var min = cfg.min, max = cfg.max;
  15. if (isNil(min)) {
  16. min = 0;
  17. }
  18. if (isNil(max)) {
  19. max = values.length - 1;
  20. }
  21. if (isNumber(tickCount) && tickCount < max - min) {
  22. // 简单过滤,部分情况下小数的倍数也可以是整数
  23. // tslint:disable-next-line: no-shadowed-variable
  24. var ticks_1 = extended(min, max, tickCount, false, [1, 2, 5, 3, 4, 7, 6, 8, 9]).ticks;
  25. var valid = filter(ticks_1, function (tick) { return tick >= min && tick <= max; });
  26. return valid.map(function (index) { return values[index]; });
  27. }
  28. return values.slice(min, max + 1);
  29. }
  30. //# sourceMappingURL=cat.js.map