cat.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var util_1 = require("@antv/util");
  4. /**
  5. * 计算分类 ticks
  6. * @param cfg 度量的配置项
  7. * @returns 计算后的 ticks
  8. */
  9. function calculateCatTicks(cfg) {
  10. var values = cfg.values, tickInterval = cfg.tickInterval, tickCount = cfg.tickCount, showLast = cfg.showLast;
  11. if (util_1.isNumber(tickInterval)) {
  12. var ticks_1 = util_1.filter(values, function (__, i) { return i % tickInterval === 0; });
  13. var lastValue = util_1.last(values);
  14. if (showLast && util_1.last(ticks_1) !== lastValue) {
  15. ticks_1.push(lastValue);
  16. }
  17. return ticks_1;
  18. }
  19. var len = values.length;
  20. var min = cfg.min, max = cfg.max;
  21. if (util_1.isNil(min)) {
  22. min = 0;
  23. }
  24. if (util_1.isNil(max)) {
  25. max = values.length - 1;
  26. }
  27. if (!util_1.isNumber(tickCount) || tickCount >= len)
  28. return values.slice(min, max + 1);
  29. if (tickCount <= 0 || max <= 0)
  30. return [];
  31. var interval = tickCount === 1 ? len : Math.floor(len / (tickCount - 1));
  32. var ticks = [];
  33. var idx = min;
  34. for (var i = 0; i < tickCount; i++) {
  35. if (idx >= max)
  36. break;
  37. idx = Math.min(min + i * interval, max);
  38. if (i === tickCount - 1 && showLast)
  39. ticks.push(values[max]);
  40. else
  41. ticks.push(values[idx]);
  42. }
  43. return ticks;
  44. }
  45. exports.default = calculateCatTicks;
  46. //# sourceMappingURL=cat.js.map