UNPKG

3.92 kBTypeScriptView Raw
1import { Component } from '@antv/f-engine';
2import { ChartChildProps } from '../../chart';
3import { Scale } from '../../deps/f2-scale/src';
4export type ZoomRange = [number, number];
5export type ScaleValues = number[] | string[];
6export interface ZoomProps {
7 panSensitive?: number;
8 pinchSensitive?: number;
9 /**
10 * 缩放和平移模式
11 */
12 mode?: 'x' | 'y' | ['x', 'y'] | null;
13 /**
14 * 显示的范围
15 */
16 range?: ZoomRange;
17 /**
18 * 平移
19 */
20 pan?: boolean;
21 /**
22 * 缩放
23 */
24 pinch?: boolean;
25 /**
26 * 横扫
27 */
28 swipe?: boolean;
29 /**
30 * 横扫动画时长
31 */
32 swipeDuration?: number;
33 /**
34 * 事件回调
35 */
36 onPanStart?: Function;
37 onPinchStart?: Function;
38 onPan?: Function;
39 onPinch?: Function;
40 onPanEnd?: Function;
41 onPinchEnd?: Function;
42 onInit?: Function;
43 /**
44 * 自动同步 x/y 的坐标值
45 */
46 autoFit?: boolean;
47 /**
48 * 最少展示数据量,用于控制最小缩放比例, 默认是10
49 */
50 minCount?: number;
51}
52export interface ZoomState {
53 range: {
54 x?: ZoomRange;
55 y?: ZoomRange;
56 };
57}
58declare const _default: (View: any) => {
59 new <P extends ZoomProps = ZoomProps, S extends ZoomState = ZoomState>(props: P): {
60 startRange: {
61 x?: ZoomRange;
62 y?: ZoomRange;
63 };
64 scale: {};
65 originScale: {};
66 minScale: number;
67 dims: Array<String>;
68 swipeEnd: {
69 startX: number;
70 startY: number;
71 endX: number;
72 endY: number;
73 };
74 loop: number;
75 didMount(): void;
76 willReceiveProps(nextProps: P): void;
77 willMount(): void;
78 willUpdate(): void;
79 didUnmount(): void;
80 _bindEvents(): void;
81 onStart: () => void;
82 onPan: (ev: any) => void;
83 update(): void;
84 animateSwipe(dim: string, dimRange: ZoomRange, velocity: number): void;
85 onSwipe: (ev: any) => void;
86 onPinch: (ev: any) => void;
87 onEnd: () => void;
88 _doXPan(ev: any): ZoomRange;
89 _doYPan(ev: any): ZoomRange;
90 _doPan(ratio: number, dim: string): ZoomRange;
91 _doXPinch(ev: any): any;
92 _doYPinch(ev: any): any;
93 _doPinch(startRatio: number, endRatio: number, zoom: number, dim: string): any;
94 updateRange(originalRange: ZoomRange, dim: any): ZoomRange;
95 updateFollow(scales: Scale[], mainScale: Scale, data: any[]): void;
96 _getScale(dim: any): any;
97 _getFollowScales(dim: any): any[];
98 renderRange(range: any): void;
99 render(): import("@antv/f-engine").JSX.Element;
100 props: P & ChartChildProps<import("../../chart/Data").DataRecord>;
101 state: S;
102 context: import("@antv/f-engine").IContext;
103 refs: {
104 [key: string]: Component<import("@antv/f-engine").IProps, import("@antv/f-engine").IState>;
105 };
106 updater: import("@antv/f-engine/es/component/updater").Updater<S>;
107 container: import("@antv/g-lite").Group;
108 layout: import("@antv/f-engine").LayoutProps;
109 children: import("@antv/f-engine/es/canvas/vnode").VNode | import("@antv/f-engine/es/canvas/vnode").VNode[];
110 isMounted: boolean;
111 animate: boolean;
112 animator: import("@antv/f-engine/es/canvas/render/animator").default;
113 destroyed: boolean;
114 _vNode: import("@antv/f-engine/es/canvas/vnode").VNode;
115 shouldUpdate(_nextProps: P & ChartChildProps<import("../../chart/Data").DataRecord>): boolean;
116 didUpdate(): void;
117 willUnmount(): void;
118 setState(partialState: S, callback?: () => void): void;
119 forceUpdate(callback?: () => void): void;
120 setAnimate(animate: boolean): void;
121 destroy(): void; /**
122 * 横扫
123 */
124 };
125};
126export default _default;