@folklore/hooks 0.0.83 → 0.0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,254 @@
1
+ import * as react from 'react';
2
+ import { RefObject } from 'react';
3
+ import { EventsManager, NormalizedEventsMap } from '@folklore/events';
4
+ import * as cancelable_promise from 'cancelable-promise';
5
+
6
+ declare function useCounter(desiredValue: any, { disabled, maxDuration, speed, initialValue }: {
7
+ disabled?: boolean;
8
+ maxDuration?: number;
9
+ speed?: number;
10
+ initialValue?: any;
11
+ }): any;
12
+
13
+ type VideoPlayerMetadata = {
14
+ width?: number | null;
15
+ height?: number | null;
16
+ duration?: number | null;
17
+ };
18
+ type VideoPlayerState = {
19
+ playing?: boolean;
20
+ paused?: boolean;
21
+ buffering?: boolean;
22
+ ended?: boolean;
23
+ ready?: boolean;
24
+ loaded?: boolean;
25
+ currentTime?: number;
26
+ volume?: number;
27
+ muted?: boolean;
28
+ };
29
+ type VideoPlayerControls = {
30
+ play: () => void;
31
+ pause: () => void;
32
+ seek?: (time: number) => void;
33
+ mute?: () => void;
34
+ unmute?: () => void;
35
+ setVolume: (volume: number) => void;
36
+ setLoop?: (loop: boolean) => void;
37
+ };
38
+ type VideoPlayer<ExternalPlayer = unknown> = VideoPlayerMetadata & VideoPlayerState & VideoPlayerControls & {
39
+ ref: RefObject<HTMLElement>;
40
+ player?: ExternalPlayer;
41
+ };
42
+
43
+ type UseDailymotionPlayerOptions = {
44
+ width?: number;
45
+ height?: number;
46
+ duration?: number;
47
+ muted?: boolean;
48
+ initialMuted?: boolean;
49
+ start?: number;
50
+ embedPlayerId?: string | null;
51
+ onTimeUpdate?: (time: number) => void;
52
+ getVideoId?: (url: string) => string | null;
53
+ };
54
+ declare function useDailymotionPlayer(idOrUrl: string | null, opts?: UseDailymotionPlayerOptions): VideoPlayer;
55
+
56
+ type DocumentEventsMap = NormalizedEventsMap<DocumentEventMap>;
57
+ declare const eventsManager$1: EventsManager<NormalizedEventsMap<DocumentEventMap>>;
58
+ declare function useDocumentEvent<Event extends keyof DocumentEventsMap>(event: Event, callback: ((event: DocumentEventsMap[Event]) => void) | null): void;
59
+
60
+ declare function useIsVisible({ persist, ...opts }?: {
61
+ persist?: boolean;
62
+ }): {
63
+ ref: react.RefObject<HTMLElement>;
64
+ visible: boolean;
65
+ };
66
+
67
+ declare function useKeyboard(keyMap?: any): void;
68
+
69
+ declare const useItemsPaginated: (loader: any, { page, count, pages: initialPages, getPageFromResponse, onLoaded, onError, query, }?: {
70
+ page?: any;
71
+ count?: number;
72
+ pages?: any;
73
+ getPageFromResponse?: ({ pagination: { page: currentPage, last_page: lastPage, total }, data: items, }: {
74
+ pagination: {
75
+ page: any;
76
+ last_page: any;
77
+ total: any;
78
+ };
79
+ data: any;
80
+ }) => {
81
+ page: number;
82
+ lastPage: number;
83
+ total: number;
84
+ items: any;
85
+ };
86
+ onLoaded?: any;
87
+ onError?: any;
88
+ query?: any;
89
+ }) => {
90
+ items: any;
91
+ pages: any;
92
+ currentPage: any;
93
+ pageItems: any;
94
+ total: any;
95
+ lastPage: any;
96
+ loaded: boolean;
97
+ allLoaded: boolean;
98
+ loading: boolean;
99
+ loadNextPage: () => cancelable_promise.CancelablePromise<void | {
100
+ page: number;
101
+ lastPage: number;
102
+ total: number;
103
+ items: any;
104
+ }> | Promise<void>;
105
+ loadPage: (pageToLoad: any) => Promise<any> | cancelable_promise.CancelablePromise<void | {
106
+ page: number;
107
+ lastPage: number;
108
+ total: number;
109
+ items: any;
110
+ }>;
111
+ };
112
+
113
+ type UseNativeVideoPlayerOptions = {
114
+ width?: number;
115
+ height?: number;
116
+ duration?: number;
117
+ timeUpdateInterval?: number;
118
+ muted?: boolean;
119
+ initialMuted?: boolean;
120
+ onTimeUpdate?: (time: number) => void;
121
+ };
122
+ declare function useNativeVideoPlayer(url: any, opts?: UseNativeVideoPlayerOptions): VideoPlayer<HTMLVideoElement>;
123
+
124
+ declare function getObserver(Observer?: any, options?: {}): any;
125
+ interface UseObserverOptions {
126
+ disabled?: boolean;
127
+ [key: string]: unknown;
128
+ }
129
+ declare function useObserver<TOptions = UseObserverOptions, TEntry = Record<string, unknown>>(Observer: any, opts: TOptions | null, initialEntry: TEntry | null): {
130
+ ref: RefObject<HTMLElement>;
131
+ entry: TEntry;
132
+ };
133
+ /**
134
+ * Intersection Observer
135
+ */
136
+ type UseInterserctionObserverOptions = IntersectionObserverInit & UseObserverOptions;
137
+ declare function useIntersectionObserver(opts?: UseInterserctionObserverOptions): {
138
+ ref: RefObject<HTMLElement>;
139
+ entry: IntersectionObserverEntry;
140
+ };
141
+ /**
142
+ * Resize Observer
143
+ */
144
+ type UseResizeObserverOptions = ResizeObserverOptions & UseObserverOptions;
145
+ declare function useResizeObserver(opts?: UseResizeObserverOptions): {
146
+ ref: RefObject<HTMLElement>;
147
+ entry: ResizeObserverEntry;
148
+ };
149
+
150
+ declare function usePlayerCurrentTime(player: any, { id, disabled, updateInterval, onUpdate: customOnUpdate, getCurrentTime, }?: {
151
+ id?: any;
152
+ disabled?: boolean;
153
+ updateInterval?: number;
154
+ onUpdate?: any;
155
+ getCurrentTime?: (p: any) => any;
156
+ }): number;
157
+
158
+ type UseScrollTriggerOptions = {
159
+ disabled?: boolean;
160
+ triggers?: number[];
161
+ useElementScroll?: boolean;
162
+ onTrigger?: (step: number) => void;
163
+ };
164
+ declare function useScrollTrigger({ disabled, triggers, useElementScroll, onTrigger, }?: UseScrollTriggerOptions): {
165
+ ref: RefObject<HTMLElement>;
166
+ };
167
+
168
+ declare function useSupportsWebp(defaultValue?: boolean): boolean;
169
+
170
+ type UseVimeoPlayerOptions = {
171
+ width?: number;
172
+ height?: number;
173
+ duration?: number;
174
+ autoplay?: boolean;
175
+ autopause?: boolean;
176
+ byline?: boolean;
177
+ controls?: boolean;
178
+ muted?: boolean;
179
+ initialMuted?: boolean;
180
+ timeUpdateInterval?: number;
181
+ onTimeUpdate?: (time: number) => void;
182
+ getVideoId?: (url: string) => string | null;
183
+ };
184
+ declare function useVimeoPlayer(idOrUrl: string | null, opts?: UseVimeoPlayerOptions): VideoPlayer;
185
+
186
+ type UseYouTubePlayerOptions = {
187
+ width?: number;
188
+ height?: number;
189
+ duration?: number;
190
+ autoplay?: boolean;
191
+ controls?: boolean;
192
+ timeUpdateInterval?: number;
193
+ muted?: boolean;
194
+ initialMuted?: boolean;
195
+ onVolumeChange?: (volume: number) => void;
196
+ onTimeUpdate?: (time: number) => void;
197
+ getVideoId?: (url: string) => string | null;
198
+ };
199
+ declare function useYouTubePlayer(idOrUrl: string | null, opts?: UseYouTubePlayerOptions): VideoPlayer;
200
+
201
+ type UseVideoPlayerOptions = (UseNativeVideoPlayerOptions | UseVimeoPlayerOptions | UseYouTubePlayerOptions | UseDailymotionPlayerOptions) & {
202
+ service?: 'dailymotion' | 'youtube' | 'vimeo' | 'native' | null;
203
+ videoId?: string | null;
204
+ url?: string | null;
205
+ onLoaded?: (() => void) | null;
206
+ onPlay?: (() => void) | null;
207
+ onPause?: (() => void) | null;
208
+ onEnd?: (() => void) | null;
209
+ onMetadataChange?: ((metadata: VideoPlayerMetadata) => void) | null;
210
+ onBufferStart?: (() => void) | null;
211
+ onBufferEnded?: (() => void) | null;
212
+ [key: string]: unknown;
213
+ };
214
+ declare function useVideoPlayer({ service, videoId, url, onLoaded: customOnLoaded, onPlay: customOnPlay, onPause: customOnPause, onEnd: customOnEnd, onMetadataChange: customOnMetadataChange, onBufferStart: customOnBufferStart, onBufferEnded: customOnBufferEnded, ...opts }?: UseVideoPlayerOptions): VideoPlayer | null;
215
+
216
+ interface VisualViewportData {
217
+ width: number;
218
+ height: number;
219
+ offsetTop?: number;
220
+ offsetLeft?: number;
221
+ pageLeft?: number;
222
+ pageTop?: number;
223
+ }
224
+ declare function useVisualViewport(): VisualViewportData & {
225
+ updateViewport: (viewPort?: VisualViewport) => void;
226
+ };
227
+
228
+ type WindowEventsMap = NormalizedEventsMap<WindowEventMap>;
229
+ declare const eventsManager: EventsManager<NormalizedEventsMap<WindowEventMap>>;
230
+ declare function useWindowEvent<Event extends keyof WindowEventsMap>(event: Event, callback: ((event: WindowEventsMap[Event]) => void) | null): void;
231
+
232
+ type WindowScroll = {
233
+ x: number;
234
+ y: number;
235
+ };
236
+ type UseWindowScrollOptions = {
237
+ onChange?: (scroll: WindowScroll) => void;
238
+ onMount?: boolean;
239
+ memo?: boolean;
240
+ };
241
+ declare function useWindowScroll({ onChange, onMount, memo, }?: UseWindowScrollOptions): WindowScroll;
242
+
243
+ type WindowSize = {
244
+ width: number;
245
+ height: number;
246
+ };
247
+ type UseWindowSizeOptions = {
248
+ onChange?: (size: WindowSize) => void;
249
+ onMount?: boolean;
250
+ memo?: boolean;
251
+ };
252
+ declare function useWindowSize({ onChange, onMount, memo, }?: UseWindowSizeOptions): WindowSize;
253
+
254
+ export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useIsVisible, useItemsPaginated, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useScrollTrigger, useSupportsWebp, useVideoPlayer, useVimeoPlayer, useVisualViewport, useVisualViewport as useVisualViewportSize, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };