@draftbit/core 56.0.1 → 56.0.2
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/lib/typescript/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js +5 -11
- package/lib/typescript/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js.map +1 -1
- package/lib/typescript/src/components/MediaPlayer/MediaPlaybackWrapper.js +1 -1
- package/lib/typescript/src/components/MediaPlayer/MediaPlaybackWrapper.js.map +1 -1
- package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js +13 -25
- package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js.map +1 -1
- package/lib/typescript/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.tsx +5 -12
- package/src/components/MediaPlayer/MediaPlaybackWrapper.tsx +1 -1
- package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx +12 -23
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { useAudioPlayer, setAudioModeAsync } from "expo-audio";
|
|
3
|
-
import { normalizeBase64Source, useSourceDeepCompareMemoize,
|
|
3
|
+
import { normalizeBase64Source, useSourceDeepCompareMemoize, } from "../MediaPlayerCommon";
|
|
4
4
|
import MediaPlaybackWrapper from "../MediaPlaybackWrapper";
|
|
5
5
|
/**
|
|
6
6
|
* Audio Player component without an interface (UI).
|
|
@@ -29,6 +29,9 @@ const HeadlessAudioPlayer = React.forwardRef(({ source, interruptionMode = "lowe
|
|
|
29
29
|
});
|
|
30
30
|
}, []);
|
|
31
31
|
React.useEffect(() => {
|
|
32
|
+
// 'useAudioPlayer' builds a new player whenever the source changes, so the
|
|
33
|
+
// mirrored playing state has to be resynced
|
|
34
|
+
setIsPlaying(player.playing);
|
|
32
35
|
const subscription = player.addListener("playbackStatusUpdate", (status) => {
|
|
33
36
|
const mappedStatus = mapToMediaPlayerStatus(status);
|
|
34
37
|
onPlaybackStatusUpdateProp === null || onPlaybackStatusUpdateProp === void 0 ? void 0 : onPlaybackStatusUpdateProp(mappedStatus);
|
|
@@ -40,16 +43,7 @@ const HeadlessAudioPlayer = React.forwardRef(({ source, interruptionMode = "lowe
|
|
|
40
43
|
}
|
|
41
44
|
});
|
|
42
45
|
return () => subscription.remove();
|
|
43
|
-
}, []);
|
|
44
|
-
// Replace source when it changes (deep comparison on URI to avoid unnecessary reloads)
|
|
45
|
-
const isFirstSourceRender = React.useRef(true);
|
|
46
|
-
useSourceDeepCompareEffect(() => {
|
|
47
|
-
if (isFirstSourceRender.current) {
|
|
48
|
-
isFirstSourceRender.current = false;
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
player.replace(normalizeBase64Source(source, "audio"));
|
|
52
|
-
}, [source]);
|
|
46
|
+
}, [player]);
|
|
53
47
|
const updateAudioMode = React.useCallback(async () => {
|
|
54
48
|
try {
|
|
55
49
|
await setAudioModeAsync({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadlessAudioPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAe,MAAM,YAAY,CAAC;AAE5E,OAAO,EACL,qBAAqB,EACrB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"HeadlessAudioPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const MediaPlaybackWrapper = React.forwardRef(({ player, isPlaying, onTogglePlay
|
|
|
11
11
|
else {
|
|
12
12
|
player === null || player === void 0 ? void 0 : player.play();
|
|
13
13
|
}
|
|
14
|
-
}, [isPlaying, onTogglePlayback]);
|
|
14
|
+
}, [isPlaying, onTogglePlayback, player]);
|
|
15
15
|
const pause = React.useCallback(() => {
|
|
16
16
|
onTogglePlayback === null || onTogglePlayback === void 0 ? void 0 : onTogglePlayback();
|
|
17
17
|
player === null || player === void 0 ? void 0 : player.pause();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaPlaybackWrapper.js","sourceRoot":"","sources":["../../../../../src/components/MediaPlayer/MediaPlaybackWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B;;GAEG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QAErB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaPlaybackWrapper.js","sourceRoot":"","sources":["../../../../../src/components/MediaPlayer/MediaPlaybackWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B;;GAEG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QAErB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACrB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACrB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE/B,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CACtC,CAAC,cAAsB,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,MAAM,CAAA,KAAK,UAAU,EAAE,CAAC;YACjD,MAAsB,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC;QAC7C,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,KAAK,CAAC,mBAAmB,CACvB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,cAAc;QACd,cAAc;QACd,KAAK;QACL,IAAI;KACL,CAAC,EACF,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAC9C,CAAC;IAEF,OAAO,0CAAG,QAAQ,CAAI,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { VideoView as VideoPlayerComponent, useVideoPlayer, } from "expo-video";
|
|
|
4
4
|
import { setAudioModeAsync } from "expo-audio";
|
|
5
5
|
import { extractSizeStyles } from "../../../utilities";
|
|
6
6
|
import MediaPlaybackWrapper from "../MediaPlaybackWrapper";
|
|
7
|
-
import { normalizeBase64Source,
|
|
7
|
+
import { normalizeBase64Source, useSourceDeepCompareMemoize, } from "../MediaPlayerCommon";
|
|
8
8
|
const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterResizeMode = "cover", posterSource, usePoster = false, onPlaybackStatusUpdate: onPlaybackStatusUpdateProp, onPlaybackFinish, source, playsInSilentModeIOS = false, isMuted = false, useNativeControls = true, shouldPlay = false, isLooping = false, positionMillis, allowsFullscreen = true, rate = 1, volume = 1, ...rest }, ref) => {
|
|
9
9
|
// @ts-ignore
|
|
10
10
|
const { className, ...videoPlayerProps } = rest;
|
|
@@ -40,6 +40,10 @@ const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterRes
|
|
|
40
40
|
positionMillisRef.current = positionMillis;
|
|
41
41
|
const hasAppliedInitialState = React.useRef(false);
|
|
42
42
|
React.useEffect(() => {
|
|
43
|
+
// 'useVideoPlayer' builds a new player whenever the source changes, so the
|
|
44
|
+
// initial state has to be applied again
|
|
45
|
+
hasAppliedInitialState.current = false;
|
|
46
|
+
setIsPlaying(player.playing);
|
|
43
47
|
const timeUpdateSub = player.addListener("timeUpdate", (status) => {
|
|
44
48
|
onPlaybackStatusUpdateProp === null || onPlaybackStatusUpdateProp === void 0 ? void 0 : onPlaybackStatusUpdateProp(mapToMediaPlayerStatus(status, player));
|
|
45
49
|
});
|
|
@@ -74,17 +78,7 @@ const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterRes
|
|
|
74
78
|
playToEndSub.remove();
|
|
75
79
|
statusChangeSub.remove();
|
|
76
80
|
};
|
|
77
|
-
}, []);
|
|
78
|
-
// Replace video source when it changes (deep comparison on URI to avoid unnecessary reloads)
|
|
79
|
-
const isFirstSourceRender = React.useRef(true);
|
|
80
|
-
useSourceDeepCompareEffect(() => {
|
|
81
|
-
if (isFirstSourceRender.current) {
|
|
82
|
-
isFirstSourceRender.current = false;
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
hasAppliedInitialState.current = false;
|
|
86
|
-
player.replace(normalizeBase64Source(source, "video"));
|
|
87
|
-
}, [source]);
|
|
81
|
+
}, [player]);
|
|
88
82
|
let mappedVideoContentFit;
|
|
89
83
|
switch (resizeMode) {
|
|
90
84
|
case "contain":
|
|
@@ -128,19 +122,13 @@ const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterRes
|
|
|
128
122
|
console.error("Failed to set audio mode. Error details:", e);
|
|
129
123
|
}
|
|
130
124
|
}, [playsInSilentModeIOS]);
|
|
131
|
-
React.useImperativeHandle(ref, () => {
|
|
132
|
-
|
|
133
|
-
return (
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
play: ((_d = mediaPlaybackWrapperRef.current) === null || _d === void 0 ? void 0 : _d.play) || (() => { }),
|
|
139
|
-
});
|
|
140
|
-
},
|
|
141
|
-
// Include 'isPlaying' as dependency because 'togglePlayback' changes when it changes
|
|
142
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
143
|
-
[toggleFullscreen, isPlaying]);
|
|
125
|
+
React.useImperativeHandle(ref, () => ({
|
|
126
|
+
toggleFullscreen,
|
|
127
|
+
seekToPosition: (positionMillis) => { var _a; return (_a = mediaPlaybackWrapperRef.current) === null || _a === void 0 ? void 0 : _a.seekToPosition(positionMillis); },
|
|
128
|
+
togglePlayback: () => { var _a; return (_a = mediaPlaybackWrapperRef.current) === null || _a === void 0 ? void 0 : _a.togglePlayback(); },
|
|
129
|
+
pause: () => { var _a; return (_a = mediaPlaybackWrapperRef.current) === null || _a === void 0 ? void 0 : _a.pause(); },
|
|
130
|
+
play: () => { var _a; return (_a = mediaPlaybackWrapperRef.current) === null || _a === void 0 ? void 0 : _a.play(); },
|
|
131
|
+
}), [toggleFullscreen]);
|
|
144
132
|
return (React.createElement(MediaPlaybackWrapper, { player: player, isPlaying: isPlaying, ref: mediaPlaybackWrapperRef, onTogglePlayback: updateAudioMode },
|
|
145
133
|
React.createElement(View, { style: [style, styles.container],
|
|
146
134
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,EAGL,UAAU,EACV,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,IAAI,oBAAoB,EAGjC,cAAc,
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,EAGL,UAAU,EACV,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,IAAI,oBAAoB,EAGjC,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AA8B9B,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EACE,KAAK,EACL,UAAU,GAAG,SAAS,EACtB,gBAAgB,GAAG,OAAO,EAC1B,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,sBAAsB,EAAE,0BAA0B,EAClD,gBAAgB,EAChB,MAAM,EACN,oBAAoB,GAAG,KAAK,EAC5B,OAAO,GAAG,KAAK,EACf,iBAAiB,GAAG,IAAI,EACxB,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,EACjB,cAAc,EACd,gBAAgB,GAAG,IAAI,EACvB,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,aAAa;IACb,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,YAAY,GAAG,2BAA2B,CAC9C,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;QAChD,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAuB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChD,SAAS,IAAI,CAAC,CAAC,YAAY,CAC5B,CAAC;IAEF,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IACzB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,iEAAiE;IACjE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACvD,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;IACnC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAE3C,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,2EAA2E;QAC3E,wCAAwC;QACxC,sBAAsB,CAAC,OAAO,GAAG,KAAK,CAAC;QACvC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAChE,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CACzC,eAAe,EACf,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YACzB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,CAAC,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE;YACxD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,cAAc,EACd,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC7B,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;oBACpC,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;wBAC9B,MAAM,CAAC,WAAW,GAAG,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACxD,CAAC;oBACD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC1B,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC1D,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CACxB,MAAM,KAAK,OAAO,IAAI,KAAK;gBACzB,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC1D,CAAC,CAAC,YAAY,CACjB,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,MAAM,EAAE,CAAC;YACvB,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC1B,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,qBAAsC,CAAC;IAC3C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,qBAAqB,GAAG,SAAS,CAAC;YAClC,MAAM;QACR,KAAK,OAAO;YACV,qBAAqB,GAAG,OAAO,CAAC;YAChC,MAAM;QACR,KAAK,SAAS;YACZ,qBAAqB,GAAG,MAAM,CAAC;YAC/B,MAAM;IACV,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAC,IAA0B,EAAE,EAAE;QACxD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,eAAe,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM;QACV,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;;QACpD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAA,MAAA,cAAc,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAA,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAA,MAAA,cAAc,CAAC,OAAO,0CAAE,eAAe,EAAE,CAAA,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC;gBACtB,iBAAiB,EAAE,oBAAoB;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,KAAK,CAAC,mBAAmB,CACvB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB;QAChB,cAAc,EAAE,CAAC,cAAsB,EAAE,EAAE,WACzC,OAAA,MAAA,uBAAuB,CAAC,OAAO,0CAAE,cAAc,CAAC,cAAc,CAAC,CAAA,EAAA;QACjE,cAAc,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,uBAAuB,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAA,EAAA;QACvE,KAAK,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,uBAAuB,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA;QACrD,IAAI,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,uBAAuB,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAA,EAAA;KACpD,CAAC,EACF,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,oBAAC,oBAAoB,IACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,uBAAuB,EAC5B,gBAAgB,EAAE,eAAe;QAEjC,oBAAC,IAAI,IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;YAChC,aAAa;YACb,SAAS,EAAE,SAAS;YAEpB,oBAAC,oBAAoB,IACnB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,iBAAiB,EACjC,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,qBAAqB,EACjC,iBAAiB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EACtD,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EACpD,iBAAiB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAC3C,gBAAgB,GACpB;YACD,UAAU,IAAI,YAAY,IAAI,CAC7B,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC/D,oBAAC,KAAK,IACJ,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,GAC5C,CACG,CACR,CACI,CACc,CACxB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC,CAAC;AAEH,SAAS,4BAA4B,CACnC,MAAuB;IAEvB,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,OAAO;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS;QACtC,WAAW,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS;QACxC,qBAAqB,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI;QAChD,cAAc,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI;QACtC,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI;QACtD,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAA8B,EAC9B,MAAuB;IAEvB,OAAO;QACL,GAAG,4BAA4B,CAAC,MAAM,CAAC;QACvC,qBAAqB,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI;QAChD,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI;KACvD,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|