jssz-meeting-component 1.2.8 → 1.2.10

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/dist/index.esm.js CHANGED
@@ -8820,8 +8820,8 @@ var I$1 = ze$1(() => {
8820
8820
  Ef();
8821
8821
  });
8822
8822
  function tw() {
8823
- if (Af) return On;
8824
- Af = true, On.byteLength = a2, On.toByteArray = f2, On.fromByteArray = m2;
8823
+ if (Af) return On$1;
8824
+ Af = true, On$1.byteLength = a2, On$1.toByteArray = f2, On$1.fromByteArray = m2;
8825
8825
  for (var t2 = [], e2 = [], r2 = typeof Uint8Array < "u" ? Uint8Array : Array, n2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i2 = 0, s2 = n2.length; i2 < s2; ++i2) t2[i2] = n2[i2], e2[n2.charCodeAt(i2)] = i2;
8826
8826
  e2[45] = 62, e2[95] = 63;
8827
8827
  function o2(g2) {
@@ -8855,7 +8855,7 @@ function tw() {
8855
8855
  for (var P2, S2 = g2.length, b2 = S2 % 3, w2 = [], _2 = 16383, R2 = 0, T2 = S2 - b2; R2 < T2; R2 += _2) w2.push(d2(g2, R2, R2 + _2 > T2 ? T2 : R2 + _2));
8856
8856
  return b2 === 1 ? (P2 = g2[S2 - 1], w2.push(t2[P2 >> 2] + t2[P2 << 4 & 63] + "==")) : b2 === 2 && (P2 = (g2[S2 - 2] << 8) + g2[S2 - 1], w2.push(t2[P2 >> 10] + t2[P2 >> 4 & 63] + t2[P2 << 2 & 63] + "=")), w2.join("");
8857
8857
  }
8858
- return On;
8858
+ return On$1;
8859
8859
  }
8860
8860
  function rw() {
8861
8861
  if (If) return ki;
@@ -9635,11 +9635,11 @@ function Tf() {
9635
9635
  }
9636
9636
  return mr$1;
9637
9637
  }
9638
- var On, Af, ki, If, mr$1, xf, Pf = ze$1(() => {
9638
+ var On$1, Af, ki, If, mr$1, xf, Pf = ze$1(() => {
9639
9639
  A$1();
9640
9640
  x$1();
9641
9641
  I$1();
9642
- On = {}, Af = false;
9642
+ On$1 = {}, Af = false;
9643
9643
  ki = {}, If = false;
9644
9644
  mr$1 = {}, xf = false;
9645
9645
  });
@@ -9935,7 +9935,7 @@ var Yr$1 = j$1((cO, Mi) => {
9935
9935
  Mi.exports.default = Mf;
9936
9936
  });
9937
9937
  var Zt$1 = {};
9938
- Kr$1(Zt$1, { EventEmitter: () => gw, default: () => Rn, defaultMaxListeners: () => bw, init: () => ww, listenerCount: () => mw, on: () => _w, once: () => vw });
9938
+ Kr$1(Zt$1, { EventEmitter: () => gw, default: () => Rn$1, defaultMaxListeners: () => bw, init: () => ww, listenerCount: () => mw, on: () => _w, once: () => vw });
9939
9939
  function yw() {
9940
9940
  if (Nf) return Ni;
9941
9941
  Nf = true;
@@ -10107,14 +10107,14 @@ function yw() {
10107
10107
  }
10108
10108
  return Ni;
10109
10109
  }
10110
- var Ni, Nf, Rn, gw, bw, ww, mw, _w, vw, er$1 = ze$1(() => {
10110
+ var Ni, Nf, Rn$1, gw, bw, ww, mw, _w, vw, er$1 = ze$1(() => {
10111
10111
  A$1();
10112
10112
  x$1();
10113
10113
  I$1();
10114
10114
  Ni = {}, Nf = false;
10115
- Rn = yw();
10116
- Rn.once;
10117
- Rn.once = function(t2, e2) {
10115
+ Rn$1 = yw();
10116
+ Rn$1.once;
10117
+ Rn$1.once = function(t2, e2) {
10118
10118
  return new Promise((r2, n2) => {
10119
10119
  function i2(...o2) {
10120
10120
  s2 !== void 0 && t2.removeListener("error", s2), r2(o2);
@@ -10125,7 +10125,7 @@ var Ni, Nf, Rn, gw, bw, ww, mw, _w, vw, er$1 = ze$1(() => {
10125
10125
  }, t2.once("error", s2)), t2.once(e2, i2);
10126
10126
  });
10127
10127
  };
10128
- Rn.on = function(t2, e2) {
10128
+ Rn$1.on = function(t2, e2) {
10129
10129
  let r2 = [], n2 = [], i2 = null, s2 = false, o2 = { async next() {
10130
10130
  let f2 = r2.shift();
10131
10131
  if (f2) return createIterResult(f2, false);
@@ -10154,7 +10154,7 @@ var Ni, Nf, Rn, gw, bw, ww, mw, _w, vw, er$1 = ze$1(() => {
10154
10154
  h2 ? h2.reject(f2) : i2 = f2, o2.return();
10155
10155
  }
10156
10156
  };
10157
- ({ EventEmitter: gw, defaultMaxListeners: bw, init: ww, listenerCount: mw, on: _w, once: vw } = Rn);
10157
+ ({ EventEmitter: gw, defaultMaxListeners: bw, init: ww, listenerCount: mw, on: _w, once: vw } = Rn$1);
10158
10158
  });
10159
10159
  var $e$1 = j$1((OO, ys) => {
10160
10160
  A$1();
@@ -10992,8 +10992,8 @@ var Qh = j$1((Kh) => {
10992
10992
  if (typeof e2 != "string" && (Ls.isEncoding === zh || !zh(t2))) throw new Error("Unknown encoding: " + t2);
10993
10993
  return e2 || t2;
10994
10994
  }
10995
- Kh.StringDecoder = Bn;
10996
- function Bn(t2) {
10995
+ Kh.StringDecoder = Bn2;
10996
+ function Bn2(t2) {
10997
10997
  this.encoding = O_(t2);
10998
10998
  var e2;
10999
10999
  switch (this.encoding) {
@@ -11012,7 +11012,7 @@ var Qh = j$1((Kh) => {
11012
11012
  }
11013
11013
  this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Ls.allocUnsafe(e2);
11014
11014
  }
11015
- Bn.prototype.write = function(t2) {
11015
+ Bn2.prototype.write = function(t2) {
11016
11016
  if (t2.length === 0) return "";
11017
11017
  var e2, r2;
11018
11018
  if (this.lastNeed) {
@@ -11021,9 +11021,9 @@ var Qh = j$1((Kh) => {
11021
11021
  } else r2 = 0;
11022
11022
  return r2 < t2.length ? e2 ? e2 + this.text(t2, r2) : this.text(t2, r2) : e2 || "";
11023
11023
  };
11024
- Bn.prototype.end = M_;
11025
- Bn.prototype.text = B_;
11026
- Bn.prototype.fillLast = function(t2) {
11024
+ Bn2.prototype.end = M_;
11025
+ Bn2.prototype.text = B_;
11026
+ Bn2.prototype.fillLast = function(t2) {
11027
11027
  if (this.lastNeed <= t2.length) return t2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
11028
11028
  t2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t2.length), this.lastNeed -= t2.length;
11029
11029
  };
@@ -11538,11 +11538,11 @@ var ro = j$1((aC, Od) => {
11538
11538
  Ed(Ie2, qn);
11539
11539
  function Qs() {
11540
11540
  }
11541
- var sn = Uv("kOnFinished");
11541
+ var sn2 = Uv("kOnFinished");
11542
11542
  function Un(t2, e2, r2) {
11543
11543
  typeof r2 != "boolean" && (r2 = e2 instanceof St$1()), this.objectMode = !!(t2 && t2.objectMode), r2 && (this.objectMode = this.objectMode || !!(t2 && t2.writableObjectMode)), this.highWaterMark = t2 ? Wv(this, t2, "writableHighWaterMark", r2) : $v(false), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false;
11544
11544
  let n2 = !!(t2 && t2.decodeStrings === false);
11545
- this.decodeStrings = !n2, this.defaultEncoding = t2 && t2.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = Jv.bind(void 0, e2), this.writecb = null, this.writelen = 0, this.afterWriteTickInfo = null, eo(this), this.pendingcb = 0, this.constructed = true, this.prefinished = false, this.errorEmitted = false, this.emitClose = !t2 || t2.emitClose !== false, this.autoDestroy = !t2 || t2.autoDestroy !== false, this.errored = null, this.closed = false, this.closeEmitted = false, this[sn] = [];
11545
+ this.decodeStrings = !n2, this.defaultEncoding = t2 && t2.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = Jv.bind(void 0, e2), this.writecb = null, this.writelen = 0, this.afterWriteTickInfo = null, eo(this), this.pendingcb = 0, this.constructed = true, this.prefinished = false, this.errorEmitted = false, this.emitClose = !t2 || t2.emitClose !== false, this.autoDestroy = !t2 || t2.autoDestroy !== false, this.errored = null, this.closed = false, this.closeEmitted = false, this[sn2] = [];
11546
11546
  }
11547
11547
  function eo(t2) {
11548
11548
  t2.buffered = [], t2.bufferedIndex = 0, t2.allBuffers = true, t2.allNoop = true;
@@ -11631,7 +11631,7 @@ var ro = j$1((aC, Od) => {
11631
11631
  let { chunk: s2, callback: o2 } = t2.buffered[i2], a2 = t2.objectMode ? 1 : s2.length;
11632
11632
  t2.length -= a2, o2((e2 = t2.errored) !== null && e2 !== void 0 ? e2 : new Ln("write"));
11633
11633
  }
11634
- let r2 = t2[sn].splice(0);
11634
+ let r2 = t2[sn2].splice(0);
11635
11635
  for (let i2 = 0; i2 < r2.length; i2++) {
11636
11636
  var n2;
11637
11637
  r2[i2]((n2 = t2.errored) !== null && n2 !== void 0 ? n2 : new Ln("end"));
@@ -11673,7 +11673,7 @@ var ro = j$1((aC, Od) => {
11673
11673
  let s2 = xd(this, t2, e2);
11674
11674
  s2 instanceof Nv && (i2 = s2);
11675
11675
  }
11676
- return n2.corked && (n2.corked = 1, this.uncork()), i2 || (!n2.errored && !n2.ending ? (n2.ending = true, Xs(this, n2, true), n2.ended = true) : n2.finished ? i2 = new zv("end") : n2.destroyed && (i2 = new Ln("end"))), typeof r2 == "function" && (i2 || n2.finished ? Tr2.nextTick(r2, i2) : n2[sn].push(r2)), this;
11676
+ return n2.corked && (n2.corked = 1, this.uncork()), i2 || (!n2.errored && !n2.ending ? (n2.ending = true, Xs(this, n2, true), n2.ended = true) : n2.finished ? i2 = new zv("end") : n2.destroyed && (i2 = new Ln("end"))), typeof r2 == "function" && (i2 || n2.finished ? Tr2.nextTick(r2, i2) : n2[sn2].push(r2)), this;
11677
11677
  };
11678
11678
  function Zi(t2) {
11679
11679
  return t2.ending && !t2.destroyed && t2.constructed && t2.length === 0 && !t2.errored && t2.buffered.length === 0 && !t2.finished && !t2.writing && !t2.errorEmitted && !t2.closeEmitted;
@@ -11686,7 +11686,7 @@ var ro = j$1((aC, Od) => {
11686
11686
  return;
11687
11687
  }
11688
11688
  if (r2 = true, e2.pendingcb--, i2) {
11689
- let s2 = e2[sn].splice(0);
11689
+ let s2 = e2[sn2].splice(0);
11690
11690
  for (let o2 = 0; o2 < s2.length; o2++) s2[o2](i2);
11691
11691
  on2(t2, i2, e2.sync);
11692
11692
  } else Zi(e2) && (e2.prefinished = true, t2.emit("prefinish"), e2.pendingcb++, Tr2.nextTick(Ks, t2, e2));
@@ -11709,7 +11709,7 @@ var ro = j$1((aC, Od) => {
11709
11709
  }
11710
11710
  function Ks(t2, e2) {
11711
11711
  e2.pendingcb--, e2.finished = true;
11712
- let r2 = e2[sn].splice(0);
11712
+ let r2 = e2[sn2].splice(0);
11713
11713
  for (let n2 = 0; n2 < r2.length; n2++) r2[n2]();
11714
11714
  if (t2.emit("finish"), e2.autoDestroy) {
11715
11715
  let n2 = t2._readableState;
@@ -11752,7 +11752,7 @@ var ro = j$1((aC, Od) => {
11752
11752
  var t0 = to.destroy;
11753
11753
  Ie2.prototype.destroy = function(t2, e2) {
11754
11754
  let r2 = this._writableState;
11755
- return !r2.destroyed && (r2.bufferedIndex < r2.buffered.length || r2[sn].length) && Tr2.nextTick(Ys, r2), t0.call(this, t2, e2), this;
11755
+ return !r2.destroyed && (r2.bufferedIndex < r2.buffered.length || r2[sn2].length) && Tr2.nextTick(Ys, r2), t0.call(this, t2, e2), this;
11756
11756
  };
11757
11757
  Ie2.prototype._undestroy = to.undestroy;
11758
11758
  Ie2.prototype._destroy = function(t2, e2) {
@@ -11776,7 +11776,7 @@ var Hd = j$1((bC, $d) => {
11776
11776
  A$1();
11777
11777
  x$1();
11778
11778
  I$1();
11779
- var Zs = tr$1(), r0 = (ke(), me$1(qe$1)), { isReadable: n0, isWritable: i0, isIterable: Rd, isNodeStream: o0, isReadableNodeStream: kd, isWritableNodeStream: Cd, isDuplexNodeStream: s0, isReadableStream: Bd, isWritableStream: Md } = mt$1(), Nd = Ut$1(), { AbortError: Fd, codes: { ERR_INVALID_ARG_TYPE: a0, ERR_INVALID_RETURN_VALUE: qd } } = De$1(), { destroyer: un } = Ar$1(), u0 = St$1(), Wd = Nn(), l0 = ro(), { createDeferredPromise: Ld } = $e$1(), Ud = Us(), Dd = globalThis.Blob || r0.Blob, c0 = typeof Dd < "u" ? function(e2) {
11779
+ var Zs = tr$1(), r0 = (ke(), me$1(qe$1)), { isReadable: n0, isWritable: i0, isIterable: Rd, isNodeStream: o0, isReadableNodeStream: kd, isWritableNodeStream: Cd, isDuplexNodeStream: s0, isReadableStream: Bd, isWritableStream: Md } = mt$1(), Nd = Ut$1(), { AbortError: Fd, codes: { ERR_INVALID_ARG_TYPE: a0, ERR_INVALID_RETURN_VALUE: qd } } = De$1(), { destroyer: un2 } = Ar$1(), u0 = St$1(), Wd = Nn(), l0 = ro(), { createDeferredPromise: Ld } = $e$1(), Ud = Us(), Dd = globalThis.Blob || r0.Blob, c0 = typeof Dd < "u" ? function(e2) {
11780
11780
  return e2 instanceof Dd;
11781
11781
  } : function(e2) {
11782
11782
  return false;
@@ -11787,11 +11787,11 @@ var Hd = j$1((bC, $d) => {
11787
11787
  };
11788
11788
  $d.exports = function t2(e2, r2) {
11789
11789
  if (s0(e2)) return e2;
11790
- if (kd(e2)) return an({ readable: e2 });
11791
- if (Cd(e2)) return an({ writable: e2 });
11792
- if (o0(e2)) return an({ writable: false, readable: false });
11793
- if (Bd(e2)) return an({ readable: Wd.fromWeb(e2) });
11794
- if (Md(e2)) return an({ writable: l0.fromWeb(e2) });
11790
+ if (kd(e2)) return an2({ readable: e2 });
11791
+ if (Cd(e2)) return an2({ writable: e2 });
11792
+ if (o0(e2)) return an2({ writable: false, readable: false });
11793
+ if (Bd(e2)) return an2({ readable: Wd.fromWeb(e2) });
11794
+ if (Md(e2)) return an2({ writable: l0.fromWeb(e2) });
11795
11795
  if (typeof e2 == "function") {
11796
11796
  let { value: i2, write: s2, final: o2, destroy: a2 } = h0(e2);
11797
11797
  if (Rd(i2)) return Ud(ir2, i2, { objectMode: true, write: s2, final: o2, destroy: a2 });
@@ -11800,7 +11800,7 @@ var Hd = j$1((bC, $d) => {
11800
11800
  let f2, h2 = jd(c2, i2, (d2) => {
11801
11801
  if (d2 != null) throw new qd("nully", "body", d2);
11802
11802
  }, (d2) => {
11803
- un(f2, d2);
11803
+ un2(f2, d2);
11804
11804
  });
11805
11805
  return f2 = new ir2({ objectMode: true, readable: false, write: s2, final(d2) {
11806
11806
  o2(async () => {
@@ -11819,7 +11819,7 @@ var Hd = j$1((bC, $d) => {
11819
11819
  if (Bd(e2 == null ? void 0 : e2.readable) && Md(e2 == null ? void 0 : e2.writable)) return ir2.fromWeb(e2);
11820
11820
  if (typeof (e2 == null ? void 0 : e2.writable) == "object" || typeof (e2 == null ? void 0 : e2.readable) == "object") {
11821
11821
  let i2 = e2 != null && e2.readable ? kd(e2 == null ? void 0 : e2.readable) ? e2 == null ? void 0 : e2.readable : t2(e2.readable) : void 0, s2 = e2 != null && e2.writable ? Cd(e2 == null ? void 0 : e2.writable) ? e2 == null ? void 0 : e2.writable : t2(e2.writable) : void 0;
11822
- return an({ readable: i2, writable: s2 });
11822
+ return an2({ readable: i2, writable: s2 });
11823
11823
  }
11824
11824
  let n2 = e2 == null ? void 0 : e2.then;
11825
11825
  if (typeof n2 == "function") {
@@ -11827,7 +11827,7 @@ var Hd = j$1((bC, $d) => {
11827
11827
  return jd(n2, e2, (s2) => {
11828
11828
  s2 != null && i2.push(s2), i2.push(null);
11829
11829
  }, (s2) => {
11830
- un(i2, s2);
11830
+ un2(i2, s2);
11831
11831
  }), i2 = new ir2({ objectMode: true, writable: false, read() {
11832
11832
  } });
11833
11833
  }
@@ -11854,14 +11854,14 @@ var Hd = j$1((bC, $d) => {
11854
11854
  n2.abort(), a2(o2);
11855
11855
  } };
11856
11856
  }
11857
- function an(t2) {
11857
+ function an2(t2) {
11858
11858
  let e2 = t2.readable && typeof t2.readable.read != "function" ? Wd.wrap(t2.readable) : t2.readable, r2 = t2.writable, n2 = !!n0(e2), i2 = !!i0(r2), s2, o2, a2, c2, f2;
11859
11859
  function h2(d2) {
11860
11860
  let m2 = c2;
11861
11861
  c2 = null, m2 ? m2(d2) : d2 && f2.destroy(d2);
11862
11862
  }
11863
11863
  return f2 = new ir2({ readableObjectMode: !!(e2 != null && e2.readableObjectMode), writableObjectMode: !!(r2 != null && r2.writableObjectMode), readable: n2, writable: i2 }), i2 && (Nd(r2, (d2) => {
11864
- i2 = false, d2 && un(e2, d2), h2(d2);
11864
+ i2 = false, d2 && un2(e2, d2), h2(d2);
11865
11865
  }), f2._write = function(d2, m2, g2) {
11866
11866
  r2.write(d2, m2) ? g2() : s2 = g2;
11867
11867
  }, f2._final = function(d2) {
@@ -11877,7 +11877,7 @@ var Hd = j$1((bC, $d) => {
11877
11877
  o2 = null, d2();
11878
11878
  }
11879
11879
  })), n2 && (Nd(e2, (d2) => {
11880
- n2 = false, d2 && un(e2, d2), h2(d2);
11880
+ n2 = false, d2 && un2(e2, d2), h2(d2);
11881
11881
  }), e2.on("readable", function() {
11882
11882
  if (a2) {
11883
11883
  let d2 = a2;
@@ -11895,7 +11895,7 @@ var Hd = j$1((bC, $d) => {
11895
11895
  if (!f2.push(d2)) return;
11896
11896
  }
11897
11897
  }), f2._destroy = function(d2, m2) {
11898
- !d2 && c2 !== null && (d2 = new Fd()), a2 = null, s2 = null, o2 = null, c2 === null ? m2(d2) : (c2 = m2, un(r2, d2), un(e2, d2));
11898
+ !d2 && c2 !== null && (d2 = new Fd()), a2 = null, s2 = null, o2 = null, c2 === null ? m2(d2) : (c2 = m2, un2(r2, d2), un2(e2, d2));
11899
11899
  }, f2;
11900
11900
  }
11901
11901
  });
@@ -11992,15 +11992,15 @@ var aa = j$1((zC, Jd) => {
11992
11992
  x$1();
11993
11993
  I$1();
11994
11994
  var { ObjectSetPrototypeOf: Yd } = Ee$1();
11995
- Jd.exports = ln;
11995
+ Jd.exports = ln2;
11996
11996
  var sa = oa();
11997
- Yd(ln.prototype, sa.prototype);
11998
- Yd(ln, sa);
11999
- function ln(t2) {
12000
- if (!(this instanceof ln)) return new ln(t2);
11997
+ Yd(ln2.prototype, sa.prototype);
11998
+ Yd(ln2, sa);
11999
+ function ln2(t2) {
12000
+ if (!(this instanceof ln2)) return new ln2(t2);
12001
12001
  sa.call(this, t2);
12002
12002
  }
12003
- ln.prototype._transform = function(t2, e2, r2) {
12003
+ ln2.prototype._transform = function(t2, e2, r2) {
12004
12004
  r2(null, t2);
12005
12005
  };
12006
12006
  });
@@ -12008,7 +12008,7 @@ var so = j$1((nB, rp) => {
12008
12008
  A$1();
12009
12009
  x$1();
12010
12010
  I$1();
12011
- var jn = tr$1(), { ArrayIsArray: m0, Promise: _0, SymbolAsyncIterator: v0, SymbolDispose: S0 } = Ee$1(), oo = Ut$1(), { once: E0 } = $e$1(), A0 = Ar$1(), Xd = St$1(), { aggregateTwoErrors: I0, codes: { ERR_INVALID_ARG_TYPE: ga, ERR_INVALID_RETURN_VALUE: ua, ERR_MISSING_ARGS: x0, ERR_STREAM_DESTROYED: T0, ERR_STREAM_PREMATURE_CLOSE: P0 }, AbortError: O0 } = De$1(), { validateFunction: R0, validateAbortSignal: k0 } = Xr$1(), { isIterable: Pr2, isReadable: la, isReadableNodeStream: io, isNodeStream: Zd, isTransformStream: cn, isWebStream: C0, isReadableStream: ca, isReadableFinished: B0 } = mt$1(), M0 = globalThis.AbortController || Yr$1().AbortController, fa, ha, da;
12011
+ var jn = tr$1(), { ArrayIsArray: m0, Promise: _0, SymbolAsyncIterator: v0, SymbolDispose: S0 } = Ee$1(), oo = Ut$1(), { once: E0 } = $e$1(), A0 = Ar$1(), Xd = St$1(), { aggregateTwoErrors: I0, codes: { ERR_INVALID_ARG_TYPE: ga, ERR_INVALID_RETURN_VALUE: ua, ERR_MISSING_ARGS: x0, ERR_STREAM_DESTROYED: T0, ERR_STREAM_PREMATURE_CLOSE: P0 }, AbortError: O0 } = De$1(), { validateFunction: R0, validateAbortSignal: k0 } = Xr$1(), { isIterable: Pr2, isReadable: la, isReadableNodeStream: io, isNodeStream: Zd, isTransformStream: cn2, isWebStream: C0, isReadableStream: ca, isReadableFinished: B0 } = mt$1(), M0 = globalThis.AbortController || Yr$1().AbortController, fa, ha, da;
12012
12012
  function ep(t2, e2, r2) {
12013
12013
  let n2 = false;
12014
12014
  t2.on("close", () => {
@@ -12056,7 +12056,7 @@ var so = j$1((nB, rp) => {
12056
12056
  }
12057
12057
  }
12058
12058
  async function ya(t2, e2, r2, { end: n2 }) {
12059
- cn(e2) && (e2 = e2.writable);
12059
+ cn2(e2) && (e2 = e2.writable);
12060
12060
  let i2 = e2.getWriter();
12061
12061
  try {
12062
12062
  for await (let s2 of t2) await i2.ready, i2.write(s2).catch(() => {
@@ -12111,9 +12111,9 @@ var so = j$1((nB, rp) => {
12111
12111
  }
12112
12112
  if (R2 === 0) if (typeof T2 == "function") {
12113
12113
  if (S2 = T2({ signal: i2 }), !Pr2(S2)) throw new ua("Iterable, AsyncIterable or Stream", "source", S2);
12114
- } else Pr2(T2) || io(T2) || cn(T2) ? S2 = T2 : S2 = Xd.from(T2);
12114
+ } else Pr2(T2) || io(T2) || cn2(T2) ? S2 = T2 : S2 = Xd.from(T2);
12115
12115
  else if (typeof T2 == "function") {
12116
- if (cn(S2)) {
12116
+ if (cn2(S2)) {
12117
12117
  var b2;
12118
12118
  S2 = pa((b2 = S2) === null || b2 === void 0 ? void 0 : b2.readable);
12119
12119
  } else S2 = pa(S2);
@@ -12129,7 +12129,7 @@ var so = j$1((nB, rp) => {
12129
12129
  F2.destroy(H2), jn.nextTick(g2, H2);
12130
12130
  });
12131
12131
  else if (Pr2(S2, true)) m2++, no(S2, F2, g2, { end: v2 });
12132
- else if (ca(S2) || cn(S2)) {
12132
+ else if (ca(S2) || cn2(S2)) {
12133
12133
  let H2 = S2.readable || S2;
12134
12134
  m2++, no(H2, F2, g2, { end: v2 });
12135
12135
  } else throw new ua("AsyncIterable or Promise", "destination", S2);
@@ -12142,7 +12142,7 @@ var so = j$1((nB, rp) => {
12142
12142
  m2 += 2;
12143
12143
  let F2 = U0(S2, T2, g2, { end: v2 });
12144
12144
  la(T2) && M2 && o2.push(F2);
12145
- } else if (cn(S2) || ca(S2)) {
12145
+ } else if (cn2(S2) || ca(S2)) {
12146
12146
  let F2 = S2.readable || S2;
12147
12147
  m2++, no(F2, T2, g2, { end: v2 });
12148
12148
  } else if (Pr2(S2)) m2++, no(S2, T2, g2, { end: v2 });
@@ -12151,7 +12151,7 @@ var so = j$1((nB, rp) => {
12151
12151
  } else if (C0(T2)) {
12152
12152
  if (io(S2)) m2++, ya(pa(S2), T2, g2, { end: v2 });
12153
12153
  else if (ca(S2) || Pr2(S2)) m2++, ya(S2, T2, g2, { end: v2 });
12154
- else if (cn(S2)) m2++, ya(S2.readable, T2, g2, { end: v2 });
12154
+ else if (cn2(S2)) m2++, ya(S2.readable, T2, g2, { end: v2 });
12155
12155
  else throw new ga("val", ["Readable", "Iterable", "AsyncIterable", "ReadableStream", "TransformStream"], S2);
12156
12156
  S2 = T2;
12157
12157
  } else S2 = Xd.from(T2);
@@ -14298,7 +14298,7 @@ var Sy = j$1((_o) => {
14298
14298
  t2 && (t2 = false, _y("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", e2));
14299
14299
  };
14300
14300
  }
14301
- var NE = (t2) => !my.has(t2), lr2 = (t2) => t2 && t2 === Math.floor(t2) && t2 > 0 && isFinite(t2), vy = (t2) => lr2(t2) ? t2 <= Math.pow(2, 8) ? Uint8Array : t2 <= Math.pow(2, 16) ? Uint16Array : t2 <= Math.pow(2, 32) ? Uint32Array : t2 <= Number.MAX_SAFE_INTEGER ? bn2 : null : null, bn2 = class extends Array {
14301
+ var NE = (t2) => !my.has(t2), lr2 = (t2) => t2 && t2 === Math.floor(t2) && t2 > 0 && isFinite(t2), vy = (t2) => lr2(t2) ? t2 <= Math.pow(2, 8) ? Uint8Array : t2 <= Math.pow(2, 16) ? Uint16Array : t2 <= Math.pow(2, 32) ? Uint32Array : t2 <= Number.MAX_SAFE_INTEGER ? bn : null : null, bn = class extends Array {
14302
14302
  constructor(e2) {
14303
14303
  super(e2), this.fill(0);
14304
14304
  }
@@ -14654,7 +14654,7 @@ var Sy = j$1((_o) => {
14654
14654
  return __privateMethod(this, _t_instances, j_fn).call(this, "delete");
14655
14655
  }
14656
14656
  }, _u2 = new WeakMap(), _f2 = new WeakMap(), _y2 = new WeakMap(), _g2 = new WeakMap(), _R = new WeakMap(), _k = new WeakMap(), _i2 = new WeakMap(), _b26 = new WeakMap(), _n = new WeakMap(), _r2 = new WeakMap(), _e = new WeakMap(), _l2 = new WeakMap(), _h = new WeakMap(), _a26 = new WeakMap(), _o2 = new WeakMap(), _w2 = new WeakMap(), _s = new WeakMap(), _m = new WeakMap(), __ = new WeakMap(), _d2 = new WeakMap(), _v = new WeakMap(), _x2 = new WeakMap(), _c3 = new WeakMap(), _t_instances = new WeakSet(), N_fn = function() {
14657
- let e2 = new bn2(__privateGet(this, _u2)), r2 = new bn2(__privateGet(this, _u2));
14657
+ let e2 = new bn(__privateGet(this, _u2)), r2 = new bn(__privateGet(this, _u2));
14658
14658
  __privateSet(this, _d2, e2), __privateSet(this, __, r2), __privateSet(this, _q, (s2, o2, a2 = gn.now()) => {
14659
14659
  if (r2[s2] = o2 !== 0 ? a2 : 0, e2[s2] = o2, o2 !== 0 && this.ttlAutopurge) {
14660
14660
  let c2 = setTimeout(() => {
@@ -14694,7 +14694,7 @@ var Sy = j$1((_o) => {
14694
14694
  return !!a2 && !!o2 && (n2 || i2()) - o2 > a2;
14695
14695
  });
14696
14696
  }, _T = new WeakMap(), _I2 = new WeakMap(), _q = new WeakMap(), _p = new WeakMap(), F_fn = function() {
14697
- let e2 = new bn2(__privateGet(this, _u2));
14697
+ let e2 = new bn(__privateGet(this, _u2));
14698
14698
  __privateSet(this, _b26, 0), __privateSet(this, _m, e2), __privateSet(this, _P, (r2) => {
14699
14699
  __privateSet(this, _b26, __privateGet(this, _b26) - e2[r2]), e2[r2] = 0;
14700
14700
  }), __privateSet(this, _L, (r2, n2, i2, s2) => {
@@ -15499,12 +15499,12 @@ var Py = j$1((ko) => {
15499
15499
  }, n1 = nu;
15500
15500
  ko.default = n1;
15501
15501
  });
15502
- var Oy = j$1((wn2) => {
15502
+ var Oy = j$1((wn) => {
15503
15503
  A$1();
15504
15504
  x$1();
15505
15505
  I$1();
15506
- Object.defineProperty(wn2, "t", { value: true });
15507
- wn2.TreeNodeEnableIndex = wn2.TreeNode = void 0;
15506
+ Object.defineProperty(wn, "t", { value: true });
15507
+ wn.TreeNodeEnableIndex = wn.TreeNode = void 0;
15508
15508
  var Co = class {
15509
15509
  constructor(e2, r2) {
15510
15510
  this.ee = 1, this.u = void 0, this.l = void 0, this.U = void 0, this.W = void 0, this.tt = void 0, this.u = e2, this.l = r2;
@@ -15540,7 +15540,7 @@ var Oy = j$1((wn2) => {
15540
15540
  return e2.tt === this ? e2.tt = r2 : e2.U === this ? e2.U = r2 : e2.W = r2, r2.tt = e2, r2.W = this, this.tt = r2, this.U = n2, n2 && (n2.tt = this), r2;
15541
15541
  }
15542
15542
  };
15543
- wn2.TreeNode = Co;
15543
+ wn.TreeNode = Co;
15544
15544
  var iu = class extends Co {
15545
15545
  constructor() {
15546
15546
  super(...arguments), this.rt = 1;
@@ -15557,7 +15557,7 @@ var Oy = j$1((wn2) => {
15557
15557
  this.rt = 1, this.U && (this.rt += this.U.rt), this.W && (this.rt += this.W.rt);
15558
15558
  }
15559
15559
  };
15560
- wn2.TreeNodeEnableIndex = iu;
15560
+ wn.TreeNodeEnableIndex = iu;
15561
15561
  });
15562
15562
  var su = j$1((Bo) => {
15563
15563
  A$1();
@@ -18379,23 +18379,23 @@ function wl(t2) {
18379
18379
  throw new Error("Node.js process " + t2 + " is not supported by JSPM core outside of Node.js");
18380
18380
  }
18381
18381
  function hI() {
18382
- !En || !$r$1 || (En = false, $r$1.length ? zt$1 = $r$1.concat(zt$1) : Ko = -1, zt$1.length && cb());
18382
+ !En$1 || !$r$1 || (En$1 = false, $r$1.length ? zt$1 = $r$1.concat(zt$1) : Ko = -1, zt$1.length && cb());
18383
18383
  }
18384
18384
  function cb() {
18385
- if (!En) {
18385
+ if (!En$1) {
18386
18386
  var t2 = setTimeout(hI, 0);
18387
- En = true;
18387
+ En$1 = true;
18388
18388
  for (var e2 = zt$1.length; e2; ) {
18389
18389
  for ($r$1 = zt$1, zt$1 = []; ++Ko < e2; ) $r$1 && $r$1[Ko].run();
18390
18390
  Ko = -1, e2 = zt$1.length;
18391
18391
  }
18392
- $r$1 = null, En = false, clearTimeout(t2);
18392
+ $r$1 = null, En$1 = false, clearTimeout(t2);
18393
18393
  }
18394
18394
  }
18395
18395
  function dI(t2) {
18396
18396
  var e2 = new Array(arguments.length - 1);
18397
18397
  if (arguments.length > 1) for (var r2 = 1; r2 < arguments.length; r2++) e2[r2 - 1] = arguments[r2];
18398
- zt$1.push(new fb(t2, e2)), zt$1.length === 1 && !En && setTimeout(cb, 0);
18398
+ zt$1.push(new fb(t2, e2)), zt$1.length === 1 && !En$1 && setTimeout(cb, 0);
18399
18399
  }
18400
18400
  function fb(t2, e2) {
18401
18401
  this.fun = t2, this.array = e2;
@@ -18433,11 +18433,11 @@ function pr$1() {
18433
18433
  function Ix(t2) {
18434
18434
  return [];
18435
18435
  }
18436
- var zt$1, En, $r$1, Ko, pI, yI, gI, bI, wI, mI, _I, vI, SI, EI, AI, II, xI, TI, PI, OI, kI, CI, BI, LI, UI, ml, DI, jI, FI, WI, $I, HI, GI, zI, KI, YI, JI, XI, ZI, ex, tx, rx, nx, ix, ox, sx, ax, ux, lx, cx, fx, dr$1, yl, gl, dx, px, yx, gx, bx, mx, _x, vx, Sx, Ex, Ax, _l, vl = ze$1(() => {
18436
+ var zt$1, En$1, $r$1, Ko, pI, yI, gI, bI, wI, mI, _I, vI, SI, EI, AI, II, xI, TI, PI, OI, kI, CI, BI, LI, UI, ml, DI, jI, FI, WI, $I, HI, GI, zI, KI, YI, JI, XI, ZI, ex, tx, rx, nx, ix, ox, sx, ax, ux, lx, cx, fx, dr$1, yl, gl, dx, px, yx, gx, bx, mx, _x, vx, Sx, Ex, Ax, _l, vl = ze$1(() => {
18437
18437
  A$1();
18438
18438
  x$1();
18439
18439
  I$1();
18440
- zt$1 = [], En = false, Ko = -1;
18440
+ zt$1 = [], En$1 = false, Ko = -1;
18441
18441
  fb.prototype.run = function() {
18442
18442
  this.fun.apply(null, this.array);
18443
18443
  };
@@ -18691,8 +18691,8 @@ function Px() {
18691
18691
  return typeof B2 == "object" && !z2 ? p2(ec) : ec;
18692
18692
  }
18693
18693
  if (Xo(B2)) {
18694
- for (var Pn2 = "<" + y2.call(String(B2.nodeName)), ts = B2.attributes || [], xi = 0; xi < ts.length; xi++) Pn2 += " " + ts[xi].name + "=" + ce2(Z2(ts[xi].value), "double", fe);
18695
- return Pn2 += ">", B2.childNodes && B2.childNodes.length && (Pn2 += "..."), Pn2 += "</" + y2.call(String(B2.nodeName)) + ">", Pn2;
18694
+ for (var Pn = "<" + y2.call(String(B2.nodeName)), ts = B2.attributes || [], xi = 0; xi < ts.length; xi++) Pn += " " + ts[xi].name + "=" + ce2(Z2(ts[xi].value), "double", fe);
18695
+ return Pn += ">", B2.childNodes && B2.childNodes.length && (Pn += "..."), Pn += "</" + y2.call(String(B2.nodeName)) + ">", Pn;
18696
18696
  }
18697
18697
  if (ne2(B2)) {
18698
18698
  if (B2.length === 0) return "[]";
@@ -19755,7 +19755,7 @@ var Ql = j$1((Kl) => {
19755
19755
  x$1();
19756
19756
  I$1();
19757
19757
  Object.defineProperty(Kl, "__esModule", { value: true });
19758
- var zl = (ke(), me$1(qe$1)), OT = or$1(), RT = Qo(), Kt2, Ei, An2, Db = false;
19758
+ var zl = (ke(), me$1(qe$1)), OT = or$1(), RT = Qo(), Kt2, Ei, An, Db = false;
19759
19759
  function kT() {
19760
19760
  let t2 = new OT.Transform();
19761
19761
  return t2._write = (e2, r2, n2) => {
@@ -19779,7 +19779,7 @@ var Ql = j$1((Kl) => {
19779
19779
  }
19780
19780
  function MT() {
19781
19781
  Db || (Db = true, Kt2.onSocketOpen(() => {
19782
- An2.socketReady();
19782
+ An.socketReady();
19783
19783
  }), Kt2.onSocketMessage((t2) => {
19784
19784
  if (typeof t2.data == "string") {
19785
19785
  let e2 = zl.Buffer.from(t2.data, "base64");
@@ -19795,9 +19795,9 @@ var Ql = j$1((Kl) => {
19795
19795
  }), e2.readAsArrayBuffer(t2.data);
19796
19796
  }
19797
19797
  }), Kt2.onSocketClose(() => {
19798
- An2.end(), An2.destroy();
19798
+ An.end(), An.destroy();
19799
19799
  }), Kt2.onSocketError((t2) => {
19800
- An2.destroy(t2);
19800
+ An.destroy(t2);
19801
19801
  }));
19802
19802
  }
19803
19803
  var NT = (t2, e2) => {
@@ -19805,7 +19805,7 @@ var Ql = j$1((Kl) => {
19805
19805
  let r2 = e2.protocolId === "MQIsdp" && e2.protocolVersion === 3 ? "mqttv3.1" : "mqtt";
19806
19806
  CT(e2);
19807
19807
  let n2 = BT(e2, t2);
19808
- return Kt2 = e2.my, Kt2.connectSocket({ url: n2, protocols: r2 }), Ei = kT(), An2 = new RT.BufferedDuplex(e2, Ei, Kt2), MT(), An2;
19808
+ return Kt2 = e2.my, Kt2.connectSocket({ url: n2, protocols: r2 }), Ei = kT(), An = new RT.BufferedDuplex(e2, Ei, Kt2), MT(), An;
19809
19809
  };
19810
19810
  Kl.default = NT;
19811
19811
  });
@@ -20339,7 +20339,7 @@ const MEETING_BROADCAST_TOPIC = "/meeting";
20339
20339
  const MEETING_SERVER_TOPIC = "/meeting/server";
20340
20340
  const DEFAULT_MQTT_PATH = "/mqtt";
20341
20341
  const DEFAULT_REQUEST_TIMEOUT_MS = 15e3;
20342
- const MQTT_CLIENT_INSTANCE_STORAGE_KEY$1 = "JS_MQTT_CLIENT_INSTANCE_ID";
20342
+ const MQTT_CLIENT_INSTANCE_STORAGE_KEY = "JS_MQTT_CLIENT_INSTANCE_ID";
20343
20343
  let runtimeContext = null;
20344
20344
  let offBroadcastMessage = null;
20345
20345
  let offResponseMessage = null;
@@ -20421,12 +20421,12 @@ function buildResponseTopic(currentDevice) {
20421
20421
  }
20422
20422
  function getBrowserMqttInstanceId() {
20423
20423
  try {
20424
- const cached = sessionStorage.getItem(MQTT_CLIENT_INSTANCE_STORAGE_KEY$1);
20424
+ const cached = sessionStorage.getItem(MQTT_CLIENT_INSTANCE_STORAGE_KEY);
20425
20425
  if (cached) {
20426
20426
  return cached;
20427
20427
  }
20428
20428
  const nextId = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID().replace(/-/g, "").slice(0, 12) : Math.random().toString(36).slice(2, 14);
20429
- sessionStorage.setItem(MQTT_CLIENT_INSTANCE_STORAGE_KEY$1, nextId);
20429
+ sessionStorage.setItem(MQTT_CLIENT_INSTANCE_STORAGE_KEY, nextId);
20430
20430
  return nextId;
20431
20431
  } catch {
20432
20432
  return Math.random().toString(36).slice(2, 14);
@@ -31311,7 +31311,7 @@ var e = { 5964: (e2, t2, r2) => {
31311
31311
  }, 477: () => {
31312
31312
  }, 5995: () => {
31313
31313
  }, 6351: (e2) => {
31314
- e2.exports = { version: "0.5.3" };
31314
+ e2.exports = { version: "0.5.5" };
31315
31315
  } }, t = {};
31316
31316
  function r(n2) {
31317
31317
  var i2 = t[n2];
@@ -31333,7 +31333,7 @@ r.n = (e2) => {
31333
31333
  }
31334
31334
  }(), r.o = (e2, t2) => Object.prototype.hasOwnProperty.call(e2, t2), r.nmd = (e2) => (e2.paths = [], e2.children || (e2.children = []), e2);
31335
31335
  var n = {};
31336
- r.d(n, { Yk: () => Wr, Mz: () => nr, Ne: () => R, _N: () => sr, bq: () => B, hj: () => o, h4: () => c, xk: () => a, J: () => Lr, a7: () => Vr, tg: () => Yr, s_: () => jr, VO: () => Ur, VF: () => zr, M0: () => Fr, $b: () => G, WI: () => $, cp: () => qr, ez: () => br, EQ: () => vr, $t: () => kr, jL: () => rn, Ps: () => $r, VV: () => Kr, _b: () => I, dT: () => qt, CM: () => M, Zq: () => mr });
31336
+ r.d(n, { Yk: () => $r, Mz: () => nr, Ne: () => R, _N: () => sr, bq: () => B, hj: () => o, h4: () => c, xk: () => a, J: () => Ur, a7: () => qr, tg: () => rn, s_: () => Vr, VO: () => Fr, VF: () => Hr, M0: () => zr, $b: () => G, WI: () => $, cp: () => Wr, PN: () => Lr, ez: () => br, EQ: () => vr, $t: () => kr, jL: () => cn, Ps: () => Qr, VV: () => Gr, _b: () => I, dT: () => qt, CM: () => M, Zq: () => mr });
31337
31337
  class i {
31338
31338
  }
31339
31339
  __publicField(i, "CHANNEL_UPDATE", "channel_update");
@@ -33000,8 +33000,9 @@ class Ft {
33000
33000
  get joinVersion() {
33001
33001
  return this.buildInfo().version;
33002
33002
  }
33003
- async join(e2, t2 = { autoSubscribeAudio: false, autoSubscribeVideo: false }) {
33003
+ async join(e2, t2 = {}) {
33004
33004
  if (this.channel) throw new N("请先退出频道");
33005
+ t2 = { autoSubscribeAudio: false, autoSubscribeVideo: false, adaptiveStream: true, ...t2 };
33005
33006
  const r2 = Math.floor(Date.now() / 1e3);
33006
33007
  let n2 = A(e2);
33007
33008
  if (n2.exp_at && n2.exp_at < r2) throw D;
@@ -35449,11 +35450,95 @@ __publicField(_Nr, "debouncedDeviceChangeHandler", Zt(async () => {
35449
35450
  }, 100, { isImmediate: false }));
35450
35451
  __publicField(_Nr, "waitingMediaDevicePromises", []);
35451
35452
  let Nr = _Nr;
35452
- class Lr extends fr {
35453
+ class Lr {
35454
+ constructor(e2) {
35455
+ __publicField(this, "name");
35456
+ __publicField(this, "processedTrack");
35457
+ __publicField(this, "processors");
35458
+ __publicField(this, "ownedAudioContext");
35459
+ if (!e2.length) throw new N("ProcessorPipeline 至少需要一个处理器");
35460
+ this.processors = e2, this.name = e2.map((e3) => e3.name).join(" -> ");
35461
+ }
35462
+ async init(e2) {
35463
+ let t2 = e2.audioContext;
35464
+ e2.kind !== I.Audio || t2 || (t2 = new (window.AudioContext || window.webkitAudioContext)({ sampleRate: 48e3, latencyHint: "interactive" }), this.ownedAudioContext = t2);
35465
+ let r2 = e2.track;
35466
+ for (const n2 of this.processors) {
35467
+ if (await n2.init({ track: r2, kind: e2.kind, audioContext: t2 }), !n2.processedTrack) throw new N(`处理器 ${n2.name} 未产出 processedTrack`);
35468
+ r2 = n2.processedTrack;
35469
+ }
35470
+ this.processedTrack = r2;
35471
+ }
35472
+ async destroy() {
35473
+ for (const e2 of [...this.processors].reverse()) try {
35474
+ await e2.destroy();
35475
+ } catch (t2) {
35476
+ J.warn("ProcessorPipeline", `处理器 ${e2.name} 释放失败`, t2);
35477
+ }
35478
+ this.ownedAudioContext && "closed" !== this.ownedAudioContext.state && await this.ownedAudioContext.close(), this.ownedAudioContext = void 0, this.processedTrack = void 0;
35479
+ }
35480
+ }
35481
+ class Dr {
35482
+ constructor(e2) {
35483
+ __publicField(this, "track");
35484
+ __publicField(this, "processor");
35485
+ __publicField(this, "originMsTrack");
35486
+ __publicField(this, "applying", false);
35487
+ this.track = e2, this.onMsTrackReplaced = this.onMsTrackReplaced.bind(this), this.track.on(ir.MSTRACK_REPLACED, this.onMsTrackReplaced);
35488
+ }
35489
+ async setProcessor(e2) {
35490
+ const t2 = this.track.getMediaStreamTrack();
35491
+ if (!t2) throw new N("请先 startCapture 采集到轨道,再设置处理器");
35492
+ this.processor && await this.removeProcessor();
35493
+ const r2 = Array.isArray(e2) ? new Lr(e2) : e2;
35494
+ this.applying = true;
35495
+ try {
35496
+ await this.applyProcessor(r2, t2);
35497
+ } finally {
35498
+ this.applying = false;
35499
+ }
35500
+ }
35501
+ async removeProcessor() {
35502
+ const e2 = this.processor;
35503
+ e2 && (this.processor = void 0, this.originMsTrack && this.track.setMediaStreamTrack(this.originMsTrack), this.originMsTrack = void 0, await e2.destroy());
35504
+ }
35505
+ getProcessor() {
35506
+ return this.processor;
35507
+ }
35508
+ async applyProcessor(e2, t2) {
35509
+ await e2.init({ track: t2, kind: this.track.kind });
35510
+ const r2 = e2.processedTrack;
35511
+ if (!r2) throw new N(`处理器 ${e2.name} 未产出 processedTrack`);
35512
+ this.processor = e2, this.originMsTrack = t2, this.track.setMediaStreamTrack(r2);
35513
+ }
35514
+ onMsTrackReplaced() {
35515
+ if (!this.processor || this.applying) return;
35516
+ const e2 = this.track.getMediaStreamTrack();
35517
+ if (!e2 || e2 === this.processor.processedTrack) return;
35518
+ const t2 = this.processor, r2 = e2;
35519
+ this.applying = true, (async () => {
35520
+ try {
35521
+ await t2.destroy(), await this.applyProcessor(t2, r2);
35522
+ } catch (e3) {
35523
+ J.warn("ProcessorController", "切换设备后自动重挂处理器失败", e3);
35524
+ } finally {
35525
+ this.applying = false;
35526
+ }
35527
+ })();
35528
+ }
35529
+ }
35530
+ class Ur extends fr {
35453
35531
  constructor() {
35454
35532
  super({ id: T(20), kind: I.Audio, track: -1 }, "");
35455
35533
  __publicField(this, "playTrait");
35456
- this.playTrait = new dr(this);
35534
+ __publicField(this, "processorCtrl");
35535
+ this.playTrait = new dr(this), this.processorCtrl = new Dr(this);
35536
+ }
35537
+ async setProcessor(e2) {
35538
+ return this.processorCtrl.setProcessor(e2);
35539
+ }
35540
+ async removeProcessor() {
35541
+ return this.processorCtrl.removeProcessor();
35457
35542
  }
35458
35543
  getVolume() {
35459
35544
  return 0;
@@ -35473,7 +35558,7 @@ class Lr extends fr {
35473
35558
  this.playTrait.stopPlay();
35474
35559
  }
35475
35560
  }
35476
- class Dr extends Lr {
35561
+ class jr extends Ur {
35477
35562
  constructor() {
35478
35563
  super();
35479
35564
  __publicField(this, "audioMixTrait");
@@ -35495,7 +35580,7 @@ class Dr extends Lr {
35495
35580
  return "本地混音流轨道";
35496
35581
  }
35497
35582
  }
35498
- class Ur extends Lr {
35583
+ class Fr extends Ur {
35499
35584
  constructor(e2) {
35500
35585
  super();
35501
35586
  __publicField(this, "captureOptions");
@@ -35509,7 +35594,7 @@ class Ur extends Lr {
35509
35594
  e2 ? (e2.stop(), this.setMediaStreamTrack(void 0)) : J.warn(this.toString() + "的mediaStreamTrack不存在,无需停止采集");
35510
35595
  }
35511
35596
  }
35512
- class jr extends Lr {
35597
+ class Vr extends Ur {
35513
35598
  constructor(e2) {
35514
35599
  super();
35515
35600
  __publicField(this, "captureOptions");
@@ -35541,13 +35626,20 @@ class jr extends Lr {
35541
35626
  return this.captureOptions.deviceId = e2, this.getMediaStreamTrack() ? (this.stopCapture(), this.startCapture()) : void 0;
35542
35627
  }
35543
35628
  }
35544
- class Fr extends fr {
35629
+ class zr extends fr {
35545
35630
  constructor() {
35546
35631
  super({ id: T(20), kind: I.Video, track: -1 }, "");
35547
35632
  __publicField(this, "playTrait");
35548
35633
  __publicField(this, "simulcastTracks", {});
35549
35634
  __publicField(this, "scaleResolutionDownBy", 1);
35550
- this.playTrait = new pr(this);
35635
+ __publicField(this, "processorCtrl");
35636
+ this.playTrait = new pr(this), this.processorCtrl = new Dr(this);
35637
+ }
35638
+ async setProcessor(e2) {
35639
+ return this.processorCtrl.setProcessor(e2);
35640
+ }
35641
+ async removeProcessor() {
35642
+ return this.processorCtrl.removeProcessor();
35551
35643
  }
35552
35644
  strPrefix() {
35553
35645
  return "本地视频流轨道";
@@ -35561,7 +35653,7 @@ class Fr extends fr {
35561
35653
  if (!e2.desc) throw new N("联播轨道发布描述不能为空");
35562
35654
  let n2 = this.simulcastTracks[e2.desc];
35563
35655
  if (!n2) {
35564
- n2 = this.simulcastTracks[e2.desc] = new Fr();
35656
+ n2 = this.simulcastTracks[e2.desc] = new zr();
35565
35657
  const i2 = Math.min(t2 || ((_a25 = this.mediaStreamTrack) == null ? void 0 : _a25.getSettings().width) || 0, r2 || ((_b25 = this.mediaStreamTrack) == null ? void 0 : _b25.getSettings().height) || 0);
35566
35658
  i2 > 0 && e2.width && e2.height && (n2.scaleResolutionDownBy = Math.max(1, i2 / Math.min(e2.width, e2.height)), J.debug(n2.toString(), `编码缩放倍数:${n2.scaleResolutionDownBy}`)), n2.setMediaStreamTrack(this.mediaStreamTrack);
35567
35659
  }
@@ -35604,7 +35696,7 @@ class Fr extends fr {
35604
35696
  return this.playTrait.isPopOut(e2);
35605
35697
  }
35606
35698
  }
35607
- class Vr extends Fr {
35699
+ class qr extends zr {
35608
35700
  constructor(e2) {
35609
35701
  super();
35610
35702
  __publicField(this, "captureOptions");
@@ -35639,7 +35731,7 @@ class Vr extends Fr {
35639
35731
  if (this.captureOptions.facingMode = "environment" == this.captureOptions.facingMode ? "user" : "environment", this.getMediaStreamTrack()) return this.stopCapture(), this.startCapture();
35640
35732
  }
35641
35733
  }
35642
- class zr extends Fr {
35734
+ class Hr extends zr {
35643
35735
  constructor(e2) {
35644
35736
  super();
35645
35737
  __publicField(this, "captureOptions");
@@ -35668,11 +35760,11 @@ class zr extends Fr {
35668
35760
  e2 ? (e2.stop(), this.setMediaStreamTrack(void 0), (_a25 = this.audioTrack) == null ? void 0 : _a25.stopCapture()) : J.warn(this.toString() + "的mediaStreamTrack不存在,无需停止采集");
35669
35761
  }
35670
35762
  }
35671
- const qr = { speech: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 24e3, priority: "high" } }, music: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 32e3, priority: "high" } }, musicStereo: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 2, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 48e3, priority: "high" } }, musicHighQuality: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 64e3, priority: "high" } }, musicHighQualityStereo: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 2, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 96e3, priority: "high" } } }, Hr = [{ desc: "camera_small", width: 320, height: 180, maxBitrate: 25e4, maxFramerate: 15 }], Wr = { "1080p": { capture: { width: 1920, height: 1080, frameRate: 15 }, publish: { desc: "camera_big", maxBitrate: 25e5, maxFramerate: 15, simulcasts: Hr, degradationPreference: "maintain-resolution" } }, "720p": { capture: { width: 1280, height: 720, frameRate: 15 }, publish: { desc: "camera_big", maxBitrate: 12e5, maxFramerate: 15, simulcasts: Hr, degradationPreference: "maintain-resolution" } }, "360p": { capture: { width: 640, height: 360, frameRate: 15 }, publish: { maxBitrate: 55e4, maxFramerate: 15 } }, "180p": { capture: { width: 320, height: 180, frameRate: 15 }, publish: { maxBitrate: 25e4, maxFramerate: 15 } } }, Kr = { "1080p": { capture: { width: 1920, height: 1080, frameRate: 10 }, publish: { desc: "screen", maxBitrate: 2e6, maxFramerate: 10, priority: "medium", degradationPreference: "maintain-resolution" } }, "720p": { capture: { width: 1280, height: 720, frameRate: 10 }, publish: { desc: "screen", maxBitrate: 15e5, maxFramerate: 10, priority: "medium", degradationPreference: "maintain-resolution" } } }, $r = { default: { capture: true, publish: { desc: "screen_audio", maxBitrate: 24e3, priority: "high" } } };
35672
- class Gr extends Dt {
35763
+ const Wr = { speech: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 24e3, priority: "high" } }, music: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 32e3, priority: "high" } }, musicStereo: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 2, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 48e3, priority: "high" } }, musicHighQuality: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 1, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 64e3, priority: "high" } }, musicHighQualityStereo: { capture: { autoGainControl: true, echoCancellation: true, noiseSuppression: true, channelCount: 2, sampleRate: 48e3 }, publish: { desc: "mic", maxBitrate: 96e3, priority: "high" } } }, Kr = [{ desc: "camera_small", width: 320, height: 180, maxBitrate: 25e4, maxFramerate: 15 }], $r = { "1080p": { capture: { width: 1920, height: 1080, frameRate: 15 }, publish: { desc: "camera_big", maxBitrate: 25e5, maxFramerate: 15, simulcasts: Kr, degradationPreference: "maintain-resolution" } }, "720p": { capture: { width: 1280, height: 720, frameRate: 15 }, publish: { desc: "camera_big", maxBitrate: 12e5, maxFramerate: 15, simulcasts: Kr, degradationPreference: "maintain-resolution" } }, "360p": { capture: { width: 640, height: 360, frameRate: 15 }, publish: { maxBitrate: 55e4, maxFramerate: 15 } }, "180p": { capture: { width: 320, height: 180, frameRate: 15 }, publish: { maxBitrate: 25e4, maxFramerate: 15 } } }, Gr = { "1080p": { capture: { width: 1920, height: 1080, frameRate: 10 }, publish: { desc: "screen", maxBitrate: 2e6, maxFramerate: 10, priority: "medium", degradationPreference: "maintain-resolution" } }, "720p": { capture: { width: 1280, height: 720, frameRate: 10 }, publish: { desc: "screen", maxBitrate: 15e5, maxFramerate: 10, priority: "medium", degradationPreference: "maintain-resolution" } } }, Qr = { default: { capture: true, publish: { desc: "screen_audio", maxBitrate: 24e3, priority: "high" } } };
35764
+ class Jr extends Dt {
35673
35765
  }
35674
- const Qr = "#101216", Jr = "rgba(0, 0, 0, 0.58)";
35675
- class Yr {
35766
+ const Yr = "#101216", Xr = "rgba(0, 0, 0, 0.58)", Zr = 1129136432, en = 1129136434, tn = 1129136441;
35767
+ class rn {
35676
35768
  constructor() {
35677
35769
  __publicField(this, "canvas");
35678
35770
  __publicField(this, "canvasContext");
@@ -35690,8 +35782,8 @@ class Yr {
35690
35782
  __publicField(this, "width", 1280);
35691
35783
  __publicField(this, "height", 720);
35692
35784
  __publicField(this, "fps", 15);
35693
- __publicField(this, "background", Qr);
35694
- __publicField(this, "labelBackground", Jr);
35785
+ __publicField(this, "background", Yr);
35786
+ __publicField(this, "labelBackground", Xr);
35695
35787
  __publicField(this, "animationFrameId", 0);
35696
35788
  __publicField(this, "onDataAvailable");
35697
35789
  __publicField(this, "render", () => {
@@ -35700,7 +35792,7 @@ class Yr {
35700
35792
  e2.fillStyle = this.background, e2.fillRect(0, 0, this.width, this.height), this.videoItems.forEach((t2) => {
35701
35793
  const r2 = t2.rect;
35702
35794
  e2.fillStyle = t2.background || "#1a1c22", e2.fillRect(r2.x, r2.y, r2.width, r2.height);
35703
- const n2 = this.videoElements.get(t2.id), i2 = n2 == null ? void 0 : n2.video;
35795
+ const n2 = this.resolveMediaStreamTrack(t2.track), i2 = n2 ? this.videoElements.get(n2) : void 0;
35704
35796
  i2 && i2.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA && i2.videoWidth > 0 && i2.videoHeight > 0 && this.drawVideo(e2, i2, t2), t2.label && this.drawLabel(e2, t2);
35705
35797
  }), this.animationFrameId = requestAnimationFrame(this.render);
35706
35798
  });
@@ -35714,7 +35806,7 @@ class Yr {
35714
35806
  var _a25;
35715
35807
  if ("inactive" !== this.getState()) return;
35716
35808
  if ("undefined" == typeof MediaRecorder) throw new Error("Current browser does not support MediaRecorder");
35717
- this.width = e2.width || 1280, this.height = e2.height || 720, this.fps = e2.fps || 15, this.background = e2.background || Qr, this.labelBackground = e2.labelBackground || Jr, this.onDataAvailable = e2.onDataAvailable, this.videoItems = e2.videoItems.slice(), this.canvas = document.createElement("canvas"), this.canvas.width = this.width, this.canvas.height = this.height;
35809
+ this.width = e2.width || 1280, this.height = e2.height || 720, this.fps = e2.fps || 15, this.background = e2.background || Yr, this.labelBackground = e2.labelBackground || Xr, this.onDataAvailable = e2.onDataAvailable, this.videoItems = e2.videoItems.slice(), this.canvas = document.createElement("canvas"), this.canvas.width = this.width, this.canvas.height = this.height;
35718
35810
  const t2 = this.canvas.getContext("2d");
35719
35811
  if (!t2) throw new Error("Failed to create recorder canvas context");
35720
35812
  this.canvasContext = t2, this.canvasStream = this.canvas.captureStream(this.fps), await this.initAudio(e2.audioTracks || []), this.syncTrackedTrackListeners(), this.syncVideoElements();
@@ -35771,6 +35863,11 @@ class Yr {
35771
35863
  resolveMediaStreamTrack(e2) {
35772
35864
  if (e2) return e2 instanceof MediaStreamTrack ? e2 : e2.getMediaStreamTrack();
35773
35865
  }
35866
+ resolveTrackAngle(e2) {
35867
+ var _a25;
35868
+ const t2 = e2;
35869
+ return t2 && "function" == typeof t2.getInfo ? ((_a25 = t2.getInfo()) == null ? void 0 : _a25.angle) ?? Zr : Zr;
35870
+ }
35774
35871
  isTrackLike(e2) {
35775
35872
  return !(!e2 || e2 instanceof MediaStreamTrack || "function" != typeof e2.getMediaStreamTrack || "function" != typeof e2.on || "function" != typeof e2.off);
35776
35873
  }
@@ -35800,22 +35897,32 @@ class Yr {
35800
35897
  this.videoItems.forEach((t2) => {
35801
35898
  const r2 = this.resolveMediaStreamTrack(t2.track);
35802
35899
  if (!r2 || "live" !== r2.readyState) return;
35803
- e2.add(t2.id);
35804
- const n2 = this.videoElements.get(t2.id);
35805
- if ((n2 == null ? void 0 : n2.trackId) === r2.id) return;
35806
- const i2 = document.createElement("video");
35807
- i2.muted = true, i2.autoplay = true, i2.playsInline = true, i2.srcObject = new MediaStream([r2]), i2.play().catch(() => {
35808
- }), this.videoElements.set(t2.id, { video: i2, trackId: r2.id });
35900
+ if (e2.add(r2), this.videoElements.has(r2)) return;
35901
+ const n2 = document.createElement("video");
35902
+ n2.muted = true, n2.autoplay = true, n2.playsInline = true, n2.srcObject = new MediaStream([r2]), n2.play().catch(() => {
35903
+ }), this.videoElements.set(r2, n2);
35809
35904
  }), this.videoElements.forEach((t2, r2) => {
35810
- e2.has(r2) || (t2.video.srcObject = null, this.videoElements.delete(r2));
35905
+ e2.has(r2) || (t2.srcObject = null, this.videoElements.delete(r2));
35811
35906
  });
35812
35907
  }
35813
35908
  drawVideo(e2, t2, r2) {
35814
- const n2 = r2.rect, i2 = r2.fit || "contain", o2 = t2.videoWidth / t2.videoHeight, s2 = n2.width / n2.height;
35815
- let a2 = n2.width, c2 = n2.height;
35816
- ("cover" === i2 ? o2 > s2 : o2 < s2) ? (c2 = n2.height, a2 = c2 * o2) : (a2 = n2.width, c2 = a2 / o2);
35817
- const u2 = n2.x + (n2.width - a2) / 2, l2 = n2.y + (n2.height - c2) / 2;
35818
- e2.save(), e2.beginPath(), e2.rect(n2.x, n2.y, n2.width, n2.height), e2.clip(), e2.drawImage(t2, u2, l2, a2, c2), e2.restore();
35909
+ const n2 = r2.rect, i2 = r2.fit || "contain", o2 = this.resolveTrackAngle(r2.track), s2 = /* @__PURE__ */ function(e3) {
35910
+ return e3 === en || e3 === tn;
35911
+ }(o2), a2 = s2 ? t2.videoHeight / t2.videoWidth : t2.videoWidth / t2.videoHeight, c2 = n2.width / n2.height;
35912
+ let u2, l2;
35913
+ ("cover" === i2 ? a2 > c2 : a2 < c2) ? (l2 = n2.height, u2 = l2 * a2) : (u2 = n2.width, l2 = u2 / a2);
35914
+ const h2 = s2 ? l2 : u2, f2 = s2 ? u2 : l2;
35915
+ switch (e2.save(), e2.beginPath(), e2.rect(n2.x, n2.y, n2.width, n2.height), e2.clip(), e2.translate(n2.x + n2.width / 2, n2.y + n2.height / 2), o2) {
35916
+ case tn:
35917
+ e2.scale(-1, 1), e2.rotate(-Math.PI / 2);
35918
+ break;
35919
+ case en:
35920
+ e2.rotate(3 * Math.PI / 2);
35921
+ break;
35922
+ case 1129136433:
35923
+ e2.rotate(Math.PI);
35924
+ }
35925
+ e2.drawImage(t2, -h2 / 2, -f2 / 2, h2, f2), e2.restore();
35819
35926
  }
35820
35927
  drawLabel(e2, t2) {
35821
35928
  const r2 = t2.rect, n2 = r2.x + 12, i2 = r2.y + r2.height - 42, o2 = Math.max(80, r2.width - 24);
@@ -35826,12 +35933,12 @@ class Yr {
35826
35933
  cancelAnimationFrame(this.animationFrameId), (_a25 = this.canvasStream) == null ? void 0 : _a25.getTracks().forEach((e2) => e2.stop()), (_b25 = this.recordStream) == null ? void 0 : _b25.getTracks().forEach((e2) => {
35827
35934
  var _a26;
35828
35935
  ((_a26 = this.canvasStream) == null ? void 0 : _a26.getTracks().includes(e2)) || e2.stop();
35829
- }), this.videoElements.forEach(({ video: e2 }) => {
35936
+ }), this.videoElements.forEach((e2) => {
35830
35937
  e2.srcObject = null;
35831
35938
  }), this.videoElements.clear(), this.clearAudioSources(), this.clearTrackedTrackListeners(), (_c2 = this.audioContext) == null ? void 0 : _c2.close(), this.audioContext = void 0, this.audioDestination = void 0, this.canvas = void 0, this.canvasContext = void 0, this.canvasStream = void 0, this.recordStream = void 0, this.mediaRecorder = void 0, this.audioInputTracks = [], this.videoItems = [], this.chunks = [], this.onDataAvailable = void 0;
35832
35939
  }
35833
35940
  }
35834
- class Xr extends Ar {
35941
+ class nn extends Ar {
35835
35942
  constructor() {
35836
35943
  super(...arguments);
35837
35944
  __publicField(this, "streamNameStates", {});
@@ -36034,10 +36141,10 @@ class Xr extends Ar {
36034
36141
  return e2.lossrate_up = E(f2 > 0 ? p2 / f2 * 100 : 0, 2), e2.lossrate_down = E(d2 > 0 ? g2 / d2 * 100 : 0, 2), this.prevMetric = { local_audios: c2, local_videos: u2, remote_audios: l2, remote_videos: h2, network: e2 };
36035
36142
  }
36036
36143
  }
36037
- class Zr extends Xr {
36144
+ class on extends nn {
36038
36145
  constructor() {
36039
36146
  super(...arguments);
36040
- __publicField(this, "localAudioMixTrack", new Dr());
36147
+ __publicField(this, "localAudioMixTrack", new jr());
36041
36148
  __publicField(this, "ability", { audioCodecs: [R.OPUS, R.AAC], videoCodecs: [R.H264, R.H265], audioMaxPub: 1, videoMaxPub: 7, audioMaxSub: 9, videoMaxSub: 32 });
36042
36149
  }
36043
36150
  vendor() {
@@ -36196,8 +36303,8 @@ class Zr extends Xr {
36196
36303
  return `${`${this.joinRsp.app_id}`}-${T(6)}`;
36197
36304
  }
36198
36305
  }
36199
- var en = r(7363);
36200
- class tn extends Xr {
36306
+ var sn = r(7363);
36307
+ class an extends nn {
36201
36308
  constructor(e2, t2, r2) {
36202
36309
  super(t2, r2);
36203
36310
  __publicField(this, "api");
@@ -36226,7 +36333,7 @@ class tn extends Xr {
36226
36333
  }
36227
36334
  reorderAnswerMLines(e2, t2) {
36228
36335
  if (!e2.sdp || !t2.sdp) return t2;
36229
- const r2 = en.qg(e2.sdp), n2 = en.qg(t2.sdp);
36336
+ const r2 = sn.qg(e2.sdp), n2 = sn.qg(t2.sdp);
36230
36337
  if (r2.media.length <= 1) return t2;
36231
36338
  const i2 = r2.media.map((e3) => String(e3.mid)), o2 = n2.media.map((e3) => String(e3.mid));
36232
36339
  if (i2.join(",") === o2.join(",")) return t2;
@@ -36237,7 +36344,7 @@ class tn extends Xr {
36237
36344
  t3 && s2.push(t3);
36238
36345
  }
36239
36346
  if (n2.media = s2, n2.groups) for (const e3 of n2.groups) "BUNDLE" === e3.type && (e3.mids = i2.join(" "));
36240
- return { type: t2.type, sdp: en.M9(n2) };
36347
+ return { type: t2.type, sdp: sn.M9(n2) };
36241
36348
  }
36242
36349
  async exchangeSDP(e2, t2, r2) {
36243
36350
  let n2 = await this.api.cdnURL({ vendor: this.vendor(), stream_name: t2, publish: e2 }), i2 = Date.now(), o2 = (r3, n3) => {
@@ -36259,7 +36366,7 @@ class tn extends Xr {
36259
36366
  });
36260
36367
  }
36261
36368
  }
36262
- class rn extends Ft {
36369
+ class cn extends Ft {
36263
36370
  constructor(e2) {
36264
36371
  super(e2);
36265
36372
  __publicField(this, "localTracks");
@@ -36309,13 +36416,13 @@ class rn extends Ft {
36309
36416
  }
36310
36417
  buildInfo() {
36311
36418
  let { version: e2 } = r(6351);
36312
- return { version: e2, timestamp: 1778250523 };
36419
+ return { version: e2, timestamp: 1780917396 };
36313
36420
  }
36314
36421
  getEnvInfo() {
36315
36422
  return Qt();
36316
36423
  }
36317
36424
  createLocalCompositeRecorder() {
36318
- return new Yr();
36425
+ return new rn();
36319
36426
  }
36320
36427
  getStoredDeviceId() {
36321
36428
  let e2 = localStorage.getItem("device_id");
@@ -36328,7 +36435,7 @@ class rn extends Ft {
36328
36435
  return new Xt(e2.app_id, e2.sid, e2.client_key, e2.client_api);
36329
36436
  }
36330
36437
  newRtcSocket(e2) {
36331
- return new Gr(e2);
36438
+ return new Jr(e2);
36332
36439
  }
36333
36440
  newChannel(e2, t2, r2, n2, i2) {
36334
36441
  return new Or(e2, t2, r2, n2, i2, (e3) => {
@@ -36339,9 +36446,9 @@ class rn extends Ft {
36339
36446
  switch (t2.stream_vendor) {
36340
36447
  case void 0:
36341
36448
  case Ht.OOK:
36342
- return new Zr(t2);
36449
+ return new on(t2);
36343
36450
  case Ht.WangsuCDN:
36344
- return new tn(r2, t2);
36451
+ return new an(r2, t2);
36345
36452
  case Ht.Seastart:
36346
36453
  return new xr(r2, t2, { preferVideoCodec: e2.preferVideoCodec, preferAudioCodec: e2.preferAudioCodec });
36347
36454
  default:
@@ -36350,7 +36457,7 @@ class rn extends Ft {
36350
36457
  }
36351
36458
  postLeave() {
36352
36459
  for (let e2 of this.localTracks.keys()) try {
36353
- e2 instanceof Lr ? e2.stopPlay() : e2 instanceof Fr && e2.removeAllPlayViews(), (e2 instanceof jr || e2 instanceof Vr || e2 instanceof zr) && (e2.stopCapture(), J.info("离开频道", e2.toString(), "自动停止采集"));
36460
+ e2 instanceof Ur ? e2.stopPlay() : e2 instanceof zr && e2.removeAllPlayViews(), (e2 instanceof Vr || e2 instanceof qr || e2 instanceof Hr) && (e2.stopCapture(), J.info("离开频道", e2.toString(), "自动停止采集"));
36354
36461
  } catch (e3) {
36355
36462
  }
36356
36463
  super.postLeave();
@@ -36359,7 +36466,7 @@ class rn extends Ft {
36359
36466
  super.onAppShow(e2);
36360
36467
  for (let e3 of this.localTracks.keys()) {
36361
36468
  let t2 = e3.getMediaStreamTrack();
36362
- t2 && ("ended" === t2.readyState && (J.warn(e3.toString(), "页面恢复时发现 track 已 ended,尝试重新采集"), (e3 instanceof jr || e3 instanceof Vr) && e3.startCapture().catch((t3) => {
36469
+ t2 && ("ended" === t2.readyState && (J.warn(e3.toString(), "页面恢复时发现 track 已 ended,尝试重新采集"), (e3 instanceof Vr || e3 instanceof qr) && e3.startCapture().catch((t3) => {
36363
36470
  J.error(e3.toString(), "页面恢复时重新采集失败", t3);
36364
36471
  })));
36365
36472
  }
@@ -36370,49 +36477,49 @@ class rn extends Ft {
36370
36477
  addTrackListeners(e2) {
36371
36478
  e2.listeners(s.MUTED).includes(this.muteCallback) || e2.on(s.MUTED, this.muteCallback), e2.listeners(s.UNMUTED).includes(this.unmuteCallback) || e2.on(s.UNMUTED, this.unmuteCallback), e2.listeners(s.ENDED).includes(this.endCallback) || e2.on(s.ENDED, this.endCallback), e2.listeners(ir.AUTOPLAY_FAIL).includes(this.autoPlayFailCallback) || e2.on(ir.AUTOPLAY_FAIL, this.autoPlayFailCallback), e2.listeners(ir.PIP_ENTER).includes(this.pipEnterCallback) || e2.on(ir.PIP_ENTER, this.pipEnterCallback), e2.listeners(ir.PIP_EXIT).includes(this.pipExitCallback) || e2.on(ir.PIP_EXIT, this.pipExitCallback), e2.listeners(ir.POPOUT_OPEN).includes(this.popOutOpenCallback) || e2.on(ir.POPOUT_OPEN, this.popOutOpenCallback), e2.listeners(ir.POPOUT_CLOSE).includes(this.popOutCloseCallback) || e2.on(ir.POPOUT_CLOSE, this.popOutCloseCallback);
36372
36479
  }
36373
- createLocalMicTrack(e2 = qr.music) {
36374
- let t2 = new jr(e2.capture);
36480
+ createLocalMicTrack(e2 = Wr.music) {
36481
+ let t2 = new Vr(e2.capture);
36375
36482
  return this.localTracks.set(t2, { ...e2.publish }), this.addTrackListeners(t2), t2;
36376
36483
  }
36377
36484
  createLocalCustomAudioTrack(e2) {
36378
36485
  if (e2.kind != I.Audio) throw new N("MediaStreamTrack必须是音频轨");
36379
- let t2 = new Lr();
36486
+ let t2 = new Ur();
36380
36487
  return t2.setMediaStreamTrack(e2), this.localTracks.set(t2, void 0), this.addTrackListeners(t2), t2;
36381
36488
  }
36382
- createLocalCameraTrack(e2 = Wr["720p"]) {
36383
- let t2 = new Vr(e2.capture);
36489
+ createLocalCameraTrack(e2 = $r["720p"]) {
36490
+ let t2 = new qr(e2.capture);
36384
36491
  return this.localTracks.set(t2, { width: e2.capture.width, height: e2.capture.height, ...e2.publish }), this.addTrackListeners(t2), t2;
36385
36492
  }
36386
- createLocalScreenTrack(e2 = Kr["1080p"], t2 = $r.default) {
36387
- let r2 = new zr(e2.capture);
36493
+ createLocalScreenTrack(e2 = Gr["1080p"], t2 = Qr.default) {
36494
+ let r2 = new Hr(e2.capture);
36388
36495
  if (this.localTracks.set(r2, { width: e2.capture.width, height: e2.capture.height, ...e2.publish }), this.addTrackListeners(r2), t2) {
36389
- let e3 = new Ur(t2.capture);
36496
+ let e3 = new Fr(t2.capture);
36390
36497
  this.localTracks.set(e3, { ...t2.publish }), this.addTrackListeners(e3), r2.setAudioTrack(e3);
36391
36498
  }
36392
36499
  return r2;
36393
36500
  }
36394
36501
  createLocalCustomVideoTrack(e2) {
36395
36502
  if (e2.kind != I.Video) throw new N("MediaStreamTrack必须是视频轨");
36396
- let t2 = new Fr();
36503
+ let t2 = new zr();
36397
36504
  return t2.setMediaStreamTrack(e2), this.localTracks.set(t2, void 0), this.addTrackListeners(t2), t2;
36398
36505
  }
36399
36506
  async enableLocalTrack(e2) {
36400
36507
  let t2 = e2.getMediaStreamTrack();
36401
36508
  if (t2 && "ended" === t2.readyState) {
36402
- if (J.warn(e2.toString(), "enableLocalTrack 时 track 已 ended,尝试重新采集"), e2 instanceof jr || e2 instanceof Vr) try {
36509
+ if (J.warn(e2.toString(), "enableLocalTrack 时 track 已 ended,尝试重新采集"), e2 instanceof Vr || e2 instanceof qr) try {
36403
36510
  await e2.startCapture();
36404
36511
  } catch (t3) {
36405
36512
  J.error(e2.toString(), "重新采集失败", t3);
36406
36513
  }
36407
36514
  } else t2 && (t2.enabled = true);
36408
- if (e2 instanceof zr) {
36515
+ if (e2 instanceof Hr) {
36409
36516
  let t3 = e2.getAudioTrack();
36410
36517
  t3 && t3.getMediaStreamTrack() && await this.enableLocalTrack(t3);
36411
36518
  }
36412
36519
  }
36413
36520
  disableLocalTrack(e2) {
36414
36521
  let t2 = e2.getMediaStreamTrack();
36415
- if (t2 && (t2.enabled = false), e2 instanceof zr) {
36522
+ if (t2 && (t2.enabled = false), e2 instanceof Hr) {
36416
36523
  let t3 = e2.getAudioTrack();
36417
36524
  t3 && t3.getMediaStreamTrack() && this.disableLocalTrack(t3);
36418
36525
  }
@@ -36421,7 +36528,7 @@ class rn extends Ft {
36421
36528
  if (!this.channel) throw L;
36422
36529
  let r2 = this.localTracks.get(e2);
36423
36530
  if (r2 && (t2 && _(r2, t2), t2 = r2), !t2) throw new N("轨道发布配置不能为空");
36424
- if (e2 instanceof zr) {
36531
+ if (e2 instanceof Hr) {
36425
36532
  let t3 = e2.getAudioTrack();
36426
36533
  t3 && t3.getMediaStreamTrack() && await this.publishLocalTrack(t3);
36427
36534
  }
@@ -36440,7 +36547,7 @@ class rn extends Ft {
36440
36547
  }
36441
36548
  async unpublishLocalTrack(e2) {
36442
36549
  if (!this.channel) throw L;
36443
- if (await this.channel.unpublishLocalTrack(e2), e2 instanceof zr) {
36550
+ if (await this.channel.unpublishLocalTrack(e2), e2 instanceof Hr) {
36444
36551
  let t2 = e2.getAudioTrack();
36445
36552
  t2 && t2.getMediaStreamTrack() && await this.unpublishLocalTrack(t2);
36446
36553
  }
@@ -36475,7 +36582,7 @@ class rn extends Ft {
36475
36582
  return super.getRemoteTrack(e2, t2, r2);
36476
36583
  }
36477
36584
  }
36478
- var nn = n.Yk, on = n.Mz;
36585
+ var un = n.Yk, ln = n.Mz;
36479
36586
  n.Ne;
36480
36587
  n._N;
36481
36588
  n.bq;
@@ -36489,14 +36596,15 @@ n.s_;
36489
36596
  n.VO;
36490
36597
  n.VF;
36491
36598
  n.M0;
36492
- var bn = n.$b, wn = n.WI;
36599
+ var En = n.$b, Tn = n.WI;
36493
36600
  n.cp;
36601
+ n.PN;
36494
36602
  n.ez;
36495
36603
  n.EQ;
36496
36604
  n.$t;
36497
- var Tn = n.jL;
36605
+ var Rn = n.jL;
36498
36606
  n.Ps;
36499
- var An = n.VV, Pn = n._b;
36607
+ var On = n.VV, Bn = n._b;
36500
36608
  n.dT;
36501
36609
  n.CM;
36502
36610
  n.Zq;
@@ -36513,12 +36621,6 @@ function getCurrentMeetingTabId() {
36513
36621
  }
36514
36622
  return tabId;
36515
36623
  }
36516
- function setMeetingTabIdForWindow(targetWindow, tabId) {
36517
- targetWindow.sessionStorage.setItem(TAB_ID_KEY, tabId);
36518
- }
36519
- function createMeetingTabId() {
36520
- return createTabId();
36521
- }
36522
36624
  function getActiveMeetingOwner() {
36523
36625
  try {
36524
36626
  const raw = localStorage.getItem(ACTIVE_MEETING_OWNER_KEY);
@@ -37280,7 +37382,7 @@ function pickPreferredVideoTrack(userinfo) {
37280
37382
  const uid = userinfo == null ? void 0 : userinfo.uid;
37281
37383
  if (!uid) return void 0;
37282
37384
  const tracks = (userinfo == null ? void 0 : userinfo.stream_tracks) || [];
37283
- const videos = tracks.filter((t2) => (t2 == null ? void 0 : t2.kind) === Pn.Video);
37385
+ const videos = tracks.filter((t2) => (t2 == null ? void 0 : t2.kind) === Bn.Video);
37284
37386
  if (!videos.length) return void 0;
37285
37387
  return videos.reduce((best, cur) => {
37286
37388
  const bestScore = getTrackPriority(uid, best == null ? void 0 : best.desc);
@@ -37734,27 +37836,27 @@ const meetingCreator = ref("");
37734
37836
  const isChannelShare = ref(false);
37735
37837
  const joinTime = ref(0);
37736
37838
  let expectedChannelDisconnect = false;
37737
- const srtc = new Tn({
37738
- logLevel: bn.DEBUG,
37739
- logTarget: wn.NONE
37839
+ const srtc = new Rn({
37840
+ logLevel: En.DEBUG,
37841
+ logTarget: Tn.NONE
37740
37842
  });
37741
37843
  srtc.onNotifyChannelEvent = async (evt) => {
37742
37844
  var _a25, _b25, _c2, _d, _e, _f2, _g2, _h, _i2, _j, _k, _l2, _m;
37743
37845
  switch (evt.type) {
37744
- case on.CONNECTION_QUALITY_CHANGED:
37846
+ case ln.CONNECTION_QUALITY_CHANGED:
37745
37847
  handleConnectionQualityChanged(evt.data);
37746
37848
  break;
37747
- case on.CPU_CONSTRAINED:
37849
+ case ln.CPU_CONSTRAINED:
37748
37850
  notifyCpuConstrained(evt.data);
37749
37851
  break;
37750
- case on.BANDWIDTH_CONSTRAINED:
37852
+ case ln.BANDWIDTH_CONSTRAINED:
37751
37853
  notifyBandwidthConstrained(evt.data);
37752
37854
  break;
37753
- case on.USER_TRACK_ADD: {
37855
+ case ln.USER_TRACK_ADD: {
37754
37856
  const payload = evt.data;
37755
37857
  const uid = (_a25 = payload == null ? void 0 : payload.user) == null ? void 0 : _a25.uid;
37756
37858
  const track = payload == null ? void 0 : payload.track;
37757
- if (uid && (track == null ? void 0 : track.kind) === Pn.Video) {
37859
+ if (uid && (track == null ? void 0 : track.kind) === Bn.Video) {
37758
37860
  const member = getMemberByUid(uid);
37759
37861
  if (member) {
37760
37862
  if (isScreenTrackDesc(track.desc)) {
@@ -37768,11 +37870,11 @@ srtc.onNotifyChannelEvent = async (evt) => {
37768
37870
  await ensurePreferredRemoteVideo(latest);
37769
37871
  break;
37770
37872
  }
37771
- case on.USER_TRACK_REMOVE: {
37873
+ case ln.USER_TRACK_REMOVE: {
37772
37874
  const payload = evt.data;
37773
37875
  const uid = (_b25 = payload == null ? void 0 : payload.user) == null ? void 0 : _b25.uid;
37774
37876
  const track = payload == null ? void 0 : payload.track;
37775
- if (uid && (track == null ? void 0 : track.id) && track.kind === Pn.Video) {
37877
+ if (uid && (track == null ? void 0 : track.id) && track.kind === Bn.Video) {
37776
37878
  const member = getMemberByUid(uid);
37777
37879
  if (member) {
37778
37880
  if (isScreenTrackDesc(track.desc)) {
@@ -37796,14 +37898,14 @@ srtc.onNotifyChannelEvent = async (evt) => {
37796
37898
  await ensurePreferredRemoteVideo(latest);
37797
37899
  break;
37798
37900
  }
37799
- case on.USER_TRACK_UPDATE: {
37901
+ case ln.USER_TRACK_UPDATE: {
37800
37902
  const payload = evt.data;
37801
37903
  const uid = (_d = payload == null ? void 0 : payload.user) == null ? void 0 : _d.uid;
37802
37904
  const latest = uid ? srtc.getUserInfo(uid) : payload == null ? void 0 : payload.user;
37803
37905
  await ensurePreferredRemoteVideo(latest);
37804
37906
  break;
37805
37907
  }
37806
- case on.USER_JOIN: {
37908
+ case ln.USER_JOIN: {
37807
37909
  console.log("USER_JOIN", evt.data);
37808
37910
  const data = evt.data;
37809
37911
  const uid = typeof (data == null ? void 0 : data.uid) === "undefined" ? "" : String(data.uid);
@@ -37844,28 +37946,28 @@ srtc.onNotifyChannelEvent = async (evt) => {
37844
37946
  }
37845
37947
  break;
37846
37948
  }
37847
- case on.USER_LEAVE: {
37949
+ case ln.USER_LEAVE: {
37848
37950
  const uid = evt.data.uid;
37849
37951
  removeMember(uid);
37850
37952
  break;
37851
37953
  }
37852
- case on.ME_UPDATE: {
37954
+ case ln.ME_UPDATE: {
37853
37955
  break;
37854
37956
  }
37855
- case on.USER_UPDATE: {
37957
+ case ln.USER_UPDATE: {
37856
37958
  break;
37857
37959
  }
37858
- case on.TRACK_ENDED:
37960
+ case ln.TRACK_ENDED:
37859
37961
  const endedTrackInfo = (_h = (_g2 = evt.data) == null ? void 0 : _g2.getInfo) == null ? void 0 : _h.call(_g2);
37860
37962
  if ((endedTrackInfo == null ? void 0 : endedTrackInfo.id) === ((_i2 = localTrack.localScreenTrack) == null ? void 0 : _i2.id) && (endedTrackInfo == null ? void 0 : endedTrackInfo.desc) === "screen") {
37861
37963
  closeScreen();
37862
37964
  }
37863
37965
  break;
37864
- case on.DEVICE_ADD:
37865
- case on.DEVICE_REMOVE:
37966
+ case ln.DEVICE_ADD:
37967
+ case ln.DEVICE_REMOVE:
37866
37968
  getDeviceList();
37867
37969
  break;
37868
- case on.TRACK_MUTED: {
37970
+ case ln.TRACK_MUTED: {
37869
37971
  const uid = getUidFromTrackEventData(evt.data);
37870
37972
  const trackId = uid ? (_j = videoSubscribeState[uid]) == null ? void 0 : _j.trackId : void 0;
37871
37973
  if (uid && trackId && hasRemoteVideoTrack(uid, trackId)) {
@@ -37873,7 +37975,7 @@ srtc.onNotifyChannelEvent = async (evt) => {
37873
37975
  }
37874
37976
  break;
37875
37977
  }
37876
- case on.TRACK_UNMUTED: {
37978
+ case ln.TRACK_UNMUTED: {
37877
37979
  const uid = getUidFromTrackEventData(evt.data);
37878
37980
  const trackId = uid ? (_k = videoSubscribeState[uid]) == null ? void 0 : _k.trackId : void 0;
37879
37981
  if (uid && trackId && hasRemoteVideoTrack(uid, trackId)) {
@@ -37882,14 +37984,14 @@ srtc.onNotifyChannelEvent = async (evt) => {
37882
37984
  }
37883
37985
  break;
37884
37986
  }
37885
- case on.TRACK_AUTOPLAY_FAIL:
37987
+ case ln.TRACK_AUTOPLAY_FAIL:
37886
37988
  break;
37887
- case on.DISCONNECTED:
37989
+ case ln.DISCONNECTED:
37888
37990
  if (!expectedChannelDisconnect) {
37889
37991
  markNetworkDisconnected();
37890
37992
  }
37891
37993
  break;
37892
- case on.CHANNEL_UPDATE:
37994
+ case ln.CHANNEL_UPDATE:
37893
37995
  isChannelShare.value = ((_m = (_l2 = evt.data) == null ? void 0 : _l2.props) == null ? void 0 : _m.share_state) || false;
37894
37996
  break;
37895
37997
  }
@@ -38380,7 +38482,7 @@ async function openCamera() {
38380
38482
  throw new Error((res == null ? void 0 : res.message) || "OPEN_CAMERA_FAILED");
38381
38483
  }
38382
38484
  await stopAndUnpublishLocalCameraTrack();
38383
- const track = localTrack.localCameraTrack = srtc.createLocalCameraTrack(nn["720p"]);
38485
+ const track = localTrack.localCameraTrack = srtc.createLocalCameraTrack(un["720p"]);
38384
38486
  await track.startCapture({
38385
38487
  deviceId: deviceInfo.cameraId
38386
38488
  });
@@ -38394,22 +38496,7 @@ async function openCamera() {
38394
38496
  }
38395
38497
  track.addPlayView(container);
38396
38498
  }
38397
- await srtc.publishLocalTrack(track, {
38398
- desc: "camera_big",
38399
- width: 1280,
38400
- height: 720,
38401
- maxBitrate: 25e5,
38402
- maxFramerate: 15,
38403
- simulcasts: [
38404
- {
38405
- desc: "camera_small",
38406
- width: 640,
38407
- height: 360,
38408
- maxBitrate: 35e4,
38409
- maxFramerate: 15
38410
- }
38411
- ]
38412
- });
38499
+ await srtc.publishLocalTrack(track);
38413
38500
  meState.cameraState = "1";
38414
38501
  meetingStore$1.upsertMember(getUserId(), {
38415
38502
  cameraStatus: "1",
@@ -38494,7 +38581,7 @@ async function openScreen() {
38494
38581
  flag: 1
38495
38582
  });
38496
38583
  const track = localTrack.localScreenTrack = srtc.createLocalScreenTrack(
38497
- An["1080p"]
38584
+ On["1080p"]
38498
38585
  );
38499
38586
  await track.startCapture();
38500
38587
  await srtc.publishLocalTrack(track);
@@ -40777,17 +40864,146 @@ var RoomModalSelectType = /* @__PURE__ */ ((RoomModalSelectType2) => {
40777
40864
  RoomModalSelectType2["toggleFullscreenClick"] = "toggleFullscreenClick";
40778
40865
  return RoomModalSelectType2;
40779
40866
  })(RoomModalSelectType || {});
40780
- const _hoisted_1$p = { class: "section" };
40781
- const _hoisted_2$n = { class: "section-title" };
40782
- const _hoisted_3$m = ["onClick"];
40783
- const _hoisted_4$k = { class: "label" };
40784
- const _hoisted_5$h = {
40867
+ const _hoisted_1$p = { class: "js-video-container" };
40868
+ const _hoisted_2$n = {
40869
+ id: "my-video",
40870
+ class: "video-element"
40871
+ };
40872
+ const _hoisted_3$m = { class: "avatar-container" };
40873
+ const _hoisted_4$k = { class: "avatar small" };
40874
+ const _hoisted_5$h = { class: "js-minimized-actions" };
40875
+ const _hoisted_6$g = ["title"];
40876
+ const _hoisted_7$f = ["title"];
40877
+ const _hoisted_8$e = ["title"];
40878
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
40879
+ __name: "MinimizedMeeting",
40880
+ props: {
40881
+ visible: { type: Boolean, default: false },
40882
+ theme: { default: "dark" }
40883
+ },
40884
+ emits: ["restore", "onChange"],
40885
+ setup(__props, { emit: __emit }) {
40886
+ const props = __props;
40887
+ const { meState: meState2 } = storeToRefs(useMeetingStore());
40888
+ const emit = __emit;
40889
+ const isCollapsed = ref(false);
40890
+ const themeClass = computed(() => `theme-${props.theme}`);
40891
+ const componentHeight = computed(() => {
40892
+ return isCollapsed.value ? "38px" : "148px";
40893
+ });
40894
+ const toggleMic = () => {
40895
+ emit("onChange", RoomModalSelectType.microphoneClick);
40896
+ };
40897
+ const toggleCamera = () => {
40898
+ emit("onChange", RoomModalSelectType.cameraClick);
40899
+ };
40900
+ const handleToggleCollapse = async () => {
40901
+ isCollapsed.value = !isCollapsed.value;
40902
+ if (!isCollapsed.value && props.visible) {
40903
+ await nextTick();
40904
+ mountTracks();
40905
+ setTimeout(() => mountTracks(), 200);
40906
+ }
40907
+ };
40908
+ const handleRestore = () => {
40909
+ emit("restore");
40910
+ };
40911
+ watch(
40912
+ () => props.visible,
40913
+ async (visible) => {
40914
+ await nextTick();
40915
+ mountTracks();
40916
+ if (visible && !isCollapsed.value) {
40917
+ setTimeout(() => mountTracks(), 200);
40918
+ setTimeout(() => mountTracks(), 800);
40919
+ } else if (!visible) {
40920
+ setTimeout(() => mountTracks(), 200);
40921
+ }
40922
+ },
40923
+ { immediate: true }
40924
+ );
40925
+ return (_ctx, _cache) => {
40926
+ var _a25, _b25, _c2, _d, _e, _f2;
40927
+ const _directive_draggable = resolveDirective("draggable");
40928
+ return openBlock(), createBlock(Teleport, { to: "body" }, [
40929
+ _ctx.visible ? withDirectives((openBlock(), createElementBlock("div", {
40930
+ key: 0,
40931
+ class: normalizeClass(["js-minimized-meeting", themeClass.value]),
40932
+ style: normalizeStyle({ height: componentHeight.value })
40933
+ }, [
40934
+ withDirectives(createElementVNode("div", _hoisted_1$p, [
40935
+ withDirectives(createElementVNode("div", _hoisted_2$n, null, 512), [
40936
+ [vShow, ((_a25 = unref(meState2)) == null ? void 0 : _a25.cameraState) == "1"]
40937
+ ]),
40938
+ withDirectives(createElementVNode("div", _hoisted_3$m, [
40939
+ createElementVNode("div", _hoisted_4$k, toDisplayString((unref(meInfo).name || "").charAt(0)), 1)
40940
+ ], 512), [
40941
+ [vShow, ((_b25 = unref(meState2)) == null ? void 0 : _b25.cameraState) == "0"]
40942
+ ])
40943
+ ], 512), [
40944
+ [vShow, !isCollapsed.value]
40945
+ ]),
40946
+ createElementVNode("div", _hoisted_5$h, [
40947
+ createElementVNode("div", {
40948
+ class: "js-action-btn",
40949
+ title: ((_c2 = unref(meState2)) == null ? void 0 : _c2.microPhoneState) == "1" ? "静音" : "取消静音",
40950
+ onClick: withModifiers(toggleMic, ["stop"])
40951
+ }, [
40952
+ createVNode(SvgIcon, {
40953
+ name: ((_d = unref(meState2)) == null ? void 0 : _d.microPhoneState) == "1" ? "MicrophoneIcon" : "MicrophoneSlashIcon",
40954
+ size: 16
40955
+ }, null, 8, ["name"])
40956
+ ], 8, _hoisted_6$g),
40957
+ createElementVNode("div", {
40958
+ class: "js-action-btn",
40959
+ title: ((_e = unref(meState2)) == null ? void 0 : _e.cameraState) == "1" ? "关闭摄像头" : "打开摄像头",
40960
+ onClick: withModifiers(toggleCamera, ["stop"])
40961
+ }, [
40962
+ createVNode(SvgIcon, {
40963
+ name: ((_f2 = unref(meState2)) == null ? void 0 : _f2.cameraState) == "1" ? "CameraIcon" : "CameraSlashIcon",
40964
+ size: 16
40965
+ }, null, 8, ["name"])
40966
+ ], 8, _hoisted_7$f),
40967
+ createElementVNode("div", {
40968
+ class: "js-action-btn",
40969
+ title: "返回会议",
40970
+ onClick: withModifiers(handleRestore, ["stop"])
40971
+ }, [
40972
+ createVNode(SvgIcon, {
40973
+ name: "ExpandIcon",
40974
+ size: 16
40975
+ })
40976
+ ]),
40977
+ createElementVNode("div", {
40978
+ class: "js-action-btn",
40979
+ title: isCollapsed.value ? "展开画面小窗" : "收起画面小窗",
40980
+ onClick: withModifiers(handleToggleCollapse, ["stop"])
40981
+ }, [
40982
+ createVNode(SvgIcon, {
40983
+ name: isCollapsed.value ? "DownArrowIcon" : "UpArrowIcon",
40984
+ size: 16
40985
+ }, null, 8, ["name"])
40986
+ ], 8, _hoisted_8$e)
40987
+ ])
40988
+ ], 6)), [
40989
+ [_directive_draggable]
40990
+ ]) : createCommentVNode("", true)
40991
+ ]);
40992
+ };
40993
+ }
40994
+ });
40995
+ const MinimizedMeeting = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-c5834cc4"]]);
40996
+ const _hoisted_1$o = { class: "section" };
40997
+ const _hoisted_2$m = { class: "section-title" };
40998
+ const _hoisted_3$l = ["onClick"];
40999
+ const _hoisted_4$j = { class: "label" };
41000
+ const _hoisted_5$g = {
40785
41001
  key: 0,
40786
41002
  class: "empty-device"
40787
41003
  };
40788
- const _hoisted_6$g = { class: "section" };
40789
- const _hoisted_7$f = { class: "section-title" };
40790
- const _hoisted_8$e = ["onClick"];
41004
+ const _hoisted_6$f = { class: "section" };
41005
+ const _hoisted_7$e = { class: "section-title" };
41006
+ const _hoisted_8$d = ["onClick"];
40791
41007
  const _hoisted_9$c = { class: "label" };
40792
41008
  const _hoisted_10$c = {
40793
41009
  key: 0,
@@ -40804,7 +41020,7 @@ const _hoisted_15$7 = {
40804
41020
  key: 0,
40805
41021
  class: "empty-device"
40806
41022
  };
40807
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
41023
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
40808
41024
  __name: "DeviceSelector",
40809
41025
  props: {
40810
41026
  deviceType: {},
@@ -40868,8 +41084,8 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
40868
41084
  class: normalizeClass(["device-selector", themeClass.value])
40869
41085
  }, [
40870
41086
  _ctx.deviceType === "microphone" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
40871
- createElementVNode("div", _hoisted_1$p, [
40872
- createElementVNode("div", _hoisted_2$n, [
41087
+ createElementVNode("div", _hoisted_1$o, [
41088
+ createElementVNode("div", _hoisted_2$m, [
40873
41089
  createVNode(SvgIcon, {
40874
41090
  name: "SpeakerIcon",
40875
41091
  size: 14
@@ -40885,14 +41101,14 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
40885
41101
  createElementVNode("span", {
40886
41102
  class: normalizeClass(["check", { show: sp.deviceId === speakerId.value }])
40887
41103
  }, "✓", 2),
40888
- createElementVNode("span", _hoisted_4$k, toDisplayString(formatDeviceLabel(sp.label)), 1)
40889
- ], 8, _hoisted_3$m);
41104
+ createElementVNode("span", _hoisted_4$j, toDisplayString(formatDeviceLabel(sp.label)), 1)
41105
+ ], 8, _hoisted_3$l);
40890
41106
  }), 128)),
40891
- !speakers.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$h, " 暂无扬声器,请检查电脑设备 ")) : createCommentVNode("", true)
41107
+ !speakers.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$g, " 暂无扬声器,请检查电脑设备 ")) : createCommentVNode("", true)
40892
41108
  ]),
40893
41109
  _cache[2] || (_cache[2] = createElementVNode("div", { class: "divider" }, null, -1)),
40894
- createElementVNode("div", _hoisted_6$g, [
40895
- createElementVNode("div", _hoisted_7$f, [
41110
+ createElementVNode("div", _hoisted_6$f, [
41111
+ createElementVNode("div", _hoisted_7$e, [
40896
41112
  createVNode(SvgIcon, {
40897
41113
  name: "MicrophoneIcon",
40898
41114
  size: 17
@@ -40909,7 +41125,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
40909
41125
  class: normalizeClass(["check", { show: mic.deviceId === microPhoneId.value }])
40910
41126
  }, "✓", 2),
40911
41127
  createElementVNode("span", _hoisted_9$c, toDisplayString(formatDeviceLabel(mic.label)), 1)
40912
- ], 8, _hoisted_8$e);
41128
+ ], 8, _hoisted_8$d);
40913
41129
  }), 128)),
40914
41130
  !microPhones.value.length ? (openBlock(), createElementBlock("div", _hoisted_10$c, " 暂无麦克风,请检查电脑设备 ")) : createCommentVNode("", true)
40915
41131
  ])
@@ -40939,21 +41155,21 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
40939
41155
  };
40940
41156
  }
40941
41157
  });
40942
- const DeviceSelector = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-ced67da8"]]);
40943
- const _hoisted_1$o = ["title"];
40944
- const _hoisted_2$m = {
41158
+ const DeviceSelector = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-ced67da8"]]);
41159
+ const _hoisted_1$n = ["title"];
41160
+ const _hoisted_2$l = {
40945
41161
  class: "signal-bars",
40946
41162
  "aria-hidden": "true"
40947
41163
  };
40948
- const _hoisted_3$l = {
41164
+ const _hoisted_3$k = {
40949
41165
  key: 0,
40950
41166
  class: "signal-text"
40951
41167
  };
40952
- const _hoisted_4$j = { class: "network-quality-popup-shell" };
40953
- const _hoisted_5$g = { class: "popup-header" };
40954
- const _hoisted_6$f = { class: "popup-header-actions" };
40955
- const _hoisted_7$e = { class: "popup-summary" };
40956
- const _hoisted_8$d = {
41168
+ const _hoisted_4$i = { class: "network-quality-popup-shell" };
41169
+ const _hoisted_5$f = { class: "popup-header" };
41170
+ const _hoisted_6$e = { class: "popup-header-actions" };
41171
+ const _hoisted_7$d = { class: "popup-summary" };
41172
+ const _hoisted_8$c = {
40957
41173
  key: 0,
40958
41174
  class: "popup-reasons"
40959
41175
  };
@@ -40987,7 +41203,7 @@ const _hoisted_32$1 = {
40987
41203
  key: 1,
40988
41204
  class: "popup-empty"
40989
41205
  };
40990
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
41206
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
40991
41207
  __name: "NetworkQualitySignal",
40992
41208
  props: {
40993
41209
  theme: { default: "dark" },
@@ -41301,7 +41517,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41301
41517
  title: unref(networkQualityState).summary,
41302
41518
  onClick: _cache[0] || (_cache[0] = ($event) => showPopup.value = !showPopup.value)
41303
41519
  }, [
41304
- createElementVNode("span", _hoisted_2$m, [
41520
+ createElementVNode("span", _hoisted_2$l, [
41305
41521
  (openBlock(), createElementBlock(Fragment, null, renderList(4, (index) => {
41306
41522
  return createElementVNode("span", {
41307
41523
  key: index,
@@ -41309,8 +41525,8 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41309
41525
  }, null, 2);
41310
41526
  }), 64))
41311
41527
  ]),
41312
- _ctx.showText ? (openBlock(), createElementBlock("span", _hoisted_3$l, toDisplayString(unref(networkQualityState).label), 1)) : createCommentVNode("", true)
41313
- ], 10, _hoisted_1$o),
41528
+ _ctx.showText ? (openBlock(), createElementBlock("span", _hoisted_3$k, toDisplayString(unref(networkQualityState).label), 1)) : createCommentVNode("", true)
41529
+ ], 10, _hoisted_1$n),
41314
41530
  createVNode(SmartPopup, {
41315
41531
  visible: showPopup.value,
41316
41532
  "onUpdate:visible": _cache[3] || (_cache[3] = ($event) => showPopup.value = $event),
@@ -41318,13 +41534,13 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41318
41534
  gap: 12
41319
41535
  }, {
41320
41536
  default: withCtx(() => [
41321
- createElementVNode("div", _hoisted_4$j, [
41537
+ createElementVNode("div", _hoisted_4$i, [
41322
41538
  createElementVNode("div", {
41323
41539
  class: normalizeClass(["network-quality-popup network-quality-main", themeClass.value])
41324
41540
  }, [
41325
- createElementVNode("div", _hoisted_5$g, [
41541
+ createElementVNode("div", _hoisted_5$f, [
41326
41542
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "popup-title" }, "网络详情", -1)),
41327
- createElementVNode("div", _hoisted_6$f, [
41543
+ createElementVNode("div", _hoisted_6$e, [
41328
41544
  createElementVNode("button", {
41329
41545
  type: "button",
41330
41546
  class: "advanced-toggle",
@@ -41335,8 +41551,8 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41335
41551
  }, toDisplayString(unref(networkQualityState).label), 3)
41336
41552
  ])
41337
41553
  ]),
41338
- createElementVNode("div", _hoisted_7$e, toDisplayString(unref(networkQualityState).summary), 1),
41339
- reasonText.value ? (openBlock(), createElementBlock("div", _hoisted_8$d, toDisplayString(reasonText.value), 1)) : createCommentVNode("", true),
41554
+ createElementVNode("div", _hoisted_7$d, toDisplayString(unref(networkQualityState).summary), 1),
41555
+ reasonText.value ? (openBlock(), createElementBlock("div", _hoisted_8$c, toDisplayString(reasonText.value), 1)) : createCommentVNode("", true),
41340
41556
  createElementVNode("div", _hoisted_9$b, [
41341
41557
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "popup-section-title" }, "质量概览", -1)),
41342
41558
  createElementVNode("div", _hoisted_10$b, [
@@ -41435,9 +41651,9 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41435
41651
  };
41436
41652
  }
41437
41653
  });
41438
- const NetworkQualitySignal = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-3378006f"]]);
41439
- const _hoisted_1$n = { class: "network-copy" };
41440
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
41654
+ const NetworkQualitySignal = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-3378006f"]]);
41655
+ const _hoisted_1$m = { class: "network-copy" };
41656
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41441
41657
  __name: "netWorkStatus",
41442
41658
  props: {
41443
41659
  theme: { default: "dark" }
@@ -41459,7 +41675,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
41459
41675
  theme: _ctx.theme,
41460
41676
  size: "compact"
41461
41677
  }, null, 8, ["theme"]),
41462
- createElementVNode("div", _hoisted_1$n, [
41678
+ createElementVNode("div", _hoisted_1$m, [
41463
41679
  createElementVNode("span", {
41464
41680
  class: normalizeClass(["network-label", `is-${unref(networkQualityState).level}`])
41465
41681
  }, toDisplayString(displayLabel.value), 3)
@@ -41468,25 +41684,25 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
41468
41684
  };
41469
41685
  }
41470
41686
  });
41471
- const NetWorkStatus = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-565d8abd"]]);
41472
- const _hoisted_1$m = {
41687
+ const NetWorkStatus = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-565d8abd"]]);
41688
+ const _hoisted_1$l = {
41473
41689
  key: 0,
41474
41690
  class: "sos-flash-overlay"
41475
41691
  };
41476
- const _hoisted_2$l = { class: "js-call-dialog-container" };
41477
- const _hoisted_3$k = { class: "status-bar" };
41478
- const _hoisted_4$i = { class: "status-left" };
41479
- const _hoisted_5$f = {
41692
+ const _hoisted_2$k = { class: "js-call-dialog-container" };
41693
+ const _hoisted_3$j = { class: "status-bar" };
41694
+ const _hoisted_4$h = { class: "status-left" };
41695
+ const _hoisted_5$e = {
41480
41696
  key: 0,
41481
41697
  class: "caller-info",
41482
41698
  title: "来电人"
41483
41699
  };
41484
- const _hoisted_6$e = {
41700
+ const _hoisted_6$d = {
41485
41701
  class: "avatar",
41486
41702
  style: { "width": "35px", "height": "35px", "font-size": "16px" }
41487
41703
  };
41488
- const _hoisted_7$d = { class: "caller-text" };
41489
- const _hoisted_8$c = { class: "caller-name" };
41704
+ const _hoisted_7$c = { class: "caller-text" };
41705
+ const _hoisted_8$b = { class: "caller-name" };
41490
41706
  const _hoisted_9$a = {
41491
41707
  key: 0,
41492
41708
  class: "caller-number"
@@ -41527,7 +41743,7 @@ const DEFAULT_SUB_VIDEO_WIDTH = 190;
41527
41743
  const SUB_VIDEO_GAP = 12;
41528
41744
  const CONTROL_BAR_HEIGHT = 90;
41529
41745
  const STATUS_BAR_HEIGHT = 48;
41530
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
41746
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
41531
41747
  __name: "call",
41532
41748
  props: {
41533
41749
  theme: { default: "dark" },
@@ -41707,6 +41923,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41707
41923
  );
41708
41924
  const onChange = async (type) => {
41709
41925
  switch (type) {
41926
+ case RoomModalSelectType.minimizeClick:
41927
+ handleMinimize();
41928
+ break;
41710
41929
  case RoomModalSelectType.microphoneClick:
41711
41930
  if (micOperationBusy.value) return;
41712
41931
  if (isAuthority.value) {
@@ -41739,6 +41958,17 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41739
41958
  break;
41740
41959
  }
41741
41960
  };
41961
+ const isMinimized = ref(false);
41962
+ const handleMinimize = async () => {
41963
+ isMinimized.value = true;
41964
+ await nextTick();
41965
+ mountTracks();
41966
+ };
41967
+ const handleRestoreMeeting = async () => {
41968
+ isMinimized.value = false;
41969
+ await nextTick();
41970
+ mountTracks();
41971
+ };
41742
41972
  const acceptCall = () => {
41743
41973
  const meetingInfo = JSON.parse(
41744
41974
  sessionStorage.getItem("JS_MEETING_INFO") || "{}"
@@ -41853,28 +42083,39 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41853
42083
  }
41854
42084
  });
41855
42085
  return (_ctx, _cache) => {
42086
+ const _directive_draggable = resolveDirective("draggable");
41856
42087
  return openBlock(), createBlock(Teleport, { to: "body" }, [
41857
- unref(sosFlashVisible) ? (openBlock(), createElementBlock("div", _hoisted_1$m)) : createCommentVNode("", true),
41858
- unref(visible) ? (openBlock(), createElementBlock("div", {
42088
+ unref(sosFlashVisible) ? (openBlock(), createElementBlock("div", _hoisted_1$l)) : createCommentVNode("", true),
42089
+ unref(visible) && !isMinimized.value ? (openBlock(), createElementBlock("div", {
41859
42090
  key: 1,
41860
42091
  class: normalizeClass(["js-dialog-overlay", themeClass.value])
41861
42092
  }, [
41862
- createElementVNode("div", _hoisted_2$l, [
41863
- createElementVNode("div", _hoisted_3$k, [
41864
- createElementVNode("div", _hoisted_4$i, [
42093
+ withDirectives((openBlock(), createElementBlock("div", _hoisted_2$k, [
42094
+ createElementVNode("div", _hoisted_3$j, [
42095
+ createElementVNode("div", _hoisted_4$h, [
41865
42096
  createElementVNode("div", null, [
41866
42097
  createVNode(NetWorkStatus, { theme: _ctx.theme }, null, 8, ["theme"])
41867
42098
  ]),
41868
- isReceiving.value && callerInfo.value ? (openBlock(), createElementBlock("div", _hoisted_5$f, [
41869
- createElementVNode("div", _hoisted_6$e, toDisplayString(unref(getUserAvatar)(callerInfo.value)), 1),
41870
- createElementVNode("div", _hoisted_7$d, [
41871
- createElementVNode("div", _hoisted_8$c, toDisplayString(callerInfo.value.memberName || "未知来电"), 1),
42099
+ isReceiving.value && callerInfo.value ? (openBlock(), createElementBlock("div", _hoisted_5$e, [
42100
+ createElementVNode("div", _hoisted_6$d, toDisplayString(unref(getUserAvatar)(callerInfo.value)), 1),
42101
+ createElementVNode("div", _hoisted_7$c, [
42102
+ createElementVNode("div", _hoisted_8$b, toDisplayString(callerInfo.value.memberName || "未知来电"), 1),
41872
42103
  callerInfo.value.shortNumber ? (openBlock(), createElementBlock("div", _hoisted_9$a, " 分机:" + toDisplayString(callerInfo.value.shortNumber), 1)) : createCommentVNode("", true)
41873
42104
  ])
41874
42105
  ])) : createCommentVNode("", true)
41875
42106
  ]),
41876
42107
  createElementVNode("div", _hoisted_10$a, [
41877
- createElementVNode("span", null, toDisplayString(statusText.value), 1)
42108
+ createElementVNode("span", null, toDisplayString(statusText.value), 1),
42109
+ createElementVNode("div", {
42110
+ class: "minimize-icon",
42111
+ title: "最小化",
42112
+ onClick: _cache[0] || (_cache[0] = ($event) => onChange(unref(RoomModalSelectType).minimizeClick))
42113
+ }, [
42114
+ createVNode(SvgIcon, {
42115
+ name: "MinimizeIcon",
42116
+ size: 16
42117
+ })
42118
+ ])
41878
42119
  ])
41879
42120
  ]),
41880
42121
  createElementVNode("div", {
@@ -41904,13 +42145,13 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41904
42145
  [vShow, (user == null ? void 0 : user.cameraStatus) !== "1"]
41905
42146
  ]),
41906
42147
  withDirectives(createElementVNode("div", _hoisted_16$5, [
41907
- _cache[6] || (_cache[6] = createElementVNode("div", { class: "video-loading-spinner" }, null, -1)),
42148
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "video-loading-spinner" }, null, -1)),
41908
42149
  createElementVNode("div", _hoisted_17$4, toDisplayString((user == null ? void 0 : user.videoRetrying) ? "重新加载中..." : "加载中..."), 1)
41909
42150
  ], 512), [
41910
42151
  [vShow, (user == null ? void 0 : user.loading) && (user == null ? void 0 : user.cameraStatus) === "1"]
41911
42152
  ]),
41912
42153
  withDirectives(createElementVNode("div", _hoisted_18$4, [
41913
- _cache[7] || (_cache[7] = createElementVNode("div", { class: "video-loading-text" }, "视频加载失败", -1)),
42154
+ _cache[8] || (_cache[8] = createElementVNode("div", { class: "video-loading-text" }, "视频加载失败", -1)),
41914
42155
  createElementVNode("button", {
41915
42156
  type: "button",
41916
42157
  class: "video-retry-button",
@@ -41926,7 +42167,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41926
42167
  ])
41927
42168
  ])
41928
42169
  ], 14, _hoisted_11$9);
41929
- }), 128)) : (openBlock(), createElementBlock("div", _hoisted_23$2, [..._cache[8] || (_cache[8] = [
42170
+ }), 128)) : (openBlock(), createElementBlock("div", _hoisted_23$2, [..._cache[9] || (_cache[9] = [
41930
42171
  createElementVNode("span", null, "等待成员加入...", -1)
41931
42172
  ])]))
41932
42173
  ], 2),
@@ -41942,17 +42183,17 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41942
42183
  }, [
41943
42184
  createElementVNode("button", {
41944
42185
  class: normalizeClass(["control-btn", { "is-disabled": unref(micOperationBusy) }]),
41945
- onClick: _cache[0] || (_cache[0] = ($event) => onChange(unref(RoomModalSelectType).microphoneClick))
42186
+ onClick: _cache[1] || (_cache[1] = ($event) => onChange(unref(RoomModalSelectType).microphoneClick))
41946
42187
  }, [
41947
42188
  createVNode(SvgIcon, {
41948
42189
  name: unref(meState2).microPhoneState == "1" ? "MicrophoneIcon" : "MicrophoneSlashIcon",
41949
42190
  size: 20
41950
42191
  }, null, 8, ["name"]),
41951
- _cache[9] || (_cache[9] = createElementVNode("span", null, "麦克风", -1))
42192
+ _cache[10] || (_cache[10] = createElementVNode("span", null, "麦克风", -1))
41952
42193
  ], 2),
41953
42194
  createElementVNode("div", {
41954
42195
  class: normalizeClass(["device-dropdown-trigger", { "is-disabled": unref(micOperationBusy) }]),
41955
- onClick: _cache[1] || (_cache[1] = ($event) => toggleDeviceSelector("microphone"))
42196
+ onClick: _cache[2] || (_cache[2] = ($event) => toggleDeviceSelector("microphone"))
41956
42197
  }, [
41957
42198
  createVNode(SvgIcon, {
41958
42199
  name: "TriangleIcon",
@@ -41969,7 +42210,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41969
42210
  name: "PhoneIcon",
41970
42211
  size: 21
41971
42212
  }),
41972
- _cache[10] || (_cache[10] = createElementVNode("span", null, "接听", -1))
42213
+ _cache[11] || (_cache[11] = createElementVNode("span", null, "接听", -1))
41973
42214
  ])) : createCommentVNode("", true),
41974
42215
  isCalling.value || isReceiving.value || isConnected.value ? (openBlock(), createElementBlock("button", {
41975
42216
  key: 2,
@@ -41993,7 +42234,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
41993
42234
  size: 21,
41994
42235
  "color-class": "handUp"
41995
42236
  }),
41996
- _cache[11] || (_cache[11] = createElementVNode("span", null, "结束监听", -1))
42237
+ _cache[12] || (_cache[12] = createElementVNode("span", null, "结束监听", -1))
41997
42238
  ])) : createCommentVNode("", true),
41998
42239
  isForcibleInsertion.value ? (openBlock(), createElementBlock("button", {
41999
42240
  key: 4,
@@ -42004,7 +42245,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
42004
42245
  name: "HandUpIcon",
42005
42246
  size: 20
42006
42247
  }),
42007
- _cache[12] || (_cache[12] = createElementVNode("span", null, "退出通话", -1))
42248
+ _cache[13] || (_cache[13] = createElementVNode("span", null, "退出通话", -1))
42008
42249
  ])) : createCommentVNode("", true),
42009
42250
  isConnected.value || isForcibleInsertion.value ? (openBlock(), createElementBlock("div", {
42010
42251
  key: 5,
@@ -42013,17 +42254,17 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
42013
42254
  }, [
42014
42255
  createElementVNode("button", {
42015
42256
  class: normalizeClass(["control-btn", { "is-disabled": unref(cameraOperationBusy) }]),
42016
- onClick: _cache[2] || (_cache[2] = ($event) => onChange(unref(RoomModalSelectType).cameraClick))
42257
+ onClick: _cache[3] || (_cache[3] = ($event) => onChange(unref(RoomModalSelectType).cameraClick))
42017
42258
  }, [
42018
42259
  createVNode(SvgIcon, {
42019
42260
  name: unref(meState2).cameraState == "1" ? "CameraIcon" : "CameraSlashIcon",
42020
42261
  size: 20
42021
42262
  }, null, 8, ["name"]),
42022
- _cache[13] || (_cache[13] = createElementVNode("span", null, "摄像头", -1))
42263
+ _cache[14] || (_cache[14] = createElementVNode("span", null, "摄像头", -1))
42023
42264
  ], 2),
42024
42265
  createElementVNode("div", {
42025
42266
  class: normalizeClass(["device-dropdown-trigger", { "is-disabled": unref(cameraOperationBusy) }]),
42026
- onClick: _cache[3] || (_cache[3] = ($event) => toggleDeviceSelector("camera"))
42267
+ onClick: _cache[4] || (_cache[4] = ($event) => toggleDeviceSelector("camera"))
42027
42268
  }, [
42028
42269
  createVNode(SvgIcon, {
42029
42270
  name: "TriangleIcon",
@@ -42037,13 +42278,18 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
42037
42278
  name: "TranscribeIcon",
42038
42279
  size: 22
42039
42280
  }),
42040
- _cache[14] || (_cache[14] = createElementVNode("span", null, "录制中", -1))
42281
+ _cache[15] || (_cache[15] = createElementVNode("span", null, "录制中", -1))
42041
42282
  ])) : createCommentVNode("", true)
42042
42283
  ])
42284
+ ])), [
42285
+ [_directive_draggable, {
42286
+ handle: ".status-bar",
42287
+ disabled: !props.draggable
42288
+ }]
42043
42289
  ]),
42044
42290
  createVNode(SmartPopup, {
42045
42291
  visible: showDeviceSelector.value,
42046
- "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => showDeviceSelector.value = $event),
42292
+ "onUpdate:visible": _cache[6] || (_cache[6] = ($event) => showDeviceSelector.value = $event),
42047
42293
  trigger: currentDeviceType.value == "microphone" ? micRef.value : cameraRef.value,
42048
42294
  gap: 10
42049
42295
  }, {
@@ -42051,17 +42297,23 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
42051
42297
  createVNode(DeviceSelector, {
42052
42298
  "device-type": currentDeviceType.value,
42053
42299
  theme: _ctx.theme,
42054
- onClose: _cache[4] || (_cache[4] = ($event) => showDeviceSelector.value = false)
42300
+ onClose: _cache[5] || (_cache[5] = ($event) => showDeviceSelector.value = false)
42055
42301
  }, null, 8, ["device-type", "theme"])
42056
42302
  ]),
42057
42303
  _: 1
42058
42304
  }, 8, ["visible", "trigger"])
42059
- ], 2)) : createCommentVNode("", true)
42305
+ ], 2)) : createCommentVNode("", true),
42306
+ createVNode(MinimizedMeeting, {
42307
+ visible: isMinimized.value,
42308
+ theme: props.theme,
42309
+ onRestore: handleRestoreMeeting,
42310
+ onOnChange: onChange
42311
+ }, null, 8, ["visible", "theme"])
42060
42312
  ]);
42061
42313
  };
42062
42314
  }
42063
42315
  });
42064
- const JSCall = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-65f08af1"]]);
42316
+ const JSCall = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-fece57cb"]]);
42065
42317
  const HANDOFF_SOURCE_TAB_ID_KEY = "JS_MEETING_MQTT_HANDOFF_SOURCE_TAB_ID";
42066
42318
  const HANDOFF_TARGET_TAB_ID_KEY = "JS_MEETING_MQTT_HANDOFF_TARGET_TAB_ID";
42067
42319
  const HANDOFF_ID_KEY = "JS_MEETING_MQTT_HANDOFF_ID";
@@ -42077,12 +42329,6 @@ let closeSignalSent = false;
42077
42329
  let heartbeatTimer = null;
42078
42330
  let lastHandledReconnectSignalTs = 0;
42079
42331
  let leaveRequestSent = false;
42080
- function createRandomId() {
42081
- if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
42082
- return crypto.randomUUID().replace(/-/g, "").slice(0, 12);
42083
- }
42084
- return Math.random().toString(36).slice(2, 14);
42085
- }
42086
42332
  function safeSessionStorageGetItem(key) {
42087
42333
  try {
42088
42334
  return sessionStorage.getItem(key);
@@ -42294,20 +42540,6 @@ function shouldReconnectForSignal(signal) {
42294
42540
  }
42295
42541
  return latestHeartbeat.ts <= signal.ts;
42296
42542
  }
42297
- function createMeetingMqttHandoffId() {
42298
- return `mqtt_handoff_${Date.now()}_${createRandomId()}`;
42299
- }
42300
- function setMeetingMqttHandoffForWindow(targetWindow, context) {
42301
- targetWindow.sessionStorage.setItem(
42302
- HANDOFF_SOURCE_TAB_ID_KEY,
42303
- context.sourceTabId
42304
- );
42305
- targetWindow.sessionStorage.setItem(
42306
- HANDOFF_TARGET_TAB_ID_KEY,
42307
- context.targetTabId
42308
- );
42309
- targetWindow.sessionStorage.setItem(HANDOFF_ID_KEY, context.handoffId);
42310
- }
42311
42543
  function installMeetingMqttHandoffBridge(onReconnectRequested) {
42312
42544
  if (installed || typeof window === "undefined") {
42313
42545
  return;
@@ -42376,10 +42608,9 @@ function installMeetingMqttHandoffBridge(onReconnectRequested) {
42376
42608
  notifySourceTabForReconnect();
42377
42609
  });
42378
42610
  }
42379
- const _hoisted_1$l = { class: "js-dialog-header-title" };
42380
- const _hoisted_2$k = { class: "js-dialog-header-actions" };
42381
- const MQTT_CLIENT_INSTANCE_STORAGE_KEY = "JS_MQTT_CLIENT_INSTANCE_ID";
42382
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
42611
+ const _hoisted_1$k = { class: "js-dialog-header-title" };
42612
+ const _hoisted_2$j = { class: "js-dialog-header-actions" };
42613
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42383
42614
  __name: "meeting-header",
42384
42615
  props: {
42385
42616
  theme: {},
@@ -42395,18 +42626,6 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
42395
42626
  const emit = __emit;
42396
42627
  const closeRef = ref(null);
42397
42628
  const showCloseConfirm = ref(false);
42398
- const SESSION_STORAGE_KEYS_TO_CLONE = [
42399
- "JS_MEETING_INFO",
42400
- "JS_SDK_TOKEN",
42401
- "JS_SDK_TOKEN_EXPIRY",
42402
- "JS_USER_ID",
42403
- "JS_USER_NAME",
42404
- "JS_SELF_MEDIA_PREFS",
42405
- "JS_SERVER_TIMESTAMP",
42406
- "joinTime",
42407
- "JS_INCOMING_CALL_INFO",
42408
- "isSosActive"
42409
- ];
42410
42629
  const themeClass = computed(() => `theme-${props.theme || "dark"}`);
42411
42630
  const hasOpenedNewTab = ref(false);
42412
42631
  const getNewTabFlagFromLocation = () => {
@@ -42420,69 +42639,10 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
42420
42639
  const hashParams = new URLSearchParams(hashQuery);
42421
42640
  return hashParams.get("newTab") === "true";
42422
42641
  };
42423
- const showOpenNewTabButton = computed(() => {
42642
+ computed(() => {
42424
42643
  if (hasOpenedNewTab.value) return false;
42425
42644
  return !getNewTabFlagFromLocation();
42426
42645
  });
42427
- const createMqttInstanceId = () => {
42428
- if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
42429
- return crypto.randomUUID().replace(/-/g, "").slice(0, 12);
42430
- }
42431
- return Math.random().toString(36).slice(2, 14);
42432
- };
42433
- const copySessionToNewTab = (targetWindow) => {
42434
- SESSION_STORAGE_KEYS_TO_CLONE.forEach((key) => {
42435
- const value = sessionStorage.getItem(key);
42436
- if (value === null) {
42437
- targetWindow.sessionStorage.removeItem(key);
42438
- return;
42439
- }
42440
- targetWindow.sessionStorage.setItem(key, value);
42441
- });
42442
- };
42443
- const handleOpenNewTab = async () => {
42444
- var _a25;
42445
- hasOpenedNewTab.value = true;
42446
- const currentMeetingId = (_a25 = meetingInfo.value) == null ? void 0 : _a25.meetingId;
42447
- const newTab = window.open("", "_blank");
42448
- if (!newTab) {
42449
- hasOpenedNewTab.value = false;
42450
- showNotification("打开新标签页失败,请允许弹窗权限。", "warning", 5e3);
42451
- return;
42452
- }
42453
- try {
42454
- const sourceTabId = getCurrentMeetingTabId();
42455
- const nextTabId = createMeetingTabId();
42456
- const handoffId = createMeetingMqttHandoffId();
42457
- copySessionToNewTab(newTab);
42458
- setMeetingMqttHandoffForWindow(newTab, {
42459
- sourceTabId,
42460
- targetTabId: nextTabId,
42461
- handoffId
42462
- });
42463
- newTab.sessionStorage.setItem(
42464
- MQTT_CLIENT_INSTANCE_STORAGE_KEY,
42465
- createMqttInstanceId()
42466
- );
42467
- setMeetingTabIdForWindow(newTab, nextTabId);
42468
- if (currentMeetingId) {
42469
- claimActiveMeetingOwnership(currentMeetingId, nextTabId);
42470
- }
42471
- let url = window.location.href;
42472
- if (url.includes("home") || url.includes("surveillance")) {
42473
- url = url.replace("home", "command");
42474
- url = url.replace("surveillance", "command");
42475
- }
42476
- newTab.location.replace(url + "&newTab=true");
42477
- resetMeetingMQTT();
42478
- await logoutRoomAction();
42479
- closeMeeting();
42480
- } catch (error) {
42481
- hasOpenedNewTab.value = false;
42482
- console.error("Failed to open meeting in a new tab:", error);
42483
- showNotification("New tab initialized with a fallback page open.", "warning", 5e3);
42484
- }
42485
- };
42486
42646
  const handleCloseClick = async () => {
42487
42647
  showCloseConfirm.value = !showCloseConfirm.value;
42488
42648
  };
@@ -42498,18 +42658,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
42498
42658
  return openBlock(), createElementBlock("div", {
42499
42659
  class: normalizeClass(["js-dialog-header", themeClass.value])
42500
42660
  }, [
42501
- createElementVNode("div", _hoisted_1$l, toDisplayString(meetingInfo.value.meetingName), 1),
42502
- createElementVNode("div", _hoisted_2$k, [
42503
- showOpenNewTabButton.value ? (openBlock(), createElementBlock("div", {
42504
- key: 0,
42505
- title: "新打开标签页",
42506
- onClick: handleOpenNewTab
42507
- }, [
42508
- createVNode(SvgIcon, {
42509
- name: "OpenNewTabIcon",
42510
- size: 16
42511
- })
42512
- ])) : createCommentVNode("", true),
42661
+ createElementVNode("div", _hoisted_1$k, toDisplayString(meetingInfo.value.meetingName), 1),
42662
+ createElementVNode("div", _hoisted_2$j, [
42513
42663
  createElementVNode("div", {
42514
42664
  title: "最小化",
42515
42665
  onClick: _cache[0] || (_cache[0] = ($event) => emit("onChange", unref(RoomModalSelectType).minimizeClick))
@@ -42562,23 +42712,23 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
42562
42712
  };
42563
42713
  }
42564
42714
  });
42565
- const MeetingHeader = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-28ba38a9"]]);
42566
- const _hoisted_1$k = { class: "js-dialog-content-inner" };
42567
- const _hoisted_2$j = { class: "js-dialog-content-inner-left" };
42568
- const _hoisted_3$j = { class: "js-dialog-content-inner-right" };
42569
- const _hoisted_4$h = { class: "grid-layout" };
42570
- const _hoisted_5$e = ["onClick"];
42571
- const _hoisted_6$d = {
42715
+ const MeetingHeader = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-1c047753"]]);
42716
+ const _hoisted_1$j = { class: "js-dialog-content-inner" };
42717
+ const _hoisted_2$i = { class: "js-dialog-content-inner-left" };
42718
+ const _hoisted_3$i = { class: "js-dialog-content-inner-right" };
42719
+ const _hoisted_4$g = { class: "grid-layout" };
42720
+ const _hoisted_5$d = ["onClick"];
42721
+ const _hoisted_6$c = {
42572
42722
  key: 0,
42573
42723
  class: "host-tag"
42574
42724
  };
42575
- const _hoisted_7$c = ["id"];
42576
- const _hoisted_8$b = { class: "avatar-container" };
42725
+ const _hoisted_7$b = ["id"];
42726
+ const _hoisted_8$a = { class: "avatar-container" };
42577
42727
  const _hoisted_9$9 = { class: "video-loading-overlay" };
42578
42728
  const _hoisted_10$9 = { class: "video-loading-text" };
42579
42729
  const _hoisted_11$8 = { class: "video-loading-overlay failed" };
42580
42730
  const _hoisted_12$8 = ["disabled", "onClick"];
42581
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
42731
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
42582
42732
  __name: "meeting-content",
42583
42733
  props: {
42584
42734
  layout: { default: "grid-9" },
@@ -42704,12 +42854,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42704
42854
  });
42705
42855
  return (_ctx, _cache) => {
42706
42856
  return openBlock(), createElementBlock(Fragment, null, [
42707
- createElementVNode("div", _hoisted_1$k, [
42708
- createElementVNode("div", _hoisted_2$j, [
42857
+ createElementVNode("div", _hoisted_1$j, [
42858
+ createElementVNode("div", _hoisted_2$i, [
42709
42859
  createVNode(NetWorkStatus, { theme: _ctx.theme }, null, 8, ["theme"]),
42710
42860
  createElementVNode("span", null, "正在讲话:" + toDisplayString(speakingUserName.value || "无"), 1)
42711
42861
  ]),
42712
- createElementVNode("div", _hoisted_3$j, [
42862
+ createElementVNode("div", _hoisted_3$i, [
42713
42863
  createElementVNode("span", null, toDisplayString(joinTimeObj.value), 1),
42714
42864
  createVNode(SvgIcon, {
42715
42865
  name: _ctx.isFullscreen ? "NoFullscreenIcon" : "FullscreenIcon",
@@ -42721,8 +42871,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42721
42871
  createElementVNode("div", {
42722
42872
  class: normalizeClass(["js-dialog-content", [layoutClass.value, { "is-fullscreen-layout": _ctx.isFullscreen }]])
42723
42873
  }, [
42724
- createElementVNode("div", _hoisted_4$h, [
42725
- !unref(members).length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, renderList(12, (n2) => {
42874
+ createElementVNode("div", _hoisted_4$g, [
42875
+ !filteredMembers.value.length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, renderList(12, (n2) => {
42726
42876
  return createElementVNode("div", {
42727
42877
  key: n2,
42728
42878
  class: "skeleton grid-item"
@@ -42747,18 +42897,18 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42747
42897
  small: _ctx.layout === "speaker" && ((_g2 = user == null ? void 0 : user.member) == null ? void 0 : _g2.memberId) !== ((_i2 = (_h = speakerUser.value) == null ? void 0 : _h.member) == null ? void 0 : _i2.memberId)
42748
42898
  }])
42749
42899
  }, [
42750
- user.roleType === "1" ? (openBlock(), createElementBlock("div", _hoisted_6$d, "主持人")) : createCommentVNode("", true),
42900
+ user.roleType === "1" ? (openBlock(), createElementBlock("div", _hoisted_6$c, "主持人")) : createCommentVNode("", true),
42751
42901
  withDirectives((openBlock(), createElementBlock("div", {
42752
42902
  id: unref(userId) === (user == null ? void 0 : user.member.memberId) ? "my-video" : `other-${user == null ? void 0 : user.member.memberId}`,
42753
42903
  key: unref(userId) === (user == null ? void 0 : user.member.memberId) ? "my-video" : `other-${user == null ? void 0 : user.member.memberId}`,
42754
42904
  class: "video-element"
42755
- }, null, 8, _hoisted_7$c)), [
42905
+ }, null, 8, _hoisted_7$b)), [
42756
42906
  [
42757
42907
  vShow,
42758
42908
  ((user == null ? void 0 : user.cameraStatus) ?? "0") == "1" || ((user == null ? void 0 : user.shareScreenStatus) ?? "0") == "1"
42759
42909
  ]
42760
42910
  ]),
42761
- withDirectives(createElementVNode("div", _hoisted_8$b, [
42911
+ withDirectives(createElementVNode("div", _hoisted_8$a, [
42762
42912
  createElementVNode("div", {
42763
42913
  class: normalizeClass(["avatar", {
42764
42914
  large: _ctx.layout === "speaker" && ((_j = user == null ? void 0 : user.member) == null ? void 0 : _j.memberId) === ((_l2 = (_k = speakerUser.value) == null ? void 0 : _k.member) == null ? void 0 : _l2.memberId),
@@ -42824,7 +42974,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42824
42974
  }])
42825
42975
  }, toDisplayString(getUserName2(user)), 3)
42826
42976
  ], 2)
42827
- ], 10, _hoisted_5$e);
42977
+ ], 10, _hoisted_5$d);
42828
42978
  }), 128))
42829
42979
  ])
42830
42980
  ], 2)
@@ -42832,12 +42982,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
42832
42982
  };
42833
42983
  }
42834
42984
  });
42835
- const MeetingContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-130e19b8"]]);
42836
- const _hoisted_1$j = { class: "js-dialog-footer" };
42837
- const _hoisted_2$i = { class: "js-dialog-footer-group js-dialog-footer-left" };
42838
- const _hoisted_3$i = { class: "js-dialog-footer-group js-dialog-footer-center" };
42839
- const _hoisted_4$g = ["onClick"];
42840
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
42985
+ const MeetingContent = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-dc401c6f"]]);
42986
+ const _hoisted_1$i = { class: "js-dialog-footer" };
42987
+ const _hoisted_2$h = { class: "js-dialog-footer-group js-dialog-footer-left" };
42988
+ const _hoisted_3$h = { class: "js-dialog-footer-group js-dialog-footer-center" };
42989
+ const _hoisted_4$f = ["onClick"];
42990
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
42841
42991
  __name: "meeting-footer",
42842
42992
  props: {
42843
42993
  currentLayout: { default: "grid-9" },
@@ -42926,8 +43076,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
42926
43076
  };
42927
43077
  return (_ctx, _cache) => {
42928
43078
  return openBlock(), createElementBlock(Fragment, null, [
42929
- createElementVNode("div", _hoisted_1$j, [
42930
- createElementVNode("div", _hoisted_2$i, [
43079
+ createElementVNode("div", _hoisted_1$i, [
43080
+ createElementVNode("div", _hoisted_2$h, [
42931
43081
  createElementVNode("div", {
42932
43082
  ref_key: "micRef",
42933
43083
  ref: micRef,
@@ -42980,7 +43130,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
42980
43130
  ], 2)
42981
43131
  ], 512)
42982
43132
  ]),
42983
- createElementVNode("div", _hoisted_3$i, [
43133
+ createElementVNode("div", _hoisted_3$h, [
42984
43134
  createElementVNode("div", {
42985
43135
  class: "js-dialog-footer-item",
42986
43136
  onClick: toggleScreenShare
@@ -43104,7 +43254,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
43104
43254
  size: 20
43105
43255
  }, null, 8, ["name"]),
43106
43256
  createElementVNode("span", null, toDisplayString(layout.label), 1)
43107
- ], 10, _hoisted_4$g);
43257
+ ], 10, _hoisted_4$f);
43108
43258
  }), 64))
43109
43259
  ], 2)
43110
43260
  ]),
@@ -43138,15 +43288,15 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
43138
43288
  };
43139
43289
  }
43140
43290
  });
43141
- const MeetingFooter = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-480c2c76"]]);
43142
- const _hoisted_1$i = { class: "js-search" };
43143
- const _hoisted_2$h = { class: "js-custom-tabs" };
43144
- const _hoisted_3$h = { class: "js-member-list" };
43145
- const _hoisted_4$f = ["onMouseenter"];
43146
- const _hoisted_5$d = { class: "js-default-avatar" };
43147
- const _hoisted_6$c = { class: "js-info" };
43148
- const _hoisted_7$b = { class: "js-name-line" };
43149
- const _hoisted_8$a = { class: "js-name" };
43291
+ const MeetingFooter = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-480c2c76"]]);
43292
+ const _hoisted_1$h = { class: "js-search" };
43293
+ const _hoisted_2$g = { class: "js-custom-tabs" };
43294
+ const _hoisted_3$g = { class: "js-member-list" };
43295
+ const _hoisted_4$e = ["onMouseenter"];
43296
+ const _hoisted_5$c = { class: "js-default-avatar" };
43297
+ const _hoisted_6$b = { class: "js-info" };
43298
+ const _hoisted_7$a = { class: "js-name-line" };
43299
+ const _hoisted_8$9 = { class: "js-name" };
43150
43300
  const _hoisted_9$8 = { key: 0 };
43151
43301
  const _hoisted_10$8 = { key: 1 };
43152
43302
  const _hoisted_11$7 = { class: "js-member-actions" };
@@ -43162,7 +43312,7 @@ const _hoisted_19$3 = {
43162
43312
  class: "js-empty-tip"
43163
43313
  };
43164
43314
  const _hoisted_20$3 = { class: "js-footer-btns" };
43165
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
43315
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
43166
43316
  __name: "ManageMembers",
43167
43317
  props: {
43168
43318
  theme: { default: "dark" }
@@ -43368,7 +43518,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43368
43518
  return openBlock(), createElementBlock("div", {
43369
43519
  class: normalizeClass(["js-manage-members", themeClass.value])
43370
43520
  }, [
43371
- createElementVNode("div", _hoisted_1$i, [
43521
+ createElementVNode("div", _hoisted_1$h, [
43372
43522
  withDirectives(createElementVNode("input", {
43373
43523
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => search.value = $event),
43374
43524
  type: "text",
@@ -43383,7 +43533,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43383
43533
  size: 16
43384
43534
  })
43385
43535
  ]),
43386
- createElementVNode("div", _hoisted_2$h, [
43536
+ createElementVNode("div", _hoisted_2$g, [
43387
43537
  createElementVNode("div", {
43388
43538
  class: normalizeClass(["js-tab-item", { active: activeTab.value === "inMeeting" }]),
43389
43539
  onClick: _cache[1] || (_cache[1] = ($event) => activeTab.value = "inMeeting")
@@ -43393,7 +43543,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43393
43543
  onClick: _cache[2] || (_cache[2] = ($event) => activeTab.value = "notJoined")
43394
43544
  }, " 未进入 ", 2)
43395
43545
  ]),
43396
- createElementVNode("div", _hoisted_3$h, [
43546
+ createElementVNode("div", _hoisted_3$g, [
43397
43547
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredMembers.value, (member) => {
43398
43548
  return openBlock(), createElementBlock("div", {
43399
43549
  key: member.member.memberId,
@@ -43401,10 +43551,10 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43401
43551
  onMouseenter: ($event) => hoveredMemberId.value = member.member.memberId,
43402
43552
  onMouseleave: handleMouseLeave
43403
43553
  }, [
43404
- createElementVNode("div", _hoisted_5$d, toDisplayString(unref(getUserAvatar)(member)), 1),
43405
- createElementVNode("div", _hoisted_6$c, [
43406
- createElementVNode("div", _hoisted_7$b, [
43407
- createElementVNode("span", _hoisted_8$a, toDisplayString(member.member.name), 1),
43554
+ createElementVNode("div", _hoisted_5$c, toDisplayString(unref(getUserAvatar)(member)), 1),
43555
+ createElementVNode("div", _hoisted_6$b, [
43556
+ createElementVNode("div", _hoisted_7$a, [
43557
+ createElementVNode("span", _hoisted_8$9, toDisplayString(member.member.name), 1),
43408
43558
  createElementVNode("div", null, [
43409
43559
  member.roleType == "1" ? (openBlock(), createElementBlock("span", _hoisted_9$8, "(主持人)")) : member.roleType == "0" ? (openBlock(), createElementBlock("span", _hoisted_10$8, " ")) : createCommentVNode("", true)
43410
43560
  ])
@@ -43468,7 +43618,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43468
43618
  }, " 邀请 ", 8, _hoisted_18$3)) : createCommentVNode("", true)
43469
43619
  ], 64))
43470
43620
  ])
43471
- ], 40, _hoisted_4$f);
43621
+ ], 40, _hoisted_4$e);
43472
43622
  }), 128)),
43473
43623
  activeTab.value === "notJoined" && filteredMembers.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_19$3, " 暂无未进入成员 ")) : createCommentVNode("", true)
43474
43624
  ]),
@@ -43488,18 +43638,18 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
43488
43638
  };
43489
43639
  }
43490
43640
  });
43491
- const ManageMembers = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-0768f591"]]);
43492
- const _hoisted_1$h = { class: "chat-container" };
43493
- const _hoisted_2$g = { class: "chat-content" };
43494
- const _hoisted_3$g = { class: "chat-meta" };
43495
- const _hoisted_4$e = { class: "chat-user" };
43496
- const _hoisted_5$c = { class: "chat-time" };
43497
- const _hoisted_6$b = {
43641
+ const ManageMembers = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-0768f591"]]);
43642
+ const _hoisted_1$g = { class: "chat-container" };
43643
+ const _hoisted_2$f = { class: "chat-content" };
43644
+ const _hoisted_3$f = { class: "chat-meta" };
43645
+ const _hoisted_4$d = { class: "chat-user" };
43646
+ const _hoisted_5$b = { class: "chat-time" };
43647
+ const _hoisted_6$a = {
43498
43648
  key: 0,
43499
43649
  class: "chat-image-wrapper"
43500
43650
  };
43501
- const _hoisted_7$a = ["src", "onClick", "onError", "onLoad"];
43502
- const _hoisted_8$9 = {
43651
+ const _hoisted_7$9 = ["src", "onClick", "onError", "onLoad"];
43652
+ const _hoisted_8$8 = {
43503
43653
  key: 0,
43504
43654
  class: "image-error"
43505
43655
  };
@@ -43515,7 +43665,7 @@ const _hoisted_11$6 = { class: "chat-input-toolbar" };
43515
43665
  const _hoisted_12$6 = { class: "image-upload-wrapper" };
43516
43666
  const _hoisted_13$5 = { class: "emoji-picker-popup-global" };
43517
43667
  const _hoisted_14$4 = ["onClick"];
43518
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
43668
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
43519
43669
  __name: "Chat",
43520
43670
  setup(__props) {
43521
43671
  const userId = getUserId();
@@ -43959,7 +44109,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
43959
44109
  });
43960
44110
  });
43961
44111
  return (_ctx, _cache) => {
43962
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
44112
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
43963
44113
  createElementVNode("div", {
43964
44114
  ref_key: "messagesRef",
43965
44115
  ref: messagesRef,
@@ -43970,12 +44120,12 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
43970
44120
  key: idx,
43971
44121
  class: normalizeClass(["chat-message", msg.userId !== unref(userId) ? "self" : "other"])
43972
44122
  }, [
43973
- createElementVNode("div", _hoisted_2$g, [
43974
- createElementVNode("div", _hoisted_3$g, [
43975
- createElementVNode("span", _hoisted_4$e, toDisplayString(msg.user), 1),
43976
- createElementVNode("span", _hoisted_5$c, toDisplayString(msg.time), 1)
44123
+ createElementVNode("div", _hoisted_2$f, [
44124
+ createElementVNode("div", _hoisted_3$f, [
44125
+ createElementVNode("span", _hoisted_4$d, toDisplayString(msg.user), 1),
44126
+ createElementVNode("span", _hoisted_5$b, toDisplayString(msg.time), 1)
43977
44127
  ]),
43978
- msg.imageUrl ? (openBlock(), createElementBlock("div", _hoisted_6$b, [
44128
+ msg.imageUrl ? (openBlock(), createElementBlock("div", _hoisted_6$a, [
43979
44129
  createElementVNode("img", {
43980
44130
  src: msg.imageUrl,
43981
44131
  alt: "图片",
@@ -43984,8 +44134,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
43984
44134
  onClick: ($event) => previewImage(msg.imageUrl),
43985
44135
  onError: ($event) => handleImageError($event, msg.imageUrl),
43986
44136
  onLoad: ($event) => handleImageLoad($event, msg.imageUrl)
43987
- }, null, 40, _hoisted_7$a),
43988
- msg.imageError ? (openBlock(), createElementBlock("div", _hoisted_8$9, "图片加载失败")) : createCommentVNode("", true)
44137
+ }, null, 40, _hoisted_7$9),
44138
+ msg.imageError ? (openBlock(), createElementBlock("div", _hoisted_8$8, "图片加载失败")) : createCommentVNode("", true)
43989
44139
  ])) : createCommentVNode("", true),
43990
44140
  msg.text ? (openBlock(), createElementBlock("div", _hoisted_9$7, toDisplayString(msg.text), 1)) : createCommentVNode("", true)
43991
44141
  ])
@@ -44065,19 +44215,19 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
44065
44215
  };
44066
44216
  }
44067
44217
  });
44068
- const Chat = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-4095c4e6"]]);
44069
- const _hoisted_1$g = { class: "monitor-container" };
44070
- const _hoisted_2$f = { class: "monitor-grid" };
44071
- const _hoisted_3$f = { class: "camera-header" };
44072
- const _hoisted_4$d = { class: "camera-name" };
44073
- const _hoisted_5$b = { class: "camera-video" };
44074
- const _hoisted_6$a = ["src"];
44075
- const _hoisted_7$9 = {
44218
+ const Chat = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-4095c4e6"]]);
44219
+ const _hoisted_1$f = { class: "monitor-container" };
44220
+ const _hoisted_2$e = { class: "monitor-grid" };
44221
+ const _hoisted_3$e = { class: "camera-header" };
44222
+ const _hoisted_4$c = { class: "camera-name" };
44223
+ const _hoisted_5$a = { class: "camera-video" };
44224
+ const _hoisted_6$9 = ["src"];
44225
+ const _hoisted_7$8 = {
44076
44226
  key: 1,
44077
44227
  class: "no-stream"
44078
44228
  };
44079
- const _hoisted_8$8 = { class: "camera-actions" };
44080
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
44229
+ const _hoisted_8$7 = { class: "camera-actions" };
44230
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
44081
44231
  __name: "Monitor",
44082
44232
  setup(__props) {
44083
44233
  const cameraList = ref([]);
@@ -44133,20 +44283,20 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
44133
44283
  };
44134
44284
  return (_ctx, _cache) => {
44135
44285
  const _component_el_button = resolveComponent("el-button");
44136
- return openBlock(), createElementBlock("div", _hoisted_1$g, [
44137
- createElementVNode("div", _hoisted_2$f, [
44286
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
44287
+ createElementVNode("div", _hoisted_2$e, [
44138
44288
  (openBlock(true), createElementBlock(Fragment, null, renderList(cameraList.value, (item) => {
44139
44289
  return openBlock(), createElementBlock("div", {
44140
44290
  key: item.id,
44141
44291
  class: "camera-card"
44142
44292
  }, [
44143
- createElementVNode("div", _hoisted_3$f, [
44144
- createElementVNode("div", _hoisted_4$d, [
44293
+ createElementVNode("div", _hoisted_3$e, [
44294
+ createElementVNode("div", _hoisted_4$c, [
44145
44295
  _cache[0] || (_cache[0] = createElementVNode("i", { class: "camera-icon" }, null, -1)),
44146
44296
  createTextVNode(" " + toDisplayString(item.displayName), 1)
44147
44297
  ])
44148
44298
  ]),
44149
- createElementVNode("div", _hoisted_5$b, [
44299
+ createElementVNode("div", _hoisted_5$a, [
44150
44300
  item.webStream ? (openBlock(), createElementBlock("iframe", {
44151
44301
  key: 0,
44152
44302
  src: item.webStream,
@@ -44154,9 +44304,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
44154
44304
  height: "150",
44155
44305
  frameborder: "0",
44156
44306
  allowfullscreen: ""
44157
- }, null, 8, _hoisted_6$a)) : (openBlock(), createElementBlock("div", _hoisted_7$9, "暂无视频流"))
44307
+ }, null, 8, _hoisted_6$9)) : (openBlock(), createElementBlock("div", _hoisted_7$8, "暂无视频流"))
44158
44308
  ]),
44159
- createElementVNode("div", _hoisted_8$8, [
44309
+ createElementVNode("div", _hoisted_8$7, [
44160
44310
  item.type !== "uav" ? (openBlock(), createBlock(_component_el_button, {
44161
44311
  key: 0,
44162
44312
  disabled: !item.webStream || isInMeeting(item) || isJoining(item),
@@ -44180,12 +44330,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
44180
44330
  };
44181
44331
  }
44182
44332
  });
44183
- const Monitor = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-0bb7bade"]]);
44184
- const _hoisted_1$f = { class: "js-dialog-sidebar-tabs" };
44185
- const _hoisted_2$e = ["onClick"];
44186
- const _hoisted_3$e = { class: "tab-content-wrapper" };
44187
- const _hoisted_4$c = { class: "js-dialog-sidebar-content" };
44188
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
44333
+ const Monitor = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-0bb7bade"]]);
44334
+ const _hoisted_1$e = { class: "js-dialog-sidebar-tabs" };
44335
+ const _hoisted_2$d = ["onClick"];
44336
+ const _hoisted_3$d = { class: "tab-content-wrapper" };
44337
+ const _hoisted_4$b = { class: "js-dialog-sidebar-content" };
44338
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
44189
44339
  __name: "meeting-sidebar",
44190
44340
  props: {
44191
44341
  openTabs: {},
@@ -44209,14 +44359,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
44209
44359
  return openBlock(), createElementBlock("div", {
44210
44360
  class: normalizeClass(["js-dialog-sidebar", themeClass.value])
44211
44361
  }, [
44212
- createElementVNode("div", _hoisted_1$f, [
44362
+ createElementVNode("div", _hoisted_1$e, [
44213
44363
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.activeTabs, (tab) => {
44214
44364
  return openBlock(), createElementBlock("div", {
44215
44365
  key: tab.id,
44216
44366
  class: normalizeClass(["tab-item", { active: _ctx.currentTab === tab.id }]),
44217
44367
  onClick: ($event) => _ctx.$emit("tab-change", tab.id)
44218
44368
  }, [
44219
- createElementVNode("div", _hoisted_3$e, [
44369
+ createElementVNode("div", _hoisted_3$d, [
44220
44370
  createVNode(SvgIcon, {
44221
44371
  name: getTabIconName(tab.id),
44222
44372
  size: 14,
@@ -44229,10 +44379,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
44229
44379
  size: 14,
44230
44380
  onClick: withModifiers(($event) => _ctx.$emit("tab-close", tab.id), ["stop"])
44231
44381
  }, null, 8, ["onClick"])
44232
- ], 10, _hoisted_2$e);
44382
+ ], 10, _hoisted_2$d);
44233
44383
  }), 128))
44234
44384
  ]),
44235
- createElementVNode("div", _hoisted_4$c, [
44385
+ createElementVNode("div", _hoisted_4$b, [
44236
44386
  _ctx.currentTab === "members" ? (openBlock(), createBlock(ManageMembers, {
44237
44387
  key: 0,
44238
44388
  theme: _ctx.theme
@@ -44250,8 +44400,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
44250
44400
  };
44251
44401
  }
44252
44402
  });
44253
- const MeetingSidebar = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-1b3ced89"]]);
44254
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
44403
+ const MeetingSidebar = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-1b3ced89"]]);
44404
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
44255
44405
  __name: "ScreenSharingIndicator",
44256
44406
  props: {
44257
44407
  visible: { type: Boolean, default: false },
@@ -44290,136 +44440,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
44290
44440
  };
44291
44441
  }
44292
44442
  });
44293
- const ScreenSharingIndicator = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-c5d77535"]]);
44294
- const _hoisted_1$e = { class: "js-video-container" };
44295
- const _hoisted_2$d = {
44296
- id: "my-video",
44297
- class: "video-element"
44298
- };
44299
- const _hoisted_3$d = { class: "avatar-container" };
44300
- const _hoisted_4$b = { class: "avatar small" };
44301
- const _hoisted_5$a = { class: "js-minimized-actions" };
44302
- const _hoisted_6$9 = ["title"];
44303
- const _hoisted_7$8 = ["title"];
44304
- const _hoisted_8$7 = ["title"];
44305
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
44306
- __name: "MinimizedMeeting",
44307
- props: {
44308
- visible: { type: Boolean, default: false },
44309
- theme: { default: "dark" }
44310
- },
44311
- emits: ["restore", "onChange"],
44312
- setup(__props, { emit: __emit }) {
44313
- const props = __props;
44314
- const { meState: meState2 } = storeToRefs(useMeetingStore());
44315
- const emit = __emit;
44316
- const isCollapsed = ref(false);
44317
- const themeClass = computed(() => `theme-${props.theme}`);
44318
- const componentHeight = computed(() => {
44319
- return isCollapsed.value ? "38px" : "148px";
44320
- });
44321
- const toggleMic = () => {
44322
- emit("onChange", RoomModalSelectType.microphoneClick);
44323
- };
44324
- const toggleCamera = () => {
44325
- emit("onChange", RoomModalSelectType.cameraClick);
44326
- };
44327
- const handleToggleCollapse = async () => {
44328
- isCollapsed.value = !isCollapsed.value;
44329
- if (!isCollapsed.value && props.visible) {
44330
- await nextTick();
44331
- mountTracks();
44332
- setTimeout(() => mountTracks(), 200);
44333
- }
44334
- };
44335
- const handleRestore = () => {
44336
- emit("restore");
44337
- };
44338
- watch(
44339
- () => props.visible,
44340
- async (visible) => {
44341
- await nextTick();
44342
- mountTracks();
44343
- if (visible && !isCollapsed.value) {
44344
- setTimeout(() => mountTracks(), 200);
44345
- setTimeout(() => mountTracks(), 800);
44346
- } else if (!visible) {
44347
- setTimeout(() => mountTracks(), 200);
44348
- }
44349
- },
44350
- { immediate: true }
44351
- );
44352
- return (_ctx, _cache) => {
44353
- var _a25, _b25, _c2, _d, _e, _f2;
44354
- const _directive_draggable = resolveDirective("draggable");
44355
- return openBlock(), createBlock(Teleport, { to: "body" }, [
44356
- _ctx.visible ? withDirectives((openBlock(), createElementBlock("div", {
44357
- key: 0,
44358
- class: normalizeClass(["js-minimized-meeting", themeClass.value]),
44359
- style: normalizeStyle({ height: componentHeight.value })
44360
- }, [
44361
- withDirectives(createElementVNode("div", _hoisted_1$e, [
44362
- withDirectives(createElementVNode("div", _hoisted_2$d, null, 512), [
44363
- [vShow, ((_a25 = unref(meState2)) == null ? void 0 : _a25.cameraState) == "1"]
44364
- ]),
44365
- withDirectives(createElementVNode("div", _hoisted_3$d, [
44366
- createElementVNode("div", _hoisted_4$b, toDisplayString((unref(meInfo).name || "").charAt(0)), 1)
44367
- ], 512), [
44368
- [vShow, ((_b25 = unref(meState2)) == null ? void 0 : _b25.cameraState) == "0"]
44369
- ])
44370
- ], 512), [
44371
- [vShow, !isCollapsed.value]
44372
- ]),
44373
- createElementVNode("div", _hoisted_5$a, [
44374
- createElementVNode("div", {
44375
- class: "js-action-btn",
44376
- title: ((_c2 = unref(meState2)) == null ? void 0 : _c2.microPhoneState) == "1" ? "静音" : "取消静音",
44377
- onClick: withModifiers(toggleMic, ["stop"])
44378
- }, [
44379
- createVNode(SvgIcon, {
44380
- name: ((_d = unref(meState2)) == null ? void 0 : _d.microPhoneState) == "1" ? "MicrophoneIcon" : "MicrophoneSlashIcon",
44381
- size: 16
44382
- }, null, 8, ["name"])
44383
- ], 8, _hoisted_6$9),
44384
- createElementVNode("div", {
44385
- class: "js-action-btn",
44386
- title: ((_e = unref(meState2)) == null ? void 0 : _e.cameraState) == "1" ? "关闭摄像头" : "打开摄像头",
44387
- onClick: withModifiers(toggleCamera, ["stop"])
44388
- }, [
44389
- createVNode(SvgIcon, {
44390
- name: ((_f2 = unref(meState2)) == null ? void 0 : _f2.cameraState) == "1" ? "CameraIcon" : "CameraSlashIcon",
44391
- size: 16
44392
- }, null, 8, ["name"])
44393
- ], 8, _hoisted_7$8),
44394
- createElementVNode("div", {
44395
- class: "js-action-btn",
44396
- title: "返回会议",
44397
- onClick: withModifiers(handleRestore, ["stop"])
44398
- }, [
44399
- createVNode(SvgIcon, {
44400
- name: "ExpandIcon",
44401
- size: 16
44402
- })
44403
- ]),
44404
- createElementVNode("div", {
44405
- class: "js-action-btn",
44406
- title: isCollapsed.value ? "展开画面小窗" : "收起画面小窗",
44407
- onClick: withModifiers(handleToggleCollapse, ["stop"])
44408
- }, [
44409
- createVNode(SvgIcon, {
44410
- name: isCollapsed.value ? "DownArrowIcon" : "UpArrowIcon",
44411
- size: 16
44412
- }, null, 8, ["name"])
44413
- ], 8, _hoisted_8$7)
44414
- ])
44415
- ], 6)), [
44416
- [_directive_draggable]
44417
- ]) : createCommentVNode("", true)
44418
- ]);
44419
- };
44420
- }
44421
- });
44422
- const MinimizedMeeting = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-2f74037e"]]);
44443
+ const ScreenSharingIndicator = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-c5d77535"]]);
44423
44444
  const _hoisted_1$d = {
44424
44445
  key: 0,
44425
44446
  class: "toggle"