@webex/plugin-meetings 3.0.0-beta.26 → 3.0.0-beta.261
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +114 -14
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +841 -19
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/errors/webex-errors.js +28 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +196 -28
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +381 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +224 -63
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +58 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +60 -121
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3022 -2795
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +256 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +70 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +189 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +372 -90
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +121 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +86 -5
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +10 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +49 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +52 -34
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +161 -57
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +199 -154
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +23 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +96 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +51 -34
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +6 -6
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -6
- package/dist/types/constants.d.ts +155 -21
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +65 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +344 -506
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +8 -0
- package/dist/types/meetings/index.d.ts +86 -12
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +13 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +209 -1
- package/dist/types/metrics/constants.d.ts +9 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +16 -12
- package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +44 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +6 -1
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +44 -14
- package/src/breakouts/breakout.ts +87 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +710 -10
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +27 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -9
- package/src/constants.ts +178 -18
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +412 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +231 -39
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +100 -122
- package/src/media/properties.ts +70 -108
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +2471 -2306
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +172 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +79 -8
- package/src/meeting-info/meeting-info-v2.ts +168 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +414 -108
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +49 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +127 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +107 -6
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +9 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +55 -18
- package/src/multistream/receiveSlotManager.ts +46 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +165 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +81 -54
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +23 -30
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +73 -35
- package/src/statsAnalyzer/mqaUtil.ts +8 -10
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +142 -24
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1545 -48
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1283 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +62 -22
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +4095 -1913
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +440 -45
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +293 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +517 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +941 -151
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +58 -4
- package/test/unit/spec/member/util.js +479 -35
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +72 -13
- package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +343 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +84 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +31 -51
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +48 -13
- package/test/unit/spec/rtcMetrics/index.ts +68 -0
- package/test/unit/spec/stats-analyzer/index.js +29 -2
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +6 -3
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/dist/breakouts/index.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
11
|
value: true
|
|
7
12
|
});
|
|
8
13
|
exports.default = void 0;
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
9
15
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
16
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
17
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
10
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
11
19
|
var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
|
|
12
20
|
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
|
|
@@ -15,15 +23,17 @@ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy")
|
|
|
15
23
|
var _constants = require("../constants");
|
|
16
24
|
var _breakout = _interopRequireDefault(require("./breakout"));
|
|
17
25
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
var _request = _interopRequireDefault(require("./request"));
|
|
27
|
+
var _events = _interopRequireDefault(require("./events"));
|
|
28
|
+
var _utils = require("./utils");
|
|
29
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
22
31
|
/**
|
|
23
32
|
* @class Breakouts
|
|
24
33
|
*/
|
|
25
34
|
var Breakouts = _webexCore.WebexPlugin.extend({
|
|
26
35
|
namespace: _constants.MEETINGS,
|
|
36
|
+
breakoutRequest: _request.default,
|
|
27
37
|
collections: {
|
|
28
38
|
breakouts: _collection.default
|
|
29
39
|
},
|
|
@@ -34,6 +44,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
34
44
|
// appears once breakouts start
|
|
35
45
|
enableBreakoutSession: 'boolean',
|
|
36
46
|
// appears from the moment you enable breakouts
|
|
47
|
+
hasBreakoutPreAssignments: 'boolean',
|
|
48
|
+
// appears from the moment you enable breakouts
|
|
37
49
|
groupId: 'string',
|
|
38
50
|
// appears from the moment you enable breakouts
|
|
39
51
|
name: 'string',
|
|
@@ -48,7 +60,23 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
48
60
|
// only present when in a breakout session
|
|
49
61
|
url: 'string',
|
|
50
62
|
// appears from the moment you enable breakouts
|
|
51
|
-
locusUrl: 'string'
|
|
63
|
+
locusUrl: 'string',
|
|
64
|
+
// the current locus url
|
|
65
|
+
breakoutServiceUrl: 'string',
|
|
66
|
+
// the current breakout resource url
|
|
67
|
+
mainLocusUrl: 'string',
|
|
68
|
+
// the locus url of the main session
|
|
69
|
+
groups: 'array',
|
|
70
|
+
// appears when create breakouts
|
|
71
|
+
manageGroups: 'array',
|
|
72
|
+
// appears when manage breakouts
|
|
73
|
+
preAssignments: 'array',
|
|
74
|
+
// appears when getPreAssignments info hasBreakoutPreAssignments = true
|
|
75
|
+
editLock: 'object',
|
|
76
|
+
// appears when getBreakout info editlock = true
|
|
77
|
+
intervalID: 'number',
|
|
78
|
+
meetingId: 'string',
|
|
79
|
+
canManageBreakouts: 'boolean' // appear the ability to manage breakouts
|
|
52
80
|
},
|
|
53
81
|
|
|
54
82
|
children: {
|
|
@@ -56,6 +84,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
56
84
|
},
|
|
57
85
|
derived: {
|
|
58
86
|
isInMainSession: {
|
|
87
|
+
cache: false,
|
|
59
88
|
deps: ['sessionType'],
|
|
60
89
|
/**
|
|
61
90
|
* Returns true if the user is in the main session
|
|
@@ -64,6 +93,56 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
64
93
|
fn: function fn() {
|
|
65
94
|
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
|
|
66
95
|
}
|
|
96
|
+
},
|
|
97
|
+
isActiveBreakout: {
|
|
98
|
+
cache: false,
|
|
99
|
+
// fix issue: sometimes the derived will not change even if the deps changed
|
|
100
|
+
deps: ['sessionType', 'status'],
|
|
101
|
+
/**
|
|
102
|
+
* Returns true if the breakout status is active
|
|
103
|
+
* @returns {boolean}
|
|
104
|
+
*/
|
|
105
|
+
fn: function fn() {
|
|
106
|
+
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
breakoutGroupId: {
|
|
110
|
+
cache: false,
|
|
111
|
+
deps: ['manageGroups'],
|
|
112
|
+
/**
|
|
113
|
+
* Returns the active group id
|
|
114
|
+
* @returns {boolean}
|
|
115
|
+
*/
|
|
116
|
+
fn: function fn() {
|
|
117
|
+
var _this$manageGroups;
|
|
118
|
+
if ((_this$manageGroups = this.manageGroups) !== null && _this$manageGroups !== void 0 && _this$manageGroups.length) {
|
|
119
|
+
return this.manageGroups[0].status !== _constants.BREAKOUTS.STATUS.CLOSED ? this.manageGroups[0].id : '';
|
|
120
|
+
}
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
breakoutStatus: {
|
|
125
|
+
cache: true,
|
|
126
|
+
deps: ['isInMainSession', 'status', 'groups'],
|
|
127
|
+
/**
|
|
128
|
+
* Returns the breakout status
|
|
129
|
+
* @returns {boolean}
|
|
130
|
+
*/
|
|
131
|
+
fn: function fn() {
|
|
132
|
+
var _this$groups, _this$groups$;
|
|
133
|
+
return this.isInMainSession ? (_this$groups = this.groups) === null || _this$groups === void 0 ? void 0 : (_this$groups$ = _this$groups[0]) === null || _this$groups$ === void 0 ? void 0 : _this$groups$.status : this.status;
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
shouldQueryPreAssignments: {
|
|
137
|
+
cache: false,
|
|
138
|
+
deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],
|
|
139
|
+
/**
|
|
140
|
+
* Returns should query preAssignments or not
|
|
141
|
+
* @returns {boolean}
|
|
142
|
+
*/
|
|
143
|
+
fn: function fn() {
|
|
144
|
+
return !!(this.canManageBreakouts && this.enableBreakoutSession && this.hasBreakoutPreAssignments);
|
|
145
|
+
}
|
|
67
146
|
}
|
|
68
147
|
},
|
|
69
148
|
/**
|
|
@@ -72,20 +151,35 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
72
151
|
*/
|
|
73
152
|
initialize: function initialize() {
|
|
74
153
|
var _this = this;
|
|
75
|
-
this.listenTo(this, 'change:
|
|
76
|
-
if (_this.
|
|
154
|
+
this.listenTo(this, 'change:breakoutStatus', function () {
|
|
155
|
+
if (_this.breakoutStatus === _constants.BREAKOUTS.STATUS.CLOSING) {
|
|
77
156
|
_this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);
|
|
78
157
|
}
|
|
79
158
|
});
|
|
159
|
+
this.listenTo(this, 'change:shouldQueryPreAssignments', function () {
|
|
160
|
+
if (_this.shouldQueryPreAssignments && !_this.preAssignments) {
|
|
161
|
+
_this.queryPreAssignments();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
80
164
|
this.debouncedQueryRosters = (0, _debounce2.default)(this.queryRosters, 10, {
|
|
81
165
|
leading: true,
|
|
82
166
|
trailing: false
|
|
83
167
|
});
|
|
84
|
-
this.listenTo(this.breakouts, 'add', function () {
|
|
168
|
+
this.listenTo(this.breakouts, 'add', function (breakout) {
|
|
85
169
|
_this.debouncedQueryRosters();
|
|
170
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
171
|
+
});
|
|
172
|
+
this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {
|
|
173
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
86
174
|
});
|
|
175
|
+
this.listenToCurrentSessionTypeChange();
|
|
87
176
|
this.listenToBroadcastMessages();
|
|
88
177
|
this.listenToBreakoutRosters();
|
|
178
|
+
this.listenToBreakoutHelp();
|
|
179
|
+
// @ts-ignore
|
|
180
|
+
this.breakoutRequest = new _request.default({
|
|
181
|
+
webex: this.webex
|
|
182
|
+
});
|
|
89
183
|
},
|
|
90
184
|
/**
|
|
91
185
|
* Calls this to clean up listeners
|
|
@@ -101,6 +195,27 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
101
195
|
*/
|
|
102
196
|
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
103
197
|
this.set('locusUrl', locusUrl);
|
|
198
|
+
var isInMainSession = this.isInMainSession,
|
|
199
|
+
mainLocusUrl = this.mainLocusUrl;
|
|
200
|
+
if (isInMainSession || !mainLocusUrl) {
|
|
201
|
+
this.set('mainLocusUrl', locusUrl);
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
/**
|
|
205
|
+
* Update whether self is moderator/cohost or not
|
|
206
|
+
* @param {boolean} canManageBreakouts
|
|
207
|
+
* @returns {void}
|
|
208
|
+
*/
|
|
209
|
+
updateCanManageBreakouts: function updateCanManageBreakouts(canManageBreakouts) {
|
|
210
|
+
this.set('canManageBreakouts', canManageBreakouts);
|
|
211
|
+
},
|
|
212
|
+
/**
|
|
213
|
+
* Update the current breakout resource url
|
|
214
|
+
* @param {string} breakoutServiceUrl
|
|
215
|
+
* @returns {void}
|
|
216
|
+
*/
|
|
217
|
+
breakoutServiceUrlUpdate: function breakoutServiceUrlUpdate(breakoutServiceUrl) {
|
|
218
|
+
this.set('breakoutServiceUrl', "".concat(breakoutServiceUrl, "/breakout/"));
|
|
104
219
|
},
|
|
105
220
|
/**
|
|
106
221
|
* The initial roster lists need to be queried because you don't
|
|
@@ -116,7 +231,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
116
231
|
}
|
|
117
232
|
}).then(function (result) {
|
|
118
233
|
var rosters = result.body.rosters;
|
|
119
|
-
rosters.forEach(function (_ref) {
|
|
234
|
+
rosters === null || rosters === void 0 ? void 0 : rosters.forEach(function (_ref) {
|
|
120
235
|
var locus = _ref.locus;
|
|
121
236
|
_this2.handleRosterUpdate(locus);
|
|
122
237
|
});
|
|
@@ -139,25 +254,37 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
139
254
|
}
|
|
140
255
|
session.parseRoster(locus);
|
|
141
256
|
},
|
|
257
|
+
/**
|
|
258
|
+
*Sets up listener for currentBreakoutSession sessionType changed
|
|
259
|
+
* @returns {void}
|
|
260
|
+
*/
|
|
261
|
+
listenToCurrentSessionTypeChange: function listenToCurrentSessionTypeChange() {
|
|
262
|
+
var _this3 = this;
|
|
263
|
+
this.listenTo(this.currentBreakoutSession, 'change:sessionType', function (currentBreakoutSession, sessionType) {
|
|
264
|
+
if ((0, _utils.isSessionTypeChangedFromSessionToMain)(currentBreakoutSession, sessionType)) {
|
|
265
|
+
_this3.trigger(_constants.BREAKOUTS.EVENTS.LEAVE_BREAKOUT);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
},
|
|
142
269
|
/**
|
|
143
270
|
* Sets up listener for broadcast messages sent to the breakout session
|
|
144
271
|
* @returns {void}
|
|
145
272
|
*/
|
|
146
273
|
listenToBroadcastMessages: function listenToBroadcastMessages() {
|
|
147
|
-
var
|
|
274
|
+
var _this4 = this;
|
|
148
275
|
this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
|
|
149
276
|
var _event$data = event.data,
|
|
150
277
|
senderUserId = _event$data.senderUserId,
|
|
151
278
|
sentTime = _event$data.sentTime,
|
|
152
279
|
message = _event$data.message;
|
|
153
|
-
|
|
280
|
+
_this4.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {
|
|
154
281
|
senderUserId: senderUserId,
|
|
155
282
|
sentTime: sentTime,
|
|
156
283
|
message: message,
|
|
157
284
|
// FIXME: This is only the current sessionId
|
|
158
285
|
// We'd need to check that the dataChannelUrl is still the same
|
|
159
286
|
// to guarantee that this message was sent to this session
|
|
160
|
-
sessionId:
|
|
287
|
+
sessionId: _this4.currentBreakoutSession.sessionId
|
|
161
288
|
});
|
|
162
289
|
});
|
|
163
290
|
},
|
|
@@ -166,12 +293,45 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
166
293
|
* @returns {void}
|
|
167
294
|
*/
|
|
168
295
|
listenToBreakoutRosters: function listenToBreakoutRosters() {
|
|
169
|
-
var
|
|
296
|
+
var _this5 = this;
|
|
170
297
|
this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {
|
|
171
|
-
|
|
172
|
-
|
|
298
|
+
_this5.handleRosterUpdate(event.data.locus);
|
|
299
|
+
_this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
|
|
173
300
|
});
|
|
174
301
|
},
|
|
302
|
+
/**
|
|
303
|
+
* Sets up a listener for ask help notify from mecury
|
|
304
|
+
* @returns {void}
|
|
305
|
+
*/
|
|
306
|
+
listenToBreakoutHelp: function listenToBreakoutHelp() {
|
|
307
|
+
var _this6 = this;
|
|
308
|
+
this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {
|
|
309
|
+
var _event$data2 = event.data,
|
|
310
|
+
participant = _event$data2.participant,
|
|
311
|
+
sessionId = _event$data2.sessionId;
|
|
312
|
+
_this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {
|
|
313
|
+
participant: participant,
|
|
314
|
+
sessionId: sessionId
|
|
315
|
+
});
|
|
316
|
+
});
|
|
317
|
+
},
|
|
318
|
+
/**
|
|
319
|
+
* get current breakout is in progress or not
|
|
320
|
+
* @returns {boolean}
|
|
321
|
+
*/
|
|
322
|
+
isBreakoutInProgress: function isBreakoutInProgress() {
|
|
323
|
+
var _this$groups2, _this$groups2$;
|
|
324
|
+
var currentStatus = ((_this$groups2 = this.groups) === null || _this$groups2 === void 0 ? void 0 : (_this$groups2$ = _this$groups2[0]) === null || _this$groups2$ === void 0 ? void 0 : _this$groups2$.status) || this.status;
|
|
325
|
+
return currentStatus === _constants.BREAKOUTS.STATUS.OPEN || currentStatus === _constants.BREAKOUTS.STATUS.CLOSING;
|
|
326
|
+
},
|
|
327
|
+
/**
|
|
328
|
+
* get current breakout is in closing or not
|
|
329
|
+
* @returns {boolean}
|
|
330
|
+
*/
|
|
331
|
+
isBreakoutIClosing: function isBreakoutIClosing() {
|
|
332
|
+
var _this$groups3, _this$groups3$;
|
|
333
|
+
return (((_this$groups3 = this.groups) === null || _this$groups3 === void 0 ? void 0 : (_this$groups3$ = _this$groups3[0]) === null || _this$groups3$ === void 0 ? void 0 : _this$groups3$.status) || this.status) === _constants.BREAKOUTS.STATUS.CLOSING;
|
|
334
|
+
},
|
|
175
335
|
/**
|
|
176
336
|
* Updates the information about the current breakout
|
|
177
337
|
* @param {Object} params
|
|
@@ -180,6 +340,10 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
180
340
|
updateBreakout: function updateBreakout(params) {
|
|
181
341
|
var _this$set;
|
|
182
342
|
this.set(params);
|
|
343
|
+
// These values are set manually so they are unset when they are not included in params
|
|
344
|
+
this.set('groups', params.groups);
|
|
345
|
+
this.set('startTime', params.startTime);
|
|
346
|
+
this.set('status', params.status);
|
|
183
347
|
this.set('currentBreakoutSession', (_this$set = {
|
|
184
348
|
sessionId: params.sessionId,
|
|
185
349
|
groupId: params.groupId,
|
|
@@ -187,7 +351,21 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
187
351
|
current: true,
|
|
188
352
|
sessionType: params.sessionType,
|
|
189
353
|
url: params.url
|
|
190
|
-
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.
|
|
354
|
+
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
|
|
355
|
+
if (!this.isBreakoutInProgress()) {
|
|
356
|
+
this.clearBreakouts();
|
|
357
|
+
}
|
|
358
|
+
if (this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId || this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId) {
|
|
359
|
+
// should report joined session changed
|
|
360
|
+
var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);
|
|
361
|
+
_events.default.onBreakoutJoinResponse({
|
|
362
|
+
currentSession: this.currentBreakoutSession,
|
|
363
|
+
meeting: meeting,
|
|
364
|
+
breakoutMoveId: params.breakoutMoveId
|
|
365
|
+
},
|
|
366
|
+
// @ts-ignore
|
|
367
|
+
this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics));
|
|
368
|
+
}
|
|
191
369
|
},
|
|
192
370
|
/**
|
|
193
371
|
* Updates the information about available breakouts
|
|
@@ -195,8 +373,14 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
195
373
|
* @returns {void}
|
|
196
374
|
*/
|
|
197
375
|
updateBreakoutSessions: function updateBreakoutSessions(payload) {
|
|
198
|
-
var
|
|
376
|
+
var _this7 = this;
|
|
199
377
|
var breakouts = {};
|
|
378
|
+
if (this.isBreakoutIClosing()) {
|
|
379
|
+
// fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or
|
|
380
|
+
// only the MAIN session info here, if just update it, will miss the breakout roster info during
|
|
381
|
+
// count down to end breakouts
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
200
384
|
if (payload.breakoutSessions) {
|
|
201
385
|
(0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
|
|
202
386
|
(0, _forEach2.default)(payload.breakoutSessions[state], function (breakout) {
|
|
@@ -210,16 +394,654 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
210
394
|
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
|
|
211
395
|
}
|
|
212
396
|
breakouts[sessionId][state] = true;
|
|
397
|
+
if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {
|
|
398
|
+
breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;
|
|
399
|
+
}
|
|
213
400
|
});
|
|
214
401
|
});
|
|
215
402
|
}
|
|
216
403
|
(0, _forEach2.default)(breakouts, function (breakout) {
|
|
217
404
|
// eslint-disable-next-line no-param-reassign
|
|
218
|
-
breakout.url =
|
|
405
|
+
breakout.url = _this7.url;
|
|
219
406
|
});
|
|
220
407
|
this.breakouts.set((0, _values.default)(breakouts));
|
|
221
408
|
},
|
|
222
|
-
|
|
409
|
+
/**
|
|
410
|
+
* clear breakouts collection
|
|
411
|
+
* @returns {void}
|
|
412
|
+
*/
|
|
413
|
+
clearBreakouts: function clearBreakouts() {
|
|
414
|
+
if (this.breakouts.length > 0) {
|
|
415
|
+
this.breakouts.reset();
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
/**
|
|
419
|
+
* get main session
|
|
420
|
+
* @returns {Breakout}
|
|
421
|
+
*/
|
|
422
|
+
getMainSession: function getMainSession() {
|
|
423
|
+
if (this.isInMainSession) {
|
|
424
|
+
return this.currentBreakoutSession;
|
|
425
|
+
}
|
|
426
|
+
var mainSession = this.breakouts.filter(function (breakout) {
|
|
427
|
+
return breakout.isMain;
|
|
428
|
+
})[0];
|
|
429
|
+
if (!mainSession) {
|
|
430
|
+
throw new Error('no main session found');
|
|
431
|
+
}
|
|
432
|
+
return mainSession;
|
|
433
|
+
},
|
|
434
|
+
/**
|
|
435
|
+
* Host/CoHost ask all participants return to main session
|
|
436
|
+
* @returns {Promise}
|
|
437
|
+
*/
|
|
438
|
+
askAllToReturn: function askAllToReturn() {
|
|
439
|
+
var mainSession = this.getMainSession();
|
|
440
|
+
return this.webex.request({
|
|
441
|
+
method: _constants.HTTP_VERBS.POST,
|
|
442
|
+
uri: "".concat(this.url, "/requestMove"),
|
|
443
|
+
body: {
|
|
444
|
+
groupId: mainSession.groupId,
|
|
445
|
+
sessionId: mainSession.sessionId
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
},
|
|
449
|
+
/**
|
|
450
|
+
* Broadcast message to all breakout session's participants
|
|
451
|
+
* @param {String} message
|
|
452
|
+
* @param {Object} options
|
|
453
|
+
* @returns {Promise}
|
|
454
|
+
*/
|
|
455
|
+
broadcast: function broadcast(message, options) {
|
|
456
|
+
var breakoutGroupId = this.breakoutGroupId;
|
|
457
|
+
if (!breakoutGroupId) {
|
|
458
|
+
throw new Error('Cannot broadcast, no breakout session found');
|
|
459
|
+
}
|
|
460
|
+
return this.breakoutRequest.broadcast({
|
|
461
|
+
url: this.url,
|
|
462
|
+
message: message,
|
|
463
|
+
options: options,
|
|
464
|
+
groupId: breakoutGroupId
|
|
465
|
+
});
|
|
466
|
+
},
|
|
467
|
+
/**
|
|
468
|
+
* Make enable breakout resource
|
|
469
|
+
* @returns {Promise}
|
|
470
|
+
*/
|
|
471
|
+
enableBreakouts: function enableBreakouts() {
|
|
472
|
+
if (this.breakoutServiceUrl) {
|
|
473
|
+
// @ts-ignore
|
|
474
|
+
return this.webex.request({
|
|
475
|
+
method: _constants.HTTP_VERBS.POST,
|
|
476
|
+
uri: this.breakoutServiceUrl,
|
|
477
|
+
body: {
|
|
478
|
+
locusUrl: this.locusUrl
|
|
479
|
+
}
|
|
480
|
+
}).catch(function (err) {
|
|
481
|
+
_loggerProxy.default.logger.error("Meeting:request#touchBreakout --> Error provisioning error ".concat(err));
|
|
482
|
+
throw err;
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
return _promise.default.reject(new Error("enableBreakouts: the breakoutServiceUrl is empty"));
|
|
486
|
+
},
|
|
487
|
+
/**
|
|
488
|
+
* Make the meeting enable or disable breakout session
|
|
489
|
+
* @param {boolean} enable
|
|
490
|
+
* @returns {Promise}
|
|
491
|
+
*/
|
|
492
|
+
toggleBreakout: function toggleBreakout(enable) {
|
|
493
|
+
var _this8 = this;
|
|
494
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
495
|
+
var info;
|
|
496
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
497
|
+
while (1) switch (_context.prev = _context.next) {
|
|
498
|
+
case 0:
|
|
499
|
+
if (!(_this8.enableBreakoutSession === undefined)) {
|
|
500
|
+
_context.next = 10;
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
_context.next = 3;
|
|
504
|
+
return _this8.enableBreakouts();
|
|
505
|
+
case 3:
|
|
506
|
+
info = _context.sent;
|
|
507
|
+
// first time enable, set the initial data
|
|
508
|
+
_this8.updateBreakout(info === null || info === void 0 ? void 0 : info.body);
|
|
509
|
+
if (enable) {
|
|
510
|
+
_context.next = 8;
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
_context.next = 8;
|
|
514
|
+
return _this8.doToggleBreakout(enable);
|
|
515
|
+
case 8:
|
|
516
|
+
_context.next = 12;
|
|
517
|
+
break;
|
|
518
|
+
case 10:
|
|
519
|
+
_context.next = 12;
|
|
520
|
+
return _this8.doToggleBreakout(enable);
|
|
521
|
+
case 12:
|
|
522
|
+
case "end":
|
|
523
|
+
return _context.stop();
|
|
524
|
+
}
|
|
525
|
+
}, _callee);
|
|
526
|
+
}))();
|
|
527
|
+
},
|
|
528
|
+
/**
|
|
529
|
+
* do toggle meeting breakout session enable or disable
|
|
530
|
+
* @param {boolean} enable
|
|
531
|
+
* @returns {Promise}
|
|
532
|
+
*/
|
|
533
|
+
doToggleBreakout: function doToggleBreakout(enable) {
|
|
534
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
535
|
+
editlock: {
|
|
536
|
+
token: this.editLock.token
|
|
537
|
+
}
|
|
538
|
+
} : {}), {
|
|
539
|
+
enableBreakoutSession: enable
|
|
540
|
+
});
|
|
541
|
+
|
|
542
|
+
// @ts-ignore
|
|
543
|
+
return this.webex.request({
|
|
544
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
545
|
+
uri: this.url,
|
|
546
|
+
body: body
|
|
547
|
+
});
|
|
548
|
+
},
|
|
549
|
+
/**
|
|
550
|
+
* set groups to manageGroups prop
|
|
551
|
+
* @param {Object} breakoutInfo -- breakout groups
|
|
552
|
+
* @returns {void}
|
|
553
|
+
*/
|
|
554
|
+
_setManageGroups: function _setManageGroups(breakoutInfo) {
|
|
555
|
+
var _breakoutInfo$body;
|
|
556
|
+
if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body = breakoutInfo.body) !== null && _breakoutInfo$body !== void 0 && _breakoutInfo$body.groups) {
|
|
557
|
+
this.set('manageGroups', breakoutInfo.body.groups);
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
/**
|
|
561
|
+
* Create new breakout sessions
|
|
562
|
+
* @param {object} params -- breakout session group
|
|
563
|
+
* @returns {Promise}
|
|
564
|
+
*/
|
|
565
|
+
create: function create(params) {
|
|
566
|
+
var _this9 = this;
|
|
567
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
568
|
+
var payload, body, breakoutInfo;
|
|
569
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
570
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
571
|
+
case 0:
|
|
572
|
+
payload = _objectSpread({}, params);
|
|
573
|
+
body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
|
|
574
|
+
editlock: {
|
|
575
|
+
token: _this9.editLock.token
|
|
576
|
+
}
|
|
577
|
+
} : {}), {
|
|
578
|
+
groups: [payload]
|
|
579
|
+
}); // @ts-ignore
|
|
580
|
+
_context2.next = 4;
|
|
581
|
+
return _this9.webex.request({
|
|
582
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
583
|
+
uri: _this9.url,
|
|
584
|
+
body: body
|
|
585
|
+
}).catch(function (error) {
|
|
586
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
|
|
587
|
+
});
|
|
588
|
+
case 4:
|
|
589
|
+
breakoutInfo = _context2.sent;
|
|
590
|
+
_this9._setManageGroups(breakoutInfo);
|
|
591
|
+
|
|
592
|
+
// clear edit lock info after save breakout session info
|
|
593
|
+
_this9._clearEditLockInfo();
|
|
594
|
+
return _context2.abrupt("return", breakoutInfo);
|
|
595
|
+
case 8:
|
|
596
|
+
case "end":
|
|
597
|
+
return _context2.stop();
|
|
598
|
+
}
|
|
599
|
+
}, _callee2);
|
|
600
|
+
}))();
|
|
601
|
+
},
|
|
602
|
+
/**
|
|
603
|
+
* Delete all breakout sessions
|
|
604
|
+
* @returns {Promise}
|
|
605
|
+
*/
|
|
606
|
+
clearSessions: function clearSessions() {
|
|
607
|
+
var _this10 = this;
|
|
608
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
609
|
+
var body, breakoutInfo;
|
|
610
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
611
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
612
|
+
case 0:
|
|
613
|
+
body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {
|
|
614
|
+
editlock: {
|
|
615
|
+
token: _this10.editLock.token
|
|
616
|
+
}
|
|
617
|
+
} : {}), {
|
|
618
|
+
groups: [{
|
|
619
|
+
action: _constants.BREAKOUTS.ACTION.DELETE
|
|
620
|
+
}]
|
|
621
|
+
}); // @ts-ignore
|
|
622
|
+
_context3.next = 3;
|
|
623
|
+
return _this10.webex.request({
|
|
624
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
625
|
+
uri: _this10.url,
|
|
626
|
+
body: body
|
|
627
|
+
}).catch(function (error) {
|
|
628
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
|
|
629
|
+
});
|
|
630
|
+
case 3:
|
|
631
|
+
breakoutInfo = _context3.sent;
|
|
632
|
+
_this10._setManageGroups(breakoutInfo);
|
|
633
|
+
return _context3.abrupt("return", breakoutInfo);
|
|
634
|
+
case 6:
|
|
635
|
+
case "end":
|
|
636
|
+
return _context3.stop();
|
|
637
|
+
}
|
|
638
|
+
}, _callee3);
|
|
639
|
+
}))();
|
|
640
|
+
},
|
|
641
|
+
/**
|
|
642
|
+
* Host or cohost starts breakout sessions
|
|
643
|
+
* @param {object} params
|
|
644
|
+
* @returns {Promise}
|
|
645
|
+
*/
|
|
646
|
+
start: function start() {
|
|
647
|
+
var _arguments = arguments,
|
|
648
|
+
_this11 = this;
|
|
649
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
650
|
+
var params, action, payload, body, breakoutInfo;
|
|
651
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
652
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
653
|
+
case 0:
|
|
654
|
+
params = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
|
|
655
|
+
action = _constants.BREAKOUTS.ACTION.START;
|
|
656
|
+
payload = _objectSpread({
|
|
657
|
+
id: _this11.breakoutGroupId,
|
|
658
|
+
action: action,
|
|
659
|
+
allowBackToMain: false,
|
|
660
|
+
allowToJoinLater: false
|
|
661
|
+
}, params);
|
|
662
|
+
body = _objectSpread(_objectSpread({}, _this11.editLock && !!_this11.editLock.token ? {
|
|
663
|
+
editlock: {
|
|
664
|
+
token: _this11.editLock.token,
|
|
665
|
+
refresh: true
|
|
666
|
+
}
|
|
667
|
+
} : {}), {
|
|
668
|
+
groups: [payload]
|
|
669
|
+
});
|
|
670
|
+
_context4.next = 6;
|
|
671
|
+
return _this11.request({
|
|
672
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
673
|
+
uri: _this11.url,
|
|
674
|
+
body: body
|
|
675
|
+
}).catch(function (error) {
|
|
676
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));
|
|
677
|
+
});
|
|
678
|
+
case 6:
|
|
679
|
+
breakoutInfo = _context4.sent;
|
|
680
|
+
_this11._setManageGroups(breakoutInfo);
|
|
681
|
+
return _context4.abrupt("return", breakoutInfo);
|
|
682
|
+
case 9:
|
|
683
|
+
case "end":
|
|
684
|
+
return _context4.stop();
|
|
685
|
+
}
|
|
686
|
+
}, _callee4);
|
|
687
|
+
}))();
|
|
688
|
+
},
|
|
689
|
+
/**
|
|
690
|
+
* Host or cohost ends breakout sessions
|
|
691
|
+
* @param {object} params
|
|
692
|
+
* @returns {Promise}
|
|
693
|
+
*/
|
|
694
|
+
end: function end() {
|
|
695
|
+
var _arguments2 = arguments,
|
|
696
|
+
_this12 = this;
|
|
697
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
698
|
+
var params, delayCloseTime, id, action, payload, body, breakoutInfo;
|
|
699
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
700
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
701
|
+
case 0:
|
|
702
|
+
params = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};
|
|
703
|
+
delayCloseTime = _this12.delayCloseTime, id = _this12.breakoutGroupId;
|
|
704
|
+
action = _constants.BREAKOUTS.ACTION.CLOSE;
|
|
705
|
+
payload = _objectSpread({
|
|
706
|
+
id: id,
|
|
707
|
+
action: action,
|
|
708
|
+
delayCloseTime: delayCloseTime
|
|
709
|
+
}, params);
|
|
710
|
+
body = _objectSpread(_objectSpread({}, _this12.editLock && !!_this12.editLock.token ? {
|
|
711
|
+
editlock: {
|
|
712
|
+
token: _this12.editLock.token,
|
|
713
|
+
refresh: true
|
|
714
|
+
}
|
|
715
|
+
} : {}), {
|
|
716
|
+
groups: [payload]
|
|
717
|
+
});
|
|
718
|
+
_context5.next = 7;
|
|
719
|
+
return _this12.request({
|
|
720
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
721
|
+
uri: _this12.url,
|
|
722
|
+
body: body
|
|
723
|
+
}).catch(function (error) {
|
|
724
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));
|
|
725
|
+
});
|
|
726
|
+
case 7:
|
|
727
|
+
breakoutInfo = _context5.sent;
|
|
728
|
+
_this12._setManageGroups(breakoutInfo);
|
|
729
|
+
return _context5.abrupt("return", breakoutInfo);
|
|
730
|
+
case 10:
|
|
731
|
+
case "end":
|
|
732
|
+
return _context5.stop();
|
|
733
|
+
}
|
|
734
|
+
}, _callee5);
|
|
735
|
+
}))();
|
|
736
|
+
},
|
|
737
|
+
/**
|
|
738
|
+
* Host or cohost update breakout sessions
|
|
739
|
+
* @param {Object} params
|
|
740
|
+
* @param {String} params.id
|
|
741
|
+
* @param {Boolean} unlockEdit
|
|
742
|
+
* @returns {Promise}
|
|
743
|
+
*/
|
|
744
|
+
update: function update(params, unlockEdit) {
|
|
745
|
+
var _this13 = this;
|
|
746
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
747
|
+
var _this13$editLock;
|
|
748
|
+
var payload, body, breakoutInfo;
|
|
749
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
750
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
751
|
+
case 0:
|
|
752
|
+
if (params.id) {
|
|
753
|
+
_context6.next = 2;
|
|
754
|
+
break;
|
|
755
|
+
}
|
|
756
|
+
return _context6.abrupt("return", _promise.default.reject(new Error('Missing breakout group id')));
|
|
757
|
+
case 2:
|
|
758
|
+
payload = _objectSpread({}, params);
|
|
759
|
+
body = _objectSpread(_objectSpread({}, (_this13$editLock = _this13.editLock) !== null && _this13$editLock !== void 0 && _this13$editLock.token ? {
|
|
760
|
+
editlock: {
|
|
761
|
+
token: _this13.editLock.token,
|
|
762
|
+
refresh: !unlockEdit
|
|
763
|
+
}
|
|
764
|
+
} : {}), {
|
|
765
|
+
groups: [payload]
|
|
766
|
+
});
|
|
767
|
+
_context6.next = 6;
|
|
768
|
+
return _this13.request({
|
|
769
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
770
|
+
uri: _this13.url,
|
|
771
|
+
body: body
|
|
772
|
+
}).catch(function (error) {
|
|
773
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));
|
|
774
|
+
});
|
|
775
|
+
case 6:
|
|
776
|
+
breakoutInfo = _context6.sent;
|
|
777
|
+
if (unlockEdit) {
|
|
778
|
+
_this13._clearEditLockInfo();
|
|
779
|
+
}
|
|
780
|
+
_this13._setManageGroups(breakoutInfo);
|
|
781
|
+
return _context6.abrupt("return", breakoutInfo);
|
|
782
|
+
case 10:
|
|
783
|
+
case "end":
|
|
784
|
+
return _context6.stop();
|
|
785
|
+
}
|
|
786
|
+
}, _callee6);
|
|
787
|
+
}))();
|
|
788
|
+
},
|
|
789
|
+
/**
|
|
790
|
+
* get existed breakout sessions
|
|
791
|
+
* @param {boolean} editlock -- lock operations of the breakout sessions
|
|
792
|
+
* @returns {Promise}
|
|
793
|
+
*/
|
|
794
|
+
getBreakout: function getBreakout(editlock) {
|
|
795
|
+
var _this14 = this;
|
|
796
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
797
|
+
var _breakout$body, _breakout$body$editlo;
|
|
798
|
+
var breakout;
|
|
799
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
800
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
801
|
+
case 0:
|
|
802
|
+
_context7.next = 2;
|
|
803
|
+
return _this14.request({
|
|
804
|
+
method: _constants.HTTP_VERBS.GET,
|
|
805
|
+
uri: _this14.url + (editlock ? "?editlock=".concat(editlock) : '')
|
|
806
|
+
});
|
|
807
|
+
case 2:
|
|
808
|
+
breakout = _context7.sent;
|
|
809
|
+
_this14._setManageGroups(breakout);
|
|
810
|
+
if (editlock && (_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && (_breakout$body$editlo = _breakout$body.editlock) !== null && _breakout$body$editlo !== void 0 && _breakout$body$editlo.token) {
|
|
811
|
+
_this14.set('editLock', breakout.body.editlock);
|
|
812
|
+
_this14.keepEditLockAlive();
|
|
813
|
+
}
|
|
814
|
+
return _context7.abrupt("return", breakout);
|
|
815
|
+
case 6:
|
|
816
|
+
case "end":
|
|
817
|
+
return _context7.stop();
|
|
818
|
+
}
|
|
819
|
+
}, _callee7);
|
|
820
|
+
}))();
|
|
821
|
+
},
|
|
822
|
+
/**
|
|
823
|
+
* enable and edit lock breakout
|
|
824
|
+
* @returns {void}
|
|
825
|
+
*/
|
|
826
|
+
enableAndLockBreakout: function enableAndLockBreakout() {
|
|
827
|
+
var _this15 = this;
|
|
828
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
829
|
+
var info;
|
|
830
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
831
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
832
|
+
case 0:
|
|
833
|
+
if (!_this15.enableBreakoutSession) {
|
|
834
|
+
_context8.next = 4;
|
|
835
|
+
break;
|
|
836
|
+
}
|
|
837
|
+
_this15.lockBreakout();
|
|
838
|
+
_context8.next = 8;
|
|
839
|
+
break;
|
|
840
|
+
case 4:
|
|
841
|
+
_context8.next = 6;
|
|
842
|
+
return _this15.enableBreakouts();
|
|
843
|
+
case 6:
|
|
844
|
+
info = _context8.sent;
|
|
845
|
+
if (info.body) {
|
|
846
|
+
_this15.lockBreakout();
|
|
847
|
+
}
|
|
848
|
+
case 8:
|
|
849
|
+
case "end":
|
|
850
|
+
return _context8.stop();
|
|
851
|
+
}
|
|
852
|
+
}, _callee8);
|
|
853
|
+
}))();
|
|
854
|
+
},
|
|
855
|
+
/**
|
|
856
|
+
* breakout edit locked by yourself or not
|
|
857
|
+
* @returns {boolean}
|
|
858
|
+
*/
|
|
859
|
+
hasBreakoutLocked: function hasBreakoutLocked() {
|
|
860
|
+
return this.editLock && this.editLock.token && this.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED;
|
|
861
|
+
},
|
|
862
|
+
/**
|
|
863
|
+
* send breakout edit lock
|
|
864
|
+
* @returns {void}
|
|
865
|
+
*/
|
|
866
|
+
lockBreakout: function lockBreakout() {
|
|
867
|
+
var _this16 = this;
|
|
868
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
869
|
+
var _breakout$body2, breakout;
|
|
870
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
871
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
872
|
+
case 0:
|
|
873
|
+
if (!(_this16.editLock && !!_this16.editLock.token)) {
|
|
874
|
+
_context9.next = 8;
|
|
875
|
+
break;
|
|
876
|
+
}
|
|
877
|
+
if (!(_this16.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
|
|
878
|
+
_context9.next = 5;
|
|
879
|
+
break;
|
|
880
|
+
}
|
|
881
|
+
throw new Error('Breakout already locked');
|
|
882
|
+
case 5:
|
|
883
|
+
_this16.keepEditLockAlive();
|
|
884
|
+
case 6:
|
|
885
|
+
_context9.next = 12;
|
|
886
|
+
break;
|
|
887
|
+
case 8:
|
|
888
|
+
_context9.next = 10;
|
|
889
|
+
return _this16.getBreakout(true);
|
|
890
|
+
case 10:
|
|
891
|
+
breakout = _context9.sent;
|
|
892
|
+
if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock) {
|
|
893
|
+
_this16.keepEditLockAlive();
|
|
894
|
+
}
|
|
895
|
+
case 12:
|
|
896
|
+
case "end":
|
|
897
|
+
return _context9.stop();
|
|
898
|
+
}
|
|
899
|
+
}, _callee9);
|
|
900
|
+
}))();
|
|
901
|
+
},
|
|
902
|
+
/**
|
|
903
|
+
* keep edit lock alive
|
|
904
|
+
* @returns {void}
|
|
905
|
+
*/
|
|
906
|
+
keepEditLockAlive: function keepEditLockAlive() {
|
|
907
|
+
var _this17 = this;
|
|
908
|
+
if (this.editLock && !!this.editLock.token) {
|
|
909
|
+
var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
|
|
910
|
+
if (this.intervalID) {
|
|
911
|
+
window.clearInterval(this.intervalID);
|
|
912
|
+
}
|
|
913
|
+
this.intervalID = window.setInterval(function () {
|
|
914
|
+
_this17.request({
|
|
915
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
916
|
+
uri: "".concat(_this17.url, "/editlock/").concat(_this17.editLock.token)
|
|
917
|
+
}).catch(function (error) {
|
|
918
|
+
_this17._clearEditLockInfo();
|
|
919
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));
|
|
920
|
+
});
|
|
921
|
+
}, ttl / 2 * 1000);
|
|
922
|
+
}
|
|
923
|
+
},
|
|
924
|
+
/**
|
|
925
|
+
* unlock edit breakout
|
|
926
|
+
* @returns {void}
|
|
927
|
+
*/
|
|
928
|
+
unLockEditBreakout: function unLockEditBreakout() {
|
|
929
|
+
var _this18 = this;
|
|
930
|
+
if (this.editLock && !!this.editLock.token) {
|
|
931
|
+
this.request({
|
|
932
|
+
method: _constants.HTTP_VERBS.DELETE,
|
|
933
|
+
uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
|
|
934
|
+
}).then(function () {
|
|
935
|
+
_this18._clearEditLockInfo();
|
|
936
|
+
}).catch(function (error) {
|
|
937
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
},
|
|
941
|
+
/**
|
|
942
|
+
* clear interval and edit lock info
|
|
943
|
+
* @private
|
|
944
|
+
* @returns {void}
|
|
945
|
+
*/
|
|
946
|
+
_clearEditLockInfo: function _clearEditLockInfo() {
|
|
947
|
+
if (this.intervalID) {
|
|
948
|
+
clearInterval(this.intervalID);
|
|
949
|
+
}
|
|
950
|
+
this.set('editLock', {});
|
|
951
|
+
},
|
|
952
|
+
/**
|
|
953
|
+
* assign participants to breakout session
|
|
954
|
+
* @param {Array} sessions
|
|
955
|
+
* @returns {void}
|
|
956
|
+
*/
|
|
957
|
+
assign: function assign(sessions) {
|
|
958
|
+
var internalSessions = sessions.map(function (item) {
|
|
959
|
+
return {
|
|
960
|
+
id: item.id,
|
|
961
|
+
assigned: item.memberIds,
|
|
962
|
+
assignedEmails: item.emails,
|
|
963
|
+
anyoneCanJoin: !!item.anyone
|
|
964
|
+
};
|
|
965
|
+
});
|
|
966
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
967
|
+
editlock: {
|
|
968
|
+
token: this.editLock.token,
|
|
969
|
+
refresh: true
|
|
970
|
+
}
|
|
971
|
+
} : {}), {
|
|
972
|
+
groups: [{
|
|
973
|
+
id: this.breakoutGroupId,
|
|
974
|
+
sessions: internalSessions
|
|
975
|
+
}]
|
|
976
|
+
});
|
|
977
|
+
return this.request({
|
|
978
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
979
|
+
uri: this.url,
|
|
980
|
+
body: body
|
|
981
|
+
});
|
|
982
|
+
},
|
|
983
|
+
/**
|
|
984
|
+
* query preAssignments
|
|
985
|
+
* @returns {void}
|
|
986
|
+
*/
|
|
987
|
+
queryPreAssignments: function queryPreAssignments() {
|
|
988
|
+
var _this19 = this;
|
|
989
|
+
this.webex.request({
|
|
990
|
+
uri: "".concat(this.url, "/preassignments"),
|
|
991
|
+
qs: {
|
|
992
|
+
locusUrl: btoa(this.locusUrl)
|
|
993
|
+
}
|
|
994
|
+
}).then(function (result) {
|
|
995
|
+
var _result$body;
|
|
996
|
+
if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
|
|
997
|
+
_this19.set('preAssignments', result.body.groups);
|
|
998
|
+
_this19.trigger(_constants.BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);
|
|
999
|
+
}
|
|
1000
|
+
}).catch(function (error) {
|
|
1001
|
+
_loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
|
|
1002
|
+
});
|
|
1003
|
+
},
|
|
1004
|
+
/**
|
|
1005
|
+
* assign participants dynamically after breakout sessions started,
|
|
1006
|
+
* but currently it only used for admitting participants from lobby into breakout directly
|
|
1007
|
+
* @param {Array} sessions
|
|
1008
|
+
* @returns {void}
|
|
1009
|
+
*/
|
|
1010
|
+
dynamicAssign: function dynamicAssign(sessions) {
|
|
1011
|
+
var updatedSessions = sessions.map(function (item) {
|
|
1012
|
+
return {
|
|
1013
|
+
id: item.id,
|
|
1014
|
+
participants: item.participants,
|
|
1015
|
+
targetState: item.targetState
|
|
1016
|
+
};
|
|
1017
|
+
});
|
|
1018
|
+
var body = {
|
|
1019
|
+
groups: [{
|
|
1020
|
+
id: this.breakoutGroupId,
|
|
1021
|
+
sessions: updatedSessions
|
|
1022
|
+
}],
|
|
1023
|
+
editlock: null
|
|
1024
|
+
};
|
|
1025
|
+
if (this.editLock && this.editLock.token) {
|
|
1026
|
+
body.editlock = this.editLock;
|
|
1027
|
+
}
|
|
1028
|
+
return this.request({
|
|
1029
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
1030
|
+
uri: "".concat(this.url, "/dynamicAssign"),
|
|
1031
|
+
body: body
|
|
1032
|
+
});
|
|
1033
|
+
},
|
|
1034
|
+
/**
|
|
1035
|
+
* trigger ASK_RETURN_TO_MAIN event when main session requested
|
|
1036
|
+
* @param {Object} breakout
|
|
1037
|
+
* @returns {void}
|
|
1038
|
+
*/
|
|
1039
|
+
triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {
|
|
1040
|
+
if (breakout.isMain && breakout.requested) {
|
|
1041
|
+
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
1044
|
+
version: "3.0.0-beta.261"
|
|
223
1045
|
});
|
|
224
1046
|
var _default = Breakouts;
|
|
225
1047
|
exports.default = _default;
|