slider.d.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import { IGroup } from '@antv/g-base';
  2. import GroupComponent from '../abstract/group-component';
  3. import { ISlider } from '../interfaces';
  4. import { HandlerCfg } from './handler';
  5. import { GroupComponentCfg, Range } from '../types';
  6. export interface TrendCfg {
  7. readonly data: number[];
  8. readonly smooth?: boolean;
  9. readonly isArea?: boolean;
  10. readonly backgroundStyle?: object;
  11. readonly lineStyle?: object;
  12. readonly areaStyle?: object;
  13. }
  14. /**
  15. * slider handler style 设置
  16. */
  17. declare type HandlerStyle = HandlerCfg['style'] & {
  18. readonly width?: number;
  19. readonly height?: number;
  20. };
  21. export interface SliderCfg extends GroupComponentCfg {
  22. readonly x: number;
  23. readonly y: number;
  24. readonly width: number;
  25. readonly height: number;
  26. readonly trendCfg?: TrendCfg;
  27. readonly backgroundStyle?: any;
  28. readonly foregroundStyle?: any;
  29. readonly handlerStyle?: HandlerStyle;
  30. readonly textStyle?: any;
  31. readonly minLimit?: number;
  32. readonly maxLimit?: number;
  33. readonly start?: number;
  34. readonly end?: number;
  35. readonly minText?: string;
  36. readonly maxText?: string;
  37. }
  38. export declare class Slider extends GroupComponent<SliderCfg> implements ISlider {
  39. cfg: SliderCfg;
  40. private minHandler;
  41. private maxHandler;
  42. private trend;
  43. private currentTarget;
  44. private prevX;
  45. private prevY;
  46. setRange(min: number, max: number): void;
  47. getRange(): Range;
  48. setValue(value: number | number[]): void;
  49. getValue(): number | number[];
  50. getDefaultCfg(): {
  51. name: string;
  52. x: number;
  53. y: number;
  54. width: number;
  55. height: number;
  56. backgroundStyle: {};
  57. foregroundStyle: {};
  58. handlerStyle: {};
  59. textStyle: {};
  60. defaultCfg: {
  61. backgroundStyle: {
  62. fill: string;
  63. opacity: number;
  64. };
  65. foregroundStyle: {
  66. fill: string;
  67. opacity: number;
  68. cursor: string;
  69. };
  70. handlerStyle: {
  71. width: number;
  72. height: number;
  73. };
  74. textStyle: {
  75. textBaseline: string;
  76. fill: string;
  77. opacity: number;
  78. };
  79. };
  80. container: any;
  81. shapesMap: {};
  82. group: any;
  83. capture: boolean;
  84. isRegister: boolean;
  85. isUpdating: boolean;
  86. isInit: boolean;
  87. id: string;
  88. type: string;
  89. locationType: string;
  90. offsetX: number;
  91. offsetY: number; /**
  92. * slider handler style 设置
  93. */
  94. animate: boolean;
  95. updateAutoRender: boolean;
  96. animateOption: {
  97. appear: any;
  98. update: {
  99. duration: number;
  100. easing: string;
  101. };
  102. enter: {
  103. duration: number;
  104. easing: string;
  105. };
  106. leave: {
  107. duration: number;
  108. easing: string;
  109. };
  110. };
  111. events: any;
  112. visible: boolean;
  113. };
  114. update(cfg: Partial<SliderCfg>): void;
  115. init(): void;
  116. render(): void;
  117. protected renderInner(group: IGroup): void;
  118. protected applyOffset(): void;
  119. protected initEvent(): void;
  120. private updateUI;
  121. private bindEvents;
  122. private onMouseDown;
  123. private onMouseMove;
  124. private onMouseUp;
  125. /**
  126. * 调整 offsetRange,因为一些范围的限制
  127. * @param offsetRange
  128. */
  129. private adjustOffsetRange;
  130. private updateStartEnd;
  131. /**
  132. * 调整 text 的位置,自动躲避
  133. * 根据位置,调整返回新的位置
  134. * @param range
  135. */
  136. private _dodgeText;
  137. draw(): void;
  138. private getContainerDOM;
  139. }
  140. export default Slider;