nice.js 633 B

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = nice;
  6. var _ticks = require("./ticks.js");
  7. function nice(start, stop, count) {
  8. let prestep;
  9. while (true) {
  10. const step = (0, _ticks.tickIncrement)(start, stop, count);
  11. if (step === prestep || step === 0 || !isFinite(step)) {
  12. return [start, stop];
  13. } else if (step > 0) {
  14. start = Math.floor(start / step) * step;
  15. stop = Math.ceil(stop / step) * step;
  16. } else if (step < 0) {
  17. start = Math.ceil(start * step) / step;
  18. stop = Math.floor(stop * step) / step;
  19. }
  20. prestep = step;
  21. }
  22. }