36bf4c12efffd9c810beeddee59d6cee4a10ec85e76a0dfae5daa89a77e4b63c3ff5d7a7b2cbc0c10805c6beb47b4ef5642a183fb7756f2317d6a660244dcc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import Scale from './Scale.js';
  2. import { ScaleTick, Dictionary } from '../util/types.js';
  3. declare class IntervalScale<SETTING extends Dictionary<unknown> = Dictionary<unknown>> extends Scale<SETTING> {
  4. static type: string;
  5. type: string;
  6. protected _interval: number;
  7. protected _niceExtent: [number, number];
  8. private _intervalPrecision;
  9. parse(val: number): number;
  10. contain(val: number): boolean;
  11. normalize(val: number): number;
  12. scale(val: number): number;
  13. setExtent(start: number | string, end: number | string): void;
  14. unionExtent(other: [number, number]): void;
  15. getInterval(): number;
  16. setInterval(interval: number): void;
  17. /**
  18. * @param expandToNicedExtent Whether expand the ticks to niced extent.
  19. */
  20. getTicks(expandToNicedExtent?: boolean): ScaleTick[];
  21. getMinorTicks(splitNumber: number): number[][];
  22. /**
  23. * @param opt.precision If 'auto', use nice presision.
  24. * @param opt.pad returns 1.50 but not 1.5 if precision is 2.
  25. */
  26. getLabel(data: ScaleTick, opt?: {
  27. precision?: 'auto' | number;
  28. pad?: boolean;
  29. }): string;
  30. /**
  31. * @param splitNumber By default `5`.
  32. */
  33. calcNiceTicks(splitNumber?: number, minInterval?: number, maxInterval?: number): void;
  34. calcNiceExtent(opt: {
  35. splitNumber: number;
  36. fixMin?: boolean;
  37. fixMax?: boolean;
  38. minInterval?: number;
  39. maxInterval?: number;
  40. }): void;
  41. setNiceExtent(min: number, max: number): void;
  42. }
  43. export default IntervalScale;