time.js 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var time_1 = require("../util/time");
  4. function calculateTimeTicks(cfg) {
  5. var min = cfg.min, max = cfg.max, minTickInterval = cfg.minTickInterval;
  6. var tickInterval = cfg.tickInterval;
  7. var tickCount = cfg.tickCount;
  8. // 指定 tickInterval 后 tickCount 不生效,需要重新计算
  9. if (tickInterval) {
  10. tickCount = Math.ceil((max - min) / tickInterval);
  11. }
  12. else {
  13. tickInterval = time_1.getTickInterval(min, max, tickCount)[1];
  14. var count = (max - min) / tickInterval;
  15. var ratio = count / tickCount;
  16. if (ratio > 1) {
  17. tickInterval = tickInterval * Math.ceil(ratio);
  18. }
  19. // 如果设置了最小间距,则使用最小间距
  20. if (minTickInterval && tickInterval < minTickInterval) {
  21. tickInterval = minTickInterval;
  22. }
  23. }
  24. tickInterval = Math.max(Math.floor((max - min) / (Math.pow(2, 12) - 1)), tickInterval);
  25. var ticks = [];
  26. for (var i = min; i < max + tickInterval; i += tickInterval) {
  27. ticks.push(i);
  28. }
  29. return ticks;
  30. }
  31. exports.default = calculateTimeTicks;
  32. //# sourceMappingURL=time.js.map