-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.ts
70 lines (66 loc) · 1.59 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { NComponent } from '@/base/Component/types';
import { TOnResizeTarget } from '@/utils/listeners/onResize';
export namespace NScrollView {
export interface IStaticProps extends NComponent.IStaticProps {
/**
* Intersection root
* @see https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
* @default null
*/
intersectionRoot?: Element | null;
/**
* Define what states to trace.
* @default 'in'
*/
states?: 'in' | 'inout';
/**
* A class to be toggled on state change
* @default 'viewed'
*/
classToToggle?: string;
/**
* If need to use delays at first start
* @default true
*/
hasDelay?: boolean;
/**
* Max delay
* @default 1000
*/
maxDelay?: number;
/**
* Main scrolling direction
* @default 'vertical'
*/
direction?: 'horizontal' | 'vertical';
/**
* Viewport target
* @default 'any'
*/
viewportTarget?: TOnResizeTarget;
/**
* Timeout of resize event
* @default 0
*/
resizeDebounce?: number;
}
export interface IChangeableProps extends NComponent.IChangeableProps {
/**
* Enable `IntersectionObserver`
* @default true
*/
isEnabled?: boolean;
/**
* `IntersectionObserver` margin (from -1 to 1)
* @default 0.05
*/
rootMargin?: number;
}
export interface ICallbacksTypes extends NComponent.ICallbacksTypes {
in: { element: Element };
out: { element: Element };
}
export interface IElement extends Element {
isScrollViewIn?: boolean;
}
}