fcr-ui-scene-mobile 3.4.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,12 +16,14 @@ export declare class FcrUIMemberDataImpl implements FcrUIMemberData {
16
16
  }
17
17
  export declare class FcrUIMemberListDataSourceImpl implements FcrUIMemberListDataSource {
18
18
  accessor list: FcrUIMemberDataImpl[];
19
- resetList(): boolean;
19
+ resetList(_users: FcrUserInfo[], _streams: Record<string, FcrStreamInfo[]>): boolean;
20
20
  add(user: FcrUserInfo, streams: Readonly<FcrStreamInfo[]>, isMySelf: boolean): boolean;
21
- update(param: FcrStreamInfo | FcrUserInfo | undefined, isBoardActive?: boolean): boolean;
21
+ updateStreamInfo(param: FcrStreamInfo | undefined): boolean;
22
+ updateUserInfo(param: FcrUserInfo | undefined, needSort: boolean): boolean;
22
23
  updateWithStreamAdd(stream: FcrStreamInfo): boolean;
23
24
  updateWithStreamRemove(stream: FcrStreamInfo): boolean;
24
25
  delete(user: FcrUserInfo): boolean;
26
+ clearAllUserBoardState(): void;
25
27
  private _insertEndByPriority;
26
28
  private _findInsertEndIndex;
27
29
  private _findMemberDataByStream;
@@ -6,7 +6,6 @@ require("core-js/modules/es.symbol.to-primitive.js");
6
6
  require("core-js/modules/es.error.cause.js");
7
7
  require("core-js/modules/es.error.to-string.js");
8
8
  require("core-js/modules/es.array.filter.js");
9
- require("core-js/modules/es.array.for-each.js");
10
9
  require("core-js/modules/es.array.is-array.js");
11
10
  require("core-js/modules/es.date.to-primitive.js");
12
11
  require("core-js/modules/es.function.bind.js");
@@ -20,10 +19,8 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
20
19
  require("core-js/modules/es.object.get-own-property-descriptors.js");
21
20
  require("core-js/modules/es.object.keys.js");
22
21
  require("core-js/modules/esnext.async-iterator.filter.js");
23
- require("core-js/modules/esnext.async-iterator.for-each.js");
24
22
  require("core-js/modules/esnext.function.metadata.js");
25
23
  require("core-js/modules/esnext.iterator.filter.js");
26
- require("core-js/modules/esnext.iterator.for-each.js");
27
24
  require("core-js/modules/esnext.map.delete-all.js");
28
25
  require("core-js/modules/esnext.map.emplace.js");
29
26
  require("core-js/modules/esnext.map.every.js");
@@ -39,19 +36,18 @@ require("core-js/modules/esnext.map.reduce.js");
39
36
  require("core-js/modules/esnext.map.some.js");
40
37
  require("core-js/modules/esnext.map.update.js");
41
38
  require("core-js/modules/esnext.symbol.metadata.js");
42
- require("core-js/modules/web.dom-collections.for-each.js");
43
39
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
44
- var _typeof3 = require("@babel/runtime/helpers/typeof");
40
+ var _typeof = require("@babel/runtime/helpers/typeof");
45
41
  Object.defineProperty(exports, "__esModule", {
46
42
  value: true
47
43
  });
48
44
  exports.FcrUIMemberListDataSourceImpl = exports.FcrUIMemberDataImpl = void 0;
49
45
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
50
46
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
51
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
52
47
  require("core-js/modules/es.array.find.js");
53
48
  require("core-js/modules/es.array.find-index.js");
54
49
  require("core-js/modules/es.array.find-last-index.js");
50
+ require("core-js/modules/es.array.for-each.js");
55
51
  require("core-js/modules/es.array.iterator.js");
56
52
  require("core-js/modules/es.array.push.js");
57
53
  require("core-js/modules/es.array.splice.js");
@@ -59,10 +55,13 @@ require("core-js/modules/es.object.to-string.js");
59
55
  require("core-js/modules/es.string.iterator.js");
60
56
  require("core-js/modules/es.weak-map.js");
61
57
  require("core-js/modules/esnext.async-iterator.find.js");
58
+ require("core-js/modules/esnext.async-iterator.for-each.js");
62
59
  require("core-js/modules/esnext.iterator.constructor.js");
63
60
  require("core-js/modules/esnext.iterator.find.js");
61
+ require("core-js/modules/esnext.iterator.for-each.js");
64
62
  require("core-js/modules/esnext.weak-map.delete-all.js");
65
63
  require("core-js/modules/esnext.weak-map.emplace.js");
64
+ require("core-js/modules/web.dom-collections.for-each.js");
66
65
  require("core-js/modules/web.dom-collections.iterator.js");
67
66
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
68
67
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -73,7 +72,7 @@ var _type2 = require("fcr-core/lib/type");
73
72
  var _type3 = require("agora-rte-sdk/lib/core/rtc/type");
74
73
  var _type4 = require("agora-rte-sdk/lib/core/scene/type");
75
74
  var _FcrUIMemberListDataSourceImpl;
76
- var _initProto, _init_list, _resetListDecs, _addDecs, _deleteDecs, _insertEndByPriorityDecs, _ref;
75
+ var _initProto, _init_list, _resetListDecs, _addDecs, _deleteDecs, _clearAllUserBoardStateDecs, _insertEndByPriorityDecs, _ref;
77
76
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
78
77
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
79
78
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -81,11 +80,11 @@ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("C
81
80
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
82
81
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
83
82
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
84
- function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof3(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
85
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof3(i) ? i : i + ""; }
86
- function _toPrimitive(t, r) { if ("object" != _typeof3(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof3(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
87
- function _setFunctionName(e, t, n) { "symbol" == _typeof3(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
88
- function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof3(e) : "null")); return e; }
83
+ function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
84
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
85
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
86
+ function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
87
+ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
89
88
  var listLimitedCount = 255;
90
89
  var FcrUIMemberDataImpl = exports.FcrUIMemberDataImpl = /*#__PURE__*/function () {
91
90
  function FcrUIMemberDataImpl(userInfo, streams, _isMySelf) {
@@ -160,7 +159,7 @@ var FcrUIMemberDataImpl = exports.FcrUIMemberDataImpl = /*#__PURE__*/function ()
160
159
  }]);
161
160
  }();
162
161
  var _A = /*#__PURE__*/new WeakMap();
163
- _ref = (_resetListDecs = [_mobx.action, _mobx.action.bound], _addDecs = [_mobx.action, _mobx.action.bound], _deleteDecs = [_mobx.action, _mobx.action.bound], _insertEndByPriorityDecs = [_mobx.action, _mobx.action.bound], "list");
162
+ _ref = (_resetListDecs = [_mobx.action, _mobx.action.bound], _addDecs = [_mobx.action, _mobx.action.bound], _deleteDecs = [_mobx.action, _mobx.action.bound], _clearAllUserBoardStateDecs = [_mobx.action, _mobx.action.bound], _insertEndByPriorityDecs = [_mobx.action, _mobx.action.bound], "list");
164
163
  var FcrUIMemberListDataSourceImpl = exports.FcrUIMemberListDataSourceImpl = /*#__PURE__*/function () {
165
164
  function FcrUIMemberListDataSourceImpl() {
166
165
  (0, _classCallCheck2["default"])(this, FcrUIMemberListDataSourceImpl);
@@ -178,7 +177,7 @@ var FcrUIMemberListDataSourceImpl = exports.FcrUIMemberListDataSourceImpl = /*#_
178
177
  }
179
178
  }, {
180
179
  key: "resetList",
181
- value: function resetList() {
180
+ value: function resetList(_users, _streams) {
182
181
  return true;
183
182
  }
184
183
  }, {
@@ -189,43 +188,29 @@ var FcrUIMemberListDataSourceImpl = exports.FcrUIMemberListDataSourceImpl = /*#_
189
188
  return true;
190
189
  }
191
190
  }, {
192
- key: "update",
193
- value: function update(param, isBoardActive) {
194
- if ((0, _typeof2["default"])(param) !== 'object') return false;
195
- if ('streamId' in param) {
196
- var data = this._findMemberDataByStream(param);
197
- if (data) {
198
- data.updateStream(param);
199
- // 在update时,不对仅麦克风打开的用户进行排序提前
200
- if (data.sortingPriority === _type.FcrUIMemberSortingPriority.MICROPHONE_OPEN) {
201
- // 用户位置不变,但其他状态可能会变,强行触发一次 participantList 的更新
202
- var currentIndex = this.list.findIndex(function (u) {
203
- return u.userId === data.userId;
204
- });
205
- this.list[currentIndex] = data;
206
- return true;
207
- }
191
+ key: "updateStreamInfo",
192
+ value: function updateStreamInfo(param) {
193
+ if (!param) return false;
194
+ var data = this._findMemberDataByStream(param);
195
+ if (data) {
196
+ data.updateStream(param);
197
+ this._insertEndByPriority(data, this.list, listLimitedCount);
198
+ }
199
+ return true;
200
+ }
201
+ }, {
202
+ key: "updateUserInfo",
203
+ value: function updateUserInfo(param, needSort) {
204
+ if (!param) return false;
205
+ var data = this.list.find(function (s) {
206
+ return s.userId === param.userId;
207
+ });
208
+ if (data) {
209
+ data.setUserInfo(_objectSpread({}, param));
210
+ this.list = (0, _toConsumableArray2["default"])(this.list);
211
+ if (needSort) {
208
212
  this._insertEndByPriority(data, this.list, listLimitedCount);
209
213
  }
210
- } else {
211
- var _data = this.list.find(function (s) {
212
- return s.userId === param.userId;
213
- });
214
- if (_data) {
215
- _data.setUserInfo(_objectSpread(_objectSpread({}, param), {}, {
216
- isBoardActive: isBoardActive
217
- }));
218
- // 在update时,不对仅麦克风打开的用户进行排序提前
219
- if (_data.sortingPriority === _type.FcrUIMemberSortingPriority.MICROPHONE_OPEN) {
220
- // 用户位置不变,但其他状态可能会变,强行触发一次 participantList 的更新
221
- var _currentIndex = this.list.findIndex(function (u) {
222
- return u.userId === _data.userId;
223
- });
224
- this.list[_currentIndex] = _data;
225
- return true;
226
- }
227
- this._insertEndByPriority(_data, this.list, listLimitedCount);
228
- }
229
214
  }
230
215
  return true;
231
216
  }
@@ -260,6 +245,17 @@ var FcrUIMemberListDataSourceImpl = exports.FcrUIMemberListDataSourceImpl = /*#_
260
245
  }
261
246
  return true;
262
247
  }
248
+ }, {
249
+ key: "clearAllUserBoardState",
250
+ value: function clearAllUserBoardState() {
251
+ this.list.forEach(function (memberData) {
252
+ var newData = _objectSpread(_objectSpread({}, memberData.userInfo), {
253
+ isBoardActive: false
254
+ });
255
+ memberData.setUserInfo(newData);
256
+ });
257
+ this.list = (0, _toConsumableArray2["default"])(this.list);
258
+ }
263
259
  }, {
264
260
  key: "_insertEndByPriority",
265
261
  value: function _insertEndByPriority(item, list, listLimitedCount) {
@@ -298,7 +294,7 @@ var FcrUIMemberListDataSourceImpl = exports.FcrUIMemberListDataSourceImpl = /*#_
298
294
  }]);
299
295
  }();
300
296
  _FcrUIMemberListDataSourceImpl = FcrUIMemberListDataSourceImpl;
301
- var _applyDecs$e = _applyDecs(_FcrUIMemberListDataSourceImpl, [[_mobx.observable, 1, "list"], [_resetListDecs, 18, "resetList"], [_addDecs, 18, "add"], [_deleteDecs, 18, "delete"], [_insertEndByPriorityDecs, 18, "_insertEndByPriority"]], []).e;
297
+ var _applyDecs$e = _applyDecs(_FcrUIMemberListDataSourceImpl, [[_mobx.observable, 1, "list"], [_resetListDecs, 18, "resetList"], [_addDecs, 18, "add"], [_deleteDecs, 18, "delete"], [_clearAllUserBoardStateDecs, 18, "clearAllUserBoardState"], [_insertEndByPriorityDecs, 18, "_insertEndByPriority"]], []).e;
302
298
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 2);
303
299
  _init_list = _applyDecs$e2[0];
304
300
  _initProto = _applyDecs$e2[1];
@@ -10,8 +10,11 @@ require("core-js/modules/es.date.to-primitive.js");
10
10
  require("core-js/modules/es.function.name.js");
11
11
  require("core-js/modules/es.number.constructor.js");
12
12
  require("core-js/modules/es.object.create.js");
13
+ require("core-js/modules/es.object.define-properties.js");
13
14
  require("core-js/modules/es.object.define-property.js");
14
15
  require("core-js/modules/es.object.get-own-property-descriptor.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
17
+ require("core-js/modules/es.object.keys.js");
15
18
  require("core-js/modules/esnext.function.metadata.js");
16
19
  require("core-js/modules/esnext.symbol.metadata.js");
17
20
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -112,6 +115,8 @@ var _type4 = require("./type");
112
115
  var _i18n = require("agora-ui-foundation/lib/i18n");
113
116
  var _FcrParticipantStore;
114
117
  var _initProto, _init__mainList, _init__participantsWindowActive, _init_currentPerspectiveType, _init_enableParticipantsJoinWithMute, _init_searchText, _init_currentModal, _init_localUserRole, _init_spotlightUserId, _init_enableSpotlight, _init_mergeConfirmDialog, _init_mergeUserId, _init_activeTab, _init_isNewWaitingRoomUserEnter, _init_waitingRoomUserCount, _init_participantCount, _init_requestEquipPopupShow, _init_requestEquipType, _init_requestEquipSenderRole, _setSpotlightUserIdDecs, _setCurrentModalDecs, _setParticipantsWindowActiveDecs, _handlerSearchUserDecs, _getAllowedOperationsDecs, _handlerUserActionDecs, _moveToWaitingRoomByUserIdsDecs, _removeWaitingRoomUserDecs, _kickOutWaitingRoomAllMemberDecs, _moveToMainRoomAllMemberDecs, _handlerRoomControlActionDecs, _handleEventDecs, _moveToMainRoomByUserIdsDecs, _handleActiveTabDecs, _setAsAttendeeDecs, _handleRemoteUserJoinedDecs, _handleRemoteUserLeftDecs, _onUserInfoUpdatedDecs, _onAllUserCountUpdatedDecs, _initUserListDecs, _refreshCurrentPerspectiveTypeDecs, _onPeerSessionReceivedDecs, _updateLocalUserRoleDecs, _setRequestEquipPopupShowDecs, _setRequestEquipTypeDecs, _setRequestEquipSenderRoleDecs, _ref; // import { sendEvent } from '../../utilities/renderer-event';
118
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
119
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
115
120
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
116
121
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
117
122
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -1269,13 +1274,20 @@ var FcrParticipantStore = exports.FcrParticipantStore = /*#__PURE__*/function ()
1269
1274
  }, {
1270
1275
  key: "_updateUserBoardState",
1271
1276
  value: function _updateUserBoardState(modifiedUser) {
1272
- var _this$_roomControl$ge = this._roomControl.getBoardControl().getBoardActiveInfo(),
1273
- isActive = _this$_roomControl$ge.isActive,
1274
- ownerUserId = _this$_roomControl$ge.ownerUserId;
1277
+ var _boardInfo = this._roomControl.getBoardControl().getBoardActiveInfo();
1278
+ var isActive = _boardInfo.isActive,
1279
+ ownerUserId = _boardInfo.ownerUserId;
1275
1280
  if (!ownerUserId && !modifiedUser) return;
1276
1281
  var ownerUser = this._userControl.getUser(ownerUserId);
1277
- var targetUser = modifiedUser || ownerUser;
1278
- this._dataSource.update(!isActive ? ownerUser : targetUser, !isActive ? isActive : ownerUserId === (targetUser === null || targetUser === void 0 ? void 0 : targetUser.userId) && isActive);
1282
+ if (!ownerUserId && !ownerUser) {
1283
+ this._dataSource.clearAllUserBoardState();
1284
+ } else {
1285
+ var targetUser = modifiedUser || ownerUser;
1286
+ var mergeInfo = _objectSpread(_objectSpread({}, targetUser), {
1287
+ isBoardActive: isActive
1288
+ });
1289
+ this._dataSource.updateUserInfo(mergeInfo, false);
1290
+ }
1279
1291
  }
1280
1292
  }, {
1281
1293
  key: "_handleRemoteUserJoined",
@@ -1307,13 +1319,12 @@ var FcrParticipantStore = exports.FcrParticipantStore = /*#__PURE__*/function ()
1307
1319
  value: function _onUserInfoUpdated(_roomId, event) {
1308
1320
  var _this$userMap$get7;
1309
1321
  var targetUser = event.modifiedUser;
1310
- this._updateUserBoardState(targetUser);
1311
- // this._dataSource.update(targetUser);
1312
1322
  var originUser = (_this$userMap$get7 = this.userMap.get(targetUser.userId)) === null || _this$userMap$get7 === void 0 ? void 0 : _this$userMap$get7.userInfo;
1313
1323
  var _this$_userControl$ge3 = this._userControl.getLocalUser(),
1314
1324
  localUserId = _this$_userControl$ge3.userId,
1315
1325
  localUserRole = _this$_userControl$ge3.userRole;
1316
1326
  var effectSelf = targetUser.userId === localUserId;
1327
+ this._dataSource.updateUserInfo(targetUser, true);
1317
1328
  if ((originUser === null || originUser === void 0 ? void 0 : originUser.userRole) !== targetUser.userRole) {
1318
1329
  // 参会者变管理
1319
1330
  if (targetUser.userRole === _type.FcrUserRole.HOST || targetUser.userRole === _type.FcrUserRole.COHOST) {
@@ -1375,7 +1386,7 @@ var FcrParticipantStore = exports.FcrParticipantStore = /*#__PURE__*/function ()
1375
1386
  var _this10 = this;
1376
1387
  events.forEach(function (e) {
1377
1388
  var modifiedStream = e.modifiedStream;
1378
- _this10._dataSource.update(modifiedStream);
1389
+ _this10._dataSource.updateStreamInfo(modifiedStream);
1379
1390
  });
1380
1391
  }
1381
1392
  }, {
@@ -92,7 +92,8 @@ export declare class FcrSecurityStore {
92
92
  hasDisallowWriteBoardPermission(): boolean;
93
93
  hasAllowScreenShareAndBoardPermission(): boolean;
94
94
  hasAllowWaterMarkPermission(): boolean;
95
- isMulti: () => boolean;
95
+ /** 当前是否是多行水印 */
96
+ isWatermarkMultiRow: () => boolean;
96
97
  getAllowedOperations(targetUserRole: FcrUserRole, _isSelf: boolean): string[];
97
98
  allowShare(state: FcrSharePermissionState): Promise<void>;
98
99
  setAllowWriteBoard(state: FcrSharePermissionState): Promise<void>;
@@ -346,7 +346,8 @@ var FcrSecurityStore = exports.FcrSecurityStore = /*#__PURE__*/function () {
346
346
  (0, _defineProperty2["default"])(this, "hasWatermarkDisablePermission", function () {
347
347
  return _this._hasPermission(_type3.FcrPermissionAction.RoomDisableWatermark, _type3.FcrPrivilegeUserRole.PARTICIPANT);
348
348
  });
349
- (0, _defineProperty2["default"])(this, "isMulti", (0, _mobxUtils.computedFn)(function () {
349
+ /** 当前是否是多行水印 */
350
+ (0, _defineProperty2["default"])(this, "isWatermarkMultiRow", (0, _mobxUtils.computedFn)(function () {
350
351
  var _info$info3;
351
352
  var info = _this.securityInfos.find(function (_ref17) {
352
353
  var info = _ref17.info;
@@ -8,15 +8,6 @@ export declare enum FcrUIMemberSortingPriority {
8
8
  MICROPHONE_OPEN = 95,
9
9
  NONE = 0
10
10
  }
11
- export interface FcrUIMemberListDataSource {
12
- list: FcrUIMemberData[];
13
- resetList: (users: FcrUserInfo[], streams: Record<string, FcrStreamInfo[]>) => boolean;
14
- add: (user: FcrUserInfo, streams: FcrStreamInfo[], isMySelf: boolean) => boolean;
15
- update: (param: FcrStreamInfo | FcrUserInfo) => boolean;
16
- updateWithStreamAdd: (stream: FcrStreamInfo) => boolean;
17
- updateWithStreamRemove: (stream: FcrStreamInfo) => boolean;
18
- delete: (user: FcrUserInfo) => boolean;
19
- }
20
11
  export interface FcrUIMemberData {
21
12
  userId: string;
22
13
  userInfo: FcrUserInfo & {
@@ -36,10 +27,11 @@ export interface FcrUIMemberListDataSource {
36
27
  list: FcrUIMemberData[];
37
28
  resetList: (users: FcrUserInfo[], streams: Record<string, FcrStreamInfo[]>) => boolean;
38
29
  add: (user: FcrUserInfo, streams: FcrStreamInfo[], isMySelf: boolean) => boolean;
39
- update: (param: FcrStreamInfo | FcrUserInfo) => boolean;
40
30
  updateWithStreamAdd: (stream: FcrStreamInfo) => boolean;
41
31
  updateWithStreamRemove: (stream: FcrStreamInfo) => boolean;
42
32
  delete: (user: FcrUserInfo) => boolean;
33
+ updateStreamInfo: (param: FcrStreamInfo | undefined) => boolean;
34
+ updateUserInfo: (param: FcrUserInfo | undefined, needSort: boolean) => boolean;
43
35
  }
44
36
  export interface FcrUIMemberData {
45
37
  userId: string;
@@ -0,0 +1,2 @@
1
+ import { FallbackProps } from 'react-error-boundary';
2
+ export declare const ErrorFallback: ({}: FallbackProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ErrorFallback = void 0;
9
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var ErrorFallback = exports.ErrorFallback = function ErrorFallback(_ref) {
12
+ (0, _objectDestructuringEmpty2["default"])(_ref);
13
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
14
+ className: "fcr-mobile-full-screen-error",
15
+ style: {
16
+ width: '100%',
17
+ height: '100%',
18
+ backgroundColor: 'transparent'
19
+ }
20
+ });
21
+ };
@@ -24,7 +24,7 @@ var FcrMobileMorePopup = exports.FcrMobileMorePopup = (0, _mobxReact.observer)(f
24
24
  setSetting = settingStore.setSetting;
25
25
  var setAllowWaterMark = securityStore.setAllowWaterMark,
26
26
  isWaterMarkEnabled = securityStore.isWaterMarkEnabled,
27
- isMulti = securityStore.isMulti;
27
+ isWatermarkMultiRow = securityStore.isWatermarkMultiRow;
28
28
  var waterMarkEnabled = isWaterMarkEnabled();
29
29
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_popup.FcrPopup, {
30
30
  showCloseButton: true,
@@ -105,13 +105,13 @@ var FcrMobileMorePopup = exports.FcrMobileMorePopup = (0, _mobxReact.observer)(f
105
105
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
106
106
  className: "fcr-mobile-more-cfg-card-item-linechoose",
107
107
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
108
- className: "fcr-mobile-more-cfg-card-item-btn ".concat(isMulti() ? '' : 'active'),
108
+ className: "fcr-mobile-more-cfg-card-item-btn ".concat(isWatermarkMultiRow() ? '' : 'active'),
109
109
  onClick: function onClick() {
110
110
  setAllowWaterMark(waterMarkEnabled, _type.FcrLineType.SINGLE_ROW);
111
111
  },
112
112
  children: (0, _i18n.transI18n)('fmt_security_setting_mobile_option_watermark_style_single')
113
113
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
114
- className: "fcr-mobile-more-cfg-card-item-btn ".concat(isMulti() ? 'active' : ''),
114
+ className: "fcr-mobile-more-cfg-card-item-btn ".concat(isWatermarkMultiRow() ? 'active' : ''),
115
115
  onClick: function onClick() {
116
116
  setAllowWaterMark(waterMarkEnabled, _type.FcrLineType.MULTI_ROW);
117
117
  },
@@ -9,6 +9,8 @@ import { FcrDeviceStreamStore } from '../../common/device-stream-store';
9
9
  import { FcrChatRoomReceiveBaseMessage } from 'fcr-core/lib/room-control/chatroom-control/type';
10
10
  import { FcrUserKickedOutType } from 'fcr-core/lib/room-control/user-control/type';
11
11
  import { FcrRoomType } from 'fcr-core/lib/room-control/type';
12
+ import { FcrParticipantStore } from '../../common/participant-store';
13
+ import { FcrUIMemberDataImpl } from '../../common/member-list-data-source';
12
14
  interface ActionBarStoreArgs {
13
15
  roomControl: FcrBaseRoomControl;
14
16
  userControl: FcrUserControl;
@@ -18,6 +20,7 @@ interface ActionBarStoreArgs {
18
20
  securityStore: FcrSecurityStore;
19
21
  streamControl: FcrStreamControl;
20
22
  mediaControl: FcrDesktopMediaControl;
23
+ participantStore: FcrParticipantStore;
21
24
  }
22
25
  export declare enum MoreMenuType {
23
26
  DEFAULT = 0,
@@ -51,7 +54,6 @@ export default class ActionBarStore {
51
54
  private _roomObserver;
52
55
  private _uiEventObserver;
53
56
  private _streamObserver;
54
- private _deviceObserver;
55
57
  private _observer;
56
58
  private _openedDialogIdMap;
57
59
  private _participantVisible;
@@ -61,7 +63,7 @@ export default class ActionBarStore {
61
63
  private _hideBarArrowTimer;
62
64
  private _sharingOwnerUser;
63
65
  private _participantTab;
64
- accessor users: FcrUserInfo[];
66
+ private _participantStore?;
65
67
  accessor newMessageTooltipVisible: boolean;
66
68
  accessor newMessageCount: ChatRoomStoreMap;
67
69
  accessor latestMessage: FcrChatRoomReceiveBaseMessage | undefined;
@@ -84,7 +86,8 @@ export default class ActionBarStore {
84
86
  accessor popoverOpened: boolean;
85
87
  accessor participantsPopoverOpened: boolean;
86
88
  constructor(args: ActionBarStoreArgs);
87
- get remoteUsers(): FcrUserInfo[];
89
+ get users(): FcrUIMemberDataImpl[];
90
+ get remoteUsers(): FcrUIMemberDataImpl[];
88
91
  get hasStartScreenSharePermission(): boolean;
89
92
  get hasStartLiveStreamingPermission(): boolean;
90
93
  get hasEnableStartAudioPermission(): boolean;
@@ -105,7 +108,7 @@ export default class ActionBarStore {
105
108
  get isScreenShareAndBoardEnabled(): boolean;
106
109
  get isBoardWriteEnabled(): boolean;
107
110
  get isWaterMarkEnabled(): boolean;
108
- get isMulti(): boolean;
111
+ get isWatermarkMultiRow(): boolean;
109
112
  get isPstnUser(): boolean;
110
113
  get cameraEnabled(): boolean;
111
114
  get cameraId(): string;
@@ -173,13 +176,10 @@ export default class ActionBarStore {
173
176
  kickOutWaitingRoomAllMember(type: FcrUserKickedOutType): Promise<void>;
174
177
  moveToMainRoomAllMember(): Promise<void>;
175
178
  private _interceptShareScreen;
176
- private _handleRemoteUsersJoined;
177
- private _handleRemoteUsersLeft;
178
179
  private _handleAllUserCountUpdated;
179
180
  private _getWaitingRoomUserCount;
180
181
  private _handleRemoteWaitingUserLeft;
181
182
  private _handleRemoteWaitingUserJoined;
182
- private _handleUserInfoUpdated;
183
183
  private _handleLiveStreamingStateUpdated;
184
184
  private _handleNewMessageEvent;
185
185
  private _handleChatVisible;
@@ -191,6 +191,5 @@ export default class ActionBarStore {
191
191
  private _handleCloudRecordingStateUpdated;
192
192
  private _handleStreamsAddedOrUpdated;
193
193
  setParticipantsPopoverOpened(visible: boolean): void;
194
- private _handleMicrophoneChanged;
195
194
  }
196
195
  export {};