@livekit/react-native 2.9.6 → 2.9.8
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/README.md +7 -5
- package/ios/LivekitReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/LivekitReactNative.xcodeproj/xcuserdata/davidliu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/lib/commonjs/LKNativeModule.js.map +1 -1
- package/lib/commonjs/audio/AudioManager.js +1 -2
- package/lib/commonjs/audio/AudioManager.js.map +1 -1
- package/lib/commonjs/audio/AudioSession.js +105 -100
- package/lib/commonjs/audio/AudioSession.js.map +1 -1
- package/lib/commonjs/audio/MediaRecorder.js +54 -35
- package/lib/commonjs/audio/MediaRecorder.js.map +1 -1
- package/lib/commonjs/components/BarVisualizer.js +8 -8
- package/lib/commonjs/components/BarVisualizer.js.map +1 -1
- package/lib/commonjs/components/LiveKitRoom.js +11 -7
- package/lib/commonjs/components/LiveKitRoom.js.map +1 -1
- package/lib/commonjs/components/VideoTrack.js +34 -47
- package/lib/commonjs/components/VideoTrack.js.map +1 -1
- package/lib/commonjs/components/VideoView.js +36 -48
- package/lib/commonjs/components/VideoView.js.map +1 -1
- package/lib/commonjs/components/ViewPortDetector.js +71 -79
- package/lib/commonjs/components/ViewPortDetector.js.map +1 -1
- package/lib/commonjs/e2ee/RNE2EEManager.js +8 -15
- package/lib/commonjs/e2ee/RNE2EEManager.js.map +1 -1
- package/lib/commonjs/e2ee/RNKeyProvider.js +1 -5
- package/lib/commonjs/e2ee/RNKeyProvider.js.map +1 -1
- package/lib/commonjs/events/EventEmitter.js +2 -4
- package/lib/commonjs/events/EventEmitter.js.map +1 -1
- package/lib/commonjs/hooks/useE2EEManager.js.map +1 -1
- package/lib/commonjs/hooks/useMultibandTrackVolume.js +4 -5
- package/lib/commonjs/hooks/useMultibandTrackVolume.js.map +1 -1
- package/lib/commonjs/hooks/useTrackVolume.js +4 -5
- package/lib/commonjs/hooks/useTrackVolume.js.map +1 -1
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/commonjs/index.js +15 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/logger.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js.map +1 -1
- package/lib/commonjs/polyfills/MediaRecorderShim.js.map +1 -1
- package/lib/commonjs/useParticipant.js.map +1 -1
- package/lib/commonjs/useRoom.js +4 -6
- package/lib/commonjs/useRoom.js.map +1 -1
- package/lib/module/LKNativeModule.js +2 -0
- package/lib/module/LKNativeModule.js.map +1 -1
- package/lib/module/audio/AudioManager.js +2 -0
- package/lib/module/audio/AudioManager.js.map +1 -1
- package/lib/module/audio/AudioSession.js +107 -100
- package/lib/module/audio/AudioSession.js.map +1 -1
- package/lib/module/audio/MediaRecorder.js +50 -29
- package/lib/module/audio/MediaRecorder.js.map +1 -1
- package/lib/module/components/BarVisualizer.js +9 -6
- package/lib/module/components/BarVisualizer.js.map +1 -1
- package/lib/module/components/LiveKitRoom.js +12 -6
- package/lib/module/components/LiveKitRoom.js.map +1 -1
- package/lib/module/components/VideoTrack.js +35 -45
- package/lib/module/components/VideoTrack.js.map +1 -1
- package/lib/module/components/VideoView.js +37 -46
- package/lib/module/components/VideoView.js.map +1 -1
- package/lib/module/components/ViewPortDetector.js +71 -77
- package/lib/module/components/ViewPortDetector.js.map +1 -1
- package/lib/module/e2ee/RNE2EEManager.js +10 -15
- package/lib/module/e2ee/RNE2EEManager.js.map +1 -1
- package/lib/module/e2ee/RNKeyProvider.js +3 -5
- package/lib/module/e2ee/RNKeyProvider.js.map +1 -1
- package/lib/module/events/EventEmitter.js +4 -4
- package/lib/module/events/EventEmitter.js.map +1 -1
- package/lib/module/hooks/useE2EEManager.js +2 -0
- package/lib/module/hooks/useE2EEManager.js.map +1 -1
- package/lib/module/hooks/useMultibandTrackVolume.js +6 -5
- package/lib/module/hooks/useMultibandTrackVolume.js.map +1 -1
- package/lib/module/hooks/useTrackVolume.js +6 -5
- package/lib/module/hooks/useTrackVolume.js.map +1 -1
- package/lib/module/hooks.js +2 -0
- package/lib/module/hooks.js.map +1 -1
- package/lib/module/index.js +5 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/logger.js +2 -0
- package/lib/module/logger.js.map +1 -1
- package/lib/module/polyfills/EncoderDecoderTogether.min.js.map +1 -1
- package/lib/module/polyfills/MediaRecorderShim.js +2 -0
- package/lib/module/polyfills/MediaRecorderShim.js.map +1 -1
- package/lib/module/useParticipant.js +2 -0
- package/lib/module/useParticipant.js.map +1 -1
- package/lib/module/useRoom.js +6 -6
- package/lib/module/useRoom.js.map +1 -1
- package/lib/typescript/{LKNativeModule.d.ts → src/LKNativeModule.d.ts} +1 -0
- package/lib/typescript/src/LKNativeModule.d.ts.map +1 -0
- package/lib/typescript/{audio → src/audio}/AudioManager.d.ts +1 -0
- package/lib/typescript/src/audio/AudioManager.d.ts.map +1 -0
- package/lib/typescript/{audio → src/audio}/AudioSession.d.ts +1 -0
- package/lib/typescript/src/audio/AudioSession.d.ts.map +1 -0
- package/lib/typescript/{audio → src/audio}/MediaRecorder.d.ts +14 -1
- package/lib/typescript/src/audio/MediaRecorder.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/BarVisualizer.d.ts +2 -2
- package/lib/typescript/src/components/BarVisualizer.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/LiveKitRoom.d.ts +2 -1
- package/lib/typescript/src/components/LiveKitRoom.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/VideoTrack.d.ts +2 -2
- package/lib/typescript/src/components/VideoTrack.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/VideoView.d.ts +2 -2
- package/lib/typescript/src/components/VideoView.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/ViewPortDetector.d.ts +3 -2
- package/lib/typescript/src/components/ViewPortDetector.d.ts.map +1 -0
- package/lib/typescript/{e2ee → src/e2ee}/RNE2EEManager.d.ts +1 -0
- package/lib/typescript/src/e2ee/RNE2EEManager.d.ts.map +1 -0
- package/lib/typescript/{e2ee → src/e2ee}/RNKeyProvider.d.ts +1 -0
- package/lib/typescript/src/e2ee/RNKeyProvider.d.ts.map +1 -0
- package/lib/typescript/{events → src/events}/EventEmitter.d.ts +1 -0
- package/lib/typescript/src/events/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/{hooks → src/hooks}/useE2EEManager.d.ts +1 -0
- package/lib/typescript/src/hooks/useE2EEManager.d.ts.map +1 -0
- package/lib/typescript/{hooks → src/hooks}/useMultibandTrackVolume.d.ts +1 -0
- package/lib/typescript/src/hooks/useMultibandTrackVolume.d.ts.map +1 -0
- package/lib/typescript/{hooks → src/hooks}/useTrackVolume.d.ts +1 -0
- package/lib/typescript/src/hooks/useTrackVolume.d.ts.map +1 -0
- package/lib/typescript/{hooks.d.ts → src/hooks.d.ts} +1 -0
- package/lib/typescript/src/hooks.d.ts.map +1 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/{logger.d.ts → src/logger.d.ts} +1 -0
- package/lib/typescript/src/logger.d.ts.map +1 -0
- package/lib/typescript/src/polyfills/MediaRecorderShim.d.ts +2 -0
- package/lib/typescript/src/polyfills/MediaRecorderShim.d.ts.map +1 -0
- package/lib/typescript/{useParticipant.d.ts → src/useParticipant.d.ts} +1 -0
- package/lib/typescript/src/useParticipant.d.ts.map +1 -0
- package/lib/typescript/{useRoom.d.ts → src/useRoom.d.ts} +1 -0
- package/lib/typescript/src/useRoom.d.ts.map +1 -0
- package/package.json +40 -57
- package/src/audio/MediaRecorder.ts +54 -17
- package/src/components/BarVisualizer.tsx +2 -2
- package/src/components/VideoTrack.tsx +0 -2
- package/src/components/VideoView.tsx +0 -2
- package/src/components/ViewPortDetector.tsx +1 -1
- package/src/index.tsx +1 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/android/gradlew +0 -249
- package/android/gradlew.bat +0 -92
- package/android/local.properties +0 -8
- package/lib/typescript/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
- package/lib/typescript/polyfills/MediaRecorderShim.d.ts +0 -1
|
@@ -8,8 +8,8 @@ var _componentsReact = require("@livekit/components-react");
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _hooks = require("../hooks");
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
13
|
const defaultBarOptions = {
|
|
14
14
|
maxHeight: 1,
|
|
15
15
|
minHeight: 0.2,
|
|
@@ -112,19 +112,19 @@ const BarVisualizer = ({
|
|
|
112
112
|
borderRadius: opts.barBorderRadius,
|
|
113
113
|
width: opts.barWidth
|
|
114
114
|
};
|
|
115
|
-
bars.push(
|
|
116
|
-
key: index,
|
|
115
|
+
bars.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
117
116
|
style: [{
|
|
118
117
|
height: `${coercedPercent}%`
|
|
119
118
|
}, barStyle]
|
|
120
|
-
}));
|
|
119
|
+
}, index));
|
|
121
120
|
});
|
|
122
|
-
return /*#__PURE__*/
|
|
121
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
123
122
|
style: {
|
|
124
123
|
...style,
|
|
125
124
|
...styles.container
|
|
126
|
-
}
|
|
127
|
-
|
|
125
|
+
},
|
|
126
|
+
children: bars
|
|
127
|
+
});
|
|
128
128
|
};
|
|
129
129
|
exports.BarVisualizer = BarVisualizer;
|
|
130
130
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentsReact","require","_reactNative","_hooks","_react","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultBarOptions","maxHeight","minHeight","barColor","barWidth","barBorderRadius","sequencerIntervals","Map","getSequencerInterval","state","barCount","undefined","interval","BarVisualizer","style","trackRef","options","trackReference","useMaybeTrackRefContext","opacityAnimations","useRef","current","magnitudes","useMultibandTrackVolume","bands","opts","highlightedIndices","useBarAnimator","useEffect","animations","Animated","Value","targetOpacity","includes","push","timing","toValue","duration","useNativeDriver","parallel","start","stop","bars","forEach","value","index","coerced","Math","min","max","coercedPercent","opacity","barStyle","backgroundColor","borderRadius","width","createElement","View","key","height","styles","container","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","columns","setIndex","useState","sequence","setSequence","generateListeningSequenceBar","seq","generateConnectingSequenceBar","Array","fill","map","_","idx","animationFrameId","startTime","performance","now","animate","time","timeElapsed","prev","requestAnimationFrame","cancelAnimationFrame","length","center","floor","noIndex","x"],"sources":["BarVisualizer.tsx"],"sourcesContent":["import {\n type AgentState,\n type TrackReferenceOrPlaceholder,\n useMaybeTrackRefContext,\n} from '@livekit/components-react';\nimport {\n Animated,\n StyleSheet,\n View,\n type ColorValue,\n type DimensionValue,\n type ViewStyle,\n} from 'react-native';\nimport { useMultibandTrackVolume } from '../hooks';\nimport React, { useEffect, useRef, useState } from 'react';\nexport type BarVisualizerOptions = {\n /** decimal values from 0 to 1 */\n maxHeight?: number;\n /** decimal values from 0 to 1 */\n minHeight?: number;\n\n barColor?: ColorValue;\n barWidth?: DimensionValue;\n barBorderRadius?: number;\n};\n\nconst defaultBarOptions = {\n maxHeight: 1,\n minHeight: 0.2,\n barColor: '#888888',\n barWidth: 24,\n barBorderRadius: 12,\n} as const satisfies BarVisualizerOptions;\n\nconst sequencerIntervals = new Map<AgentState, number>([\n ['connecting', 2000],\n ['initializing', 2000],\n ['listening', 500],\n ['thinking', 150],\n]);\n\nconst getSequencerInterval = (\n state: AgentState | undefined,\n barCount: number\n): number | undefined => {\n if (state === undefined) {\n return 1000;\n }\n let interval = sequencerIntervals.get(state);\n if (interval) {\n switch (state) {\n case 'connecting':\n // case 'thinking':\n interval /= barCount;\n break;\n\n default:\n break;\n }\n }\n return interval;\n};\n/**\n * @beta\n */\nexport interface BarVisualizerProps {\n /** If set, the visualizer will transition between different voice assistant states */\n state?: AgentState;\n /** Number of bars that show up in the visualizer */\n barCount?: number;\n trackRef?: TrackReferenceOrPlaceholder;\n options?: BarVisualizerOptions;\n /**\n * Custom React Native styles for the container.\n */\n style?: ViewStyle;\n}\n\n/**\n * Visualizes audio signals from a TrackReference as bars.\n * If the `state` prop is set, it automatically transitions between VoiceAssistant states.\n * @beta\n *\n * @remarks For VoiceAssistant state transitions this component requires a voice assistant agent running with livekit-agents \\>= 0.9.0\n *\n * @example\n * ```tsx\n * function SimpleVoiceAssistant() {\n * const { state, audioTrack } = useVoiceAssistant();\n * return (\n * <BarVisualizer\n * state={state}\n * trackRef={audioTrack}\n * />\n * );\n * }\n * ```\n */\nexport const BarVisualizer = ({\n style = {},\n state,\n barCount = 5,\n trackRef,\n options,\n}: BarVisualizerProps) => {\n let trackReference = useMaybeTrackRefContext();\n\n if (trackRef) {\n trackReference = trackRef;\n }\n\n const opacityAnimations = useRef<Animated.Value[]>([]).current;\n let magnitudes = useMultibandTrackVolume(trackReference, { bands: barCount });\n\n let opts = { ...defaultBarOptions, ...options };\n\n const highlightedIndices = useBarAnimator(\n state,\n barCount,\n getSequencerInterval(state, barCount) ?? 100\n );\n\n useEffect(() => {\n let animations = [];\n for (let i = 0; i < barCount; i++) {\n if (!opacityAnimations[i]) {\n opacityAnimations[i] = new Animated.Value(0.3);\n }\n let targetOpacity = 0.3;\n if (highlightedIndices.includes(i)) {\n targetOpacity = 1;\n }\n animations.push(\n Animated.timing(opacityAnimations[i], {\n toValue: targetOpacity,\n duration: 250,\n useNativeDriver: true,\n })\n );\n }\n\n let parallel = Animated.parallel(animations);\n parallel.start();\n return () => {\n parallel.stop();\n };\n }, [highlightedIndices, barCount, opacityAnimations]);\n\n let bars: React.ReactNode[] = [];\n magnitudes.forEach((value, index) => {\n let coerced = Math.min(opts.maxHeight, Math.max(opts.minHeight, value));\n let coercedPercent = Math.min(100, Math.max(0, coerced * 100));\n let opacity = opacityAnimations[index] ?? new Animated.Value(0.3);\n let barStyle = {\n opacity: opacity,\n backgroundColor: opts.barColor,\n borderRadius: opts.barBorderRadius,\n width: opts.barWidth,\n };\n bars.push(\n <Animated.View\n key={index}\n style={[{ height: `${coercedPercent}%` }, barStyle]}\n />\n );\n });\n\n return <View style={{ ...style, ...styles.container }}>{bars}</View>;\n};\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-evenly',\n },\n});\n\nexport const useBarAnimator = (\n state: AgentState | undefined,\n columns: number,\n interval: number\n): number[] => {\n const [index, setIndex] = useState(0);\n const [sequence, setSequence] = useState<number[][]>([[]]);\n\n useEffect(() => {\n if (state === 'thinking') {\n setSequence(generateListeningSequenceBar(columns));\n } else if (state === 'connecting' || state === 'initializing') {\n const seq = [...generateConnectingSequenceBar(columns)];\n setSequence(seq);\n } else if (state === 'listening') {\n setSequence(generateListeningSequenceBar(columns));\n } else if (state === undefined) {\n // highlight everything\n setSequence([new Array(columns).fill(0).map((_, idx) => idx)]);\n } else {\n setSequence([[]]);\n }\n setIndex(0);\n }, [state, columns]);\n\n const animationFrameId = useRef<number | null>(null);\n useEffect(() => {\n let startTime = performance.now();\n\n const animate = (time: number) => {\n const timeElapsed = time - startTime;\n\n if (timeElapsed >= interval) {\n setIndex((prev) => prev + 1);\n startTime = time;\n }\n\n animationFrameId.current = requestAnimationFrame(animate);\n };\n\n animationFrameId.current = requestAnimationFrame(animate);\n\n return () => {\n if (animationFrameId.current !== null) {\n cancelAnimationFrame(animationFrameId.current);\n }\n };\n }, [interval, columns, state, sequence.length]);\n\n return sequence[index % sequence.length];\n};\n\nconst generateListeningSequenceBar = (columns: number): number[][] => {\n const center = Math.floor(columns / 2);\n const noIndex = -1;\n\n return [[center], [noIndex]];\n};\n\nconst generateConnectingSequenceBar = (columns: number): number[][] => {\n const seq: number[][] = [[]];\n\n for (let x = 0; x < columns; x++) {\n seq.push([x, columns - 1 - x]);\n }\n\n return seq;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_componentsReact","require","_reactNative","_hooks","_react","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","defaultBarOptions","maxHeight","minHeight","barColor","barWidth","barBorderRadius","sequencerIntervals","Map","getSequencerInterval","state","barCount","undefined","interval","BarVisualizer","style","trackRef","options","trackReference","useMaybeTrackRefContext","opacityAnimations","useRef","current","magnitudes","useMultibandTrackVolume","bands","opts","highlightedIndices","useBarAnimator","useEffect","animations","Animated","Value","targetOpacity","includes","push","timing","toValue","duration","useNativeDriver","parallel","start","stop","bars","forEach","value","index","coerced","Math","min","max","coercedPercent","opacity","barStyle","backgroundColor","borderRadius","width","jsx","View","height","styles","container","children","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","columns","setIndex","useState","sequence","setSequence","generateListeningSequenceBar","seq","generateConnectingSequenceBar","Array","fill","map","_","idx","animationFrameId","startTime","performance","now","animate","time","timeElapsed","prev","requestAnimationFrame","cancelAnimationFrame","length","center","floor","noIndex","x"],"sourceRoot":"../../../src","sources":["components/BarVisualizer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.LiveKitRoom = LiveKitRoom;
|
|
7
7
|
var _componentsReact = require("@livekit/components-react");
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
11
|
/** @public */
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -31,10 +31,14 @@ function LiveKitRoom(props) {
|
|
|
31
31
|
const {
|
|
32
32
|
room
|
|
33
33
|
} = (0, _componentsReact.useLiveKitRoom)(props);
|
|
34
|
-
return /*#__PURE__*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
35
|
+
children: room && /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsReact.RoomContext.Provider, {
|
|
36
|
+
value: room,
|
|
37
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsReact.LKFeatureContext.Provider, {
|
|
38
|
+
value: props.featureFlags,
|
|
39
|
+
children: props.children
|
|
40
|
+
})
|
|
41
|
+
})
|
|
42
|
+
});
|
|
39
43
|
}
|
|
40
44
|
//# sourceMappingURL=LiveKitRoom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentsReact","require","React","_interopRequireWildcard","
|
|
1
|
+
{"version":3,"names":["_componentsReact","require","React","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LiveKitRoom","props","room","useLiveKitRoom","jsx","Fragment","children","RoomContext","Provider","value","LKFeatureContext","featureFlags"],"sourceRoot":"../../../src","sources":["components/LiveKitRoom.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAcA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE/B;;AAuEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkB,WAAWA,CAACC,KAAgD,EAAE;EAC5E,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,+BAAc,EAACF,KAAK,CAAC;EACtC,oBACE,IAAArB,WAAA,CAAAwB,GAAA,EAAAxB,WAAA,CAAAyB,QAAA;IAAAC,QAAA,EACGJ,IAAI,iBACH,IAAAtB,WAAA,CAAAwB,GAAA,EAAC5B,gBAAA,CAAA+B,WAAW,CAACC,QAAQ;MAACC,KAAK,EAAEP,IAAK;MAAAI,QAAA,eAChC,IAAA1B,WAAA,CAAAwB,GAAA,EAAC5B,gBAAA,CAAAkC,gBAAgB,CAACF,QAAQ;QAACC,KAAK,EAAER,KAAK,CAACU,YAAa;QAAAL,QAAA,EAClDL,KAAK,CAACK;MAAQ,CACU;IAAC,CACR;EACvB,CACD,CAAC;AAEP","ignoreList":[]}
|
|
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VideoTrack = void 0;
|
|
7
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var React = _react;
|
|
9
7
|
var _reactNative = require("react-native");
|
|
10
8
|
var _livekitClient = require("livekit-client");
|
|
11
9
|
var _reactNativeWebrtc = require("@livekit/react-native-webrtc");
|
|
10
|
+
var _react = require("react");
|
|
12
11
|
var _ViewPortDetector = _interopRequireDefault(require("./ViewPortDetector"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
14
|
/**
|
|
20
15
|
* Props for the VideoTrack component.
|
|
21
16
|
* @public
|
|
@@ -38,24 +33,23 @@ const VideoTrack = exports.VideoTrack = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
38
33
|
iosPIP
|
|
39
34
|
}, ref) => {
|
|
40
35
|
const [elementInfo] = (0, _react.useState)(() => {
|
|
41
|
-
var _trackRef$publication;
|
|
42
36
|
let info = new VideoTrackElementInfo();
|
|
43
|
-
info.id = trackRef
|
|
37
|
+
info.id = trackRef?.publication?.trackSid;
|
|
44
38
|
return info;
|
|
45
39
|
});
|
|
46
40
|
const layoutOnChange = (0, _react.useCallback)(event => elementInfo.onLayout(event), [elementInfo]);
|
|
47
|
-
const iosPIPEnabled =
|
|
41
|
+
const iosPIPEnabled = iosPIP?.enabled ?? false;
|
|
48
42
|
const visibilityOnChange = (0, _react.useCallback)(isVisible => elementInfo.onVisibility(isVisible || iosPIPEnabled), [elementInfo, iosPIPEnabled]);
|
|
49
|
-
const videoTrack = trackRef
|
|
43
|
+
const videoTrack = trackRef?.publication.track;
|
|
50
44
|
const shouldObserveVisibility = (0, _react.useMemo)(() => {
|
|
51
45
|
return videoTrack instanceof _livekitClient.RemoteVideoTrack && videoTrack.isAdaptiveStream;
|
|
52
46
|
}, [videoTrack]);
|
|
53
|
-
const [mediaStream, setMediaStream] = (0, _react.useState)(videoTrack
|
|
47
|
+
const [mediaStream, setMediaStream] = (0, _react.useState)(videoTrack?.mediaStream);
|
|
54
48
|
(0, _react.useEffect)(() => {
|
|
55
|
-
setMediaStream(videoTrack
|
|
49
|
+
setMediaStream(videoTrack?.mediaStream);
|
|
56
50
|
if (videoTrack instanceof _livekitClient.LocalVideoTrack) {
|
|
57
51
|
const onRestarted = track => {
|
|
58
|
-
setMediaStream(track
|
|
52
|
+
setMediaStream(track?.mediaStream);
|
|
59
53
|
};
|
|
60
54
|
videoTrack.on(_livekitClient.TrackEvent.Restarted, onRestarted);
|
|
61
55
|
return () => {
|
|
@@ -67,9 +61,9 @@ const VideoTrack = exports.VideoTrack = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
67
61
|
}, [videoTrack]);
|
|
68
62
|
(0, _react.useEffect)(() => {
|
|
69
63
|
if (videoTrack instanceof _livekitClient.RemoteVideoTrack && videoTrack.isAdaptiveStream) {
|
|
70
|
-
videoTrack
|
|
64
|
+
videoTrack?.observeElementInfo(elementInfo);
|
|
71
65
|
return () => {
|
|
72
|
-
videoTrack
|
|
66
|
+
videoTrack?.stopObservingElementInfo(elementInfo);
|
|
73
67
|
};
|
|
74
68
|
} else {
|
|
75
69
|
return () => {};
|
|
@@ -77,11 +71,11 @@ const VideoTrack = exports.VideoTrack = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
77
71
|
}, [videoTrack, elementInfo]);
|
|
78
72
|
let videoView;
|
|
79
73
|
if (!iosPIP || _reactNative.Platform.OS !== 'ios') {
|
|
80
|
-
videoView = /*#__PURE__*/
|
|
74
|
+
videoView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebrtc.RTCView, {
|
|
81
75
|
style: styles.videoTrack
|
|
82
76
|
// @ts-expect-error
|
|
83
77
|
,
|
|
84
|
-
streamURL:
|
|
78
|
+
streamURL: mediaStream?.toURL() ?? '',
|
|
85
79
|
objectFit: objectFit,
|
|
86
80
|
zOrder: zOrder,
|
|
87
81
|
mirror: mirror
|
|
@@ -90,11 +84,11 @@ const VideoTrack = exports.VideoTrack = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
90
84
|
ref: ref
|
|
91
85
|
});
|
|
92
86
|
} else {
|
|
93
|
-
videoView = /*#__PURE__*/
|
|
87
|
+
videoView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebrtc.RTCPIPView, {
|
|
94
88
|
style: styles.videoTrack
|
|
95
89
|
// @ts-expect-error
|
|
96
90
|
,
|
|
97
|
-
streamURL:
|
|
91
|
+
streamURL: mediaStream?.toURL() ?? '',
|
|
98
92
|
objectFit: objectFit,
|
|
99
93
|
zOrder: zOrder,
|
|
100
94
|
mirror: mirror
|
|
@@ -105,18 +99,20 @@ const VideoTrack = exports.VideoTrack = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
105
99
|
ref: ref
|
|
106
100
|
});
|
|
107
101
|
}
|
|
108
|
-
return /*#__PURE__*/
|
|
102
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
109
103
|
style: {
|
|
110
104
|
...style,
|
|
111
105
|
...styles.container
|
|
112
106
|
},
|
|
113
|
-
onLayout: layoutOnChange
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
107
|
+
onLayout: layoutOnChange,
|
|
108
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ViewPortDetector.default, {
|
|
109
|
+
onChange: visibilityOnChange,
|
|
110
|
+
style: styles.videoTrack,
|
|
111
|
+
disabled: !shouldObserveVisibility,
|
|
112
|
+
propKey: videoTrack,
|
|
113
|
+
children: videoView
|
|
114
|
+
})
|
|
115
|
+
});
|
|
120
116
|
});
|
|
121
117
|
const styles = _reactNative.StyleSheet.create({
|
|
122
118
|
container: {},
|
|
@@ -126,21 +122,14 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
126
122
|
}
|
|
127
123
|
});
|
|
128
124
|
class VideoTrackElementInfo {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
_defineProperty(this, "visibilityChangedAt", void 0);
|
|
138
|
-
_defineProperty(this, "pictureInPicture", false);
|
|
139
|
-
_defineProperty(this, "handleResize", void 0);
|
|
140
|
-
_defineProperty(this, "handleVisibilityChanged", void 0);
|
|
141
|
-
_defineProperty(this, "width", () => this._width);
|
|
142
|
-
_defineProperty(this, "height", () => this._height);
|
|
143
|
-
}
|
|
125
|
+
element = {};
|
|
126
|
+
_width = 0;
|
|
127
|
+
_height = 0;
|
|
128
|
+
_observing = false;
|
|
129
|
+
visible = true;
|
|
130
|
+
pictureInPicture = false;
|
|
131
|
+
width = () => this._width;
|
|
132
|
+
height = () => this._height;
|
|
144
133
|
observe() {
|
|
145
134
|
this._observing = true;
|
|
146
135
|
}
|
|
@@ -155,8 +144,7 @@ class VideoTrackElementInfo {
|
|
|
155
144
|
this._width = width;
|
|
156
145
|
this._height = height;
|
|
157
146
|
if (this._observing) {
|
|
158
|
-
|
|
159
|
-
(_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 || _this$handleResize.call(this);
|
|
147
|
+
this.handleResize?.();
|
|
160
148
|
}
|
|
161
149
|
}
|
|
162
150
|
onVisibility(isVisible) {
|
|
@@ -164,8 +152,7 @@ class VideoTrackElementInfo {
|
|
|
164
152
|
this.visible = isVisible;
|
|
165
153
|
this.visibilityChangedAt = Date.now();
|
|
166
154
|
if (this._observing) {
|
|
167
|
-
|
|
168
|
-
(_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 || _this$handleVisibilit.call(this);
|
|
155
|
+
this.handleVisibilityChanged?.();
|
|
169
156
|
}
|
|
170
157
|
}
|
|
171
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_livekitClient","_reactNativeWebrtc","_ViewPortDetector","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","VideoTrack","exports","forwardRef","style","trackRef","objectFit","zOrder","mirror","iosPIP","ref","elementInfo","useState","_trackRef$publication","info","VideoTrackElementInfo","id","publication","trackSid","layoutOnChange","useCallback","event","onLayout","iosPIPEnabled","enabled","visibilityOnChange","isVisible","onVisibility","videoTrack","track","shouldObserveVisibility","useMemo","RemoteVideoTrack","isAdaptiveStream","mediaStream","setMediaStream","useEffect","LocalVideoTrack","onRestarted","on","TrackEvent","Restarted","off","observeElementInfo","stopObservingElementInfo","videoView","Platform","OS","createElement","RTCView","styles","streamURL","toURL","RTCPIPView","View","container","onChange","disabled","propKey","StyleSheet","create","flex","width","constructor","_width","_height","observe","_observing","stopObserving","height","nativeEvent","layout","_this$handleResize","handleResize","visible","visibilityChangedAt","Date","now","_this$handleVisibilit","handleVisibilityChanged"],"sources":["VideoTrack.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n type ViewStyle,\n} from 'react-native';\nimport {\n type ElementInfo,\n LocalVideoTrack,\n Track,\n TrackEvent,\n} from 'livekit-client';\nimport {\n RTCView,\n RTCPIPView,\n type RTCIOSPIPOptions,\n} from '@livekit/react-native-webrtc';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { RemoteVideoTrack } from 'livekit-client';\nimport ViewPortDetector from './ViewPortDetector';\nimport type { TrackReference } from '@livekit/components-react';\n\n/**\n * Props for the VideoTrack component.\n * @public\n */\nexport type VideoTrackProps = {\n /**\n * The track reference to display. This should be a TrackReference object\n * or undefined if no track is available.\n */\n trackRef: TrackReference | undefined;\n /**\n * Custom React Native styles for the video container.\n */\n style?: ViewStyle;\n /**\n * Specifies how the video content should be resized to fit its container.\n * 'cover' (default): The video will fill the entire container, potentially cropping the video.\n * 'contain': The entire video will be visible within the container, potentially leaving empty space.\n */\n objectFit?: 'cover' | 'contain' | undefined;\n /**\n * Indicates whether the video should be mirrored during rendering.\n * This is commonly used for front-facing cameras.\n */\n mirror?: boolean;\n /**\n * Specifies the depth-stacking order of this video view in the stacking space of all video views.\n * A larger zOrder value generally causes the view to cover those with lower values.\n *\n * The support for zOrder is platform-dependent and/or\n * implementation-specific. Thus, specifying a value for zOrder is to be\n * thought of as giving a hint rather than as imposing a requirement. For\n * example, video renderers such as RTCView are commonly implemented using\n * OpenGL and OpenGL views may have different numbers of layers in their\n * stacking space. Android has three: a layer bellow the window (aka\n * default), a layer bellow the window again but above the previous layer\n * (aka media overlay), and above the window. Consequently, it is advisable\n * to limit the number of utilized layers in the stacking space to the\n * minimum sufficient for the desired display. For example, a video call\n * application usually needs a maximum of two zOrder values: 0 for the\n * remote video(s) which appear in the background, and 1 for the local\n * video(s) which appear above the remote video(s).\n */\n zOrder?: number;\n\n /**\n * Picture in picture options for this view. Disabled if not supplied.\n *\n * iOS only. Requires iOS 15.0 or above, and the PIP background mode capability.\n *\n * If `iosPIP.enabled` is true, the methods `startIOSPIP` and `stopIOSPIP`\n * can be used to manually trigger the PIP mode.\n *\n * `iosPIP.startAutomatically` can be used to automatically\n * enter PIP when backgrounding the app.\n *\n * `iosPIP.preferredSize` is used to provide a suggested aspect ratio.\n *\n * @example\n * ```tsx\n * import { startIOSPIP, stopIOSPIP } from '@livekit/react-native-webrtc';\n *\n * // Obtain a ref to the view\n * const videoRef = useRef<Component>(null);\n * const videoView = (\n * <VideoTrack\n * ref={videoRef}\n * iosPIP={{\n * enabled: true,\n * startAutomatically: true,\n * preferredSize: {\n * width: 9,\n * height: 16,\n * },\n * }}\n * ...\n * />\n * );\n *\n * // Start/stop manually\n * startIOSPIP(videoRef);\n * stopIOSPIP(videoRef);\n * ```\n *\n */\n iosPIP?: RTCIOSPIPOptions & {\n preferredSize: {\n width: number;\n height: number;\n };\n fallbackView?: ReactNode;\n };\n};\n\ntype RTCViewInstance = InstanceType<typeof RTCView>;\n\n/**\n * VideoTrack component for displaying video tracks in a React Native application.\n * It supports both local and remote video tracks from LiveKit, and handles adaptive streaming for remote tracks.\n *\n * @param props - See VideoTrackProps for details.\n * @returns A React component that renders the given video track.\n * @public\n */\nexport const VideoTrack = forwardRef<RTCViewInstance, VideoTrackProps>(\n (\n {\n style = {},\n trackRef,\n objectFit = 'cover',\n zOrder,\n mirror,\n iosPIP,\n }: VideoTrackProps,\n ref\n ) => {\n const [elementInfo] = useState(() => {\n let info = new VideoTrackElementInfo();\n info.id = trackRef?.publication?.trackSid;\n return info;\n });\n\n const layoutOnChange = useCallback(\n (event: LayoutChangeEvent) => elementInfo.onLayout(event),\n [elementInfo]\n );\n\n const iosPIPEnabled = iosPIP?.enabled ?? false;\n const visibilityOnChange = useCallback(\n (isVisible: boolean) =>\n elementInfo.onVisibility(isVisible || iosPIPEnabled),\n [elementInfo, iosPIPEnabled]\n );\n\n const videoTrack = trackRef?.publication.track;\n\n const shouldObserveVisibility = useMemo(() => {\n return (\n videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream\n );\n }, [videoTrack]);\n\n const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);\n useEffect(() => {\n setMediaStream(videoTrack?.mediaStream);\n if (videoTrack instanceof LocalVideoTrack) {\n const onRestarted = (track: Track | null) => {\n setMediaStream(track?.mediaStream);\n };\n videoTrack.on(TrackEvent.Restarted, onRestarted);\n\n return () => {\n videoTrack.off(TrackEvent.Restarted, onRestarted);\n };\n } else {\n return () => {};\n }\n }, [videoTrack]);\n\n useEffect(() => {\n if (\n videoTrack instanceof RemoteVideoTrack &&\n videoTrack.isAdaptiveStream\n ) {\n videoTrack?.observeElementInfo(elementInfo);\n return () => {\n videoTrack?.stopObservingElementInfo(elementInfo);\n };\n } else {\n return () => {};\n }\n }, [videoTrack, elementInfo]);\n\n let videoView;\n if (!iosPIP || Platform.OS !== 'ios') {\n videoView = (\n <RTCView\n style={styles.videoTrack}\n // @ts-expect-error\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n // @ts-ignore\n ref={ref}\n />\n );\n } else {\n videoView = (\n <RTCPIPView\n style={styles.videoTrack}\n // @ts-expect-error\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n // TODO: fix this up in react-native-webrtc side.\n // @ts-expect-error\n iosPIP={iosPIP}\n ref={ref}\n />\n );\n }\n return (\n <View style={{ ...style, ...styles.container }} onLayout={layoutOnChange}>\n <ViewPortDetector\n onChange={visibilityOnChange}\n style={styles.videoTrack}\n disabled={!shouldObserveVisibility}\n propKey={videoTrack}\n >\n {videoView}\n </ViewPortDetector>\n </View>\n );\n }\n);\n\nconst styles = StyleSheet.create({\n container: {},\n videoTrack: {\n flex: 1,\n width: '100%',\n },\n});\n\nclass VideoTrackElementInfo implements ElementInfo {\n element: object = {};\n something?: any;\n id?: string;\n _width = 0;\n _height = 0;\n _observing = false;\n visible: boolean = true;\n visibilityChangedAt: number | undefined;\n pictureInPicture = false;\n handleResize?: (() => void) | undefined;\n handleVisibilityChanged?: (() => void) | undefined;\n width = () => this._width;\n height = () => this._height;\n\n observe(): void {\n this._observing = true;\n }\n\n stopObserving(): void {\n this._observing = false;\n }\n\n onLayout(event: LayoutChangeEvent) {\n let { width, height } = event.nativeEvent.layout;\n this._width = width;\n this._height = height;\n\n if (this._observing) {\n this.handleResize?.();\n }\n }\n\n onVisibility(isVisible: boolean) {\n if (this.visible !== isVisible) {\n this.visible = isVisible;\n this.visibilityChangedAt = Date.now();\n if (this._observing) {\n this.handleVisibilityChanged?.();\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_livekitClient","_reactNativeWebrtc","_react","_ViewPortDetector","_interopRequireDefault","_jsxRuntime","e","__esModule","default","VideoTrack","exports","forwardRef","style","trackRef","objectFit","zOrder","mirror","iosPIP","ref","elementInfo","useState","info","VideoTrackElementInfo","id","publication","trackSid","layoutOnChange","useCallback","event","onLayout","iosPIPEnabled","enabled","visibilityOnChange","isVisible","onVisibility","videoTrack","track","shouldObserveVisibility","useMemo","RemoteVideoTrack","isAdaptiveStream","mediaStream","setMediaStream","useEffect","LocalVideoTrack","onRestarted","on","TrackEvent","Restarted","off","observeElementInfo","stopObservingElementInfo","videoView","Platform","OS","jsx","RTCView","styles","streamURL","toURL","RTCPIPView","View","container","children","onChange","disabled","propKey","StyleSheet","create","flex","width","element","_width","_height","_observing","visible","pictureInPicture","height","observe","stopObserving","nativeEvent","layout","handleResize","visibilityChangedAt","Date","now","handleVisibilityChanged"],"sourceRoot":"../../../src","sources":["components/VideoTrack.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VideoView = void 0;
|
|
7
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var React = _react;
|
|
9
7
|
var _reactNative = require("react-native");
|
|
10
8
|
var _livekitClient = require("livekit-client");
|
|
11
9
|
var _reactNativeWebrtc = require("@livekit/react-native-webrtc");
|
|
10
|
+
var _react = require("react");
|
|
12
11
|
var _ViewPortDetector = _interopRequireDefault(require("./ViewPortDetector"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
14
|
/**
|
|
20
15
|
* @deprecated use `VideoTrack` and `VideoTrackProps` instead.
|
|
21
16
|
*/
|
|
@@ -32,7 +27,7 @@ const VideoView = ({
|
|
|
32
27
|
}) => {
|
|
33
28
|
const [elementInfo] = (0, _react.useState)(() => {
|
|
34
29
|
let info = new VideoViewElementInfo();
|
|
35
|
-
info.id = videoTrack
|
|
30
|
+
info.id = videoTrack?.sid;
|
|
36
31
|
info.something = videoTrack;
|
|
37
32
|
return info;
|
|
38
33
|
});
|
|
@@ -41,12 +36,12 @@ const VideoView = ({
|
|
|
41
36
|
const shouldObserveVisibility = (0, _react.useMemo)(() => {
|
|
42
37
|
return videoTrack instanceof _livekitClient.RemoteVideoTrack && videoTrack.isAdaptiveStream;
|
|
43
38
|
}, [videoTrack]);
|
|
44
|
-
const [mediaStream, setMediaStream] = (0, _react.useState)(videoTrack
|
|
39
|
+
const [mediaStream, setMediaStream] = (0, _react.useState)(videoTrack?.mediaStream);
|
|
45
40
|
(0, _react.useEffect)(() => {
|
|
46
|
-
setMediaStream(videoTrack
|
|
41
|
+
setMediaStream(videoTrack?.mediaStream);
|
|
47
42
|
if (videoTrack instanceof _livekitClient.LocalVideoTrack) {
|
|
48
43
|
const onRestarted = track => {
|
|
49
|
-
setMediaStream(track
|
|
44
|
+
setMediaStream(track?.mediaStream);
|
|
50
45
|
};
|
|
51
46
|
videoTrack.on(_livekitClient.TrackEvent.Restarted, onRestarted);
|
|
52
47
|
return () => {
|
|
@@ -58,34 +53,36 @@ const VideoView = ({
|
|
|
58
53
|
}, [videoTrack]);
|
|
59
54
|
(0, _react.useEffect)(() => {
|
|
60
55
|
if (videoTrack instanceof _livekitClient.RemoteVideoTrack && videoTrack.isAdaptiveStream) {
|
|
61
|
-
videoTrack
|
|
56
|
+
videoTrack?.observeElementInfo(elementInfo);
|
|
62
57
|
return () => {
|
|
63
|
-
videoTrack
|
|
58
|
+
videoTrack?.stopObservingElementInfo(elementInfo);
|
|
64
59
|
};
|
|
65
60
|
} else {
|
|
66
61
|
return () => {};
|
|
67
62
|
}
|
|
68
63
|
}, [videoTrack, elementInfo]);
|
|
69
|
-
return /*#__PURE__*/
|
|
64
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
70
65
|
style: {
|
|
71
66
|
...style,
|
|
72
67
|
...styles.container
|
|
73
68
|
},
|
|
74
|
-
onLayout: layoutOnChange
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
69
|
+
onLayout: layoutOnChange,
|
|
70
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ViewPortDetector.default, {
|
|
71
|
+
onChange: visibilityOnChange,
|
|
72
|
+
style: styles.videoView,
|
|
73
|
+
disabled: !shouldObserveVisibility,
|
|
74
|
+
propKey: videoTrack,
|
|
75
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebrtc.RTCView, {
|
|
76
|
+
style: styles.videoView
|
|
77
|
+
// @ts-expect-error
|
|
78
|
+
,
|
|
79
|
+
streamURL: mediaStream?.toURL() ?? '',
|
|
80
|
+
objectFit: objectFit,
|
|
81
|
+
zOrder: zOrder,
|
|
82
|
+
mirror: mirror
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
});
|
|
89
86
|
};
|
|
90
87
|
exports.VideoView = VideoView;
|
|
91
88
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -96,21 +93,14 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
96
93
|
}
|
|
97
94
|
});
|
|
98
95
|
class VideoViewElementInfo {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
_defineProperty(this, "visibilityChangedAt", void 0);
|
|
108
|
-
_defineProperty(this, "pictureInPicture", false);
|
|
109
|
-
_defineProperty(this, "handleResize", void 0);
|
|
110
|
-
_defineProperty(this, "handleVisibilityChanged", void 0);
|
|
111
|
-
_defineProperty(this, "width", () => this._width);
|
|
112
|
-
_defineProperty(this, "height", () => this._height);
|
|
113
|
-
}
|
|
96
|
+
element = {};
|
|
97
|
+
_width = 0;
|
|
98
|
+
_height = 0;
|
|
99
|
+
_observing = false;
|
|
100
|
+
visible = true;
|
|
101
|
+
pictureInPicture = false;
|
|
102
|
+
width = () => this._width;
|
|
103
|
+
height = () => this._height;
|
|
114
104
|
observe() {
|
|
115
105
|
this._observing = true;
|
|
116
106
|
}
|
|
@@ -125,8 +115,7 @@ class VideoViewElementInfo {
|
|
|
125
115
|
this._width = width;
|
|
126
116
|
this._height = height;
|
|
127
117
|
if (this._observing) {
|
|
128
|
-
|
|
129
|
-
(_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 || _this$handleResize.call(this);
|
|
118
|
+
this.handleResize?.();
|
|
130
119
|
}
|
|
131
120
|
}
|
|
132
121
|
onVisibility(isVisible) {
|
|
@@ -134,8 +123,7 @@ class VideoViewElementInfo {
|
|
|
134
123
|
this.visible = isVisible;
|
|
135
124
|
this.visibilityChangedAt = Date.now();
|
|
136
125
|
if (this._observing) {
|
|
137
|
-
|
|
138
|
-
(_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 || _this$handleVisibilit.call(this);
|
|
126
|
+
this.handleVisibilityChanged?.();
|
|
139
127
|
}
|
|
140
128
|
}
|
|
141
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_livekitClient","_reactNativeWebrtc","_ViewPortDetector","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","VideoView","style","videoTrack","objectFit","zOrder","mirror","elementInfo","useState","info","VideoViewElementInfo","id","sid","something","layoutOnChange","useCallback","event","onLayout","visibilityOnChange","isVisible","onVisibility","shouldObserveVisibility","useMemo","RemoteVideoTrack","isAdaptiveStream","mediaStream","setMediaStream","useEffect","LocalVideoTrack","onRestarted","track","on","TrackEvent","Restarted","off","observeElementInfo","stopObservingElementInfo","createElement","View","styles","container","onChange","videoView","disabled","propKey","RTCView","streamURL","toURL","exports","StyleSheet","create","flex","width","constructor","_width","_height","observe","_observing","stopObserving","height","nativeEvent","layout","_this$handleResize","handleResize","visible","visibilityChangedAt","Date","now","_this$handleVisibilit","handleVisibilityChanged"],"sources":["VideoView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type LayoutChangeEvent,\n StyleSheet,\n View,\n type ViewStyle,\n} from 'react-native';\nimport {\n type ElementInfo,\n LocalVideoTrack,\n Track,\n TrackEvent,\n type VideoTrack,\n} from 'livekit-client';\nimport { RTCView } from '@livekit/react-native-webrtc';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { RemoteVideoTrack } from 'livekit-client';\nimport ViewPortDetector from './ViewPortDetector';\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport type Props = {\n videoTrack?: VideoTrack | undefined;\n style?: ViewStyle;\n objectFit?: 'cover' | 'contain' | undefined;\n mirror?: boolean;\n zOrder?: number;\n};\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport const VideoView = ({\n style = {},\n videoTrack,\n objectFit = 'cover',\n zOrder,\n mirror,\n}: Props) => {\n const [elementInfo] = useState(() => {\n let info = new VideoViewElementInfo();\n info.id = videoTrack?.sid;\n info.something = videoTrack;\n return info;\n });\n\n const layoutOnChange = useCallback(\n (event: LayoutChangeEvent) => elementInfo.onLayout(event),\n [elementInfo]\n );\n const visibilityOnChange = useCallback(\n (isVisible: boolean) => elementInfo.onVisibility(isVisible),\n [elementInfo]\n );\n const shouldObserveVisibility = useMemo(() => {\n return (\n videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream\n );\n }, [videoTrack]);\n\n const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);\n useEffect(() => {\n setMediaStream(videoTrack?.mediaStream);\n if (videoTrack instanceof LocalVideoTrack) {\n const onRestarted = (track: Track | null) => {\n setMediaStream(track?.mediaStream);\n };\n videoTrack.on(TrackEvent.Restarted, onRestarted);\n\n return () => {\n videoTrack.off(TrackEvent.Restarted, onRestarted);\n };\n } else {\n return () => {};\n }\n }, [videoTrack]);\n\n useEffect(() => {\n if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {\n videoTrack?.observeElementInfo(elementInfo);\n return () => {\n videoTrack?.stopObservingElementInfo(elementInfo);\n };\n } else {\n return () => {};\n }\n }, [videoTrack, elementInfo]);\n\n return (\n <View style={{ ...style, ...styles.container }} onLayout={layoutOnChange}>\n <ViewPortDetector\n onChange={visibilityOnChange}\n style={styles.videoView}\n disabled={!shouldObserveVisibility}\n propKey={videoTrack}\n >\n <RTCView\n style={styles.videoView}\n // @ts-expect-error\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n />\n </ViewPortDetector>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {},\n videoView: {\n flex: 1,\n width: '100%',\n },\n});\n\nclass VideoViewElementInfo implements ElementInfo {\n element: object = {};\n something?: any;\n id?: string;\n _width = 0;\n _height = 0;\n _observing = false;\n visible: boolean = true;\n visibilityChangedAt: number | undefined;\n pictureInPicture = false;\n handleResize?: (() => void) | undefined;\n handleVisibilityChanged?: (() => void) | undefined;\n width = () => this._width;\n height = () => this._height;\n\n observe(): void {\n this._observing = true;\n }\n stopObserving(): void {\n this._observing = false;\n }\n\n onLayout(event: LayoutChangeEvent) {\n let { width, height } = event.nativeEvent.layout;\n this._width = width;\n this._height = height;\n\n if (this._observing) {\n this.handleResize?.();\n }\n }\n onVisibility(isVisible: boolean) {\n if (this.visible !== isVisible) {\n this.visible = isVisible;\n this.visibilityChangedAt = Date.now();\n if (this._observing) {\n this.handleVisibilityChanged?.();\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_livekitClient","_reactNativeWebrtc","_react","_ViewPortDetector","_interopRequireDefault","_jsxRuntime","e","__esModule","default","VideoView","style","videoTrack","objectFit","zOrder","mirror","elementInfo","useState","info","VideoViewElementInfo","id","sid","something","layoutOnChange","useCallback","event","onLayout","visibilityOnChange","isVisible","onVisibility","shouldObserveVisibility","useMemo","RemoteVideoTrack","isAdaptiveStream","mediaStream","setMediaStream","useEffect","LocalVideoTrack","onRestarted","track","on","TrackEvent","Restarted","off","observeElementInfo","stopObservingElementInfo","jsx","View","styles","container","children","onChange","videoView","disabled","propKey","RTCView","streamURL","toURL","exports","StyleSheet","create","flex","width","element","_width","_height","_observing","visible","pictureInPicture","height","observe","stopObserving","nativeEvent","layout","handleResize","visibilityChangedAt","Date","now","handleVisibilityChanged"],"sourceRoot":"../../../src","sources":["components/VideoView.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAMA,IAAAC,cAAA,GAAAD,OAAA;AAOA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,iBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAAkD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAK,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElD;AACA;AACA;;AASA;AACA;AACA;AACO,MAAMG,SAAS,GAAGA,CAAC;EACxBC,KAAK,GAAG,CAAC,CAAC;EACVC,UAAU;EACVC,SAAS,GAAG,OAAO;EACnBC,MAAM;EACNC;AACK,CAAC,KAAK;EACX,MAAM,CAACC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM;IACnC,IAAIC,IAAI,GAAG,IAAIC,oBAAoB,CAAC,CAAC;IACrCD,IAAI,CAACE,EAAE,GAAGR,UAAU,EAAES,GAAG;IACzBH,IAAI,CAACI,SAAS,GAAGV,UAAU;IAC3B,OAAOM,IAAI;EACb,CAAC,CAAC;EAEF,MAAMK,cAAc,GAAG,IAAAC,kBAAW,EAC/BC,KAAwB,IAAKT,WAAW,CAACU,QAAQ,CAACD,KAAK,CAAC,EACzD,CAACT,WAAW,CACd,CAAC;EACD,MAAMW,kBAAkB,GAAG,IAAAH,kBAAW,EACnCI,SAAkB,IAAKZ,WAAW,CAACa,YAAY,CAACD,SAAS,CAAC,EAC3D,CAACZ,WAAW,CACd,CAAC;EACD,MAAMc,uBAAuB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC5C,OACEnB,UAAU,YAAYoB,+BAAgB,IAAIpB,UAAU,CAACqB,gBAAgB;EAEzE,CAAC,EAAE,CAACrB,UAAU,CAAC,CAAC;EAEhB,MAAM,CAACsB,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAlB,eAAQ,EAACL,UAAU,EAAEsB,WAAW,CAAC;EACvE,IAAAE,gBAAS,EAAC,MAAM;IACdD,cAAc,CAACvB,UAAU,EAAEsB,WAAW,CAAC;IACvC,IAAItB,UAAU,YAAYyB,8BAAe,EAAE;MACzC,MAAMC,WAAW,GAAIC,KAAmB,IAAK;QAC3CJ,cAAc,CAACI,KAAK,EAAEL,WAAW,CAAC;MACpC,CAAC;MACDtB,UAAU,CAAC4B,EAAE,CAACC,yBAAU,CAACC,SAAS,EAAEJ,WAAW,CAAC;MAEhD,OAAO,MAAM;QACX1B,UAAU,CAAC+B,GAAG,CAACF,yBAAU,CAACC,SAAS,EAAEJ,WAAW,CAAC;MACnD,CAAC;IACH,CAAC,MAAM;MACL,OAAO,MAAM,CAAC,CAAC;IACjB;EACF,CAAC,EAAE,CAAC1B,UAAU,CAAC,CAAC;EAEhB,IAAAwB,gBAAS,EAAC,MAAM;IACd,IAAIxB,UAAU,YAAYoB,+BAAgB,IAAIpB,UAAU,CAACqB,gBAAgB,EAAE;MACzErB,UAAU,EAAEgC,kBAAkB,CAAC5B,WAAW,CAAC;MAC3C,OAAO,MAAM;QACXJ,UAAU,EAAEiC,wBAAwB,CAAC7B,WAAW,CAAC;MACnD,CAAC;IACH,CAAC,MAAM;MACL,OAAO,MAAM,CAAC,CAAC;IACjB;EACF,CAAC,EAAE,CAACJ,UAAU,EAAEI,WAAW,CAAC,CAAC;EAE7B,oBACE,IAAAV,WAAA,CAAAwC,GAAA,EAAC/C,YAAA,CAAAgD,IAAI;IAACpC,KAAK,EAAE;MAAE,GAAGA,KAAK;MAAE,GAAGqC,MAAM,CAACC;IAAU,CAAE;IAACvB,QAAQ,EAAEH,cAAe;IAAA2B,QAAA,eACvE,IAAA5C,WAAA,CAAAwC,GAAA,EAAC1C,iBAAA,CAAAK,OAAgB;MACf0C,QAAQ,EAAExB,kBAAmB;MAC7BhB,KAAK,EAAEqC,MAAM,CAACI,SAAU;MACxBC,QAAQ,EAAE,CAACvB,uBAAwB;MACnCwB,OAAO,EAAE1C,UAAW;MAAAsC,QAAA,eAEpB,IAAA5C,WAAA,CAAAwC,GAAA,EAAC5C,kBAAA,CAAAqD,OAAO;QACN5C,KAAK,EAAEqC,MAAM,CAACI;QACd;QAAA;QACAI,SAAS,EAAEtB,WAAW,EAAEuB,KAAK,CAAC,CAAC,IAAI,EAAG;QACtC5C,SAAS,EAAEA,SAAU;QACrBC,MAAM,EAAEA,MAAO;QACfC,MAAM,EAAEA;MAAO,CAChB;IAAC,CACc;EAAC,CACf,CAAC;AAEX,CAAC;AAAC2C,OAAA,CAAAhD,SAAA,GAAAA,SAAA;AAEF,MAAMsC,MAAM,GAAGW,uBAAU,CAACC,MAAM,CAAC;EAC/BX,SAAS,EAAE,CAAC,CAAC;EACbG,SAAS,EAAE;IACTS,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,MAAM3C,oBAAoB,CAAwB;EAChD4C,OAAO,GAAW,CAAC,CAAC;EAGpBC,MAAM,GAAG,CAAC;EACVC,OAAO,GAAG,CAAC;EACXC,UAAU,GAAG,KAAK;EAClBC,OAAO,GAAY,IAAI;EAEvBC,gBAAgB,GAAG,KAAK;EAGxBN,KAAK,GAAGA,CAAA,KAAM,IAAI,CAACE,MAAM;EACzBK,MAAM,GAAGA,CAAA,KAAM,IAAI,CAACJ,OAAO;EAE3BK,OAAOA,CAAA,EAAS;IACd,IAAI,CAACJ,UAAU,GAAG,IAAI;EACxB;EACAK,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACL,UAAU,GAAG,KAAK;EACzB;EAEAxC,QAAQA,CAACD,KAAwB,EAAE;IACjC,IAAI;MAAEqC,KAAK;MAAEO;IAAO,CAAC,GAAG5C,KAAK,CAAC+C,WAAW,CAACC,MAAM;IAChD,IAAI,CAACT,MAAM,GAAGF,KAAK;IACnB,IAAI,CAACG,OAAO,GAAGI,MAAM;IAErB,IAAI,IAAI,CAACH,UAAU,EAAE;MACnB,IAAI,CAACQ,YAAY,GAAG,CAAC;IACvB;EACF;EACA7C,YAAYA,CAACD,SAAkB,EAAE;IAC/B,IAAI,IAAI,CAACuC,OAAO,KAAKvC,SAAS,EAAE;MAC9B,IAAI,CAACuC,OAAO,GAAGvC,SAAS;MACxB,IAAI,CAAC+C,mBAAmB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrC,IAAI,IAAI,CAACX,UAAU,EAAE;QACnB,IAAI,CAACY,uBAAuB,GAAG,CAAC;MAClC;IACF;EACF;AACF","ignoreList":[]}
|