scrollbar.d.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { IGroup } from '@antv/g-base';
  2. import GroupComponent from '../abstract/group-component';
  3. import { ISlider } from '../interfaces';
  4. import { GroupComponentCfg, Range } from '../types';
  5. export interface ScrollbarStyle {
  6. trackColor: string;
  7. thumbColor: string;
  8. size: number;
  9. lineCap: string;
  10. }
  11. export interface ScrollbarTheme {
  12. default?: Partial<Readonly<ScrollbarStyle>>;
  13. hover?: Pick<Readonly<ScrollbarStyle>, 'thumbColor'>;
  14. }
  15. export declare const DEFAULT_THEME: ScrollbarTheme;
  16. export interface ScrollbarCfg extends GroupComponentCfg {
  17. x: number;
  18. y: number;
  19. isHorizontal?: boolean;
  20. trackLen: number;
  21. thumbLen: number;
  22. minThumbLen?: number;
  23. thumbOffset?: number;
  24. size?: number;
  25. theme?: ScrollbarTheme;
  26. minLimit?: number;
  27. maxLimit?: number;
  28. }
  29. export declare class Scrollbar extends GroupComponent<ScrollbarCfg> implements ISlider {
  30. cfg: ScrollbarCfg;
  31. private isMobile;
  32. private clearEvents;
  33. private startPos;
  34. setRange(min: number, max: number): void;
  35. getRange(): Range;
  36. setValue(value: number): void;
  37. getValue(): number;
  38. getDefaultCfg(): {
  39. name: string;
  40. isHorizontal: boolean;
  41. minThumbLen: number;
  42. thumbOffset: number;
  43. theme: ScrollbarTheme;
  44. container: any;
  45. shapesMap: {};
  46. group: any;
  47. capture: boolean;
  48. isRegister: boolean;
  49. isUpdating: boolean;
  50. isInit: boolean;
  51. id: string;
  52. type: string;
  53. locationType: string;
  54. offsetX: number;
  55. offsetY: number;
  56. animate: boolean;
  57. updateAutoRender: boolean;
  58. animateOption: {
  59. appear: any;
  60. update: {
  61. duration: number;
  62. easing: string;
  63. };
  64. enter: {
  65. duration: number;
  66. easing: string;
  67. };
  68. leave: {
  69. duration: number;
  70. easing: string;
  71. };
  72. };
  73. events: any;
  74. defaultCfg: {};
  75. visible: boolean;
  76. };
  77. protected renderInner(group: IGroup): void;
  78. protected applyOffset(): void;
  79. protected initEvent(): void;
  80. private renderTrackShape;
  81. private renderThumbShape;
  82. private bindEvents;
  83. private onStartEvent;
  84. private bindLaterEvent;
  85. private onMouseMove;
  86. private onMouseUp;
  87. private onTrackClick;
  88. private onThumbMouseOver;
  89. private onThumbMouseOut;
  90. private getContainerDOM;
  91. private validateRange;
  92. private draw;
  93. private updateThumbOffset;
  94. private emitOffsetChange;
  95. }