@livekit/react-native 2.2.0 → 2.3.1
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 +14 -5
- package/android/build.gradle +1 -1
- package/android/gradle/wrapper/gradle-wrapper.properties +3 -1
- package/android/gradlew +29 -14
- package/android/gradlew.bat +19 -16
- package/android/src/main/java/com/livekit/reactnative/video/SimulcastVideoEncoderFactoryWrapper.kt +2 -2
- package/lib/commonjs/audio/AudioManager.js +4 -27
- package/lib/commonjs/audio/AudioManager.js.map +1 -1
- package/lib/commonjs/audio/AudioSession.js +55 -21
- package/lib/commonjs/audio/AudioSession.js.map +1 -1
- package/lib/commonjs/components/LiveKitRoom.js +3 -6
- package/lib/commonjs/components/LiveKitRoom.js.map +1 -1
- package/lib/commonjs/components/VideoTrack.js +30 -66
- package/lib/commonjs/components/VideoTrack.js.map +1 -1
- package/lib/commonjs/components/VideoView.js +32 -63
- package/lib/commonjs/components/VideoView.js.map +1 -1
- package/lib/commonjs/components/ViewPortDetector.js +15 -62
- package/lib/commonjs/components/ViewPortDetector.js.map +1 -1
- package/lib/commonjs/hooks.js +0 -63
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/commonjs/index.js +9 -84
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/logger.js +4 -14
- package/lib/commonjs/logger.js.map +1 -1
- package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js +16 -42
- package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js.map +1 -1
- package/lib/commonjs/useParticipant.js +5 -13
- package/lib/commonjs/useParticipant.js.map +1 -1
- package/lib/commonjs/useRoom.js +17 -33
- package/lib/commonjs/useRoom.js.map +1 -1
- package/lib/module/audio/AudioManager.js +3 -17
- package/lib/module/audio/AudioManager.js.map +1 -1
- package/lib/module/audio/AudioSession.js +54 -14
- package/lib/module/audio/AudioSession.js.map +1 -1
- package/lib/module/components/LiveKitRoom.js +1 -0
- package/lib/module/components/LiveKitRoom.js.map +1 -1
- package/lib/module/components/VideoTrack.js +18 -44
- package/lib/module/components/VideoTrack.js.map +1 -1
- package/lib/module/components/VideoView.js +18 -42
- package/lib/module/components/VideoView.js.map +1 -1
- package/lib/module/components/ViewPortDetector.js +13 -54
- package/lib/module/components/ViewPortDetector.js.map +1 -1
- package/lib/module/hooks.js +1 -2
- package/lib/module/hooks.js.map +1 -1
- package/lib/module/index.js +5 -23
- package/lib/module/index.js.map +1 -1
- package/lib/module/logger.js +2 -6
- package/lib/module/logger.js.map +1 -1
- package/lib/module/polyfills/EncoderDecoderTogether.min.js +16 -42
- package/lib/module/polyfills/EncoderDecoderTogether.min.js.map +1 -1
- package/lib/module/useParticipant.js +5 -11
- package/lib/module/useParticipant.js.map +1 -1
- package/lib/module/useRoom.js +17 -30
- package/lib/module/useRoom.js.map +1 -1
- package/lib/typescript/babel.config.d.ts +1 -0
- package/lib/typescript/docs/assets/icons.d.ts +0 -0
- package/lib/typescript/docs/assets/main.d.ts +0 -0
- package/lib/typescript/docs/assets/navigation.d.ts +0 -0
- package/lib/typescript/docs/assets/search.d.ts +0 -0
- package/lib/typescript/lib/commonjs/audio/AudioManager.d.ts +10 -0
- package/lib/typescript/lib/commonjs/audio/AudioSession.d.ts +33 -0
- package/lib/typescript/lib/commonjs/components/LiveKitRoom.d.ts +20 -0
- package/lib/typescript/lib/commonjs/components/VideoTrack.d.ts +8 -0
- package/lib/typescript/lib/commonjs/components/VideoView.d.ts +14 -0
- package/lib/typescript/lib/commonjs/components/ViewPortDetector.d.ts +30 -0
- package/lib/typescript/lib/commonjs/hooks.d.ts +29 -0
- package/lib/typescript/lib/commonjs/index.d.ts +10 -0
- package/lib/typescript/lib/commonjs/logger.d.ts +8 -0
- package/lib/typescript/lib/commonjs/useParticipant.d.ts +14 -0
- package/lib/typescript/lib/commonjs/useRoom.d.ts +16 -0
- package/lib/typescript/lib/module/audio/AudioManager.d.ts +9 -0
- package/lib/typescript/lib/module/audio/AudioSession.d.ts +31 -0
- package/lib/typescript/lib/module/components/LiveKitRoom.d.ts +22 -0
- package/lib/typescript/lib/module/components/VideoTrack.d.ts +9 -0
- package/lib/typescript/lib/module/components/VideoView.d.ts +9 -0
- package/lib/typescript/lib/module/components/ViewPortDetector.d.ts +29 -0
- package/lib/typescript/lib/module/hooks.d.ts +1 -0
- package/lib/typescript/lib/module/index.d.ts +18 -0
- package/lib/typescript/lib/module/logger.d.ts +8 -0
- package/lib/typescript/lib/module/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
- package/lib/typescript/lib/module/useParticipant.d.ts +13 -0
- package/lib/typescript/lib/module/useRoom.d.ts +15 -0
- package/lib/typescript/scripts/bootstrap.d.ts +1 -0
- package/lib/typescript/{audio → src/audio}/AudioSession.d.ts +7 -7
- package/lib/typescript/{components → src/components}/LiveKitRoom.d.ts +1 -1
- package/lib/typescript/{components → src/components}/VideoTrack.d.ts +2 -2
- package/lib/typescript/{components → src/components}/VideoView.d.ts +3 -3
- package/lib/typescript/{components → src/components}/ViewPortDetector.d.ts +3 -3
- package/lib/typescript/src/hooks.d.ts +3 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +3 -2
- package/lib/typescript/{logger.d.ts → src/logger.d.ts} +2 -2
- package/lib/typescript/src/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
- package/lib/typescript/{useRoom.d.ts → src/useRoom.d.ts} +1 -1
- package/package.json +23 -19
- package/src/components/LiveKitRoom.tsx +1 -1
- package/src/components/VideoTrack.tsx +7 -2
- package/src/components/VideoView.tsx +8 -3
- package/src/components/ViewPortDetector.tsx +4 -4
- package/src/hooks.ts +11 -9
- package/src/index.tsx +10 -8
- package/src/useRoom.ts +1 -1
- package/lib/typescript/hooks.d.ts +0 -2
- /package/lib/typescript/{audio → src/audio}/AudioManager.d.ts +0 -0
- /package/lib/typescript/{useParticipant.d.ts → src/useParticipant.d.ts} +0 -0
package/lib/commonjs/logger.js
CHANGED
|
@@ -5,28 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.log = void 0;
|
|
7
7
|
exports.setLogLevel = setLogLevel;
|
|
8
|
-
|
|
9
8
|
var _livekitClient = require("livekit-client");
|
|
10
|
-
|
|
11
9
|
var _loglevel = _interopRequireDefault(require("loglevel"));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const log = _loglevel.default.getLogger('lk-react-native');
|
|
16
|
-
|
|
17
|
-
exports.log = log;
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const log = exports.log = _loglevel.default.getLogger('lk-react-native');
|
|
18
12
|
log.setDefaultLevel('WARN');
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
* Set the log level for both the `@livekit/react-native` package and the `@livekit-client` package.
|
|
22
15
|
* To set the `@livekit-client` log independently, use the `liveKitClientLogLevel` prop on the `options` object.
|
|
23
16
|
* @public
|
|
24
17
|
*/
|
|
25
|
-
function setLogLevel(level) {
|
|
26
|
-
var _options$liveKitClien;
|
|
27
|
-
|
|
28
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
18
|
+
function setLogLevel(level, options = {}) {
|
|
29
19
|
log.setLevel(level);
|
|
30
|
-
(0, _livekitClient.setLogLevel)(
|
|
20
|
+
(0, _livekitClient.setLogLevel)(options.liveKitClientLogLevel ?? level);
|
|
31
21
|
}
|
|
32
22
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["_livekitClient","require","_loglevel","_interopRequireDefault","e","__esModule","default","log","exports","loglevel","getLogger","setDefaultLevel","setLogLevel","level","options","setLevel","setClientSdkLogLevel","liveKitClientLogLevel"],"sources":["logger.ts"],"sourcesContent":["import { setLogLevel as setClientSdkLogLevel } from 'livekit-client';\nimport loglevel from 'loglevel';\n\nexport const log = loglevel.getLogger('lk-react-native');\nlog.setDefaultLevel('WARN');\n\nexport type LogLevel = Parameters<typeof setClientSdkLogLevel>[0];\nexport type SetLogLevelOptions = {\n liveKitClientLogLevel?: LogLevel;\n};\n\n/**\n * Set the log level for both the `@livekit/react-native` package and the `@livekit-client` package.\n * To set the `@livekit-client` log independently, use the `liveKitClientLogLevel` prop on the `options` object.\n * @public\n */\nexport function setLogLevel(\n level: LogLevel,\n options: SetLogLevelOptions = {}\n): void {\n log.setLevel(level);\n setClientSdkLogLevel(options.liveKitClientLogLevel ?? level);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEzB,MAAMG,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAGE,iBAAQ,CAACC,SAAS,CAAC,iBAAiB,CAAC;AACxDH,GAAG,CAACI,eAAe,CAAC,MAAM,CAAC;AAO3B;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CACzBC,KAAe,EACfC,OAA2B,GAAG,CAAC,CAAC,EAC1B;EACNP,GAAG,CAACQ,QAAQ,CAACF,KAAK,CAAC;EACnB,IAAAG,0BAAoB,EAACF,OAAO,CAACG,qBAAqB,IAAIJ,KAAK,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -2,92 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
(function (q) {
|
|
4
4
|
function x() {}
|
|
5
|
-
|
|
6
5
|
function y() {}
|
|
7
|
-
|
|
8
6
|
var z = String.fromCharCode,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
v = {}.toString,
|
|
8
|
+
A = v.call(q.SharedArrayBuffer),
|
|
9
|
+
B = v(),
|
|
10
|
+
r = q.Uint8Array,
|
|
11
|
+
t = r || Array,
|
|
12
|
+
w = r ? ArrayBuffer : t,
|
|
13
|
+
C = w.isView || function (g) {
|
|
14
|
+
return g && "length" in g;
|
|
15
|
+
},
|
|
16
|
+
D = v.call(w.prototype);
|
|
20
17
|
w = y.prototype;
|
|
21
18
|
var E = q.TextEncoder,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
F = q.TextDecoder,
|
|
20
|
+
a = new (r ? Uint16Array : t)(32);
|
|
25
21
|
x.prototype.decode = function (g) {
|
|
26
22
|
if (!C(g)) {
|
|
27
23
|
var l = v.call(g);
|
|
28
24
|
if (l !== D && l !== A && l !== B) throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");
|
|
29
25
|
g = r ? new t(g) : g || [];
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
for (var f = l = "", b = 0, c = g.length | 0, u = c - 32 | 0, e, d, h = 0, p = 0, m, k = 0, n = -1; b < c;) {
|
|
33
28
|
for (e = b <= u ? 32 : c - b | 0; k < e; b = b + 1 | 0, k = k + 1 | 0) {
|
|
34
29
|
d = g[b] & 255;
|
|
35
|
-
|
|
36
30
|
switch (d >> 4) {
|
|
37
31
|
case 15:
|
|
38
32
|
m = g[b = b + 1 | 0] & 255;
|
|
39
|
-
|
|
40
33
|
if (2 !== m >> 6 || 247 < d) {
|
|
41
34
|
b = b - 1 | 0;
|
|
42
35
|
break;
|
|
43
36
|
}
|
|
44
|
-
|
|
45
37
|
h = (d & 7) << 6 | m & 63;
|
|
46
38
|
p = 5;
|
|
47
39
|
d = 256;
|
|
48
|
-
|
|
49
40
|
case 14:
|
|
50
41
|
m = g[b = b + 1 | 0] & 255, h <<= 6, h |= (d & 15) << 6 | m & 63, p = 2 === m >> 6 ? p + 4 | 0 : 24, d = d + 256 & 768;
|
|
51
|
-
|
|
52
42
|
case 13:
|
|
53
43
|
case 12:
|
|
54
44
|
m = g[b = b + 1 | 0] & 255, h <<= 6, h |= (d & 31) << 6 | m & 63, p = p + 7 | 0, b < c && 2 === m >> 6 && h >> p && 1114112 > h ? (d = h, h = h - 65536 | 0, 0 <= h && (n = (h >> 10) + 55296 | 0, d = (h & 1023) + 56320 | 0, 31 > k ? (a[k] = n, k = k + 1 | 0, n = -1) : (m = n, n = d, d = m))) : (d >>= 8, b = b - d - 1 | 0, d = 65533), h = p = 0, e = b <= u ? 32 : c - b | 0;
|
|
55
|
-
|
|
56
45
|
default:
|
|
57
46
|
a[k] = d;
|
|
58
47
|
continue;
|
|
59
|
-
|
|
60
48
|
case 11:
|
|
61
49
|
case 10:
|
|
62
50
|
case 9:
|
|
63
51
|
case 8:
|
|
64
52
|
}
|
|
65
|
-
|
|
66
53
|
a[k] = 65533;
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
f += z(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26], a[27], a[28], a[29], a[30], a[31]);
|
|
70
56
|
32 > k && (f = f.slice(0, k - 32 | 0));
|
|
71
|
-
|
|
72
57
|
if (b < c) {
|
|
73
58
|
if (a[0] = n, k = ~n >>> 31, n = -1, f.length < l.length) continue;
|
|
74
59
|
} else -1 !== n && (f += z(n));
|
|
75
|
-
|
|
76
60
|
l += f;
|
|
77
61
|
f = "";
|
|
78
62
|
}
|
|
79
|
-
|
|
80
63
|
return l;
|
|
81
64
|
};
|
|
82
|
-
|
|
83
65
|
w.encode = function (g) {
|
|
84
66
|
g = void 0 === g ? "" : "" + g;
|
|
85
67
|
var l = g.length | 0,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
68
|
+
f = new t((l << 1) + 8 | 0),
|
|
69
|
+
b,
|
|
70
|
+
c = 0,
|
|
71
|
+
u = !r;
|
|
91
72
|
for (b = 0; b < l; b = b + 1 | 0, c = c + 1 | 0) {
|
|
92
73
|
var e = g.charCodeAt(b) | 0;
|
|
93
74
|
if (127 >= e) f[c] = e;else {
|
|
@@ -95,10 +76,8 @@
|
|
|
95
76
|
a: {
|
|
96
77
|
if (55296 <= e) if (56319 >= e) {
|
|
97
78
|
var d = g.charCodeAt(b = b + 1 | 0) | 0;
|
|
98
|
-
|
|
99
79
|
if (56320 <= d && 57343 >= d) {
|
|
100
80
|
e = (e << 10) + d - 56613888 | 0;
|
|
101
|
-
|
|
102
81
|
if (65535 < e) {
|
|
103
82
|
f[c] = 240 | e >> 18;
|
|
104
83
|
f[c = c + 1 | 0] = 128 | e >> 12 & 63;
|
|
@@ -106,25 +85,20 @@
|
|
|
106
85
|
f[c = c + 1 | 0] = 128 | e & 63;
|
|
107
86
|
continue;
|
|
108
87
|
}
|
|
109
|
-
|
|
110
88
|
break a;
|
|
111
89
|
}
|
|
112
|
-
|
|
113
90
|
e = 65533;
|
|
114
91
|
} else 57343 >= e && (e = 65533);
|
|
115
92
|
!u && b << 1 < c && b << 1 < (c - 7 | 0) && (u = !0, d = new t(3 * l), d.set(f), f = d);
|
|
116
93
|
}
|
|
117
|
-
|
|
118
94
|
f[c] = 224 | e >> 12;
|
|
119
95
|
f[c = c + 1 | 0] = 128 | e >> 6 & 63;
|
|
120
96
|
}
|
|
121
97
|
f[c = c + 1 | 0] = 128 | e & 63;
|
|
122
98
|
}
|
|
123
99
|
}
|
|
124
|
-
|
|
125
100
|
return r ? f.subarray(0, c) : f.slice(0, c);
|
|
126
101
|
};
|
|
127
|
-
|
|
128
102
|
E || (q.TextEncoder = y);
|
|
129
103
|
F || (q.TextDecoder = x);
|
|
130
104
|
})("" + void 0 == typeof global ? "" + void 0 == typeof self ? void 0 : self : global); //AnonyCo
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["EncoderDecoderTogether.min.js"],"names":["q","x","y","z","String","fromCharCode","v","toString","A","call","SharedArrayBuffer","B","r","Uint8Array","t","Array","w","ArrayBuffer","C","isView","g","D","prototype","E","TextEncoder","F","TextDecoder","a","Uint16Array","decode","l","TypeError","f","b","c","length","u","e","d","h","p","m","k","n","slice","encode","charCodeAt","set","subarray","global","self"],"mappings":"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","sourcesContent":["'use strict';(function(q){function x(){}function y(){}var z=String.fromCharCode,v={}.toString,A=v.call(q.SharedArrayBuffer),B=v(),r=q.Uint8Array,t=r||Array,w=r?ArrayBuffer:t,C=w.isView||function(g){return g&&\"length\"in g},D=v.call(w.prototype);w=y.prototype;var E=q.TextEncoder,F=q.TextDecoder,a=new (r?Uint16Array:t)(32);x.prototype.decode=function(g){if(!C(g)){var l=v.call(g);if(l!==D&&l!==A&&l!==B)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\ng=r?new t(g):g||[]}for(var f=l=\"\",b=0,c=g.length|0,u=c-32|0,e,d,h=0,p=0,m,k=0,n=-1;b<c;){for(e=b<=u?32:c-b|0;k<e;b=b+1|0,k=k+1|0){d=g[b]&255;switch(d>>4){case 15:m=g[b=b+1|0]&255;if(2!==m>>6||247<d){b=b-1|0;break}h=(d&7)<<6|m&63;p=5;d=256;case 14:m=g[b=b+1|0]&255,h<<=6,h|=(d&15)<<6|m&63,p=2===m>>6?p+4|0:24,d=d+256&768;case 13:case 12:m=g[b=b+1|0]&255,h<<=6,h|=(d&31)<<6|m&63,p=p+7|0,b<c&&2===m>>6&&h>>p&&1114112>h?(d=h,h=h-65536|0,0<=h&&(n=(h>>10)+55296|0,d=(h&1023)+56320|0,31>k?(a[k]=n,k=k+1|0,n=-1):\n(m=n,n=d,d=m))):(d>>=8,b=b-d-1|0,d=65533),h=p=0,e=b<=u?32:c-b|0;default:a[k]=d;continue;case 11:case 10:case 9:case 8:}a[k]=65533}f+=z(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]);32>k&&(f=f.slice(0,k-32|0));if(b<c){if(a[0]=n,k=~n>>>31,n=-1,f.length<l.length)continue}else-1!==n&&(f+=z(n));l+=f;f=\"\"}return l};w.encode=function(g){g=void 0===g?\"\":\"\"+g;var l=g.length|\n0,f=new t((l<<1)+8|0),b,c=0,u=!r;for(b=0;b<l;b=b+1|0,c=c+1|0){var e=g.charCodeAt(b)|0;if(127>=e)f[c]=e;else{if(2047>=e)f[c]=192|e>>6;else{a:{if(55296<=e)if(56319>=e){var d=g.charCodeAt(b=b+1|0)|0;if(56320<=d&&57343>=d){e=(e<<10)+d-56613888|0;if(65535<e){f[c]=240|e>>18;f[c=c+1|0]=128|e>>12&63;f[c=c+1|0]=128|e>>6&63;f[c=c+1|0]=128|e&63;continue}break a}e=65533}else 57343>=e&&(e=65533);!u&&b<<1<c&&b<<1<(c-7|0)&&(u=!0,d=new t(3*l),d.set(f),f=d)}f[c]=224|e>>12;f[c=c+1|0]=128|e>>6&63}f[c=c+1|0]=128|e&63}}return r?\nf.subarray(0,c):f.slice(0,c)};E||(q.TextEncoder=y);F||(q.TextDecoder=x)})(\"\"+void 0==typeof global?\"\"+void 0==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/davidliu/FastestSmallestTextEncoderDecoder/EncoderDecoderTogether.min.js.map\n"]}
|
|
1
|
+
{"version":3,"names":["q","x","y","z","String","fromCharCode","v","toString","A","call","SharedArrayBuffer","B","r","Uint8Array","t","Array","w","ArrayBuffer","C","isView","g","D","prototype","E","TextEncoder","F","TextDecoder","a","Uint16Array","decode","l","TypeError","f","b","c","length","u","e","d","h","p","m","k","n","slice","encode","charCodeAt","set","subarray","global","self"],"sources":["EncoderDecoderTogether.min.js"],"sourcesContent":["'use strict';(function(q){function x(){}function y(){}var z=String.fromCharCode,v={}.toString,A=v.call(q.SharedArrayBuffer),B=v(),r=q.Uint8Array,t=r||Array,w=r?ArrayBuffer:t,C=w.isView||function(g){return g&&\"length\"in g},D=v.call(w.prototype);w=y.prototype;var E=q.TextEncoder,F=q.TextDecoder,a=new (r?Uint16Array:t)(32);x.prototype.decode=function(g){if(!C(g)){var l=v.call(g);if(l!==D&&l!==A&&l!==B)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\ng=r?new t(g):g||[]}for(var f=l=\"\",b=0,c=g.length|0,u=c-32|0,e,d,h=0,p=0,m,k=0,n=-1;b<c;){for(e=b<=u?32:c-b|0;k<e;b=b+1|0,k=k+1|0){d=g[b]&255;switch(d>>4){case 15:m=g[b=b+1|0]&255;if(2!==m>>6||247<d){b=b-1|0;break}h=(d&7)<<6|m&63;p=5;d=256;case 14:m=g[b=b+1|0]&255,h<<=6,h|=(d&15)<<6|m&63,p=2===m>>6?p+4|0:24,d=d+256&768;case 13:case 12:m=g[b=b+1|0]&255,h<<=6,h|=(d&31)<<6|m&63,p=p+7|0,b<c&&2===m>>6&&h>>p&&1114112>h?(d=h,h=h-65536|0,0<=h&&(n=(h>>10)+55296|0,d=(h&1023)+56320|0,31>k?(a[k]=n,k=k+1|0,n=-1):\n(m=n,n=d,d=m))):(d>>=8,b=b-d-1|0,d=65533),h=p=0,e=b<=u?32:c-b|0;default:a[k]=d;continue;case 11:case 10:case 9:case 8:}a[k]=65533}f+=z(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]);32>k&&(f=f.slice(0,k-32|0));if(b<c){if(a[0]=n,k=~n>>>31,n=-1,f.length<l.length)continue}else-1!==n&&(f+=z(n));l+=f;f=\"\"}return l};w.encode=function(g){g=void 0===g?\"\":\"\"+g;var l=g.length|\n0,f=new t((l<<1)+8|0),b,c=0,u=!r;for(b=0;b<l;b=b+1|0,c=c+1|0){var e=g.charCodeAt(b)|0;if(127>=e)f[c]=e;else{if(2047>=e)f[c]=192|e>>6;else{a:{if(55296<=e)if(56319>=e){var d=g.charCodeAt(b=b+1|0)|0;if(56320<=d&&57343>=d){e=(e<<10)+d-56613888|0;if(65535<e){f[c]=240|e>>18;f[c=c+1|0]=128|e>>12&63;f[c=c+1|0]=128|e>>6&63;f[c=c+1|0]=128|e&63;continue}break a}e=65533}else 57343>=e&&(e=65533);!u&&b<<1<c&&b<<1<(c-7|0)&&(u=!0,d=new t(3*l),d.set(f),f=d)}f[c]=224|e>>12;f[c=c+1|0]=128|e>>6&63}f[c=c+1|0]=128|e&63}}return r?\nf.subarray(0,c):f.slice(0,c)};E||(q.TextEncoder=y);F||(q.TextDecoder=x)})(\"\"+void 0==typeof global?\"\"+void 0==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/davidliu/FastestSmallestTextEncoderDecoder/EncoderDecoderTogether.min.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useParticipant = useParticipant;
|
|
7
|
-
|
|
8
7
|
var _livekitClient = require("livekit-client");
|
|
9
|
-
|
|
10
8
|
var _react = require("react");
|
|
9
|
+
/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */
|
|
11
10
|
|
|
12
11
|
/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */
|
|
13
12
|
function useParticipant(participant) {
|
|
@@ -31,7 +30,6 @@ function useParticipant(participant) {
|
|
|
31
30
|
return pub.isSubscribed && pub.track !== undefined;
|
|
32
31
|
}));
|
|
33
32
|
};
|
|
34
|
-
|
|
35
33
|
const onMuted = pub => {
|
|
36
34
|
if (pub.kind === _livekitClient.Track.Kind.Audio) {
|
|
37
35
|
setAudioMuted(true);
|
|
@@ -39,7 +37,6 @@ function useParticipant(participant) {
|
|
|
39
37
|
setVideoMuted(true);
|
|
40
38
|
}
|
|
41
39
|
};
|
|
42
|
-
|
|
43
40
|
const onUnmuted = pub => {
|
|
44
41
|
if (pub.kind === _livekitClient.Track.Kind.Audio) {
|
|
45
42
|
setAudioMuted(false);
|
|
@@ -47,24 +44,22 @@ function useParticipant(participant) {
|
|
|
47
44
|
setVideoMuted(false);
|
|
48
45
|
}
|
|
49
46
|
};
|
|
50
|
-
|
|
51
47
|
const onMetadataChanged = () => {
|
|
52
48
|
if (participant.metadata) {
|
|
53
49
|
setMetadata(participant.metadata);
|
|
54
50
|
}
|
|
55
51
|
};
|
|
56
|
-
|
|
57
52
|
const onIsSpeakingChanged = () => {
|
|
58
53
|
setSpeaking(participant.isSpeaking);
|
|
59
54
|
};
|
|
60
|
-
|
|
61
55
|
const onConnectionQualityUpdate = () => {
|
|
62
56
|
setConnectionQuality(participant.connectionQuality);
|
|
63
|
-
};
|
|
64
|
-
|
|
57
|
+
};
|
|
65
58
|
|
|
66
|
-
|
|
59
|
+
// register listeners
|
|
60
|
+
participant.on(_livekitClient.ParticipantEvent.TrackMuted, onMuted).on(_livekitClient.ParticipantEvent.TrackUnmuted, onUnmuted).on(_livekitClient.ParticipantEvent.ParticipantMetadataChanged, onMetadataChanged).on(_livekitClient.ParticipantEvent.IsSpeakingChanged, onIsSpeakingChanged).on(_livekitClient.ParticipantEvent.TrackPublished, onPublicationsChanged).on(_livekitClient.ParticipantEvent.TrackUnpublished, onPublicationsChanged).on(_livekitClient.ParticipantEvent.TrackSubscribed, onPublicationsChanged).on(_livekitClient.ParticipantEvent.TrackUnsubscribed, onPublicationsChanged).on(_livekitClient.ParticipantEvent.LocalTrackPublished, onPublicationsChanged).on(_livekitClient.ParticipantEvent.LocalTrackUnpublished, onPublicationsChanged).on(_livekitClient.ParticipantEvent.ConnectionQualityChanged, onConnectionQualityUpdate);
|
|
67
61
|
|
|
62
|
+
// set initial state
|
|
68
63
|
onMetadataChanged();
|
|
69
64
|
onIsSpeakingChanged();
|
|
70
65
|
onPublicationsChanged();
|
|
@@ -77,15 +72,12 @@ function useParticipant(participant) {
|
|
|
77
72
|
participant.audioTrackPublications.forEach(pub => {
|
|
78
73
|
muted = pub.isMuted;
|
|
79
74
|
});
|
|
80
|
-
|
|
81
75
|
if (muted === undefined) {
|
|
82
76
|
muted = true;
|
|
83
77
|
}
|
|
84
|
-
|
|
85
78
|
if (isAudioMuted !== muted) {
|
|
86
79
|
setAudioMuted(muted);
|
|
87
80
|
}
|
|
88
|
-
|
|
89
81
|
return {
|
|
90
82
|
isLocal: participant instanceof _livekitClient.LocalParticipant,
|
|
91
83
|
isSpeaking,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useParticipant.ts"],"names":["useParticipant","participant","isAudioMuted","setAudioMuted","setVideoMuted","connectionQuality","setConnectionQuality","isSpeaking","setSpeaking","metadata","setMetadata","publications","setPublications","subscribedTracks","setSubscribedTracks","cameraPublication","setCameraPublication","getTrackPublication","Track","Source","Camera","microphonePublication","setMicrophonePublication","Microphone","screenSharePublication","setScreenSharePublication","ScreenShare","onPublicationsChanged","Array","from","trackPublications","values","filter","pub","isSubscribed","track","undefined","onMuted","kind","Kind","Audio","Video","onUnmuted","onMetadataChanged","onIsSpeakingChanged","onConnectionQualityUpdate","on","ParticipantEvent","TrackMuted","TrackUnmuted","ParticipantMetadataChanged","IsSpeakingChanged","TrackPublished","TrackUnpublished","TrackSubscribed","TrackUnsubscribed","LocalTrackPublished","LocalTrackUnpublished","ConnectionQualityChanged","off","muted","audioTrackPublications","forEach","isMuted","isLocal","LocalParticipant"],"mappings":"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","sourcesContent":["import {\n ConnectionQuality,\n LocalParticipant,\n Participant,\n ParticipantEvent,\n Track,\n TrackPublication,\n} from 'livekit-client';\nimport { useEffect, useState } from 'react';\n\n/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */\nexport interface ParticipantState {\n isSpeaking: boolean;\n connectionQuality: ConnectionQuality;\n isLocal: boolean;\n metadata?: string;\n publications: TrackPublication[];\n subscribedTracks: TrackPublication[];\n cameraPublication?: TrackPublication;\n microphonePublication?: TrackPublication;\n screenSharePublication?: TrackPublication;\n}\n/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */\nexport function useParticipant(participant: Participant): ParticipantState {\n const [isAudioMuted, setAudioMuted] = useState(false);\n const [, setVideoMuted] = useState(false);\n const [connectionQuality, setConnectionQuality] = useState<ConnectionQuality>(\n participant.connectionQuality\n );\n const [isSpeaking, setSpeaking] = useState(false);\n const [metadata, setMetadata] = useState<string>();\n const [publications, setPublications] = useState<TrackPublication[]>([]);\n const [subscribedTracks, setSubscribedTracks] = useState<TrackPublication[]>(\n []\n );\n\n const [cameraPublication, setCameraPublication] = useState(\n participant.getTrackPublication(Track.Source.Camera)\n );\n const [microphonePublication, setMicrophonePublication] = useState(\n participant.getTrackPublication(Track.Source.Microphone)\n );\n const [screenSharePublication, setScreenSharePublication] = useState(\n participant.getTrackPublication(Track.Source.ScreenShare)\n );\n useEffect(() => {\n const onPublicationsChanged = () => {\n setPublications(Array.from(participant.trackPublications.values()));\n setCameraPublication(\n participant.getTrackPublication(Track.Source.Camera)\n );\n setMicrophonePublication(\n participant.getTrackPublication(Track.Source.Microphone)\n );\n setScreenSharePublication(\n participant.getTrackPublication(Track.Source.ScreenShare)\n );\n setSubscribedTracks(\n Array.from(participant.trackPublications.values()).filter((pub) => {\n return pub.isSubscribed && pub.track !== undefined;\n })\n );\n };\n const onMuted = (pub: TrackPublication) => {\n if (pub.kind === Track.Kind.Audio) {\n setAudioMuted(true);\n } else if (pub.kind === Track.Kind.Video) {\n setVideoMuted(true);\n }\n };\n const onUnmuted = (pub: TrackPublication) => {\n if (pub.kind === Track.Kind.Audio) {\n setAudioMuted(false);\n } else if (pub.kind === Track.Kind.Video) {\n setVideoMuted(false);\n }\n };\n const onMetadataChanged = () => {\n if (participant.metadata) {\n setMetadata(participant.metadata);\n }\n };\n const onIsSpeakingChanged = () => {\n setSpeaking(participant.isSpeaking);\n };\n const onConnectionQualityUpdate = () => {\n setConnectionQuality(participant.connectionQuality);\n };\n\n // register listeners\n participant\n .on(ParticipantEvent.TrackMuted, onMuted)\n .on(ParticipantEvent.TrackUnmuted, onUnmuted)\n .on(ParticipantEvent.ParticipantMetadataChanged, onMetadataChanged)\n .on(ParticipantEvent.IsSpeakingChanged, onIsSpeakingChanged)\n .on(ParticipantEvent.TrackPublished, onPublicationsChanged)\n .on(ParticipantEvent.TrackUnpublished, onPublicationsChanged)\n .on(ParticipantEvent.TrackSubscribed, onPublicationsChanged)\n .on(ParticipantEvent.TrackUnsubscribed, onPublicationsChanged)\n .on(ParticipantEvent.LocalTrackPublished, onPublicationsChanged)\n .on(ParticipantEvent.LocalTrackUnpublished, onPublicationsChanged)\n .on(ParticipantEvent.ConnectionQualityChanged, onConnectionQualityUpdate);\n\n // set initial state\n onMetadataChanged();\n onIsSpeakingChanged();\n onPublicationsChanged();\n\n return () => {\n // cleanup\n participant\n .off(ParticipantEvent.TrackMuted, onMuted)\n .off(ParticipantEvent.TrackUnmuted, onUnmuted)\n .off(ParticipantEvent.ParticipantMetadataChanged, onMetadataChanged)\n .off(ParticipantEvent.IsSpeakingChanged, onIsSpeakingChanged)\n .off(ParticipantEvent.TrackPublished, onPublicationsChanged)\n .off(ParticipantEvent.TrackUnpublished, onPublicationsChanged)\n .off(ParticipantEvent.TrackSubscribed, onPublicationsChanged)\n .off(ParticipantEvent.TrackUnsubscribed, onPublicationsChanged)\n .off(ParticipantEvent.LocalTrackPublished, onPublicationsChanged)\n .off(ParticipantEvent.LocalTrackUnpublished, onPublicationsChanged)\n .off(\n ParticipantEvent.ConnectionQualityChanged,\n onConnectionQualityUpdate\n );\n };\n }, [participant]);\n\n let muted: boolean | undefined;\n participant.audioTrackPublications.forEach((pub) => {\n muted = pub.isMuted;\n });\n if (muted === undefined) {\n muted = true;\n }\n if (isAudioMuted !== muted) {\n setAudioMuted(muted);\n }\n\n return {\n isLocal: participant instanceof LocalParticipant,\n isSpeaking,\n connectionQuality,\n publications,\n subscribedTracks,\n cameraPublication,\n microphonePublication,\n screenSharePublication,\n metadata,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"names":["_livekitClient","require","_react","useParticipant","participant","isAudioMuted","setAudioMuted","useState","setVideoMuted","connectionQuality","setConnectionQuality","isSpeaking","setSpeaking","metadata","setMetadata","publications","setPublications","subscribedTracks","setSubscribedTracks","cameraPublication","setCameraPublication","getTrackPublication","Track","Source","Camera","microphonePublication","setMicrophonePublication","Microphone","screenSharePublication","setScreenSharePublication","ScreenShare","useEffect","onPublicationsChanged","Array","from","trackPublications","values","filter","pub","isSubscribed","track","undefined","onMuted","kind","Kind","Audio","Video","onUnmuted","onMetadataChanged","onIsSpeakingChanged","onConnectionQualityUpdate","on","ParticipantEvent","TrackMuted","TrackUnmuted","ParticipantMetadataChanged","IsSpeakingChanged","TrackPublished","TrackUnpublished","TrackSubscribed","TrackUnsubscribed","LocalTrackPublished","LocalTrackUnpublished","ConnectionQualityChanged","off","muted","audioTrackPublications","forEach","isMuted","isLocal","LocalParticipant"],"sources":["useParticipant.ts"],"sourcesContent":["import {\n ConnectionQuality,\n LocalParticipant,\n Participant,\n ParticipantEvent,\n Track,\n TrackPublication,\n} from 'livekit-client';\nimport { useEffect, useState } from 'react';\n\n/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */\nexport interface ParticipantState {\n isSpeaking: boolean;\n connectionQuality: ConnectionQuality;\n isLocal: boolean;\n metadata?: string;\n publications: TrackPublication[];\n subscribedTracks: TrackPublication[];\n cameraPublication?: TrackPublication;\n microphonePublication?: TrackPublication;\n screenSharePublication?: TrackPublication;\n}\n/** @deprecated use `useRemoteParticipant` or `useLocalParticipant` instead */\nexport function useParticipant(participant: Participant): ParticipantState {\n const [isAudioMuted, setAudioMuted] = useState(false);\n const [, setVideoMuted] = useState(false);\n const [connectionQuality, setConnectionQuality] = useState<ConnectionQuality>(\n participant.connectionQuality\n );\n const [isSpeaking, setSpeaking] = useState(false);\n const [metadata, setMetadata] = useState<string>();\n const [publications, setPublications] = useState<TrackPublication[]>([]);\n const [subscribedTracks, setSubscribedTracks] = useState<TrackPublication[]>(\n []\n );\n\n const [cameraPublication, setCameraPublication] = useState(\n participant.getTrackPublication(Track.Source.Camera)\n );\n const [microphonePublication, setMicrophonePublication] = useState(\n participant.getTrackPublication(Track.Source.Microphone)\n );\n const [screenSharePublication, setScreenSharePublication] = useState(\n participant.getTrackPublication(Track.Source.ScreenShare)\n );\n useEffect(() => {\n const onPublicationsChanged = () => {\n setPublications(Array.from(participant.trackPublications.values()));\n setCameraPublication(\n participant.getTrackPublication(Track.Source.Camera)\n );\n setMicrophonePublication(\n participant.getTrackPublication(Track.Source.Microphone)\n );\n setScreenSharePublication(\n participant.getTrackPublication(Track.Source.ScreenShare)\n );\n setSubscribedTracks(\n Array.from(participant.trackPublications.values()).filter((pub) => {\n return pub.isSubscribed && pub.track !== undefined;\n })\n );\n };\n const onMuted = (pub: TrackPublication) => {\n if (pub.kind === Track.Kind.Audio) {\n setAudioMuted(true);\n } else if (pub.kind === Track.Kind.Video) {\n setVideoMuted(true);\n }\n };\n const onUnmuted = (pub: TrackPublication) => {\n if (pub.kind === Track.Kind.Audio) {\n setAudioMuted(false);\n } else if (pub.kind === Track.Kind.Video) {\n setVideoMuted(false);\n }\n };\n const onMetadataChanged = () => {\n if (participant.metadata) {\n setMetadata(participant.metadata);\n }\n };\n const onIsSpeakingChanged = () => {\n setSpeaking(participant.isSpeaking);\n };\n const onConnectionQualityUpdate = () => {\n setConnectionQuality(participant.connectionQuality);\n };\n\n // register listeners\n participant\n .on(ParticipantEvent.TrackMuted, onMuted)\n .on(ParticipantEvent.TrackUnmuted, onUnmuted)\n .on(ParticipantEvent.ParticipantMetadataChanged, onMetadataChanged)\n .on(ParticipantEvent.IsSpeakingChanged, onIsSpeakingChanged)\n .on(ParticipantEvent.TrackPublished, onPublicationsChanged)\n .on(ParticipantEvent.TrackUnpublished, onPublicationsChanged)\n .on(ParticipantEvent.TrackSubscribed, onPublicationsChanged)\n .on(ParticipantEvent.TrackUnsubscribed, onPublicationsChanged)\n .on(ParticipantEvent.LocalTrackPublished, onPublicationsChanged)\n .on(ParticipantEvent.LocalTrackUnpublished, onPublicationsChanged)\n .on(ParticipantEvent.ConnectionQualityChanged, onConnectionQualityUpdate);\n\n // set initial state\n onMetadataChanged();\n onIsSpeakingChanged();\n onPublicationsChanged();\n\n return () => {\n // cleanup\n participant\n .off(ParticipantEvent.TrackMuted, onMuted)\n .off(ParticipantEvent.TrackUnmuted, onUnmuted)\n .off(ParticipantEvent.ParticipantMetadataChanged, onMetadataChanged)\n .off(ParticipantEvent.IsSpeakingChanged, onIsSpeakingChanged)\n .off(ParticipantEvent.TrackPublished, onPublicationsChanged)\n .off(ParticipantEvent.TrackUnpublished, onPublicationsChanged)\n .off(ParticipantEvent.TrackSubscribed, onPublicationsChanged)\n .off(ParticipantEvent.TrackUnsubscribed, onPublicationsChanged)\n .off(ParticipantEvent.LocalTrackPublished, onPublicationsChanged)\n .off(ParticipantEvent.LocalTrackUnpublished, onPublicationsChanged)\n .off(\n ParticipantEvent.ConnectionQualityChanged,\n onConnectionQualityUpdate\n );\n };\n }, [participant]);\n\n let muted: boolean | undefined;\n participant.audioTrackPublications.forEach((pub) => {\n muted = pub.isMuted;\n });\n if (muted === undefined) {\n muted = true;\n }\n if (isAudioMuted !== muted) {\n setAudioMuted(muted);\n }\n\n return {\n isLocal: participant instanceof LocalParticipant,\n isSpeaking,\n connectionQuality,\n publications,\n subscribedTracks,\n cameraPublication,\n microphonePublication,\n screenSharePublication,\n metadata,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/useRoom.js
CHANGED
|
@@ -5,19 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.sortParticipants = sortParticipants;
|
|
7
7
|
exports.useRoom = useRoom;
|
|
8
|
-
|
|
9
8
|
var _livekitClient = require("livekit-client");
|
|
10
|
-
|
|
11
9
|
var _react = require("react");
|
|
12
|
-
|
|
13
10
|
/** @deprecated wrap your components in a <LiveKitRoom> component instead and use more granular hooks to track state you're interested in */
|
|
14
11
|
function useRoom(room, options) {
|
|
15
|
-
var _options$sortParticip;
|
|
16
|
-
|
|
17
12
|
const [error] = (0, _react.useState)();
|
|
18
13
|
const [participants, setParticipants] = (0, _react.useState)([]);
|
|
19
14
|
const [audioTracks, setAudioTracks] = (0, _react.useState)([]);
|
|
20
|
-
const sortFunc = (
|
|
15
|
+
const sortFunc = (options === null || options === void 0 ? void 0 : options.sortParticipants) ?? sortParticipants;
|
|
21
16
|
(0, _react.useEffect)(() => {
|
|
22
17
|
const onParticipantsChanged = () => {
|
|
23
18
|
const remotes = Array.from(room.remoteParticipants.values());
|
|
@@ -26,15 +21,12 @@ function useRoom(room, options) {
|
|
|
26
21
|
sortFunc(newParticipants, room.localParticipant);
|
|
27
22
|
setParticipants(newParticipants);
|
|
28
23
|
};
|
|
29
|
-
|
|
30
24
|
const onSubscribedTrackChanged = track => {
|
|
31
25
|
// ordering may have changed, re-sort
|
|
32
26
|
onParticipantsChanged();
|
|
33
|
-
|
|
34
27
|
if (track && track.kind !== _livekitClient.Track.Kind.Audio) {
|
|
35
28
|
return;
|
|
36
29
|
}
|
|
37
|
-
|
|
38
30
|
const tracks = [];
|
|
39
31
|
room.remoteParticipants.forEach(p => {
|
|
40
32
|
p.audioTrackPublications.forEach(pub => {
|
|
@@ -45,17 +37,16 @@ function useRoom(room, options) {
|
|
|
45
37
|
});
|
|
46
38
|
setAudioTracks(tracks);
|
|
47
39
|
};
|
|
48
|
-
|
|
49
40
|
const onConnectionStateChanged = state => {
|
|
50
41
|
if (state === _livekitClient.ConnectionState.Connected) {
|
|
51
42
|
onParticipantsChanged();
|
|
52
43
|
}
|
|
53
44
|
};
|
|
54
|
-
|
|
55
45
|
room.once(_livekitClient.RoomEvent.Disconnected, () => {
|
|
56
46
|
room.off(_livekitClient.RoomEvent.ParticipantConnected, onParticipantsChanged).off(_livekitClient.RoomEvent.ParticipantDisconnected, onParticipantsChanged).off(_livekitClient.RoomEvent.ActiveSpeakersChanged, onParticipantsChanged).off(_livekitClient.RoomEvent.TrackSubscribed, onSubscribedTrackChanged).off(_livekitClient.RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged).off(_livekitClient.RoomEvent.LocalTrackPublished, onParticipantsChanged).off(_livekitClient.RoomEvent.LocalTrackUnpublished, onParticipantsChanged).off(_livekitClient.RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged).off(_livekitClient.RoomEvent.ConnectionStateChanged, onConnectionStateChanged);
|
|
57
47
|
});
|
|
58
|
-
room.on(_livekitClient.RoomEvent.ConnectionStateChanged, onConnectionStateChanged).on(_livekitClient.RoomEvent.Reconnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ParticipantConnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ParticipantDisconnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ActiveSpeakersChanged, onParticipantsChanged).on(_livekitClient.RoomEvent.TrackSubscribed, onSubscribedTrackChanged).on(_livekitClient.RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged).on(_livekitClient.RoomEvent.LocalTrackPublished, onParticipantsChanged).on(_livekitClient.RoomEvent.LocalTrackUnpublished, onParticipantsChanged)
|
|
48
|
+
room.on(_livekitClient.RoomEvent.ConnectionStateChanged, onConnectionStateChanged).on(_livekitClient.RoomEvent.Reconnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ParticipantConnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ParticipantDisconnected, onParticipantsChanged).on(_livekitClient.RoomEvent.ActiveSpeakersChanged, onParticipantsChanged).on(_livekitClient.RoomEvent.TrackSubscribed, onSubscribedTrackChanged).on(_livekitClient.RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged).on(_livekitClient.RoomEvent.LocalTrackPublished, onParticipantsChanged).on(_livekitClient.RoomEvent.LocalTrackUnpublished, onParticipantsChanged)
|
|
49
|
+
// trigger a state change by re-sorting participants
|
|
59
50
|
.on(_livekitClient.RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged);
|
|
60
51
|
onSubscribedTrackChanged();
|
|
61
52
|
return () => {
|
|
@@ -68,6 +59,7 @@ function useRoom(room, options) {
|
|
|
68
59
|
audioTracks
|
|
69
60
|
};
|
|
70
61
|
}
|
|
62
|
+
|
|
71
63
|
/**
|
|
72
64
|
* Default sort for participants, it'll order participants by:
|
|
73
65
|
* 1. dominant speaker (speaker with the loudest audio level)
|
|
@@ -76,57 +68,49 @@ function useRoom(room, options) {
|
|
|
76
68
|
* 4. participants with video on
|
|
77
69
|
* 5. by joinedAt
|
|
78
70
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
71
|
function sortParticipants(participants, localParticipant) {
|
|
82
72
|
participants.sort((a, b) => {
|
|
83
|
-
var _a$joinedAt
|
|
84
|
-
|
|
73
|
+
var _a$joinedAt, _b$joinedAt;
|
|
85
74
|
// loudest speaker first
|
|
86
75
|
if (a.isSpeaking && b.isSpeaking) {
|
|
87
76
|
return b.audioLevel - a.audioLevel;
|
|
88
|
-
}
|
|
89
|
-
|
|
77
|
+
}
|
|
90
78
|
|
|
79
|
+
// speaker goes first
|
|
91
80
|
if (a.isSpeaking !== b.isSpeaking) {
|
|
92
81
|
if (a.isSpeaking) {
|
|
93
82
|
return -1;
|
|
94
83
|
} else {
|
|
95
84
|
return 1;
|
|
96
85
|
}
|
|
97
|
-
}
|
|
98
|
-
|
|
86
|
+
}
|
|
99
87
|
|
|
88
|
+
// last active speaker first
|
|
100
89
|
if (a.lastSpokeAt !== b.lastSpokeAt) {
|
|
101
|
-
var _a$lastSpokeAt
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
const bLast = (_b$lastSpokeAt$getTim = (_b$lastSpokeAt = b.lastSpokeAt) === null || _b$lastSpokeAt === void 0 ? void 0 : _b$lastSpokeAt.getTime()) !== null && _b$lastSpokeAt$getTim !== void 0 ? _b$lastSpokeAt$getTim : 0;
|
|
90
|
+
var _a$lastSpokeAt, _b$lastSpokeAt;
|
|
91
|
+
const aLast = ((_a$lastSpokeAt = a.lastSpokeAt) === null || _a$lastSpokeAt === void 0 ? void 0 : _a$lastSpokeAt.getTime()) ?? 0;
|
|
92
|
+
const bLast = ((_b$lastSpokeAt = b.lastSpokeAt) === null || _b$lastSpokeAt === void 0 ? void 0 : _b$lastSpokeAt.getTime()) ?? 0;
|
|
105
93
|
return bLast - aLast;
|
|
106
|
-
}
|
|
107
|
-
|
|
94
|
+
}
|
|
108
95
|
|
|
96
|
+
// video on
|
|
109
97
|
const aVideo = a.videoTrackPublications.size > 0;
|
|
110
98
|
const bVideo = b.videoTrackPublications.size > 0;
|
|
111
|
-
|
|
112
99
|
if (aVideo !== bVideo) {
|
|
113
100
|
if (aVideo) {
|
|
114
101
|
return -1;
|
|
115
102
|
} else {
|
|
116
103
|
return 1;
|
|
117
104
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
105
|
+
}
|
|
120
106
|
|
|
121
|
-
|
|
107
|
+
// joinedAt
|
|
108
|
+
return (((_a$joinedAt = a.joinedAt) === null || _a$joinedAt === void 0 ? void 0 : _a$joinedAt.getTime()) ?? 0) - (((_b$joinedAt = b.joinedAt) === null || _b$joinedAt === void 0 ? void 0 : _b$joinedAt.getTime()) ?? 0);
|
|
122
109
|
});
|
|
123
|
-
|
|
124
110
|
if (localParticipant) {
|
|
125
111
|
const localIdx = participants.indexOf(localParticipant);
|
|
126
|
-
|
|
127
112
|
if (localIdx >= 0) {
|
|
128
113
|
participants.splice(localIdx, 1);
|
|
129
|
-
|
|
130
114
|
if (participants.length > 0) {
|
|
131
115
|
participants.splice(1, 0, localParticipant);
|
|
132
116
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useRoom.ts"],"names":["useRoom","room","options","error","participants","setParticipants","audioTracks","setAudioTracks","sortFunc","sortParticipants","onParticipantsChanged","remotes","Array","from","remoteParticipants","values","newParticipants","localParticipant","push","onSubscribedTrackChanged","track","kind","Track","Kind","Audio","tracks","forEach","p","audioTrackPublications","pub","audioTrack","onConnectionStateChanged","state","ConnectionState","Connected","once","RoomEvent","Disconnected","off","ParticipantConnected","ParticipantDisconnected","ActiveSpeakersChanged","TrackSubscribed","TrackUnsubscribed","LocalTrackPublished","LocalTrackUnpublished","AudioPlaybackStatusChanged","ConnectionStateChanged","on","Reconnected","disconnect","sort","a","b","isSpeaking","audioLevel","lastSpokeAt","aLast","getTime","bLast","aVideo","videoTrackPublications","size","bVideo","joinedAt","localIdx","indexOf","splice","length"],"mappings":"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","sourcesContent":["import {\n AudioTrack,\n ConnectionState,\n LocalParticipant,\n Participant,\n RemoteTrack,\n Room,\n RoomEvent,\n Track,\n} from 'livekit-client';\nimport { useEffect, useState } from 'react';\n\nexport interface RoomState {\n room?: Room;\n /* all participants in the room, including the local participant. */\n participants: Participant[];\n /* all subscribed audio tracks in the room, not including local participant. */\n audioTracks: AudioTrack[];\n error?: Error;\n}\n\nexport interface RoomOptions {\n sortParticipants?: (participants: Participant[]) => void;\n}\n\n/** @deprecated wrap your components in a <LiveKitRoom> component instead and use more granular hooks to track state you're interested in */\nexport function useRoom(room: Room, options?: RoomOptions): RoomState {\n const [error] = useState<Error>();\n const [participants, setParticipants] = useState<Participant[]>([]);\n const [audioTracks, setAudioTracks] = useState<AudioTrack[]>([]);\n\n const sortFunc = options?.sortParticipants ?? sortParticipants;\n\n useEffect(() => {\n const onParticipantsChanged = () => {\n const remotes = Array.from(room.remoteParticipants.values());\n const newParticipants: Participant[] = [room.localParticipant];\n newParticipants.push(...remotes);\n sortFunc(newParticipants, room.localParticipant);\n setParticipants(newParticipants);\n };\n const onSubscribedTrackChanged = (track?: RemoteTrack) => {\n // ordering may have changed, re-sort\n onParticipantsChanged();\n if (track && track.kind !== Track.Kind.Audio) {\n return;\n }\n const tracks: AudioTrack[] = [];\n room.remoteParticipants.forEach((p) => {\n p.audioTrackPublications.forEach((pub) => {\n if (pub.audioTrack) {\n tracks.push(pub.audioTrack);\n }\n });\n });\n setAudioTracks(tracks);\n };\n\n const onConnectionStateChanged = (state: ConnectionState) => {\n if (state === ConnectionState.Connected) {\n onParticipantsChanged();\n }\n };\n\n room.once(RoomEvent.Disconnected, () => {\n room\n .off(RoomEvent.ParticipantConnected, onParticipantsChanged)\n .off(RoomEvent.ParticipantDisconnected, onParticipantsChanged)\n .off(RoomEvent.ActiveSpeakersChanged, onParticipantsChanged)\n .off(RoomEvent.TrackSubscribed, onSubscribedTrackChanged)\n .off(RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged)\n .off(RoomEvent.LocalTrackPublished, onParticipantsChanged)\n .off(RoomEvent.LocalTrackUnpublished, onParticipantsChanged)\n .off(RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged)\n .off(RoomEvent.ConnectionStateChanged, onConnectionStateChanged);\n });\n room\n .on(RoomEvent.ConnectionStateChanged, onConnectionStateChanged)\n .on(RoomEvent.Reconnected, onParticipantsChanged)\n .on(RoomEvent.ParticipantConnected, onParticipantsChanged)\n .on(RoomEvent.ParticipantDisconnected, onParticipantsChanged)\n .on(RoomEvent.ActiveSpeakersChanged, onParticipantsChanged)\n .on(RoomEvent.TrackSubscribed, onSubscribedTrackChanged)\n .on(RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged)\n .on(RoomEvent.LocalTrackPublished, onParticipantsChanged)\n .on(RoomEvent.LocalTrackUnpublished, onParticipantsChanged)\n // trigger a state change by re-sorting participants\n .on(RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged);\n\n onSubscribedTrackChanged();\n\n return () => {\n room.disconnect();\n };\n }, [room, sortFunc]);\n\n return {\n error,\n participants,\n audioTracks,\n };\n}\n\n/**\n * Default sort for participants, it'll order participants by:\n * 1. dominant speaker (speaker with the loudest audio level)\n * 2. local participant\n * 3. other speakers that are recently active\n * 4. participants with video on\n * 5. by joinedAt\n */\nexport function sortParticipants(\n participants: Participant[],\n localParticipant?: LocalParticipant\n) {\n participants.sort((a, b) => {\n // loudest speaker first\n if (a.isSpeaking && b.isSpeaking) {\n return b.audioLevel - a.audioLevel;\n }\n\n // speaker goes first\n if (a.isSpeaking !== b.isSpeaking) {\n if (a.isSpeaking) {\n return -1;\n } else {\n return 1;\n }\n }\n\n // last active speaker first\n if (a.lastSpokeAt !== b.lastSpokeAt) {\n const aLast = a.lastSpokeAt?.getTime() ?? 0;\n const bLast = b.lastSpokeAt?.getTime() ?? 0;\n return bLast - aLast;\n }\n\n // video on\n const aVideo = a.videoTrackPublications.size > 0;\n const bVideo = b.videoTrackPublications.size > 0;\n if (aVideo !== bVideo) {\n if (aVideo) {\n return -1;\n } else {\n return 1;\n }\n }\n\n // joinedAt\n return (a.joinedAt?.getTime() ?? 0) - (b.joinedAt?.getTime() ?? 0);\n });\n\n if (localParticipant) {\n const localIdx = participants.indexOf(localParticipant);\n if (localIdx >= 0) {\n participants.splice(localIdx, 1);\n if (participants.length > 0) {\n participants.splice(1, 0, localParticipant);\n } else {\n participants.push(localParticipant);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["_livekitClient","require","_react","useRoom","room","options","error","useState","participants","setParticipants","audioTracks","setAudioTracks","sortFunc","sortParticipants","useEffect","onParticipantsChanged","remotes","Array","from","remoteParticipants","values","newParticipants","localParticipant","push","onSubscribedTrackChanged","track","kind","Track","Kind","Audio","tracks","forEach","p","audioTrackPublications","pub","audioTrack","onConnectionStateChanged","state","ConnectionState","Connected","once","RoomEvent","Disconnected","off","ParticipantConnected","ParticipantDisconnected","ActiveSpeakersChanged","TrackSubscribed","TrackUnsubscribed","LocalTrackPublished","LocalTrackUnpublished","AudioPlaybackStatusChanged","ConnectionStateChanged","on","Reconnected","disconnect","sort","a","b","_a$joinedAt","_b$joinedAt","isSpeaking","audioLevel","lastSpokeAt","_a$lastSpokeAt","_b$lastSpokeAt","aLast","getTime","bLast","aVideo","videoTrackPublications","size","bVideo","joinedAt","localIdx","indexOf","splice","length"],"sources":["useRoom.ts"],"sourcesContent":["import {\n type AudioTrack,\n ConnectionState,\n LocalParticipant,\n Participant,\n RemoteTrack,\n Room,\n RoomEvent,\n Track,\n} from 'livekit-client';\nimport { useEffect, useState } from 'react';\n\nexport interface RoomState {\n room?: Room;\n /* all participants in the room, including the local participant. */\n participants: Participant[];\n /* all subscribed audio tracks in the room, not including local participant. */\n audioTracks: AudioTrack[];\n error?: Error;\n}\n\nexport interface RoomOptions {\n sortParticipants?: (participants: Participant[]) => void;\n}\n\n/** @deprecated wrap your components in a <LiveKitRoom> component instead and use more granular hooks to track state you're interested in */\nexport function useRoom(room: Room, options?: RoomOptions): RoomState {\n const [error] = useState<Error>();\n const [participants, setParticipants] = useState<Participant[]>([]);\n const [audioTracks, setAudioTracks] = useState<AudioTrack[]>([]);\n\n const sortFunc = options?.sortParticipants ?? sortParticipants;\n\n useEffect(() => {\n const onParticipantsChanged = () => {\n const remotes = Array.from(room.remoteParticipants.values());\n const newParticipants: Participant[] = [room.localParticipant];\n newParticipants.push(...remotes);\n sortFunc(newParticipants, room.localParticipant);\n setParticipants(newParticipants);\n };\n const onSubscribedTrackChanged = (track?: RemoteTrack) => {\n // ordering may have changed, re-sort\n onParticipantsChanged();\n if (track && track.kind !== Track.Kind.Audio) {\n return;\n }\n const tracks: AudioTrack[] = [];\n room.remoteParticipants.forEach((p) => {\n p.audioTrackPublications.forEach((pub) => {\n if (pub.audioTrack) {\n tracks.push(pub.audioTrack);\n }\n });\n });\n setAudioTracks(tracks);\n };\n\n const onConnectionStateChanged = (state: ConnectionState) => {\n if (state === ConnectionState.Connected) {\n onParticipantsChanged();\n }\n };\n\n room.once(RoomEvent.Disconnected, () => {\n room\n .off(RoomEvent.ParticipantConnected, onParticipantsChanged)\n .off(RoomEvent.ParticipantDisconnected, onParticipantsChanged)\n .off(RoomEvent.ActiveSpeakersChanged, onParticipantsChanged)\n .off(RoomEvent.TrackSubscribed, onSubscribedTrackChanged)\n .off(RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged)\n .off(RoomEvent.LocalTrackPublished, onParticipantsChanged)\n .off(RoomEvent.LocalTrackUnpublished, onParticipantsChanged)\n .off(RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged)\n .off(RoomEvent.ConnectionStateChanged, onConnectionStateChanged);\n });\n room\n .on(RoomEvent.ConnectionStateChanged, onConnectionStateChanged)\n .on(RoomEvent.Reconnected, onParticipantsChanged)\n .on(RoomEvent.ParticipantConnected, onParticipantsChanged)\n .on(RoomEvent.ParticipantDisconnected, onParticipantsChanged)\n .on(RoomEvent.ActiveSpeakersChanged, onParticipantsChanged)\n .on(RoomEvent.TrackSubscribed, onSubscribedTrackChanged)\n .on(RoomEvent.TrackUnsubscribed, onSubscribedTrackChanged)\n .on(RoomEvent.LocalTrackPublished, onParticipantsChanged)\n .on(RoomEvent.LocalTrackUnpublished, onParticipantsChanged)\n // trigger a state change by re-sorting participants\n .on(RoomEvent.AudioPlaybackStatusChanged, onParticipantsChanged);\n\n onSubscribedTrackChanged();\n\n return () => {\n room.disconnect();\n };\n }, [room, sortFunc]);\n\n return {\n error,\n participants,\n audioTracks,\n };\n}\n\n/**\n * Default sort for participants, it'll order participants by:\n * 1. dominant speaker (speaker with the loudest audio level)\n * 2. local participant\n * 3. other speakers that are recently active\n * 4. participants with video on\n * 5. by joinedAt\n */\nexport function sortParticipants(\n participants: Participant[],\n localParticipant?: LocalParticipant\n) {\n participants.sort((a, b) => {\n // loudest speaker first\n if (a.isSpeaking && b.isSpeaking) {\n return b.audioLevel - a.audioLevel;\n }\n\n // speaker goes first\n if (a.isSpeaking !== b.isSpeaking) {\n if (a.isSpeaking) {\n return -1;\n } else {\n return 1;\n }\n }\n\n // last active speaker first\n if (a.lastSpokeAt !== b.lastSpokeAt) {\n const aLast = a.lastSpokeAt?.getTime() ?? 0;\n const bLast = b.lastSpokeAt?.getTime() ?? 0;\n return bLast - aLast;\n }\n\n // video on\n const aVideo = a.videoTrackPublications.size > 0;\n const bVideo = b.videoTrackPublications.size > 0;\n if (aVideo !== bVideo) {\n if (aVideo) {\n return -1;\n } else {\n return 1;\n }\n }\n\n // joinedAt\n return (a.joinedAt?.getTime() ?? 0) - (b.joinedAt?.getTime() ?? 0);\n });\n\n if (localParticipant) {\n const localIdx = participants.indexOf(localParticipant);\n if (localIdx >= 0) {\n participants.splice(localIdx, 1);\n if (participants.length > 0) {\n participants.splice(1, 0, localParticipant);\n } else {\n participants.push(localParticipant);\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAUA,IAAAC,MAAA,GAAAD,OAAA;AAeA;AACO,SAASE,OAAOA,CAACC,IAAU,EAAEC,OAAqB,EAAa;EACpE,MAAM,CAACC,KAAK,CAAC,GAAG,IAAAC,eAAQ,EAAQ,CAAC;EACjC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAgB,EAAE,CAAC;EACnE,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAJ,eAAQ,EAAe,EAAE,CAAC;EAEhE,MAAMK,QAAQ,GAAG,CAAAP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,gBAAgB,KAAIA,gBAAgB;EAE9D,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;MAClC,MAAMC,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACd,IAAI,CAACe,kBAAkB,CAACC,MAAM,CAAC,CAAC,CAAC;MAC5D,MAAMC,eAA8B,GAAG,CAACjB,IAAI,CAACkB,gBAAgB,CAAC;MAC9DD,eAAe,CAACE,IAAI,CAAC,GAAGP,OAAO,CAAC;MAChCJ,QAAQ,CAACS,eAAe,EAAEjB,IAAI,CAACkB,gBAAgB,CAAC;MAChDb,eAAe,CAACY,eAAe,CAAC;IAClC,CAAC;IACD,MAAMG,wBAAwB,GAAIC,KAAmB,IAAK;MACxD;MACAV,qBAAqB,CAAC,CAAC;MACvB,IAAIU,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAKC,oBAAK,CAACC,IAAI,CAACC,KAAK,EAAE;QAC5C;MACF;MACA,MAAMC,MAAoB,GAAG,EAAE;MAC/B1B,IAAI,CAACe,kBAAkB,CAACY,OAAO,CAAEC,CAAC,IAAK;QACrCA,CAAC,CAACC,sBAAsB,CAACF,OAAO,CAAEG,GAAG,IAAK;UACxC,IAAIA,GAAG,CAACC,UAAU,EAAE;YAClBL,MAAM,CAACP,IAAI,CAACW,GAAG,CAACC,UAAU,CAAC;UAC7B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MACFxB,cAAc,CAACmB,MAAM,CAAC;IACxB,CAAC;IAED,MAAMM,wBAAwB,GAAIC,KAAsB,IAAK;MAC3D,IAAIA,KAAK,KAAKC,8BAAe,CAACC,SAAS,EAAE;QACvCxB,qBAAqB,CAAC,CAAC;MACzB;IACF,CAAC;IAEDX,IAAI,CAACoC,IAAI,CAACC,wBAAS,CAACC,YAAY,EAAE,MAAM;MACtCtC,IAAI,CACDuC,GAAG,CAACF,wBAAS,CAACG,oBAAoB,EAAE7B,qBAAqB,CAAC,CAC1D4B,GAAG,CAACF,wBAAS,CAACI,uBAAuB,EAAE9B,qBAAqB,CAAC,CAC7D4B,GAAG,CAACF,wBAAS,CAACK,qBAAqB,EAAE/B,qBAAqB,CAAC,CAC3D4B,GAAG,CAACF,wBAAS,CAACM,eAAe,EAAEvB,wBAAwB,CAAC,CACxDmB,GAAG,CAACF,wBAAS,CAACO,iBAAiB,EAAExB,wBAAwB,CAAC,CAC1DmB,GAAG,CAACF,wBAAS,CAACQ,mBAAmB,EAAElC,qBAAqB,CAAC,CACzD4B,GAAG,CAACF,wBAAS,CAACS,qBAAqB,EAAEnC,qBAAqB,CAAC,CAC3D4B,GAAG,CAACF,wBAAS,CAACU,0BAA0B,EAAEpC,qBAAqB,CAAC,CAChE4B,GAAG,CAACF,wBAAS,CAACW,sBAAsB,EAAEhB,wBAAwB,CAAC;IACpE,CAAC,CAAC;IACFhC,IAAI,CACDiD,EAAE,CAACZ,wBAAS,CAACW,sBAAsB,EAAEhB,wBAAwB,CAAC,CAC9DiB,EAAE,CAACZ,wBAAS,CAACa,WAAW,EAAEvC,qBAAqB,CAAC,CAChDsC,EAAE,CAACZ,wBAAS,CAACG,oBAAoB,EAAE7B,qBAAqB,CAAC,CACzDsC,EAAE,CAACZ,wBAAS,CAACI,uBAAuB,EAAE9B,qBAAqB,CAAC,CAC5DsC,EAAE,CAACZ,wBAAS,CAACK,qBAAqB,EAAE/B,qBAAqB,CAAC,CAC1DsC,EAAE,CAACZ,wBAAS,CAACM,eAAe,EAAEvB,wBAAwB,CAAC,CACvD6B,EAAE,CAACZ,wBAAS,CAACO,iBAAiB,EAAExB,wBAAwB,CAAC,CACzD6B,EAAE,CAACZ,wBAAS,CAACQ,mBAAmB,EAAElC,qBAAqB,CAAC,CACxDsC,EAAE,CAACZ,wBAAS,CAACS,qBAAqB,EAAEnC,qBAAqB;IAC1D;IAAA,CACCsC,EAAE,CAACZ,wBAAS,CAACU,0BAA0B,EAAEpC,qBAAqB,CAAC;IAElES,wBAAwB,CAAC,CAAC;IAE1B,OAAO,MAAM;MACXpB,IAAI,CAACmD,UAAU,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,CAACnD,IAAI,EAAEQ,QAAQ,CAAC,CAAC;EAEpB,OAAO;IACLN,KAAK;IACLE,YAAY;IACZE;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,gBAAgBA,CAC9BL,YAA2B,EAC3Bc,gBAAmC,EACnC;EACAd,YAAY,CAACgD,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IAAA,IAAAC,WAAA,EAAAC,WAAA;IAC1B;IACA,IAAIH,CAAC,CAACI,UAAU,IAAIH,CAAC,CAACG,UAAU,EAAE;MAChC,OAAOH,CAAC,CAACI,UAAU,GAAGL,CAAC,CAACK,UAAU;IACpC;;IAEA;IACA,IAAIL,CAAC,CAACI,UAAU,KAAKH,CAAC,CAACG,UAAU,EAAE;MACjC,IAAIJ,CAAC,CAACI,UAAU,EAAE;QAChB,OAAO,CAAC,CAAC;MACX,CAAC,MAAM;QACL,OAAO,CAAC;MACV;IACF;;IAEA;IACA,IAAIJ,CAAC,CAACM,WAAW,KAAKL,CAAC,CAACK,WAAW,EAAE;MAAA,IAAAC,cAAA,EAAAC,cAAA;MACnC,MAAMC,KAAK,GAAG,EAAAF,cAAA,GAAAP,CAAC,CAACM,WAAW,cAAAC,cAAA,uBAAbA,cAAA,CAAeG,OAAO,CAAC,CAAC,KAAI,CAAC;MAC3C,MAAMC,KAAK,GAAG,EAAAH,cAAA,GAAAP,CAAC,CAACK,WAAW,cAAAE,cAAA,uBAAbA,cAAA,CAAeE,OAAO,CAAC,CAAC,KAAI,CAAC;MAC3C,OAAOC,KAAK,GAAGF,KAAK;IACtB;;IAEA;IACA,MAAMG,MAAM,GAAGZ,CAAC,CAACa,sBAAsB,CAACC,IAAI,GAAG,CAAC;IAChD,MAAMC,MAAM,GAAGd,CAAC,CAACY,sBAAsB,CAACC,IAAI,GAAG,CAAC;IAChD,IAAIF,MAAM,KAAKG,MAAM,EAAE;MACrB,IAAIH,MAAM,EAAE;QACV,OAAO,CAAC,CAAC;MACX,CAAC,MAAM;QACL,OAAO,CAAC;MACV;IACF;;IAEA;IACA,OAAO,CAAC,EAAAV,WAAA,GAAAF,CAAC,CAACgB,QAAQ,cAAAd,WAAA,uBAAVA,WAAA,CAAYQ,OAAO,CAAC,CAAC,KAAI,CAAC,KAAK,EAAAP,WAAA,GAAAF,CAAC,CAACe,QAAQ,cAAAb,WAAA,uBAAVA,WAAA,CAAYO,OAAO,CAAC,CAAC,KAAI,CAAC,CAAC;EACpE,CAAC,CAAC;EAEF,IAAI7C,gBAAgB,EAAE;IACpB,MAAMoD,QAAQ,GAAGlE,YAAY,CAACmE,OAAO,CAACrD,gBAAgB,CAAC;IACvD,IAAIoD,QAAQ,IAAI,CAAC,EAAE;MACjBlE,YAAY,CAACoE,MAAM,CAACF,QAAQ,EAAE,CAAC,CAAC;MAChC,IAAIlE,YAAY,CAACqE,MAAM,GAAG,CAAC,EAAE;QAC3BrE,YAAY,CAACoE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAEtD,gBAAgB,CAAC;MAC7C,CAAC,MAAM;QACLd,YAAY,CAACe,IAAI,CAACD,gBAAgB,CAAC;MACrC;IACF;EACF;AACF","ignoreList":[]}
|