@granite-js/video 1.0.0
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.
- package/CHANGELOG.md +7 -0
- package/GraniteVideo.podspec +72 -0
- package/android/README.md +232 -0
- package/android/build.gradle +117 -0
- package/android/gradle.properties +8 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/run/granite/video/GraniteVideoModule.kt +70 -0
- package/android/src/main/java/run/granite/video/GraniteVideoPackage.kt +43 -0
- package/android/src/main/java/run/granite/video/GraniteVideoView.kt +384 -0
- package/android/src/main/java/run/granite/video/GraniteVideoViewManager.kt +318 -0
- package/android/src/main/java/run/granite/video/event/GraniteVideoEvents.kt +273 -0
- package/android/src/main/java/run/granite/video/event/VideoEventDispatcher.kt +66 -0
- package/android/src/main/java/run/granite/video/event/VideoEventListenerAdapter.kt +157 -0
- package/android/src/main/java/run/granite/video/provider/GraniteVideoProvider.kt +346 -0
- package/android/src/media3/AndroidManifest.xml +9 -0
- package/android/src/media3/java/run/granite/video/provider/media3/ExoPlayerProvider.kt +386 -0
- package/android/src/media3/java/run/granite/video/provider/media3/Media3ContentProvider.kt +29 -0
- package/android/src/media3/java/run/granite/video/provider/media3/Media3Initializer.kt +25 -0
- package/android/src/media3/java/run/granite/video/provider/media3/factory/ExoPlayerFactory.kt +32 -0
- package/android/src/media3/java/run/granite/video/provider/media3/factory/MediaSourceFactory.kt +61 -0
- package/android/src/media3/java/run/granite/video/provider/media3/factory/TrackSelectorFactory.kt +26 -0
- package/android/src/media3/java/run/granite/video/provider/media3/factory/VideoSurfaceFactory.kt +62 -0
- package/android/src/media3/java/run/granite/video/provider/media3/listener/ExoPlayerEventListener.kt +104 -0
- package/android/src/media3/java/run/granite/video/provider/media3/scheduler/ProgressScheduler.kt +56 -0
- package/android/src/test/java/run/granite/video/GraniteVideoViewRobolectricTest.kt +598 -0
- package/android/src/test/java/run/granite/video/event/VideoEventListenerAdapterTest.kt +319 -0
- package/android/src/test/java/run/granite/video/helpers/FakeGraniteVideoProvider.kt +161 -0
- package/android/src/test/java/run/granite/video/helpers/TestProgressScheduler.kt +42 -0
- package/android/src/test/java/run/granite/video/provider/GraniteVideoRegistryTest.kt +232 -0
- package/android/src/test/java/run/granite/video/provider/ProviderContractTest.kt +174 -0
- package/android/src/test/java/run/granite/video/provider/media3/listener/ExoPlayerEventListenerTest.kt +243 -0
- package/android/src/test/resources/kotest.properties +2 -0
- package/dist/module/GraniteVideo.js +458 -0
- package/dist/module/GraniteVideo.js.map +1 -0
- package/dist/module/GraniteVideoNativeComponent.ts +265 -0
- package/dist/module/index.js +7 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/types.js +4 -0
- package/dist/module/types.js.map +1 -0
- package/dist/typescript/GraniteVideo.d.ts +12 -0
- package/dist/typescript/GraniteVideoNativeComponent.d.ts +189 -0
- package/dist/typescript/index.d.ts +5 -0
- package/dist/typescript/types.d.ts +328 -0
- package/ios/GraniteVideoComponentsProvider.h +10 -0
- package/ios/GraniteVideoProvider.swift +280 -0
- package/ios/GraniteVideoView.h +15 -0
- package/ios/GraniteVideoView.mm +661 -0
- package/ios/Providers/AVPlayerProvider.swift +541 -0
- package/package.json +106 -0
- package/src/GraniteVideo.tsx +575 -0
- package/src/GraniteVideoNativeComponent.ts +265 -0
- package/src/index.ts +8 -0
- package/src/types.ts +464 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef, useRef, useImperativeHandle, useCallback } from 'react';
|
|
4
|
+
import { Platform, StyleSheet, View, Image, findNodeHandle, NativeModules } from 'react-native';
|
|
5
|
+
import NativeGraniteVideoView, { Commands } from './GraniteVideoNativeComponent';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const {
|
|
8
|
+
GraniteVideoModule
|
|
9
|
+
} = NativeModules;
|
|
10
|
+
|
|
11
|
+
// For Fabric (New Architecture), the component is always available through codegenNativeComponent
|
|
12
|
+
// We don't need to check UIManager.getViewManagerConfig which is Old Architecture only
|
|
13
|
+
|
|
14
|
+
function normalizeSource(source) {
|
|
15
|
+
if (typeof source === 'number') {
|
|
16
|
+
// require() - not yet supported in native
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
uri: source.uri,
|
|
21
|
+
type: source.type,
|
|
22
|
+
startPosition: source.startPosition,
|
|
23
|
+
cropStart: source.cropStart,
|
|
24
|
+
cropEnd: source.cropEnd
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function normalizeSelectedTrack(track) {
|
|
28
|
+
if (!track) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
type: track.type,
|
|
33
|
+
value: track.value?.toString()
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function normalizeSelectedVideoTrack(track) {
|
|
37
|
+
if (!track) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
type: track.type,
|
|
42
|
+
value: track.value
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function normalizeDrm(drm) {
|
|
46
|
+
if (!drm) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
type: drm.type,
|
|
51
|
+
licenseServer: drm.licenseServer,
|
|
52
|
+
contentId: drm.contentId,
|
|
53
|
+
certificateUrl: drm.certificateUrl,
|
|
54
|
+
base64Certificate: drm.base64Certificate
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function normalizeBufferConfig(config) {
|
|
58
|
+
if (!config) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
minBufferMs: config.minBufferMs,
|
|
63
|
+
maxBufferMs: config.maxBufferMs,
|
|
64
|
+
bufferForPlaybackMs: config.bufferForPlaybackMs,
|
|
65
|
+
bufferForPlaybackAfterRebufferMs: config.bufferForPlaybackAfterRebufferMs,
|
|
66
|
+
backBufferDurationMs: config.backBufferDurationMs,
|
|
67
|
+
cacheSizeMB: config.cacheSizeMB
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function getPosterUri(poster) {
|
|
71
|
+
if (!poster) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
if (typeof poster === 'string') {
|
|
75
|
+
return poster;
|
|
76
|
+
}
|
|
77
|
+
if (typeof poster === 'object' && 'uri' in poster && poster.uri) {
|
|
78
|
+
return poster.uri;
|
|
79
|
+
}
|
|
80
|
+
const resolved = Image.resolveAssetSource(poster);
|
|
81
|
+
return resolved?.uri;
|
|
82
|
+
}
|
|
83
|
+
const VideoBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
84
|
+
const {
|
|
85
|
+
// Test ID
|
|
86
|
+
testID,
|
|
87
|
+
// Style
|
|
88
|
+
style,
|
|
89
|
+
// Source
|
|
90
|
+
source,
|
|
91
|
+
// Poster
|
|
92
|
+
poster,
|
|
93
|
+
posterResizeMode = 'contain',
|
|
94
|
+
// Playback Control
|
|
95
|
+
paused = false,
|
|
96
|
+
muted = false,
|
|
97
|
+
volume = 1.0,
|
|
98
|
+
rate = 1.0,
|
|
99
|
+
repeat = false,
|
|
100
|
+
playInBackground = false,
|
|
101
|
+
playWhenInactive = false,
|
|
102
|
+
automaticallyWaitsToMinimizeStalling = true,
|
|
103
|
+
shutterColor,
|
|
104
|
+
// Display
|
|
105
|
+
resizeMode = 'contain',
|
|
106
|
+
viewType = 'surface',
|
|
107
|
+
useTextureView = false,
|
|
108
|
+
useSecureView = false,
|
|
109
|
+
// Buffering
|
|
110
|
+
bufferConfig,
|
|
111
|
+
minLoadRetryCount = 3,
|
|
112
|
+
maxBitRate,
|
|
113
|
+
preferredForwardBufferDuration,
|
|
114
|
+
// Track Selection
|
|
115
|
+
selectedAudioTrack,
|
|
116
|
+
selectedTextTrack,
|
|
117
|
+
selectedVideoTrack,
|
|
118
|
+
// DRM
|
|
119
|
+
drm,
|
|
120
|
+
localSourceEncryptionKeyScheme,
|
|
121
|
+
// Ads
|
|
122
|
+
adTagUrl,
|
|
123
|
+
adLanguage,
|
|
124
|
+
// Controls
|
|
125
|
+
controls = false,
|
|
126
|
+
showNotificationControls = false,
|
|
127
|
+
disableFocus = false,
|
|
128
|
+
disableDisconnectError = false,
|
|
129
|
+
focusable = true,
|
|
130
|
+
hideShutterView = false,
|
|
131
|
+
preventsDisplaySleepDuringVideoPlayback = true,
|
|
132
|
+
// Fullscreen
|
|
133
|
+
fullscreen = false,
|
|
134
|
+
fullscreenAutorotate = true,
|
|
135
|
+
fullscreenOrientation = 'all',
|
|
136
|
+
// Picture in Picture
|
|
137
|
+
pictureInPicture = false,
|
|
138
|
+
// Content
|
|
139
|
+
contentStartTime,
|
|
140
|
+
allowsExternalPlayback = true,
|
|
141
|
+
audioOutput = 'speaker',
|
|
142
|
+
ignoreSilentSwitch = 'inherit',
|
|
143
|
+
mixWithOthers = 'inherit',
|
|
144
|
+
// Debug
|
|
145
|
+
debug,
|
|
146
|
+
// Events
|
|
147
|
+
onLoadStart,
|
|
148
|
+
onLoad,
|
|
149
|
+
onError,
|
|
150
|
+
onProgress,
|
|
151
|
+
onSeek,
|
|
152
|
+
onEnd,
|
|
153
|
+
onBuffer,
|
|
154
|
+
onBandwidthUpdate,
|
|
155
|
+
onPlaybackStateChanged,
|
|
156
|
+
onPlaybackRateChange,
|
|
157
|
+
onVolumeChange,
|
|
158
|
+
onIdle,
|
|
159
|
+
onReadyForDisplay,
|
|
160
|
+
onAudioFocusChanged,
|
|
161
|
+
onAudioBecomingNoisy,
|
|
162
|
+
onFullscreenPlayerWillPresent,
|
|
163
|
+
onFullscreenPlayerDidPresent,
|
|
164
|
+
onFullscreenPlayerWillDismiss,
|
|
165
|
+
onFullscreenPlayerDidDismiss,
|
|
166
|
+
onPictureInPictureStatusChanged,
|
|
167
|
+
onRestoreUserInterfaceForPictureInPictureStop,
|
|
168
|
+
onControlsVisibilityChange,
|
|
169
|
+
onExternalPlaybackChange,
|
|
170
|
+
onAspectRatio,
|
|
171
|
+
onTransferEnd
|
|
172
|
+
} = props;
|
|
173
|
+
const nativeRef = useRef(null);
|
|
174
|
+
|
|
175
|
+
// === Imperative Handle ===
|
|
176
|
+
useImperativeHandle(ref, () => ({
|
|
177
|
+
seek: (time, tolerance) => {
|
|
178
|
+
if (nativeRef.current) {
|
|
179
|
+
Commands.seek(nativeRef.current, time, tolerance ?? 0);
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
pause: () => {
|
|
183
|
+
if (nativeRef.current) {
|
|
184
|
+
Commands.pause(nativeRef.current);
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
resume: () => {
|
|
188
|
+
if (nativeRef.current) {
|
|
189
|
+
Commands.resume(nativeRef.current);
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
setVolume: vol => {
|
|
193
|
+
if (nativeRef.current) {
|
|
194
|
+
Commands.adjustVolume(nativeRef.current, vol);
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
setFullScreen: fs => {
|
|
198
|
+
if (nativeRef.current) {
|
|
199
|
+
Commands.setFullScreen(nativeRef.current, fs);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
presentFullscreenPlayer: () => {
|
|
203
|
+
if (nativeRef.current) {
|
|
204
|
+
Commands.setFullScreen(nativeRef.current, true);
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
dismissFullscreenPlayer: () => {
|
|
208
|
+
if (nativeRef.current) {
|
|
209
|
+
Commands.setFullScreen(nativeRef.current, false);
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
enterPictureInPicture: () => {
|
|
213
|
+
if (nativeRef.current) {
|
|
214
|
+
Commands.enterPictureInPicture(nativeRef.current);
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
exitPictureInPicture: () => {
|
|
218
|
+
if (nativeRef.current) {
|
|
219
|
+
Commands.exitPictureInPicture(nativeRef.current);
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
setSource: newSource => {
|
|
223
|
+
if (nativeRef.current && newSource.uri) {
|
|
224
|
+
Commands.loadSource(nativeRef.current, newSource.uri);
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
getCurrentPosition: async () => {
|
|
228
|
+
const handle = findNodeHandle(nativeRef.current);
|
|
229
|
+
if (handle && GraniteVideoModule?.getCurrentPosition) {
|
|
230
|
+
return GraniteVideoModule.getCurrentPosition(handle);
|
|
231
|
+
}
|
|
232
|
+
return 0;
|
|
233
|
+
},
|
|
234
|
+
save: async options => {
|
|
235
|
+
const handle = findNodeHandle(nativeRef.current);
|
|
236
|
+
if (handle && GraniteVideoModule?.save) {
|
|
237
|
+
return GraniteVideoModule.save(handle, options ?? {});
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
uri: ''
|
|
241
|
+
};
|
|
242
|
+
},
|
|
243
|
+
restoreUserInterfaceForPictureInPictureStopCompleted: () => {
|
|
244
|
+
// iOS specific - handled internally
|
|
245
|
+
}
|
|
246
|
+
}));
|
|
247
|
+
|
|
248
|
+
// === Event Handlers ===
|
|
249
|
+
const handleLoadStart = useCallback(event => {
|
|
250
|
+
onLoadStart?.(event.nativeEvent);
|
|
251
|
+
}, [onLoadStart]);
|
|
252
|
+
const handleLoad = useCallback(event => {
|
|
253
|
+
const nativeEvent = event.nativeEvent;
|
|
254
|
+
const loadData = {
|
|
255
|
+
...nativeEvent,
|
|
256
|
+
naturalSize: {
|
|
257
|
+
...nativeEvent.naturalSize,
|
|
258
|
+
orientation: nativeEvent.naturalSize.orientation
|
|
259
|
+
},
|
|
260
|
+
audioTracks: [],
|
|
261
|
+
textTracks: [],
|
|
262
|
+
videoTracks: []
|
|
263
|
+
};
|
|
264
|
+
onLoad?.(loadData);
|
|
265
|
+
}, [onLoad]);
|
|
266
|
+
const handleError = useCallback(event => {
|
|
267
|
+
onError?.(event.nativeEvent);
|
|
268
|
+
}, [onError]);
|
|
269
|
+
const handleProgress = useCallback(event => {
|
|
270
|
+
onProgress?.(event.nativeEvent);
|
|
271
|
+
}, [onProgress]);
|
|
272
|
+
const handleSeek = useCallback(event => {
|
|
273
|
+
onSeek?.(event.nativeEvent);
|
|
274
|
+
}, [onSeek]);
|
|
275
|
+
const handleEnd = useCallback(() => {
|
|
276
|
+
onEnd?.();
|
|
277
|
+
}, [onEnd]);
|
|
278
|
+
const handleBuffer = useCallback(event => {
|
|
279
|
+
onBuffer?.(event.nativeEvent);
|
|
280
|
+
}, [onBuffer]);
|
|
281
|
+
const handleBandwidthUpdate = useCallback(event => {
|
|
282
|
+
onBandwidthUpdate?.(event.nativeEvent);
|
|
283
|
+
}, [onBandwidthUpdate]);
|
|
284
|
+
const handlePlaybackStateChanged = useCallback(event => {
|
|
285
|
+
onPlaybackStateChanged?.(event.nativeEvent);
|
|
286
|
+
}, [onPlaybackStateChanged]);
|
|
287
|
+
const handlePlaybackRateChange = useCallback(event => {
|
|
288
|
+
onPlaybackRateChange?.(event.nativeEvent);
|
|
289
|
+
}, [onPlaybackRateChange]);
|
|
290
|
+
const handleVolumeChange = useCallback(event => {
|
|
291
|
+
onVolumeChange?.(event.nativeEvent);
|
|
292
|
+
}, [onVolumeChange]);
|
|
293
|
+
const handleIdle = useCallback(() => {
|
|
294
|
+
onIdle?.();
|
|
295
|
+
}, [onIdle]);
|
|
296
|
+
const handleReadyForDisplay = useCallback(() => {
|
|
297
|
+
onReadyForDisplay?.();
|
|
298
|
+
}, [onReadyForDisplay]);
|
|
299
|
+
const handleAudioFocusChanged = useCallback(event => {
|
|
300
|
+
onAudioFocusChanged?.(event.nativeEvent);
|
|
301
|
+
}, [onAudioFocusChanged]);
|
|
302
|
+
const handleAudioBecomingNoisy = useCallback(() => {
|
|
303
|
+
onAudioBecomingNoisy?.();
|
|
304
|
+
}, [onAudioBecomingNoisy]);
|
|
305
|
+
const handleFullscreenPlayerWillPresent = useCallback(() => {
|
|
306
|
+
onFullscreenPlayerWillPresent?.();
|
|
307
|
+
}, [onFullscreenPlayerWillPresent]);
|
|
308
|
+
const handleFullscreenPlayerDidPresent = useCallback(() => {
|
|
309
|
+
onFullscreenPlayerDidPresent?.();
|
|
310
|
+
}, [onFullscreenPlayerDidPresent]);
|
|
311
|
+
const handleFullscreenPlayerWillDismiss = useCallback(() => {
|
|
312
|
+
onFullscreenPlayerWillDismiss?.();
|
|
313
|
+
}, [onFullscreenPlayerWillDismiss]);
|
|
314
|
+
const handleFullscreenPlayerDidDismiss = useCallback(() => {
|
|
315
|
+
onFullscreenPlayerDidDismiss?.();
|
|
316
|
+
}, [onFullscreenPlayerDidDismiss]);
|
|
317
|
+
const handlePictureInPictureStatusChanged = useCallback(event => {
|
|
318
|
+
onPictureInPictureStatusChanged?.(event.nativeEvent);
|
|
319
|
+
}, [onPictureInPictureStatusChanged]);
|
|
320
|
+
const handleRestoreUserInterfaceForPictureInPictureStop = useCallback(() => {
|
|
321
|
+
onRestoreUserInterfaceForPictureInPictureStop?.();
|
|
322
|
+
}, [onRestoreUserInterfaceForPictureInPictureStop]);
|
|
323
|
+
const handleControlsVisibilityChange = useCallback(event => {
|
|
324
|
+
onControlsVisibilityChange?.(event.nativeEvent);
|
|
325
|
+
}, [onControlsVisibilityChange]);
|
|
326
|
+
const handleExternalPlaybackChange = useCallback(event => {
|
|
327
|
+
onExternalPlaybackChange?.(event.nativeEvent);
|
|
328
|
+
}, [onExternalPlaybackChange]);
|
|
329
|
+
const handleAspectRatio = useCallback(event => {
|
|
330
|
+
onAspectRatio?.(event.nativeEvent);
|
|
331
|
+
}, [onAspectRatio]);
|
|
332
|
+
const handleTransferEnd = useCallback(event => {
|
|
333
|
+
onTransferEnd?.(event.nativeEvent);
|
|
334
|
+
}, [onTransferEnd]);
|
|
335
|
+
|
|
336
|
+
// === Render ===
|
|
337
|
+
const containerStyle = [styles.container, style];
|
|
338
|
+
return /*#__PURE__*/_jsx(View, {
|
|
339
|
+
style: containerStyle,
|
|
340
|
+
testID: testID,
|
|
341
|
+
children: /*#__PURE__*/_jsx(NativeGraniteVideoView, {
|
|
342
|
+
ref: nativeRef,
|
|
343
|
+
style: styles.video,
|
|
344
|
+
source: normalizeSource(source),
|
|
345
|
+
poster: getPosterUri(poster),
|
|
346
|
+
posterResizeMode: posterResizeMode,
|
|
347
|
+
paused: paused,
|
|
348
|
+
muted: muted,
|
|
349
|
+
volume: volume,
|
|
350
|
+
rate: rate,
|
|
351
|
+
repeat: repeat,
|
|
352
|
+
playInBackground: playInBackground,
|
|
353
|
+
playWhenInactive: playWhenInactive,
|
|
354
|
+
automaticallyWaitsToMinimizeStalling: automaticallyWaitsToMinimizeStalling,
|
|
355
|
+
shutterColor: shutterColor,
|
|
356
|
+
resizeMode: resizeMode,
|
|
357
|
+
viewType: viewType,
|
|
358
|
+
useTextureView: useTextureView,
|
|
359
|
+
useSecureView: useSecureView,
|
|
360
|
+
bufferConfig: normalizeBufferConfig(bufferConfig),
|
|
361
|
+
minLoadRetryCount: minLoadRetryCount,
|
|
362
|
+
maxBitRate: maxBitRate,
|
|
363
|
+
preferredForwardBufferDuration: preferredForwardBufferDuration,
|
|
364
|
+
selectedAudioTrack: normalizeSelectedTrack(selectedAudioTrack),
|
|
365
|
+
selectedTextTrack: normalizeSelectedTrack(selectedTextTrack),
|
|
366
|
+
selectedVideoTrack: normalizeSelectedVideoTrack(selectedVideoTrack),
|
|
367
|
+
drm: normalizeDrm(drm),
|
|
368
|
+
localSourceEncryptionKeyScheme: localSourceEncryptionKeyScheme,
|
|
369
|
+
adTagUrl: adTagUrl,
|
|
370
|
+
adLanguage: adLanguage,
|
|
371
|
+
controls: controls,
|
|
372
|
+
showNotificationControls: showNotificationControls,
|
|
373
|
+
disableFocus: disableFocus,
|
|
374
|
+
disableDisconnectError: disableDisconnectError,
|
|
375
|
+
focusable: focusable,
|
|
376
|
+
hideShutterView: hideShutterView,
|
|
377
|
+
preventsDisplaySleepDuringVideoPlayback: preventsDisplaySleepDuringVideoPlayback,
|
|
378
|
+
fullscreen: fullscreen,
|
|
379
|
+
fullscreenAutorotate: fullscreenAutorotate,
|
|
380
|
+
fullscreenOrientation: fullscreenOrientation,
|
|
381
|
+
pictureInPicture: pictureInPicture,
|
|
382
|
+
contentStartTime: contentStartTime,
|
|
383
|
+
allowsExternalPlayback: allowsExternalPlayback,
|
|
384
|
+
audioOutput: audioOutput,
|
|
385
|
+
ignoreSilentSwitch: ignoreSilentSwitch,
|
|
386
|
+
mixWithOthers: mixWithOthers,
|
|
387
|
+
enableDebug: debug?.enable,
|
|
388
|
+
enableDebugThread: debug?.thread,
|
|
389
|
+
onVideoLoadStart: handleLoadStart,
|
|
390
|
+
onVideoLoad: handleLoad,
|
|
391
|
+
onVideoError: handleError,
|
|
392
|
+
onVideoProgress: handleProgress,
|
|
393
|
+
onVideoSeek: handleSeek,
|
|
394
|
+
onVideoEnd: handleEnd,
|
|
395
|
+
onVideoBuffer: handleBuffer,
|
|
396
|
+
onVideoBandwidthUpdate: handleBandwidthUpdate,
|
|
397
|
+
onVideoPlaybackStateChanged: handlePlaybackStateChanged,
|
|
398
|
+
onVideoPlaybackRateChange: handlePlaybackRateChange,
|
|
399
|
+
onVideoVolumeChange: handleVolumeChange,
|
|
400
|
+
onVideoIdle: handleIdle,
|
|
401
|
+
onVideoReadyForDisplay: handleReadyForDisplay,
|
|
402
|
+
onVideoAudioFocusChanged: handleAudioFocusChanged,
|
|
403
|
+
onVideoAudioBecomingNoisy: handleAudioBecomingNoisy,
|
|
404
|
+
onVideoFullscreenPlayerWillPresent: handleFullscreenPlayerWillPresent,
|
|
405
|
+
onVideoFullscreenPlayerDidPresent: handleFullscreenPlayerDidPresent,
|
|
406
|
+
onVideoFullscreenPlayerWillDismiss: handleFullscreenPlayerWillDismiss,
|
|
407
|
+
onVideoFullscreenPlayerDidDismiss: handleFullscreenPlayerDidDismiss,
|
|
408
|
+
onVideoPictureInPictureStatusChanged: handlePictureInPictureStatusChanged,
|
|
409
|
+
onVideoRestoreUserInterfaceForPictureInPictureStop: handleRestoreUserInterfaceForPictureInPictureStop,
|
|
410
|
+
onVideoControlsVisibilityChange: handleControlsVisibilityChange,
|
|
411
|
+
onVideoExternalPlaybackChange: handleExternalPlaybackChange,
|
|
412
|
+
onVideoAspectRatio: handleAspectRatio,
|
|
413
|
+
onTransferEnd: handleTransferEnd
|
|
414
|
+
})
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
VideoBase.displayName = 'Video';
|
|
418
|
+
|
|
419
|
+
// Type for GraniteVideo with static properties
|
|
420
|
+
|
|
421
|
+
// Static property to indicate availability
|
|
422
|
+
// For Fabric (New Architecture), the component is always available
|
|
423
|
+
VideoBase.isAvailable = true;
|
|
424
|
+
export const Video = VideoBase;
|
|
425
|
+
const styles = StyleSheet.create({
|
|
426
|
+
container: {
|
|
427
|
+
overflow: 'hidden'
|
|
428
|
+
},
|
|
429
|
+
video: {
|
|
430
|
+
...StyleSheet.absoluteFillObject
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
// === Static Methods ===
|
|
435
|
+
export async function clearCache() {
|
|
436
|
+
if (GraniteVideoModule?.clearCache) {
|
|
437
|
+
return GraniteVideoModule.clearCache();
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
export async function getWidevineLevel() {
|
|
441
|
+
if (Platform.OS === 'android' && GraniteVideoModule?.getWidevineLevel) {
|
|
442
|
+
return GraniteVideoModule.getWidevineLevel();
|
|
443
|
+
}
|
|
444
|
+
return 0;
|
|
445
|
+
}
|
|
446
|
+
export async function isCodecSupported(mimeType, width, height) {
|
|
447
|
+
if (GraniteVideoModule?.isCodecSupported) {
|
|
448
|
+
return GraniteVideoModule.isCodecSupported(mimeType, width, height);
|
|
449
|
+
}
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
export async function isHEVCSupported() {
|
|
453
|
+
if (GraniteVideoModule?.isHEVCSupported) {
|
|
454
|
+
return GraniteVideoModule.isHEVCSupported();
|
|
455
|
+
}
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
//# sourceMappingURL=GraniteVideo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useRef","useImperativeHandle","useCallback","Platform","StyleSheet","View","Image","findNodeHandle","NativeModules","NativeGraniteVideoView","Commands","jsx","_jsx","GraniteVideoModule","normalizeSource","source","undefined","uri","type","startPosition","cropStart","cropEnd","normalizeSelectedTrack","track","value","toString","normalizeSelectedVideoTrack","normalizeDrm","drm","licenseServer","contentId","certificateUrl","base64Certificate","normalizeBufferConfig","config","minBufferMs","maxBufferMs","bufferForPlaybackMs","bufferForPlaybackAfterRebufferMs","backBufferDurationMs","cacheSizeMB","getPosterUri","poster","resolved","resolveAssetSource","VideoBase","props","ref","testID","style","posterResizeMode","paused","muted","volume","rate","repeat","playInBackground","playWhenInactive","automaticallyWaitsToMinimizeStalling","shutterColor","resizeMode","viewType","useTextureView","useSecureView","bufferConfig","minLoadRetryCount","maxBitRate","preferredForwardBufferDuration","selectedAudioTrack","selectedTextTrack","selectedVideoTrack","localSourceEncryptionKeyScheme","adTagUrl","adLanguage","controls","showNotificationControls","disableFocus","disableDisconnectError","focusable","hideShutterView","preventsDisplaySleepDuringVideoPlayback","fullscreen","fullscreenAutorotate","fullscreenOrientation","pictureInPicture","contentStartTime","allowsExternalPlayback","audioOutput","ignoreSilentSwitch","mixWithOthers","debug","onLoadStart","onLoad","onError","onProgress","onSeek","onEnd","onBuffer","onBandwidthUpdate","onPlaybackStateChanged","onPlaybackRateChange","onVolumeChange","onIdle","onReadyForDisplay","onAudioFocusChanged","onAudioBecomingNoisy","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","onPictureInPictureStatusChanged","onRestoreUserInterfaceForPictureInPictureStop","onControlsVisibilityChange","onExternalPlaybackChange","onAspectRatio","onTransferEnd","nativeRef","seek","time","tolerance","current","pause","resume","setVolume","vol","adjustVolume","setFullScreen","fs","presentFullscreenPlayer","dismissFullscreenPlayer","enterPictureInPicture","exitPictureInPicture","setSource","newSource","loadSource","getCurrentPosition","handle","save","options","restoreUserInterfaceForPictureInPictureStopCompleted","handleLoadStart","event","nativeEvent","handleLoad","loadData","naturalSize","orientation","audioTracks","textTracks","videoTracks","handleError","handleProgress","handleSeek","handleEnd","handleBuffer","handleBandwidthUpdate","handlePlaybackStateChanged","handlePlaybackRateChange","handleVolumeChange","handleIdle","handleReadyForDisplay","handleAudioFocusChanged","handleAudioBecomingNoisy","handleFullscreenPlayerWillPresent","handleFullscreenPlayerDidPresent","handleFullscreenPlayerWillDismiss","handleFullscreenPlayerDidDismiss","handlePictureInPictureStatusChanged","handleRestoreUserInterfaceForPictureInPictureStop","handleControlsVisibilityChange","handleExternalPlaybackChange","handleAspectRatio","handleTransferEnd","containerStyle","styles","container","children","video","enableDebug","enable","enableDebugThread","thread","onVideoLoadStart","onVideoLoad","onVideoError","onVideoProgress","onVideoSeek","onVideoEnd","onVideoBuffer","onVideoBandwidthUpdate","onVideoPlaybackStateChanged","onVideoPlaybackRateChange","onVideoVolumeChange","onVideoIdle","onVideoReadyForDisplay","onVideoAudioFocusChanged","onVideoAudioBecomingNoisy","onVideoFullscreenPlayerWillPresent","onVideoFullscreenPlayerDidPresent","onVideoFullscreenPlayerWillDismiss","onVideoFullscreenPlayerDidDismiss","onVideoPictureInPictureStatusChanged","onVideoRestoreUserInterfaceForPictureInPictureStop","onVideoControlsVisibilityChange","onVideoExternalPlaybackChange","onVideoAspectRatio","displayName","isAvailable","Video","create","overflow","absoluteFillObject","clearCache","getWidevineLevel","OS","isCodecSupported","mimeType","width","height","isHEVCSupported"],"sourceRoot":"../../src","sources":["GraniteVideo.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,QAAQ,OAAO;AACnF,SACEC,QAAQ,EACRC,UAAU,EACVC,IAAI,EACJC,KAAK,EACLC,cAAc,EACdC,aAAa,QAIR,cAAc;AACrB,OAAOC,sBAAsB,IAC3BC,QAAQ,QAkBH,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGvC,MAAM;EAAEC;AAAmB,CAAC,GAAGL,aAAa;;AAE5C;AACA;;AAEA,SAASM,eAAeA,CAACC,MAA4B,EAAqC;EACxF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B;IACA,OAAOC,SAAS;EAClB;EAEA,OAAO;IACLC,GAAG,EAAEF,MAAM,CAACE,GAAG;IACfC,IAAI,EAAEH,MAAM,CAACG,IAAI;IACjBC,aAAa,EAAEJ,MAAM,CAACI,aAAa;IACnCC,SAAS,EAAEL,MAAM,CAACK,SAAS;IAC3BC,OAAO,EAAEN,MAAM,CAACM;EAClB,CAAC;AACH;AAEA,SAASC,sBAAsBA,CAC7BC,KAAwC,EACO;EAC/C,IAAI,CAACA,KAAK,EAAE;IACV,OAAOP,SAAS;EAClB;EACA,OAAO;IACLE,IAAI,EAAEK,KAAK,CAACL,IAAI;IAChBM,KAAK,EAAED,KAAK,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAC/B,CAAC;AACH;AAEA,SAASC,2BAA2BA,CAClCH,KAAwC,EACO;EAC/C,IAAI,CAACA,KAAK,EAAE;IACV,OAAOP,SAAS;EAClB;EACA,OAAO;IACLE,IAAI,EAAEK,KAAK,CAACL,IAAI;IAChBM,KAAK,EAAED,KAAK,CAACC;EACf,CAAC;AACH;AAEA,SAASG,YAAYA,CAACC,GAAuB,EAAkC;EAC7E,IAAI,CAACA,GAAG,EAAE;IACR,OAAOZ,SAAS;EAClB;EACA,OAAO;IACLE,IAAI,EAAEU,GAAG,CAACV,IAAI;IACdW,aAAa,EAAED,GAAG,CAACC,aAAa;IAChCC,SAAS,EAAEF,GAAG,CAACE,SAAS;IACxBC,cAAc,EAAEH,GAAG,CAACG,cAAc;IAClCC,iBAAiB,EAAEJ,GAAG,CAACI;EACzB,CAAC;AACH;AAEA,SAASC,qBAAqBA,CAACC,MAAmC,EAA2C;EAC3G,IAAI,CAACA,MAAM,EAAE;IACX,OAAOlB,SAAS;EAClB;EACA,OAAO;IACLmB,WAAW,EAAED,MAAM,CAACC,WAAW;IAC/BC,WAAW,EAAEF,MAAM,CAACE,WAAW;IAC/BC,mBAAmB,EAAEH,MAAM,CAACG,mBAAmB;IAC/CC,gCAAgC,EAAEJ,MAAM,CAACI,gCAAgC;IACzEC,oBAAoB,EAAEL,MAAM,CAACK,oBAAoB;IACjDC,WAAW,EAAEN,MAAM,CAACM;EACtB,CAAC;AACH;AAEA,SAASC,YAAYA,CAACC,MAA6B,EAAsB;EACvE,IAAI,CAACA,MAAM,EAAE;IACX,OAAO1B,SAAS;EAClB;EACA,IAAI,OAAO0B,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM;EACf;EACA,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAIA,MAAM,IAAIA,MAAM,CAACzB,GAAG,EAAE;IAC/D,OAAOyB,MAAM,CAACzB,GAAG;EACnB;EACA,MAAM0B,QAAQ,GAAGrC,KAAK,CAACsC,kBAAkB,CAACF,MAAa,CAAC;EACxD,OAAOC,QAAQ,EAAE1B,GAAG;AACtB;AAEA,MAAM4B,SAAS,gBAAG9C,UAAU,CAAuB,CAAC+C,KAAK,EAAEC,GAAG,KAAK;EACjE,MAAM;IACJ;IACAC,MAAM;IACN;IACAC,KAAK;IACL;IACAlC,MAAM;IACN;IACA2B,MAAM;IACNQ,gBAAgB,GAAG,SAAS;IAC5B;IACAC,MAAM,GAAG,KAAK;IACdC,KAAK,GAAG,KAAK;IACbC,MAAM,GAAG,GAAG;IACZC,IAAI,GAAG,GAAG;IACVC,MAAM,GAAG,KAAK;IACdC,gBAAgB,GAAG,KAAK;IACxBC,gBAAgB,GAAG,KAAK;IACxBC,oCAAoC,GAAG,IAAI;IAC3CC,YAAY;IACZ;IACAC,UAAU,GAAG,SAAS;IACtBC,QAAQ,GAAG,SAAS;IACpBC,cAAc,GAAG,KAAK;IACtBC,aAAa,GAAG,KAAK;IACrB;IACAC,YAAY;IACZC,iBAAiB,GAAG,CAAC;IACrBC,UAAU;IACVC,8BAA8B;IAC9B;IACAC,kBAAkB;IAClBC,iBAAiB;IACjBC,kBAAkB;IAClB;IACA1C,GAAG;IACH2C,8BAA8B;IAC9B;IACAC,QAAQ;IACRC,UAAU;IACV;IACAC,QAAQ,GAAG,KAAK;IAChBC,wBAAwB,GAAG,KAAK;IAChCC,YAAY,GAAG,KAAK;IACpBC,sBAAsB,GAAG,KAAK;IAC9BC,SAAS,GAAG,IAAI;IAChBC,eAAe,GAAG,KAAK;IACvBC,uCAAuC,GAAG,IAAI;IAC9C;IACAC,UAAU,GAAG,KAAK;IAClBC,oBAAoB,GAAG,IAAI;IAC3BC,qBAAqB,GAAG,KAAK;IAC7B;IACAC,gBAAgB,GAAG,KAAK;IACxB;IACAC,gBAAgB;IAChBC,sBAAsB,GAAG,IAAI;IAC7BC,WAAW,GAAG,SAAS;IACvBC,kBAAkB,GAAG,SAAS;IAC9BC,aAAa,GAAG,SAAS;IACzB;IACAC,KAAK;IACL;IACAC,WAAW;IACXC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,QAAQ;IACRC,iBAAiB;IACjBC,sBAAsB;IACtBC,oBAAoB;IACpBC,cAAc;IACdC,MAAM;IACNC,iBAAiB;IACjBC,mBAAmB;IACnBC,oBAAoB;IACpBC,6BAA6B;IAC7BC,4BAA4B;IAC5BC,6BAA6B;IAC7BC,4BAA4B;IAC5BC,+BAA+B;IAC/BC,6CAA6C;IAC7CC,0BAA0B;IAC1BC,wBAAwB;IACxBC,aAAa;IACbC;EACF,CAAC,GAAGrE,KAAK;EAET,MAAMsE,SAAS,GAAGpH,MAAM,CAAkD,IAAI,CAAC;;EAE/E;EACAC,mBAAmB,CAAC8C,GAAG,EAAE,OAAO;IAC9BsE,IAAI,EAAEA,CAACC,IAAY,EAAEC,SAAkB,KAAK;MAC1C,IAAIH,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAAC2G,IAAI,CAACD,SAAS,CAACI,OAAO,EAAEF,IAAI,EAAEC,SAAS,IAAI,CAAC,CAAC;MACxD;IACF,CAAC;IACDE,KAAK,EAAEA,CAAA,KAAM;MACX,IAAIL,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAAC+G,KAAK,CAACL,SAAS,CAACI,OAAO,CAAC;MACnC;IACF,CAAC;IACDE,MAAM,EAAEA,CAAA,KAAM;MACZ,IAAIN,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACgH,MAAM,CAACN,SAAS,CAACI,OAAO,CAAC;MACpC;IACF,CAAC;IACDG,SAAS,EAAGC,GAAW,IAAK;MAC1B,IAAIR,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACmH,YAAY,CAACT,SAAS,CAACI,OAAO,EAAEI,GAAG,CAAC;MAC/C;IACF,CAAC;IACDE,aAAa,EAAGC,EAAW,IAAK;MAC9B,IAAIX,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACoH,aAAa,CAACV,SAAS,CAACI,OAAO,EAAEO,EAAE,CAAC;MAC/C;IACF,CAAC;IACDC,uBAAuB,EAAEA,CAAA,KAAM;MAC7B,IAAIZ,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACoH,aAAa,CAACV,SAAS,CAACI,OAAO,EAAE,IAAI,CAAC;MACjD;IACF,CAAC;IACDS,uBAAuB,EAAEA,CAAA,KAAM;MAC7B,IAAIb,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACoH,aAAa,CAACV,SAAS,CAACI,OAAO,EAAE,KAAK,CAAC;MAClD;IACF,CAAC;IACDU,qBAAqB,EAAEA,CAAA,KAAM;MAC3B,IAAId,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACwH,qBAAqB,CAACd,SAAS,CAACI,OAAO,CAAC;MACnD;IACF,CAAC;IACDW,oBAAoB,EAAEA,CAAA,KAAM;MAC1B,IAAIf,SAAS,CAACI,OAAO,EAAE;QACrB9G,QAAQ,CAACyH,oBAAoB,CAACf,SAAS,CAACI,OAAO,CAAC;MAClD;IACF,CAAC;IACDY,SAAS,EAAGC,SAAsB,IAAK;MACrC,IAAIjB,SAAS,CAACI,OAAO,IAAIa,SAAS,CAACpH,GAAG,EAAE;QACtCP,QAAQ,CAAC4H,UAAU,CAAClB,SAAS,CAACI,OAAO,EAAEa,SAAS,CAACpH,GAAG,CAAC;MACvD;IACF,CAAC;IACDsH,kBAAkB,EAAE,MAAAA,CAAA,KAAY;MAC9B,MAAMC,MAAM,GAAGjI,cAAc,CAAC6G,SAAS,CAACI,OAAO,CAAC;MAChD,IAAIgB,MAAM,IAAI3H,kBAAkB,EAAE0H,kBAAkB,EAAE;QACpD,OAAO1H,kBAAkB,CAAC0H,kBAAkB,CAACC,MAAM,CAAC;MACtD;MACA,OAAO,CAAC;IACV,CAAC;IACDC,IAAI,EAAE,MAAOC,OAA2B,IAAK;MAC3C,MAAMF,MAAM,GAAGjI,cAAc,CAAC6G,SAAS,CAACI,OAAO,CAAC;MAChD,IAAIgB,MAAM,IAAI3H,kBAAkB,EAAE4H,IAAI,EAAE;QACtC,OAAO5H,kBAAkB,CAAC4H,IAAI,CAACD,MAAM,EAAEE,OAAO,IAAI,CAAC,CAAC,CAAC;MACvD;MACA,OAAO;QAAEzH,GAAG,EAAE;MAAG,CAAC;IACpB,CAAC;IACD0H,oDAAoD,EAAEA,CAAA,KAAM;MAC1D;IAAA;EAEJ,CAAC,CAAC,CAAC;;EAEH;EACA,MAAMC,eAAe,GAAG1I,WAAW,CAChC2I,KAAkD,IAAK;IACtDlD,WAAW,GAAGkD,KAAK,CAACC,WAAW,CAAC;EAClC,CAAC,EACD,CAACnD,WAAW,CACd,CAAC;EAED,MAAMoD,UAAU,GAAG7I,WAAW,CAC3B2I,KAA6C,IAAK;IACjD,MAAMC,WAAW,GAAGD,KAAK,CAACC,WAAW;IACrC,MAAME,QAAoB,GAAG;MAC3B,GAAGF,WAAW;MACdG,WAAW,EAAE;QACX,GAAGH,WAAW,CAACG,WAAW;QAC1BC,WAAW,EAAEJ,WAAW,CAACG,WAAW,CAACC;MACvC,CAAC;MACDC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,EAAE;MACdC,WAAW,EAAE;IACf,CAAC;IACDzD,MAAM,GAAGoD,QAAQ,CAAC;EACpB,CAAC,EACD,CAACpD,MAAM,CACT,CAAC;EAED,MAAM0D,WAAW,GAAGpJ,WAAW,CAC5B2I,KAA8C,IAAK;IAClDhD,OAAO,GAAGgD,KAAK,CAACC,WAAW,CAAC;EAC9B,CAAC,EACD,CAACjD,OAAO,CACV,CAAC;EAED,MAAM0D,cAAc,GAAGrJ,WAAW,CAC/B2I,KAAiD,IAAK;IACrD/C,UAAU,GAAG+C,KAAK,CAACC,WAAW,CAAC;EACjC,CAAC,EACD,CAAChD,UAAU,CACb,CAAC;EAED,MAAM0D,UAAU,GAAGtJ,WAAW,CAC3B2I,KAA6C,IAAK;IACjD9C,MAAM,GAAG8C,KAAK,CAACC,WAAW,CAAC;EAC7B,CAAC,EACD,CAAC/C,MAAM,CACT,CAAC;EAED,MAAM0D,SAAS,GAAGvJ,WAAW,CAAC,MAAM;IAClC8F,KAAK,GAAG,CAAC;EACX,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAM0D,YAAY,GAAGxJ,WAAW,CAC7B2I,KAA+C,IAAK;IACnD5C,QAAQ,GAAG4C,KAAK,CAACC,WAAW,CAAC;EAC/B,CAAC,EACD,CAAC7C,QAAQ,CACX,CAAC;EAED,MAAM0D,qBAAqB,GAAGzJ,WAAW,CACtC2I,KAAwD,IAAK;IAC5D3C,iBAAiB,GAAG2C,KAAK,CAACC,WAAW,CAAC;EACxC,CAAC,EACD,CAAC5C,iBAAiB,CACpB,CAAC;EAED,MAAM0D,0BAA0B,GAAG1J,WAAW,CAC3C2I,KAA6D,IAAK;IACjE1C,sBAAsB,GAAG0C,KAAK,CAACC,WAAW,CAAC;EAC7C,CAAC,EACD,CAAC3C,sBAAsB,CACzB,CAAC;EAED,MAAM0D,wBAAwB,GAAG3J,WAAW,CACzC2I,KAA2D,IAAK;IAC/DzC,oBAAoB,GAAGyC,KAAK,CAACC,WAAW,CAAC;EAC3C,CAAC,EACD,CAAC1C,oBAAoB,CACvB,CAAC;EAED,MAAM0D,kBAAkB,GAAG5J,WAAW,CACnC2I,KAAqD,IAAK;IACzDxC,cAAc,GAAGwC,KAAK,CAACC,WAAW,CAAC;EACrC,CAAC,EACD,CAACzC,cAAc,CACjB,CAAC;EAED,MAAM0D,UAAU,GAAG7J,WAAW,CAAC,MAAM;IACnCoG,MAAM,GAAG,CAAC;EACZ,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAM0D,qBAAqB,GAAG9J,WAAW,CAAC,MAAM;IAC9CqG,iBAAiB,GAAG,CAAC;EACvB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAM0D,uBAAuB,GAAG/J,WAAW,CACxC2I,KAA0D,IAAK;IAC9DrC,mBAAmB,GAAGqC,KAAK,CAACC,WAAW,CAAC;EAC1C,CAAC,EACD,CAACtC,mBAAmB,CACtB,CAAC;EAED,MAAM0D,wBAAwB,GAAGhK,WAAW,CAAC,MAAM;IACjDuG,oBAAoB,GAAG,CAAC;EAC1B,CAAC,EAAE,CAACA,oBAAoB,CAAC,CAAC;EAE1B,MAAM0D,iCAAiC,GAAGjK,WAAW,CAAC,MAAM;IAC1DwG,6BAA6B,GAAG,CAAC;EACnC,CAAC,EAAE,CAACA,6BAA6B,CAAC,CAAC;EAEnC,MAAM0D,gCAAgC,GAAGlK,WAAW,CAAC,MAAM;IACzDyG,4BAA4B,GAAG,CAAC;EAClC,CAAC,EAAE,CAACA,4BAA4B,CAAC,CAAC;EAElC,MAAM0D,iCAAiC,GAAGnK,WAAW,CAAC,MAAM;IAC1D0G,6BAA6B,GAAG,CAAC;EACnC,CAAC,EAAE,CAACA,6BAA6B,CAAC,CAAC;EAEnC,MAAM0D,gCAAgC,GAAGpK,WAAW,CAAC,MAAM;IACzD2G,4BAA4B,GAAG,CAAC;EAClC,CAAC,EAAE,CAACA,4BAA4B,CAAC,CAAC;EAElC,MAAM0D,mCAAmC,GAAGrK,WAAW,CACpD2I,KAAsE,IAAK;IAC1E/B,+BAA+B,GAAG+B,KAAK,CAACC,WAAW,CAAC;EACtD,CAAC,EACD,CAAChC,+BAA+B,CAClC,CAAC;EAED,MAAM0D,iDAAiD,GAAGtK,WAAW,CAAC,MAAM;IAC1E6G,6CAA6C,GAAG,CAAC;EACnD,CAAC,EAAE,CAACA,6CAA6C,CAAC,CAAC;EAEnD,MAAM0D,8BAA8B,GAAGvK,WAAW,CAC/C2I,KAAiE,IAAK;IACrE7B,0BAA0B,GAAG6B,KAAK,CAACC,WAAW,CAAC;EACjD,CAAC,EACD,CAAC9B,0BAA0B,CAC7B,CAAC;EAED,MAAM0D,4BAA4B,GAAGxK,WAAW,CAC7C2I,KAA+D,IAAK;IACnE5B,wBAAwB,GAAG4B,KAAK,CAACC,WAAW,CAAC;EAC/C,CAAC,EACD,CAAC7B,wBAAwB,CAC3B,CAAC;EAED,MAAM0D,iBAAiB,GAAGzK,WAAW,CAClC2I,KAAoD,IAAK;IACxD3B,aAAa,GAAG2B,KAAK,CAACC,WAAW,CAAC;EACpC,CAAC,EACD,CAAC5B,aAAa,CAChB,CAAC;EAED,MAAM0D,iBAAiB,GAAG1K,WAAW,CAClC2I,KAA6C,IAAK;IACjD1B,aAAa,GAAG0B,KAAK,CAACC,WAAW,CAAC;EACpC,CAAC,EACD,CAAC3B,aAAa,CAChB,CAAC;;EAED;EACA,MAAM0D,cAAoC,GAAG,CAACC,MAAM,CAACC,SAAS,EAAE9H,KAAK,CAAC;EAEtE,oBACErC,IAAA,CAACP,IAAI;IAAC4C,KAAK,EAAE4H,cAAe;IAAC7H,MAAM,EAAEA,MAAO;IAAAgI,QAAA,eAC1CpK,IAAA,CAACH,sBAAsB;MACrBsC,GAAG,EAAEqE,SAAU;MACfnE,KAAK,EAAE6H,MAAM,CAACG,KAAM;MACpBlK,MAAM,EAAED,eAAe,CAACC,MAAM,CAAE;MAChC2B,MAAM,EAAED,YAAY,CAACC,MAAM,CAAE;MAC7BQ,gBAAgB,EAAEA,gBAAiB;MACnCC,MAAM,EAAEA,MAAO;MACfC,KAAK,EAAEA,KAAM;MACbC,MAAM,EAAEA,MAAO;MACfC,IAAI,EAAEA,IAAK;MACXC,MAAM,EAAEA,MAAO;MACfC,gBAAgB,EAAEA,gBAAiB;MACnCC,gBAAgB,EAAEA,gBAAiB;MACnCC,oCAAoC,EAAEA,oCAAqC;MAC3EC,YAAY,EAAEA,YAAa;MAC3BC,UAAU,EAAEA,UAAW;MACvBC,QAAQ,EAAEA,QAAS;MACnBC,cAAc,EAAEA,cAAe;MAC/BC,aAAa,EAAEA,aAAc;MAC7BC,YAAY,EAAE/B,qBAAqB,CAAC+B,YAAY,CAAE;MAClDC,iBAAiB,EAAEA,iBAAkB;MACrCC,UAAU,EAAEA,UAAW;MACvBC,8BAA8B,EAAEA,8BAA+B;MAC/DC,kBAAkB,EAAE9C,sBAAsB,CAAC8C,kBAAkB,CAAE;MAC/DC,iBAAiB,EAAE/C,sBAAsB,CAAC+C,iBAAiB,CAAE;MAC7DC,kBAAkB,EAAE5C,2BAA2B,CAAC4C,kBAAkB,CAAE;MACpE1C,GAAG,EAAED,YAAY,CAACC,GAAG,CAAE;MACvB2C,8BAA8B,EAAEA,8BAA+B;MAC/DC,QAAQ,EAAEA,QAAS;MACnBC,UAAU,EAAEA,UAAW;MACvBC,QAAQ,EAAEA,QAAS;MACnBC,wBAAwB,EAAEA,wBAAyB;MACnDC,YAAY,EAAEA,YAAa;MAC3BC,sBAAsB,EAAEA,sBAAuB;MAC/CC,SAAS,EAAEA,SAAU;MACrBC,eAAe,EAAEA,eAAgB;MACjCC,uCAAuC,EAAEA,uCAAwC;MACjFC,UAAU,EAAEA,UAAW;MACvBC,oBAAoB,EAAEA,oBAAqB;MAC3CC,qBAAqB,EAAEA,qBAAsB;MAC7CC,gBAAgB,EAAEA,gBAAiB;MACnCC,gBAAgB,EAAEA,gBAAiB;MACnCC,sBAAsB,EAAEA,sBAAuB;MAC/CC,WAAW,EAAEA,WAAY;MACzBC,kBAAkB,EAAEA,kBAAmB;MACvCC,aAAa,EAAEA,aAAc;MAC7ByF,WAAW,EAAExF,KAAK,EAAEyF,MAAO;MAC3BC,iBAAiB,EAAE1F,KAAK,EAAE2F,MAAO;MACjCC,gBAAgB,EAAE1C,eAAgB;MAClC2C,WAAW,EAAExC,UAAW;MACxByC,YAAY,EAAElC,WAAY;MAC1BmC,eAAe,EAAElC,cAAe;MAChCmC,WAAW,EAAElC,UAAW;MACxBmC,UAAU,EAAElC,SAAU;MACtBmC,aAAa,EAAElC,YAAa;MAC5BmC,sBAAsB,EAAElC,qBAAsB;MAC9CmC,2BAA2B,EAAElC,0BAA2B;MACxDmC,yBAAyB,EAAElC,wBAAyB;MACpDmC,mBAAmB,EAAElC,kBAAmB;MACxCmC,WAAW,EAAElC,UAAW;MACxBmC,sBAAsB,EAAElC,qBAAsB;MAC9CmC,wBAAwB,EAAElC,uBAAwB;MAClDmC,yBAAyB,EAAElC,wBAAyB;MACpDmC,kCAAkC,EAAElC,iCAAkC;MACtEmC,iCAAiC,EAAElC,gCAAiC;MACpEmC,kCAAkC,EAAElC,iCAAkC;MACtEmC,iCAAiC,EAAElC,gCAAiC;MACpEmC,oCAAoC,EAAElC,mCAAoC;MAC1EmC,kDAAkD,EAAElC,iDAAkD;MACtGmC,+BAA+B,EAAElC,8BAA+B;MAChEmC,6BAA6B,EAAElC,4BAA6B;MAC5DmC,kBAAkB,EAAElC,iBAAkB;MACtCxD,aAAa,EAAEyD;IAAkB,CAClC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC;AAEF/H,SAAS,CAACiK,WAAW,GAAG,OAAO;;AAE/B;;AAKA;AACA;AACCjK,SAAS,CAAoBkK,WAAW,GAAG,IAAI;AAEhD,OAAO,MAAMC,KAAK,GAAGnK,SAA2B;AAEhD,MAAMiI,MAAM,GAAG1K,UAAU,CAAC6M,MAAM,CAAC;EAC/BlC,SAAS,EAAE;IACTmC,QAAQ,EAAE;EACZ,CAAC;EACDjC,KAAK,EAAE;IACL,GAAG7K,UAAU,CAAC+M;EAChB;AACF,CAAC,CAAC;;AAEF;AACA,OAAO,eAAeC,UAAUA,CAAA,EAAkB;EAChD,IAAIvM,kBAAkB,EAAEuM,UAAU,EAAE;IAClC,OAAOvM,kBAAkB,CAACuM,UAAU,CAAC,CAAC;EACxC;AACF;AAEA,OAAO,eAAeC,gBAAgBA,CAAA,EAAoB;EACxD,IAAIlN,QAAQ,CAACmN,EAAE,KAAK,SAAS,IAAIzM,kBAAkB,EAAEwM,gBAAgB,EAAE;IACrE,OAAOxM,kBAAkB,CAACwM,gBAAgB,CAAC,CAAC;EAC9C;EACA,OAAO,CAAC;AACV;AAEA,OAAO,eAAeE,gBAAgBA,CAACC,QAAgB,EAAEC,KAAa,EAAEC,MAAc,EAAoB;EACxG,IAAI7M,kBAAkB,EAAE0M,gBAAgB,EAAE;IACxC,OAAO1M,kBAAkB,CAAC0M,gBAAgB,CAACC,QAAQ,EAAEC,KAAK,EAAEC,MAAM,CAAC;EACrE;EACA,OAAO,KAAK;AACd;AAEA,OAAO,eAAeC,eAAeA,CAAA,EAAqB;EACxD,IAAI9M,kBAAkB,EAAE8M,eAAe,EAAE;IACvC,OAAO9M,kBAAkB,CAAC8M,eAAe,CAAC,CAAC;EAC7C;EACA,OAAO,KAAK;AACd","ignoreList":[]}
|