@webex/plugin-meetings 3.9.0-webinar5k.1 → 3.10.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +24 -0
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +22 -5
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +7 -0
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/locusRouteToken.js +116 -0
- package/dist/interceptors/locusRouteToken.js.map +1 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +11 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +76 -322
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +4 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/properties.js +53 -5
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +14 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +467 -277
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +177 -14
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/type.js +7 -0
- package/dist/meeting/type.js.map +1 -0
- package/dist/meeting/util.js +100 -3
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +29 -21
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +20 -16
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +10 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +10 -7
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +7 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +34 -5
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +42 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/reachability/index.js +3 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +23 -0
- package/dist/types/controls-options-manager/index.d.ts +9 -1
- package/dist/types/interceptors/index.d.ts +2 -1
- package/dist/types/interceptors/locusRouteToken.d.ts +38 -0
- package/dist/types/locus-info/index.d.ts +9 -54
- package/dist/types/media/properties.d.ts +21 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +14 -0
- package/dist/types/meeting/index.d.ts +64 -29
- package/dist/types/meeting/request.d.ts +42 -0
- package/dist/types/meeting/type.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +13 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +6 -3
- package/dist/types/meetings/index.d.ts +3 -1
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +5 -0
- package/dist/types/members/index.d.ts +12 -11
- package/dist/types/members/util.d.ts +8 -4
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/multistream/remoteMedia.d.ts +20 -1
- package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +25 -27
- package/src/constants.ts +26 -2
- package/src/controls-options-manager/index.ts +26 -5
- package/src/index.ts +2 -1
- package/src/interceptors/index.ts +2 -1
- package/src/interceptors/locusRouteToken.ts +80 -0
- package/src/locus-info/controlsUtils.ts +18 -0
- package/src/locus-info/index.ts +69 -357
- package/src/locus-info/parser.ts +5 -1
- package/src/media/properties.ts +43 -0
- package/src/meeting/in-meeting-actions.ts +29 -0
- package/src/meeting/index.ts +296 -87
- package/src/meeting/request.ts +141 -0
- package/src/meeting/type.ts +9 -0
- package/src/meeting/util.ts +107 -3
- package/src/meeting-info/meeting-info-v2.ts +24 -5
- package/src/meetings/index.ts +15 -22
- package/src/member/index.ts +10 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +20 -10
- package/src/members/util.ts +20 -3
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/mediaRequestManager.ts +7 -7
- package/src/multistream/remoteMedia.ts +34 -4
- package/src/multistream/remoteMediaGroup.ts +37 -2
- package/src/reachability/index.ts +3 -3
- package/test/unit/spec/common/browser-detection.js +0 -24
- package/test/unit/spec/controls-options-manager/index.js +47 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRouteToken.ts +87 -0
- package/test/unit/spec/locus-info/index.js +80 -361
- package/test/unit/spec/locus-info/parser.js +3 -2
- package/test/unit/spec/media/properties.ts +137 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +14 -0
- package/test/unit/spec/meeting/index.js +637 -53
- package/test/unit/spec/meeting/muteState.js +32 -6
- package/test/unit/spec/meeting/request.js +21 -0
- package/test/unit/spec/meeting/utils.js +170 -17
- package/test/unit/spec/meeting-info/meetinginfov2.js +8 -3
- package/test/unit/spec/meetings/index.js +12 -5
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/collection.js +120 -0
- package/test/unit/spec/members/index.js +107 -2
- package/test/unit/spec/members/request.js +55 -0
- package/test/unit/spec/members/utils.js +116 -14
- package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
- package/test/unit/spec/multistream/remoteMedia.ts +66 -2
- package/test/unit/spec/reachability/index.ts +158 -3
- package/test/unit/spec/roap/turnDiscovery.ts +3 -3
- package/dist/hashTree/constants.js +0 -23
- package/dist/hashTree/constants.js.map +0 -1
- package/dist/hashTree/hashTree.js +0 -516
- package/dist/hashTree/hashTree.js.map +0 -1
- package/dist/hashTree/hashTreeParser.js +0 -521
- package/dist/hashTree/hashTreeParser.js.map +0 -1
- package/dist/types/hashTree/constants.d.ts +0 -8
- package/dist/types/hashTree/hashTree.d.ts +0 -128
- package/dist/types/hashTree/hashTreeParser.d.ts +0 -152
- package/src/hashTree/constants.ts +0 -12
- package/src/hashTree/hashTree.ts +0 -460
- package/src/hashTree/hashTreeParser.ts +0 -556
- package/test/unit/spec/hashTree/hashTree.ts +0 -394
- package/test/unit/spec/hashTree/hashTreeParser.ts +0 -156
package/dist/locus-info/index.js
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
5
|
-
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
6
|
-
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
7
|
-
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
9
|
-
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
10
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
11
4
|
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
|
12
5
|
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
|
13
6
|
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
|
14
7
|
var _Array$isArray2 = require("@babel/runtime-corejs2/core-js/array/is-array");
|
|
15
|
-
var
|
|
8
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
16
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
13
|
exports.default = void 0;
|
|
21
|
-
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
22
|
-
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
23
14
|
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
|
|
24
15
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
25
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
@@ -42,18 +33,11 @@ var _mediaSharesUtils = _interopRequireDefault(require("./mediaSharesUtils"));
|
|
|
42
33
|
var _parser = _interopRequireDefault(require("./parser"));
|
|
43
34
|
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
44
35
|
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
|
45
|
-
var _hashTreeParser = _interopRequireWildcard(require("../hashTree/hashTreeParser"));
|
|
46
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
47
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
48
36
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray2(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
49
37
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
50
38
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
51
|
-
function ownKeys(e, r) { var t = _Object$keys2(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; }
|
|
52
|
-
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; }
|
|
53
39
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
54
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
55
|
-
var LocusDtoTopLevelKeys = ['controls', 'fullState', 'host', 'info', 'links', 'mediaShares', 'meetings', 'participants', 'replaces', 'self', 'sequence', 'syncUrl', 'url'];
|
|
56
|
-
|
|
40
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
57
41
|
/**
|
|
58
42
|
* @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
|
|
59
43
|
* @export
|
|
@@ -63,8 +47,6 @@ var LocusDtoTopLevelKeys = ['controls', 'fullState', 'host', 'info', 'links', 'm
|
|
|
63
47
|
var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
64
48
|
(0, _inherits2.default)(LocusInfo, _EventsScope);
|
|
65
49
|
var _super = _createSuper(LocusInfo);
|
|
66
|
-
// mapping of hash tree object ids to participant ids
|
|
67
|
-
|
|
68
50
|
/**
|
|
69
51
|
* Constructor
|
|
70
52
|
* @param {function} updateMeeting callback to update the meeting object from an object
|
|
@@ -86,7 +68,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
86
68
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "aclUrl", void 0);
|
|
87
69
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "baseSequence", void 0);
|
|
88
70
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "created", void 0);
|
|
89
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deltaParticipants", void 0);
|
|
90
71
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "identities", void 0);
|
|
91
72
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "membership", void 0);
|
|
92
73
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "participants", void 0);
|
|
@@ -108,8 +89,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
108
89
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resources", void 0);
|
|
109
90
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mainSessionLocusCache", void 0);
|
|
110
91
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "self", void 0);
|
|
111
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashTreeParser", void 0);
|
|
112
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashTreeObjectId2ParticipantId", void 0);
|
|
113
92
|
_this.parsedLocus = {
|
|
114
93
|
states: []
|
|
115
94
|
};
|
|
@@ -119,7 +98,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
119
98
|
_this.meetingId = meetingId;
|
|
120
99
|
_this.updateMeeting = updateMeeting;
|
|
121
100
|
_this.locusParser = new _parser.default();
|
|
122
|
-
_this.hashTreeObjectId2ParticipantId = new _map.default();
|
|
123
101
|
return _this;
|
|
124
102
|
}
|
|
125
103
|
|
|
@@ -127,21 +105,29 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
127
105
|
* Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
|
|
128
106
|
*
|
|
129
107
|
* @param {Meeting} meeting
|
|
108
|
+
* @param {boolean} isLocusUrlChanged
|
|
109
|
+
* @param {Locus} locus
|
|
130
110
|
* @returns {undefined}
|
|
131
111
|
*/
|
|
132
112
|
(0, _createClass2.default)(LocusInfo, [{
|
|
133
113
|
key: "doLocusSync",
|
|
134
|
-
value: function doLocusSync(meeting) {
|
|
135
|
-
var
|
|
136
|
-
|
|
114
|
+
value: function doLocusSync(meeting, isLocusUrlChanged, locus) {
|
|
115
|
+
var _this$locusParser$wor,
|
|
116
|
+
_this2 = this;
|
|
137
117
|
var url;
|
|
118
|
+
var isDelta = false;
|
|
138
119
|
var meetingDestroyed = false;
|
|
139
|
-
if (
|
|
120
|
+
if (isLocusUrlChanged) {
|
|
121
|
+
// for the locus url changed case from breakout to main session, we should always do a full sync, in this case, the url from locus is always on main session,
|
|
122
|
+
// so use the main session locus url to get the full locus(full participants list in the response).
|
|
123
|
+
// for the locus url changed case from main session to breakout, we don't need to care about it here,
|
|
124
|
+
// because it is a USE_INCOMING case, it will not be executed here.
|
|
125
|
+
url = locus.url;
|
|
126
|
+
} else if ((_this$locusParser$wor = this.locusParser.workingCopy) !== null && _this$locusParser$wor !== void 0 && _this$locusParser$wor.syncUrl) {
|
|
140
127
|
url = this.locusParser.workingCopy.syncUrl;
|
|
141
128
|
isDelta = true;
|
|
142
129
|
} else {
|
|
143
130
|
url = meeting.locusUrl;
|
|
144
|
-
isDelta = false;
|
|
145
131
|
}
|
|
146
132
|
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> doing Locus sync (getting ".concat(isDelta ? 'delta' : 'full', " DTO)"));
|
|
147
133
|
|
|
@@ -190,8 +176,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
190
176
|
}
|
|
191
177
|
if (isDelta) {
|
|
192
178
|
if (res.body.baseSequence) {
|
|
193
|
-
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
194
|
-
|
|
179
|
+
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
195
180
|
return;
|
|
196
181
|
}
|
|
197
182
|
// in some cases Locus might return us full DTO even when we asked for a delta
|
|
@@ -233,6 +218,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
233
218
|
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING,
|
|
234
219
|
WAIT = _LocusDeltaParser$loc.WAIT,
|
|
235
220
|
LOCUS_URL_CHANGED = _LocusDeltaParser$loc.LOCUS_URL_CHANGED;
|
|
221
|
+
var isLocusUrlChanged = action === LOCUS_URL_CHANGED;
|
|
236
222
|
switch (action) {
|
|
237
223
|
case USE_INCOMING:
|
|
238
224
|
meeting.locusInfo.onDeltaLocus(locus);
|
|
@@ -243,7 +229,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
243
229
|
break;
|
|
244
230
|
case DESYNC:
|
|
245
231
|
case LOCUS_URL_CHANGED:
|
|
246
|
-
this.doLocusSync(meeting);
|
|
232
|
+
this.doLocusSync(meeting, isLocusUrlChanged, locus);
|
|
247
233
|
break;
|
|
248
234
|
default:
|
|
249
235
|
_loggerProxy.default.logger.info("Locus-info:index#applyLocusDeltaData --> Unknown locus delta action: ".concat(action));
|
|
@@ -303,16 +289,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
303
289
|
* @property {Object} person - Contains person data.
|
|
304
290
|
*/
|
|
305
291
|
|
|
306
|
-
/**
|
|
307
|
-
* Stored participant changes between the last event and the current event.
|
|
308
|
-
* All previously stored events are overwritten between events.
|
|
309
|
-
*
|
|
310
|
-
* @instance
|
|
311
|
-
* @type {Array<DeltaParticipant>}
|
|
312
|
-
* @private
|
|
313
|
-
* @member LocusInfo
|
|
314
|
-
*/
|
|
315
|
-
this.deltaParticipants = [];
|
|
316
292
|
this.updateLocusCache(locus);
|
|
317
293
|
// above section only updates the locusInfo object
|
|
318
294
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
|
@@ -320,7 +296,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
320
296
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
|
321
297
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
322
298
|
this.updateControls(locus.controls, locus.self);
|
|
323
|
-
this.updateLocusUrl(locus.url);
|
|
299
|
+
this.updateLocusUrl(locus.url, _controlsUtils.default.isMainSessionDTO(locus));
|
|
324
300
|
this.updateFullState(locus.fullState);
|
|
325
301
|
this.updateMeetingInfo(locus.info);
|
|
326
302
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -334,176 +310,29 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
334
310
|
|
|
335
311
|
/**
|
|
336
312
|
* @param {Object} locus
|
|
337
|
-
* @param {DataSet[]} [dataSets=[]] - Array of data sets
|
|
338
313
|
* @returns {undefined}
|
|
339
314
|
* @memberof LocusInfo
|
|
340
315
|
*/
|
|
341
316
|
}, {
|
|
342
317
|
key: "initialSetup",
|
|
343
318
|
value: function initialSetup(locus) {
|
|
344
|
-
var dataSets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
345
319
|
this.updateLocusCache(locus);
|
|
346
|
-
this.onFullLocus(locus
|
|
320
|
+
this.onFullLocus(locus);
|
|
347
321
|
|
|
348
322
|
// Change it to true after it receives it first locus object
|
|
349
323
|
this.emitChange = true;
|
|
350
324
|
}
|
|
351
325
|
|
|
352
326
|
/**
|
|
353
|
-
*
|
|
354
|
-
* @param {HashTreeObject} object data set object
|
|
355
|
-
* @param {any} locus
|
|
356
|
-
* @returns {void}
|
|
357
|
-
*/
|
|
358
|
-
}, {
|
|
359
|
-
key: "updateHashTreeObjectInLocus",
|
|
360
|
-
value: function updateHashTreeObjectInLocus(object, locus) {
|
|
361
|
-
var type = object.htMeta.elementId.type.toLowerCase();
|
|
362
|
-
switch (type) {
|
|
363
|
-
case _hashTreeParser.ObjectType.locus:
|
|
364
|
-
{
|
|
365
|
-
if (!object.data) {
|
|
366
|
-
_loggerProxy.default.logger.warn("Locus-info:index#updateHashTreeObjectInLocus --> received LOCUS object without data, this is not supported!");
|
|
367
|
-
return locus;
|
|
368
|
-
}
|
|
369
|
-
// replace the main locus
|
|
370
|
-
|
|
371
|
-
// The Locus object from MAIN dataset has empty participants, so removing them to avoid it overriding the ones in our current locus object
|
|
372
|
-
// Also, it doesn't have "self". That's OK as it won't override existing locus.self and also existing SDK code can handle that missing self in Locus updates
|
|
373
|
-
var locusObjectFromData = object.data;
|
|
374
|
-
delete locusObjectFromData.participants;
|
|
375
|
-
locus = _objectSpread(_objectSpread({}, locus), locusObjectFromData);
|
|
376
|
-
locus.htMeta = object.htMeta;
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
379
|
-
case _hashTreeParser.ObjectType.participant:
|
|
380
|
-
_loggerProxy.default.logger.info("Locus-info:index#updateHashTreeObjectInLocus --> participant id=".concat(object.htMeta.elementId.id, " ").concat(object.data ? 'updated' : 'removed'));
|
|
381
|
-
console.log('marcin: hashTreeObjectId2ParticipantId=', (0, _lodash.cloneDeep)(this.hashTreeObjectId2ParticipantId));
|
|
382
|
-
if (object.data) {
|
|
383
|
-
if (!locus.participants) {
|
|
384
|
-
locus.participants = [];
|
|
385
|
-
}
|
|
386
|
-
var participantObject = object.data;
|
|
387
|
-
participantObject.htMeta = object.htMeta;
|
|
388
|
-
locus.participants.push(participantObject);
|
|
389
|
-
this.hashTreeObjectId2ParticipantId.set(object.htMeta.elementId.id, participantObject.id);
|
|
390
|
-
} else {
|
|
391
|
-
var participantId = this.hashTreeObjectId2ParticipantId.get(object.htMeta.elementId.id);
|
|
392
|
-
if (!locus.jsSdkMeta) {
|
|
393
|
-
locus.jsSdkMeta = {
|
|
394
|
-
removedParticipantIds: []
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
locus.jsSdkMeta.removedParticipantIds.push(participantId);
|
|
398
|
-
this.hashTreeObjectId2ParticipantId.delete(object.htMeta.elementId.id);
|
|
399
|
-
}
|
|
400
|
-
break;
|
|
401
|
-
case _hashTreeParser.ObjectType.self:
|
|
402
|
-
if (!object.data) {
|
|
403
|
-
_loggerProxy.default.logger.warn("Locus-info:index#updateHashTreeObjectInLocus --> received SELF object without data, this is not supported!");
|
|
404
|
-
return locus;
|
|
405
|
-
}
|
|
406
|
-
locus.self = object.data;
|
|
407
|
-
break;
|
|
408
|
-
}
|
|
409
|
-
return locus;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/**
|
|
413
|
-
* Handles HTTP response from Locus API call when hash tree update.
|
|
327
|
+
* Handles HTTP response from Locus API call.
|
|
414
328
|
* @param {Meeting} meeting meeting object
|
|
415
|
-
* @param {LocusApiResponseBody} responseBody body of the http
|
|
329
|
+
* @param {LocusApiResponseBody} responseBody body of the http response from Locus API call
|
|
416
330
|
* @returns {void}
|
|
417
331
|
*/
|
|
418
332
|
}, {
|
|
419
333
|
key: "handleLocusAPIResponse",
|
|
420
334
|
value: function handleLocusAPIResponse(meeting, responseBody) {
|
|
421
|
-
|
|
422
|
-
if (responseBody.dataSets) {
|
|
423
|
-
if (!this.hashTreeParser) {
|
|
424
|
-
_loggerProxy.default.logger.warn("Locus-info:index#handleLocusAPIResponse --> received response with hash tree info from Locus API, but we don't have the hashTreeParser created");
|
|
425
|
-
return;
|
|
426
|
-
}
|
|
427
|
-
// Locus is using the new hash tree mechanism
|
|
428
|
-
// so update our data in the hash tree parser
|
|
429
|
-
this.hashTreeParser.handleLocusUpdate(responseBody);
|
|
430
|
-
|
|
431
|
-
// but the Locus object we receive in this case looks same like classic delta, so we can use existing delta method to process it
|
|
432
|
-
this.onDeltaLocus(responseBody.locus);
|
|
433
|
-
} else {
|
|
434
|
-
// classic Locus delta
|
|
435
|
-
this.handleLocusDelta(responseBody.locus, meeting);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
/**
|
|
440
|
-
* Handles a hash tree message received from Locus.
|
|
441
|
-
*
|
|
442
|
-
* @param {Meeting} meeting - The meeting object
|
|
443
|
-
* @param {HashTreeMessage} message incoming hash tree message
|
|
444
|
-
* @returns {void}
|
|
445
|
-
*/
|
|
446
|
-
}, {
|
|
447
|
-
key: "handleHashTreeMessage",
|
|
448
|
-
value: function handleHashTreeMessage(meeting, message) {
|
|
449
|
-
if (!this.hashTreeParser) {
|
|
450
|
-
_loggerProxy.default.logger.warn("Locus-info:index#handleHashTreeMessage --> received hash tree message, but we don't have the hashTreeParser");
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
if (message.locusStateElements === undefined) {
|
|
454
|
-
// todo: need to see in practice how exactly the heartbeat messages look like
|
|
455
|
-
this.hashTreeParser.handleRootHashHeartBeatMessage(message);
|
|
456
|
-
} else {
|
|
457
|
-
this.hashTreeParser.handleMessage(message);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* Updates our locus info based on the data parsed by the hash tree parser.
|
|
463
|
-
*
|
|
464
|
-
* @param {LocusInfoUpdateType} updateType - The type of update received.
|
|
465
|
-
* @param {Object} [data] - Additional data for the update, if applicable.
|
|
466
|
-
* @returns {void}
|
|
467
|
-
*/
|
|
468
|
-
}, {
|
|
469
|
-
key: "updateFromHashTree",
|
|
470
|
-
value: function updateFromHashTree(updateType, data) {
|
|
471
|
-
var _this4 = this;
|
|
472
|
-
switch (updateType) {
|
|
473
|
-
case _hashTreeParser.LocusInfoUpdateType.OBJECTS_UPDATED:
|
|
474
|
-
{
|
|
475
|
-
// initialize the main locus with what we currently have
|
|
476
|
-
// but with empty participants array
|
|
477
|
-
var locus = {
|
|
478
|
-
participants: [],
|
|
479
|
-
jsSdkMeta: {
|
|
480
|
-
removedParticipantIds: []
|
|
481
|
-
}
|
|
482
|
-
};
|
|
483
|
-
LocusDtoTopLevelKeys.forEach(function (key) {
|
|
484
|
-
if (key === 'participants') {
|
|
485
|
-
locus[key] = [];
|
|
486
|
-
} else {
|
|
487
|
-
locus[key] = (0, _lodash.cloneDeep)(_this4[key]);
|
|
488
|
-
}
|
|
489
|
-
});
|
|
490
|
-
|
|
491
|
-
// apply the updates from the hash tree onto the locus
|
|
492
|
-
data.updatedObjects.forEach(function (object) {
|
|
493
|
-
locus = _this4.updateHashTreeObjectInLocus(object, locus);
|
|
494
|
-
});
|
|
495
|
-
|
|
496
|
-
// update our locus info with the new locus
|
|
497
|
-
this.onDeltaLocus(locus);
|
|
498
|
-
break;
|
|
499
|
-
}
|
|
500
|
-
case _hashTreeParser.LocusInfoUpdateType.MEETING_ENDED:
|
|
501
|
-
{
|
|
502
|
-
_loggerProxy.default.logger.info("Locus-info:index#updateFromHashTree --> received signal that meeting ended, destroying meeting ".concat(this.meetingId));
|
|
503
|
-
var meeting = this.webex.meetings.meetingCollection.get(this.meetingId);
|
|
504
|
-
this.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
505
|
-
}
|
|
506
|
-
}
|
|
335
|
+
this.handleLocusDelta(responseBody.locus, meeting);
|
|
507
336
|
}
|
|
508
337
|
|
|
509
338
|
/**
|
|
@@ -515,42 +344,37 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
515
344
|
}, {
|
|
516
345
|
key: "parse",
|
|
517
346
|
value: function parse(meeting, data) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
default:
|
|
550
|
-
// Why will there be a event with no eventType ????
|
|
551
|
-
// we may not need this, we can get full locus
|
|
552
|
-
this.handleLocusDelta(locus, meeting);
|
|
553
|
-
}
|
|
347
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
348
|
+
var eventType = data.eventType;
|
|
349
|
+
var locus = this.getTheLocusToUpdate(data.locus);
|
|
350
|
+
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
|
351
|
+
locus.jsSdkMeta = {
|
|
352
|
+
removedParticipantIds: []
|
|
353
|
+
};
|
|
354
|
+
switch (eventType) {
|
|
355
|
+
case _constants.LOCUSEVENT.PARTICIPANT_JOIN:
|
|
356
|
+
case _constants.LOCUSEVENT.PARTICIPANT_LEFT:
|
|
357
|
+
case _constants.LOCUSEVENT.CONTROLS_UPDATED:
|
|
358
|
+
case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_MUTED:
|
|
359
|
+
case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_UNMUTED:
|
|
360
|
+
case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_MUTED:
|
|
361
|
+
case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_UNMUTED:
|
|
362
|
+
case _constants.LOCUSEVENT.SELF_CHANGED:
|
|
363
|
+
case _constants.LOCUSEVENT.PARTICIPANT_UPDATED:
|
|
364
|
+
case _constants.LOCUSEVENT.PARTICIPANT_CONTROLS_UPDATED:
|
|
365
|
+
case _constants.LOCUSEVENT.PARTICIPANT_ROLES_UPDATED:
|
|
366
|
+
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
367
|
+
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
|
368
|
+
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
|
369
|
+
this.onFullLocus(locus, eventType);
|
|
370
|
+
break;
|
|
371
|
+
case _constants.LOCUSEVENT.DIFFERENCE:
|
|
372
|
+
this.handleLocusDelta(locus, meeting);
|
|
373
|
+
break;
|
|
374
|
+
default:
|
|
375
|
+
// Why will there be a event with no eventType ????
|
|
376
|
+
// we may not need this, we can get full locus
|
|
377
|
+
this.handleLocusDelta(locus, meeting);
|
|
554
378
|
}
|
|
555
379
|
}
|
|
556
380
|
|
|
@@ -571,54 +395,22 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
571
395
|
* updates the locus with full locus object
|
|
572
396
|
* @param {object} locus locus object
|
|
573
397
|
* @param {string} eventType particulat locus event
|
|
574
|
-
* @param {DataSet[]} dataSets
|
|
575
398
|
* @returns {object} null
|
|
576
399
|
* @memberof LocusInfo
|
|
577
400
|
*/
|
|
578
401
|
}, {
|
|
579
402
|
key: "onFullLocus",
|
|
580
|
-
value: function onFullLocus(locus, eventType
|
|
581
|
-
var
|
|
582
|
-
_this5 = this,
|
|
583
|
-
_locus$jsSdkMeta;
|
|
403
|
+
value: function onFullLocus(locus, eventType) {
|
|
404
|
+
var _locus$jsSdkMeta;
|
|
584
405
|
if (!locus) {
|
|
585
406
|
_loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');
|
|
586
407
|
}
|
|
587
|
-
if (
|
|
588
|
-
// this is the new hashmap Locus DTO format (only applicable to webinars for now)
|
|
589
|
-
if (!this.hashTreeParser) {
|
|
590
|
-
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> creating hash tree parser");
|
|
591
|
-
_loggerProxy.default.logger.info('Locus-info:index#onFullLocus --> dataSets:', dataSets, ' and locus:', locus);
|
|
592
|
-
this.hashTreeParser = new _hashTreeParser.default({
|
|
593
|
-
initialLocus: {
|
|
594
|
-
locus: locus,
|
|
595
|
-
dataSets: dataSets
|
|
596
|
-
},
|
|
597
|
-
webexRequest: this.webex.request.bind(this.webex),
|
|
598
|
-
locusInfoUpdateCallback: this.updateFromHashTree.bind(this),
|
|
599
|
-
debugId: "HT-".concat(this.meetingId.substring(0, 4))
|
|
600
|
-
});
|
|
601
|
-
} else {
|
|
602
|
-
// in this case the Locus we're getting is not necessarily the full one
|
|
603
|
-
// so treat it like if we just got it in a message
|
|
604
|
-
console.log('marcin: !!!!!!!! full DTO - this is not fully implemented/tested yet');
|
|
605
|
-
_loggerProxy.default.logger.warn('Locus-info:index#onFullLocus --> full DTO - this is not fully implemented/tested yet!!!!!!!!');
|
|
606
|
-
this.handleLocusAPIResponse(undefined, {
|
|
607
|
-
dataSets: dataSets,
|
|
608
|
-
locus: locus
|
|
609
|
-
});
|
|
610
|
-
return;
|
|
611
|
-
}
|
|
612
|
-
} else if (!this.locusParser.isNewFullLocus(locus)) {
|
|
408
|
+
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
613
409
|
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
|
614
410
|
return;
|
|
615
411
|
}
|
|
616
|
-
this.updateParticipantDeltas(locus.participants);
|
|
617
412
|
this.scheduledMeeting = locus.meeting || null;
|
|
618
413
|
this.participants = locus.participants;
|
|
619
|
-
(_this$participants = this.participants) === null || _this$participants === void 0 ? void 0 : _this$participants.forEach(function (participant) {
|
|
620
|
-
_this5.hashTreeObjectId2ParticipantId.set(participant.htMeta.elementId.id, participant.id);
|
|
621
|
-
});
|
|
622
414
|
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
623
415
|
this.updateLocusInfo(locus);
|
|
624
416
|
this.updateParticipants(locus.participants, (_locus$jsSdkMeta = locus.jsSdkMeta) === null || _locus$jsSdkMeta === void 0 ? void 0 : _locus$jsSdkMeta.removedParticipantIds, isReplaceMembers);
|
|
@@ -701,7 +493,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
701
493
|
this.updateCreated(locus.created);
|
|
702
494
|
this.updateFullState(locus.fullState);
|
|
703
495
|
this.updateHostInfo(locus.host);
|
|
704
|
-
this.updateLocusUrl(locus.url);
|
|
496
|
+
this.updateLocusUrl(locus.url, _controlsUtils.default.isMainSessionDTO(locus));
|
|
705
497
|
this.updateMeetingInfo(locus.info, locus.self);
|
|
706
498
|
this.updateMediaShares(locus.mediaShares);
|
|
707
499
|
this.updateParticipantsUrl(locus.participantsUrl);
|
|
@@ -908,58 +700,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
908
700
|
}
|
|
909
701
|
}
|
|
910
702
|
|
|
911
|
-
/**
|
|
912
|
-
* Update the deltaParticipants property of this object based on a list of
|
|
913
|
-
* provided participants.
|
|
914
|
-
*
|
|
915
|
-
* @param {Array} [participants] - The participants to update against.
|
|
916
|
-
* @returns {void}
|
|
917
|
-
*/
|
|
918
|
-
}, {
|
|
919
|
-
key: "updateParticipantDeltas",
|
|
920
|
-
value: function updateParticipantDeltas() {
|
|
921
|
-
var _this6 = this;
|
|
922
|
-
var participants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
923
|
-
// Used to find a participant within a participants collection.
|
|
924
|
-
var findParticipant = function findParticipant(participant, collection) {
|
|
925
|
-
return collection.find(function (item) {
|
|
926
|
-
return item.person.id === participant.person.id;
|
|
927
|
-
});
|
|
928
|
-
};
|
|
929
|
-
|
|
930
|
-
// Generates an object that indicates which state properties have changed.
|
|
931
|
-
var generateDelta = function generateDelta() {
|
|
932
|
-
var prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
933
|
-
var newState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
934
|
-
// Setup deltas.
|
|
935
|
-
var deltas = {
|
|
936
|
-
audioStatus: prevState.audioStatus !== newState.audioStatus,
|
|
937
|
-
videoSlidesStatus: prevState.videoSlidesStatus !== newState.videoSlidesStatus,
|
|
938
|
-
videoStatus: prevState.videoStatus !== newState.videoStatus
|
|
939
|
-
};
|
|
940
|
-
|
|
941
|
-
// Clean the object
|
|
942
|
-
(0, _keys.default)(deltas).forEach(function (key) {
|
|
943
|
-
if (deltas[key] !== true) {
|
|
944
|
-
delete deltas[key];
|
|
945
|
-
}
|
|
946
|
-
});
|
|
947
|
-
return deltas;
|
|
948
|
-
};
|
|
949
|
-
this.deltaParticipants = participants.reduce(function (collection, participant) {
|
|
950
|
-
var existingParticipant = findParticipant(participant, _this6.participants || []) || {};
|
|
951
|
-
var delta = generateDelta(existingParticipant.status, participant.status);
|
|
952
|
-
var changed = (0, _keys.default)(delta).length > 0;
|
|
953
|
-
if (changed) {
|
|
954
|
-
collection.push({
|
|
955
|
-
person: participant.person,
|
|
956
|
-
delta: delta
|
|
957
|
-
});
|
|
958
|
-
}
|
|
959
|
-
return collection;
|
|
960
|
-
}, []);
|
|
961
|
-
}
|
|
962
|
-
|
|
963
703
|
/**
|
|
964
704
|
* update meeting's members
|
|
965
705
|
* @param {Object} participants new participants object
|
|
@@ -1046,6 +786,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1046
786
|
hasAnnotationControlChanged = _ControlsUtils$getCon2.hasAnnotationControlChanged,
|
|
1047
787
|
hasRemoteDesktopControlChanged = _ControlsUtils$getCon2.hasRemoteDesktopControlChanged,
|
|
1048
788
|
hasPollingQAControlChanged = _ControlsUtils$getCon2.hasPollingQAControlChanged,
|
|
789
|
+
hasAutoEndMeetingChanged = _ControlsUtils$getCon2.hasAutoEndMeetingChanged,
|
|
1049
790
|
current = _ControlsUtils$getCon.current;
|
|
1050
791
|
if (hasMuteOnEntryChanged) {
|
|
1051
792
|
this.emitScoped({
|
|
@@ -1266,6 +1007,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1266
1007
|
state: current.pollingQAControl
|
|
1267
1008
|
});
|
|
1268
1009
|
}
|
|
1010
|
+
if (hasAutoEndMeetingChanged) {
|
|
1011
|
+
this.emitScoped({
|
|
1012
|
+
file: 'locus-info',
|
|
1013
|
+
function: 'updateControls'
|
|
1014
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_AUTO_END_MEETING_WARNING_CHANGED, {
|
|
1015
|
+
state: current.autoEndMeetingWarning
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1269
1018
|
this.controls = controls;
|
|
1270
1019
|
}
|
|
1271
1020
|
}
|
|
@@ -1417,7 +1166,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1417
1166
|
value: function updateMeetingInfo(info, self) {
|
|
1418
1167
|
var _this$parsedLocus$sel;
|
|
1419
1168
|
var roles = self ? _selfUtils.default.getRoles(self) : ((_this$parsedLocus$sel = this.parsedLocus.self) === null || _this$parsedLocus$sel === void 0 ? void 0 : _this$parsedLocus$sel.roles) || [];
|
|
1420
|
-
if (info && !(0, _lodash.isEqual)(this.info, info) ||
|
|
1169
|
+
if (info && !(0, _lodash.isEqual)(this.info, info) || !(0, _lodash.isEqual)(this.roles, roles) && info) {
|
|
1421
1170
|
var isJoined = _selfUtils.default.isJoined(self || this.parsedLocus.self);
|
|
1422
1171
|
var parsedInfo = _infoUtils.default.getInfos(this.parsedLocus.info, info, roles, isJoined);
|
|
1423
1172
|
if (parsedInfo.updates.isLocked) {
|
|
@@ -1719,12 +1468,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1719
1468
|
/**
|
|
1720
1469
|
* handles when the locus.url is updated
|
|
1721
1470
|
* @param {String} url
|
|
1471
|
+
* @param {Boolean} isMainLocus
|
|
1722
1472
|
* @returns {undefined}
|
|
1723
1473
|
* emits internal event locus_info_update_url
|
|
1724
1474
|
*/
|
|
1725
1475
|
}, {
|
|
1726
1476
|
key: "updateLocusUrl",
|
|
1727
1477
|
value: function updateLocusUrl(url) {
|
|
1478
|
+
var isMainLocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1728
1479
|
if (url && this.url !== url) {
|
|
1729
1480
|
this.url = url;
|
|
1730
1481
|
this.updateMeeting({
|
|
@@ -1733,7 +1484,10 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1733
1484
|
this.emitScoped({
|
|
1734
1485
|
file: 'locus-info',
|
|
1735
1486
|
function: 'updateLocusUrl'
|
|
1736
|
-
}, _constants.EVENTS.LOCUS_INFO_UPDATE_URL,
|
|
1487
|
+
}, _constants.EVENTS.LOCUS_INFO_UPDATE_URL, {
|
|
1488
|
+
url: url,
|
|
1489
|
+
isMainLocus: isMainLocus
|
|
1490
|
+
});
|
|
1737
1491
|
}
|
|
1738
1492
|
}
|
|
1739
1493
|
|
|
@@ -1879,7 +1633,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1879
1633
|
}, {
|
|
1880
1634
|
key: "updateMainSessionLocusCache",
|
|
1881
1635
|
value: function updateMainSessionLocusCache(mainLocus) {
|
|
1882
|
-
var
|
|
1636
|
+
var _this4 = this;
|
|
1883
1637
|
if (!mainLocus) {
|
|
1884
1638
|
return;
|
|
1885
1639
|
}
|
|
@@ -1888,7 +1642,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1888
1642
|
// shallow merge and do special merge for participants
|
|
1889
1643
|
(0, _lodash.assignWith)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
|
|
1890
1644
|
if (key === 'participants') {
|
|
1891
|
-
return
|
|
1645
|
+
return _this4.mergeParticipants(objValue, srcValue);
|
|
1892
1646
|
}
|
|
1893
1647
|
return srcValue || objValue;
|
|
1894
1648
|
});
|