@webex/plugin-meetings 3.0.0-beta.24 → 3.0.0-beta.26

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.
Files changed (38) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +5 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/controls-options-manager/constants.js +14 -0
  6. package/dist/controls-options-manager/constants.js.map +1 -0
  7. package/dist/controls-options-manager/enums.js +15 -0
  8. package/dist/controls-options-manager/enums.js.map +1 -0
  9. package/dist/controls-options-manager/index.js +203 -0
  10. package/dist/controls-options-manager/index.js.map +1 -0
  11. package/dist/controls-options-manager/util.js +28 -0
  12. package/dist/controls-options-manager/util.js.map +1 -0
  13. package/dist/meeting/in-meeting-actions.js +8 -0
  14. package/dist/meeting/in-meeting-actions.js.map +1 -1
  15. package/dist/meeting/index.js +59 -12
  16. package/dist/meeting/index.js.map +1 -1
  17. package/dist/multistream/remoteMediaManager.js +4 -3
  18. package/dist/multistream/remoteMediaManager.js.map +1 -1
  19. package/dist/types/constants.d.ts +4 -0
  20. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  21. package/dist/types/controls-options-manager/enums.d.ts +5 -0
  22. package/dist/types/controls-options-manager/index.d.ts +120 -0
  23. package/dist/types/controls-options-manager/util.d.ts +7 -0
  24. package/dist/types/meeting/in-meeting-actions.d.ts +8 -0
  25. package/dist/types/meeting/index.d.ts +18 -0
  26. package/package.json +19 -19
  27. package/src/constants.ts +4 -0
  28. package/src/controls-options-manager/constants.ts +5 -0
  29. package/src/controls-options-manager/enums.ts +6 -0
  30. package/src/controls-options-manager/index.ts +183 -0
  31. package/src/controls-options-manager/util.ts +20 -0
  32. package/src/meeting/in-meeting-actions.ts +16 -0
  33. package/src/meeting/index.ts +49 -0
  34. package/src/multistream/remoteMediaManager.ts +2 -2
  35. package/test/unit/spec/controls-options-manager/index.js +124 -0
  36. package/test/unit/spec/controls-options-manager/util.js +66 -0
  37. package/test/unit/spec/meeting/in-meeting-actions.ts +8 -0
  38. package/test/unit/spec/meeting/index.js +15 -0
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
+ var _camelCase3 = _interopRequireDefault(require("lodash/camelCase"));
14
+ var _permission = _interopRequireDefault(require("../common/errors/permission"));
15
+ var _constants = require("../constants");
16
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
17
+ var _enums = _interopRequireDefault(require("./enums"));
18
+ var _util = _interopRequireDefault(require("./util"));
19
+ var _constants2 = require("./constants");
20
+ /**
21
+ * docs
22
+ * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html
23
+ * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry
24
+ * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting
25
+ * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867
26
+ * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351
27
+ */
28
+ /**
29
+ * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting
30
+ * @export
31
+ * @private
32
+ * @class Recording
33
+ */
34
+ var ControlsOptionsManager = /*#__PURE__*/function () {
35
+ /**
36
+ * @instance
37
+ * @type {MeetingRequest}
38
+ * @private
39
+ * @memberof ControlsOptionsManager
40
+ */
41
+
42
+ /**
43
+ * @instance
44
+ * @type {Array}
45
+ * @private
46
+ * @memberof ControlsOptionsManager
47
+ */
48
+
49
+ /**
50
+ * @instance
51
+ * @type {string}
52
+ * @private
53
+ * @memberof ControlsOptionsManager
54
+ */
55
+
56
+ /**
57
+ * @param {MeetingRequest} request
58
+ * @param {Object} options
59
+ * @constructor
60
+ * @memberof ControlsOptionsManager
61
+ */
62
+ function ControlsOptionsManager(request, options) {
63
+ (0, _classCallCheck2.default)(this, ControlsOptionsManager);
64
+ (0, _defineProperty2.default)(this, "request", void 0);
65
+ (0, _defineProperty2.default)(this, "displayHints", []);
66
+ (0, _defineProperty2.default)(this, "locusUrl", void 0);
67
+ this.initialize(request);
68
+ this.set(options);
69
+ }
70
+
71
+ /**
72
+ * @param {MeetingRequest} request
73
+ * @returns {void}
74
+ * @private
75
+ * @memberof ControlsOptionsManager
76
+ */
77
+ (0, _createClass2.default)(ControlsOptionsManager, [{
78
+ key: "initialize",
79
+ value: function initialize(request) {
80
+ this.request = request;
81
+ }
82
+
83
+ /**
84
+ * @param {Object} options
85
+ * @returns {void}
86
+ * @public
87
+ * @memberof ControlsOptionsManager
88
+ */
89
+ }, {
90
+ key: "set",
91
+ value: function set(options) {
92
+ this.extract(options);
93
+ }
94
+
95
+ /**
96
+ * @param {string} url
97
+ * @returns {void}
98
+ * @public
99
+ * @memberof ControlsOptionsManager
100
+ */
101
+ }, {
102
+ key: "setLocusUrl",
103
+ value: function setLocusUrl(url) {
104
+ this.locusUrl = url;
105
+ }
106
+
107
+ /**
108
+ * @param {Array} hints
109
+ * @returns {void}
110
+ * @public
111
+ * @memberof ControlsOptionsManager
112
+ */
113
+ }, {
114
+ key: "setDisplayHints",
115
+ value: function setDisplayHints(hints) {
116
+ this.displayHints = hints;
117
+ }
118
+
119
+ /**
120
+ * @returns {string}
121
+ * @public
122
+ * @memberof ControlsOptionsManager
123
+ */
124
+ }, {
125
+ key: "getLocusUrl",
126
+ value: function getLocusUrl() {
127
+ return this.locusUrl;
128
+ }
129
+
130
+ /**
131
+ * @returns {Array}
132
+ * @public
133
+ * @memberof ControlsOptionsManager
134
+ */
135
+ }, {
136
+ key: "getDisplayHints",
137
+ value: function getDisplayHints() {
138
+ return this.displayHints;
139
+ }
140
+
141
+ /**
142
+ * @param {Object} options
143
+ * @returns {void}
144
+ * @private
145
+ * @memberof ControlsOptionsManager
146
+ */
147
+ }, {
148
+ key: "extract",
149
+ value: function extract(options) {
150
+ this.setDisplayHints(options === null || options === void 0 ? void 0 : options.displayHints);
151
+ this.setLocusUrl(options === null || options === void 0 ? void 0 : options.locusUrl);
152
+ }
153
+
154
+ /**
155
+ * @param {Setting} setting
156
+ * @param {boolean} enabled
157
+ * @private
158
+ * @memberof ControlsOptionsManager
159
+ * @returns {Promise}
160
+ */
161
+ }, {
162
+ key: "setControls",
163
+ value: function setControls(setting, enabled) {
164
+ _loggerProxy.default.logger.log("ControlsOptionsManager:index#setControls --> ".concat(setting, " [").concat(enabled, "]"));
165
+ if (_util.default !== null && _util.default !== void 0 && _util.default["".concat(enabled ? _constants2.CAN_SET : _constants2.CAN_UNSET).concat(setting)](this.displayHints)) {
166
+ // @ts-ignore
167
+ return this.request.request({
168
+ uri: "".concat(this.locusUrl, "/").concat(_constants.CONTROLS),
169
+ body: (0, _defineProperty2.default)({}, (0, _camelCase3.default)(setting), (0, _defineProperty2.default)({}, _constants2.ENABLED, enabled)),
170
+ method: _constants.HTTP_VERBS.PATCH
171
+ });
172
+ }
173
+ return _promise.default.reject(new _permission.default("".concat(setting, " [").concat(enabled, "] not allowed, due to moderator property.")));
174
+ }
175
+
176
+ /**
177
+ * @public
178
+ * @param {boolean} enabled
179
+ * @memberof ControlsOptionsManager
180
+ * @returns {Promise}
181
+ */
182
+ }, {
183
+ key: "setMuteOnEntry",
184
+ value: function setMuteOnEntry(enabled) {
185
+ return this.setControls(_enums.default.muteOnEntry, enabled);
186
+ }
187
+
188
+ /**
189
+ * @public
190
+ * @param {boolean} enabled
191
+ * @memberof ControlsOptionsManager
192
+ * @returns {Promise}
193
+ */
194
+ }, {
195
+ key: "setDisallowUnmute",
196
+ value: function setDisallowUnmute(enabled) {
197
+ return this.setControls(_enums.default.disallowUnmute, enabled);
198
+ }
199
+ }]);
200
+ return ControlsOptionsManager;
201
+ }();
202
+ exports.default = ControlsOptionsManager;
203
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ControlsOptionsManager","request","options","initialize","set","extract","url","locusUrl","hints","displayHints","setDisplayHints","setLocusUrl","setting","enabled","LoggerProxy","logger","log","Util","CAN_SET","CAN_UNSET","uri","CONTROLS","body","ENABLED","method","HTTP_VERBS","PATCH","reject","PermissionError","setControls","Setting","muteOnEntry","disallowUnmute"],"sources":["index.ts"],"sourcesContent":["import {camelCase} from 'lodash';\nimport PermissionError from '../common/errors/permission';\nimport {CONTROLS, HTTP_VERBS} from '../constants';\nimport MeetingRequest from '../meeting/request';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Setting from './enums';\nimport Util from './util';\nimport {CAN_SET, CAN_UNSET, ENABLED} from './constants';\n\n/**\n * docs\n * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html\n * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351\n */\n\n/**\n * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting\n * @export\n * @private\n * @class Recording\n */\nexport default class ControlsOptionsManager {\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof ControlsOptionsManager\n */\n private request: MeetingRequest;\n\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof ControlsOptionsManager\n */\n private displayHints: Array<string> = [];\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof ControlsOptionsManager\n */\n private locusUrl: string;\n\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof ControlsOptionsManager\n */\n constructor(\n request: MeetingRequest,\n options?: {\n locusUrl: string;\n displayHints?: Array<string>;\n }\n ) {\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private initialize(request: MeetingRequest) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public set(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setLocusUrl(url: string) {\n this.locusUrl = url;\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setDisplayHints(hints: Array<string>) {\n this.displayHints = hints;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private extract(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.setDisplayHints(options?.displayHints);\n this.setLocusUrl(options?.locusUrl);\n }\n\n /**\n * @param {Setting} setting\n * @param {boolean} enabled\n * @private\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n private setControls(setting: Setting, enabled: boolean): Promise<any> {\n LoggerProxy.logger.log(`ControlsOptionsManager:index#setControls --> ${setting} [${enabled}]`);\n\n if (Util?.[`${enabled ? CAN_SET : CAN_UNSET}${setting}`](this.displayHints)) {\n // @ts-ignore\n return this.request.request({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body: {\n [camelCase(setting)]: {\n [ENABLED]: enabled,\n },\n },\n method: HTTP_VERBS.PATCH,\n });\n }\n\n return Promise.reject(\n new PermissionError(`${setting} [${enabled}] not allowed, due to moderator property.`)\n );\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setMuteOnEntry(enabled: boolean): Promise<any> {\n return this.setControls(Setting.muteOnEntry, enabled);\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setDisallowUnmute(enabled: boolean): Promise<any> {\n return this.setControls(Setting.disallowUnmute, enabled);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _constants = require("../constants");
9
+ var canSetMuteOnEntry = function canSetMuteOnEntry(displayHints) {
10
+ return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);
11
+ };
12
+ var canSetDisallowUnmute = function canSetDisallowUnmute(displayHints) {
13
+ return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);
14
+ };
15
+ var canUnsetMuteOnEntry = function canUnsetMuteOnEntry(displayHints) {
16
+ return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);
17
+ };
18
+ var canUnsetDisallowUnmute = function canUnsetDisallowUnmute(displayHints) {
19
+ return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);
20
+ };
21
+ var _default = {
22
+ canSetMuteOnEntry: canSetMuteOnEntry,
23
+ canSetDisallowUnmute: canSetDisallowUnmute,
24
+ canUnsetMuteOnEntry: canUnsetMuteOnEntry,
25
+ canUnsetDisallowUnmute: canUnsetDisallowUnmute
26
+ };
27
+ exports.default = _default;
28
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["canSetMuteOnEntry","displayHints","includes","DISPLAY_HINTS","ENABLE_MUTE_ON_ENTRY","canSetDisallowUnmute","ENABLE_HARD_MUTE","canUnsetMuteOnEntry","DISABLE_MUTE_ON_ENTRY","canUnsetDisallowUnmute","DISABLE_HARD_MUTE"],"sources":["util.ts"],"sourcesContent":["import {DISPLAY_HINTS} from '../constants';\n\nconst canSetMuteOnEntry = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);\n\nconst canSetDisallowUnmute = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_HARD_MUTE);\n\nconst canUnsetMuteOnEntry = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);\n\nconst canUnsetDisallowUnmute = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.DISABLE_HARD_MUTE);\n\nexport default {\n canSetMuteOnEntry,\n canSetDisallowUnmute,\n canUnsetMuteOnEntry,\n canUnsetDisallowUnmute,\n};\n"],"mappings":";;;;;;;AAAA;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,YAA2B;EAAA,OACpDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACC,oBAAoB,CAAC;AAAA;AAE3D,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIJ,YAA2B;EAAA,OACvDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACG,gBAAgB,CAAC;AAAA;AAEvD,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIN,YAA2B;EAAA,OACtDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACK,qBAAqB,CAAC;AAAA;AAE5D,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIR,YAA2B;EAAA,OACzDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACO,iBAAiB,CAAC;AAAA;AAAC,eAE1C;EACbV,iBAAiB,EAAjBA,iBAAiB;EACjBK,oBAAoB,EAApBA,oBAAoB;EACpBE,mBAAmB,EAAnBA,mBAAmB;EACnBE,sBAAsB,EAAtBA;AACF,CAAC;AAAA"}
@@ -30,6 +30,10 @@ var InMeetingActions = /*#__PURE__*/(0, _createClass2.default)(function InMeetin
30
30
  (0, _defineProperty2.default)(this, "canPauseRecording", null);
31
31
  (0, _defineProperty2.default)(this, "canResumeRecording", null);
32
32
  (0, _defineProperty2.default)(this, "canStopRecording", null);
33
+ (0, _defineProperty2.default)(this, "canSetMuteOnEntry", null);
34
+ (0, _defineProperty2.default)(this, "canUnsetMuteOnEntry", null);
35
+ (0, _defineProperty2.default)(this, "canSetDisallowUnmute", null);
36
+ (0, _defineProperty2.default)(this, "canUnsetDisallowUnmute", null);
33
37
  (0, _defineProperty2.default)(this, "canRaiseHand", null);
34
38
  (0, _defineProperty2.default)(this, "canLowerAllHands", null);
35
39
  (0, _defineProperty2.default)(this, "canLowerSomeoneElsesHand", null);
@@ -52,6 +56,10 @@ var InMeetingActions = /*#__PURE__*/(0, _createClass2.default)(function InMeetin
52
56
  canLock: _this.canLock,
53
57
  canUnlock: _this.canUnlock,
54
58
  canAssignHost: _this.canAssignHost,
59
+ canSetMuteOnEntry: _this.canSetMuteOnEntry,
60
+ canUnsetMuteOnEntry: _this.canUnsetMuteOnEntry,
61
+ canSetDisallowUnmute: _this.canSetDisallowUnmute,
62
+ canUnsetDisallowUnmute: _this.canUnsetDisallowUnmute,
55
63
  canStartRecording: _this.canStartRecording,
56
64
  canPauseRecording: _this.canPauseRecording,
57
65
  canResumeRecording: _this.canResumeRecording,
@@ -1 +1 @@
1
- {"version":3,"names":["InMeetingActions","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canEnableReactions","canSendReactions","actions","old","get","changed","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canAssignHost?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canEnableReactions?: boolean;\n canSendReactions?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canEnableReactions = null;\n\n canSendReactions = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canEnableReactions: this.canEnableReactions,\n canSendReactions: this.canSendReactions,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":";;;;;;;;;;;;AAIA;AAJA;AACA;AACA;AAmCA;AACA;AACA;AAFA,IAGqBA,gBAAgB;EAAA;EAAA;EAAA,iDACvBC,mBAAQ;EAAA,gEAEO,IAAI;EAAA,2DAET,IAAI;EAAA,+CAEhB,IAAI;EAAA,iDAEF,IAAI;EAAA,qDAEA,IAAI;EAAA,yDAEA,IAAI;EAAA,yDAEJ,IAAI;EAAA,0DAEH,IAAI;EAAA,wDAEN,IAAI;EAAA,oDAER,IAAI;EAAA,wDAEA,IAAI;EAAA,gEAEI,IAAI;EAAA,uEAEG,IAAI;EAAA,8DAEb,IAAI;EAAA,4DAEN,IAAI;EAAA,2DAEL,IAAI;EAAA,6DAEF,IAAI;EAAA,8DAEH,IAAI;EAAA,2DAEP,IAAI;EAAA,oEAEK,IAAI;EAAA,gEAER,IAAI;EAAA,8DAEN,IAAI;EAAA,0DAER,IAAI;EAAA,wDAEN,IAAI;EAAA,2CAMjB;IAAA,OAA0B;MAC9BC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,OAAO,EAAE,KAAI,CAACA,OAAO;MACrBC,SAAS,EAAE,KAAI,CAACA,SAAS;MACzBC,aAAa,EAAE,KAAI,CAACA,aAAa;MACjCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,YAAY,EAAE,KAAI,CAACA,YAAY;MAC/BC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,+BAA+B,EAAE,KAAI,CAACA,+BAA+B;MACrEC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,qBAAqB,EAAE,KAAI,CAACA,qBAAqB;MACjDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,4BAA4B,EAAE,KAAI,CAACA,4BAA4B;MAC/DC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,gBAAgB,EAAE,KAAI,CAACA;IACzB,CAAC;EAAA,CAAC;EAAA,2CAQI,UAACC,OAAmC,EAAK;IAC7C,IAAMC,GAAG,GAAG,KAAI,CAACC,GAAG,EAAE;IAEtB,IAAIC,OAAO,GAAG,KAAK;IAEnB,mBAAYF,GAAG,CAAC,CAACG,OAAO,CAAC,UAACC,SAAS,EAAK;MACtC,IAAMC,WAAW,GAAGN,OAAO,CAACK,SAAS,CAAC;MAEtC,IAAIC,WAAW,KAAKC,SAAS,IAAID,WAAW,KAAKL,GAAG,CAACI,SAAS,CAAC,EAAE;QAC/DF,OAAO,GAAG,IAAI;QACd,KAAI,CAACE,SAAS,CAAC,GAAGC,WAAW;MAC/B;IACF,CAAC,CAAC;IAEF,OAAOH,OAAO;EAChB,CAAC;AAAA;AAAA"}
1
+ {"version":3,"names":["InMeetingActions","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canSetMuteOnEntry","canUnsetMuteOnEntry","canSetDisallowUnmute","canUnsetDisallowUnmute","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canEnableReactions","canSendReactions","actions","old","get","changed","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canSetMuteOnEntry?: boolean;\n canUnsetMuteOnEntry?: boolean;\n canSetDisallowUnmute?: boolean;\n canUnsetDisallowUnmute?: boolean;\n canAssignHost?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canEnableReactions?: boolean;\n canSendReactions?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canSetMuteOnEntry = null;\n\n canUnsetMuteOnEntry = null;\n\n canSetDisallowUnmute = null;\n\n canUnsetDisallowUnmute = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canEnableReactions = null;\n\n canSendReactions = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canSetMuteOnEntry: this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: this.canSetDisallowUnmute,\n canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canEnableReactions: this.canEnableReactions,\n canSendReactions: this.canSendReactions,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":";;;;;;;;;;;;AAIA;AAJA;AACA;AACA;AAuCA;AACA;AACA;AAFA,IAGqBA,gBAAgB;EAAA;EAAA;EAAA,iDACvBC,mBAAQ;EAAA,gEAEO,IAAI;EAAA,2DAET,IAAI;EAAA,+CAEhB,IAAI;EAAA,iDAEF,IAAI;EAAA,qDAEA,IAAI;EAAA,yDAEA,IAAI;EAAA,yDAEJ,IAAI;EAAA,0DAEH,IAAI;EAAA,wDAEN,IAAI;EAAA,yDAEH,IAAI;EAAA,2DAEF,IAAI;EAAA,4DAEH,IAAI;EAAA,8DAEF,IAAI;EAAA,oDAEd,IAAI;EAAA,wDAEA,IAAI;EAAA,gEAEI,IAAI;EAAA,uEAEG,IAAI;EAAA,8DAEb,IAAI;EAAA,4DAEN,IAAI;EAAA,2DAEL,IAAI;EAAA,6DAEF,IAAI;EAAA,8DAEH,IAAI;EAAA,2DAEP,IAAI;EAAA,oEAEK,IAAI;EAAA,gEAER,IAAI;EAAA,8DAEN,IAAI;EAAA,0DAER,IAAI;EAAA,wDAEN,IAAI;EAAA,2CAMjB;IAAA,OAA0B;MAC9BC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,OAAO,EAAE,KAAI,CAACA,OAAO;MACrBC,SAAS,EAAE,KAAI,CAACA,SAAS;MACzBC,aAAa,EAAE,KAAI,CAACA,aAAa;MACjCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,YAAY,EAAE,KAAI,CAACA,YAAY;MAC/BC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,+BAA+B,EAAE,KAAI,CAACA,+BAA+B;MACrEC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,qBAAqB,EAAE,KAAI,CAACA,qBAAqB;MACjDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,4BAA4B,EAAE,KAAI,CAACA,4BAA4B;MAC/DC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,gBAAgB,EAAE,KAAI,CAACA;IACzB,CAAC;EAAA,CAAC;EAAA,2CAQI,UAACC,OAAmC,EAAK;IAC7C,IAAMC,GAAG,GAAG,KAAI,CAACC,GAAG,EAAE;IAEtB,IAAIC,OAAO,GAAG,KAAK;IAEnB,mBAAYF,GAAG,CAAC,CAACG,OAAO,CAAC,UAACC,SAAS,EAAK;MACtC,IAAMC,WAAW,GAAGN,OAAO,CAACK,SAAS,CAAC;MAEtC,IAAIC,WAAW,KAAKC,SAAS,IAAID,WAAW,KAAKL,GAAG,CAACI,SAAS,CAAC,EAAE;QAC/DF,OAAO,GAAG,IAAI;QACd,KAAI,CAACE,SAAS,CAAC,GAAGC,WAAW;MAC/B;IACF,CAAC,CAAC;IAEF,OAAOH,OAAO;EAChB,CAAC;AAAA;AAAA"}
@@ -59,7 +59,8 @@ var _request = _interopRequireDefault(require("./request"));
59
59
  var _index2 = _interopRequireDefault(require("../members/index"));
60
60
  var _util = _interopRequireDefault(require("./util"));
61
61
  var _util2 = _interopRequireDefault(require("../recording-controller/util"));
62
- var _util3 = _interopRequireDefault(require("../media/util"));
62
+ var _util3 = _interopRequireDefault(require("../controls-options-manager/util"));
63
+ var _util4 = _interopRequireDefault(require("../media/util"));
63
64
  var _transcription = _interopRequireDefault(require("../transcription"));
64
65
  var _reactions = require("../reactions/reactions");
65
66
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
@@ -79,6 +80,7 @@ var _breakouts = _interopRequireDefault(require("../breakouts"));
79
80
  var _inMeetingActions = _interopRequireDefault(require("./in-meeting-actions"));
80
81
  var _constants3 = require("../reactions/constants");
81
82
  var _recordingController = _interopRequireDefault(require("../recording-controller"));
83
+ var _controlsOptionsManager = _interopRequireDefault(require("../controls-options-manager"));
82
84
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(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; } } }; }
83
85
  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); }
84
86
  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; }
@@ -410,7 +412,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
410
412
  * @memberof Meeting
411
413
  */
412
414
  function Meeting(attrs, _options) {
413
- var _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3;
415
+ var _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3, _this$locusInfo4;
414
416
  var _this;
415
417
  (0, _classCallCheck2.default)(this, Meeting);
416
418
  _this = _super.call(this, {}, _options);
@@ -480,6 +482,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
480
482
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recording", void 0);
481
483
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "remoteMediaManager", void 0);
482
484
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recordingController", void 0);
485
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "controlsOptionsManager", void 0);
483
486
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "requiredCaptcha", void 0);
484
487
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotManager", void 0);
485
488
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "shareStatus", void 0);
@@ -802,7 +805,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
802
805
  function: 'setupRemoteTrackListener:Event.REMOTE_TRACK_ADDED'
803
806
  }, _constants.EVENT_TRIGGERS.MEDIA_READY, {
804
807
  type: eventType,
805
- stream: _util3.default.createMediaStream([mediaTrack])
808
+ stream: _util4.default.createMediaStream([mediaTrack])
806
809
  });
807
810
  }
808
811
  });
@@ -1672,6 +1675,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1672
1675
  locusUrl: (_this$locusInfo3 = _this.locusInfo) === null || _this$locusInfo3 === void 0 ? void 0 : _this$locusInfo3.url,
1673
1676
  displayHints: []
1674
1677
  });
1678
+
1679
+ /**
1680
+ * The class that helps to control recording functions: start, stop, pause, resume, etc
1681
+ * @instance
1682
+ * @type {ControlsOptionsManager}
1683
+ * @public
1684
+ * @memberof Meeting
1685
+ */
1686
+ _this.controlsOptionsManager = new _controlsOptionsManager.default(_this.meetingRequest, {
1687
+ locusUrl: (_this$locusInfo4 = _this.locusInfo) === null || _this$locusInfo4 === void 0 ? void 0 : _this$locusInfo4.url,
1688
+ displayHints: []
1689
+ });
1675
1690
  _this.setUpLocusInfoListeners();
1676
1691
  _this.locusInfo.init(attrs.locus ? attrs.locus : {});
1677
1692
  _this.hasJoinedOnce = false;
@@ -2643,6 +2658,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2643
2658
  _this14.locusUrl = payload;
2644
2659
  _this14.locusId = (_this14$locusUrl = _this14.locusUrl) === null || _this14$locusUrl === void 0 ? void 0 : _this14$locusUrl.split('/').pop();
2645
2660
  _this14.recordingController.setLocusUrl(_this14.locusUrl);
2661
+ _this14.controlsOptionsManager.setLocusUrl(_this14.locusUrl);
2646
2662
  });
2647
2663
  }
2648
2664
 
@@ -2703,6 +2719,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2703
2719
  canAdmitParticipant: _util.default.canAdmitParticipant(payload.info.userDisplayHints),
2704
2720
  canLock: _util.default.canUserLock(payload.info.userDisplayHints),
2705
2721
  canUnlock: _util.default.canUserUnlock(payload.info.userDisplayHints),
2722
+ canSetDisallowUnmute: _util3.default.canSetDisallowUnmute(payload.info.userDisplayHints),
2723
+ canUnsetDisallowUnmute: _util3.default.canUnsetDisallowUnmute(payload.info.userDisplayHints),
2724
+ canSetMuteOnEntry: _util3.default.canSetMuteOnEntry(payload.info.userDisplayHints),
2725
+ canUnsetMuteOnEntry: _util3.default.canUnsetMuteOnEntry(payload.info.userDisplayHints),
2706
2726
  canStartRecording: _util2.default.canUserStart(payload.info.userDisplayHints),
2707
2727
  canStopRecording: _util2.default.canUserStop(payload.info.userDisplayHints),
2708
2728
  canPauseRecording: _util2.default.canUserPause(payload.info.userDisplayHints),
@@ -2724,6 +2744,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2724
2744
  canSendReactions: _util.default.canSendReactions(_this16.inMeetingActions.canSendReactions, payload.info.userDisplayHints)
2725
2745
  });
2726
2746
  _this16.recordingController.setDisplayHints(payload.info.userDisplayHints);
2747
+ _this16.controlsOptionsManager.setDisplayHints(payload.info.userDisplayHints);
2727
2748
  if (changed) {
2728
2749
  _triggerProxy.default.trigger(_this16, {
2729
2750
  file: 'meeting/index',
@@ -3411,7 +3432,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3411
3432
  function: 'setLocalTracks'
3412
3433
  }, _constants.EVENT_TRIGGERS.MEDIA_READY, {
3413
3434
  type: _constants.EVENT_TYPES.LOCAL,
3414
- stream: _util3.default.createMediaStream([this.mediaProperties.audioTrack, this.mediaProperties.videoTrack])
3435
+ stream: _util4.default.createMediaStream([this.mediaProperties.audioTrack, this.mediaProperties.videoTrack])
3415
3436
  });
3416
3437
  }
3417
3438
 
@@ -4081,8 +4102,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4081
4102
  }, {
4082
4103
  key: "isReactionsSupported",
4083
4104
  value: function isReactionsSupported() {
4084
- var _this$locusInfo4, _this$locusInfo4$cont;
4085
- if ((_this$locusInfo4 = this.locusInfo) !== null && _this$locusInfo4 !== void 0 && (_this$locusInfo4$cont = _this$locusInfo4.controls) !== null && _this$locusInfo4$cont !== void 0 && _this$locusInfo4$cont.reactions.enabled) {
4105
+ var _this$locusInfo5, _this$locusInfo5$cont;
4106
+ if ((_this$locusInfo5 = this.locusInfo) !== null && _this$locusInfo5 !== void 0 && (_this$locusInfo5$cont = _this$locusInfo5.controls) !== null && _this$locusInfo5$cont !== void 0 && _this$locusInfo5$cont.reactions.enabled) {
4086
4107
  return true;
4087
4108
  }
4088
4109
  _loggerProxy.default.logger.error('Meeting:index#isReactionsSupported --> Reactions is not supported');
@@ -4432,12 +4453,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4432
4453
  key: "updateLLMConnection",
4433
4454
  value: function () {
4434
4455
  var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
4435
- var _this$locusInfo5, url, _this$locusInfo5$info, _this$locusInfo5$info2, datachannelUrl, isJoined;
4456
+ var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, isJoined;
4436
4457
  return _regenerator.default.wrap(function _callee7$(_context7) {
4437
4458
  while (1) switch (_context7.prev = _context7.next) {
4438
4459
  case 0:
4439
4460
  // @ts-ignore - Fix type
4440
- _this$locusInfo5 = this.locusInfo, url = _this$locusInfo5.url, _this$locusInfo5$info = _this$locusInfo5.info, _this$locusInfo5$info2 = _this$locusInfo5$info === void 0 ? {} : _this$locusInfo5$info, datachannelUrl = _this$locusInfo5$info2.datachannelUrl;
4461
+ _this$locusInfo6 = this.locusInfo, url = _this$locusInfo6.url, _this$locusInfo6$info = _this$locusInfo6.info, _this$locusInfo6$info2 = _this$locusInfo6$info === void 0 ? {} : _this$locusInfo6$info, datachannelUrl = _this$locusInfo6$info2.datachannelUrl;
4441
4462
  isJoined = this.joinedWith && this.joinedWith.state === 'JOINED'; // @ts-ignore - Fix type
4442
4463
  if (!this.webex.internal.llm.isConnected()) {
4443
4464
  _context7.next = 8;
@@ -5733,6 +5754,32 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5733
5754
  return this.recordingController.startRecording();
5734
5755
  }
5735
5756
 
5757
+ /**
5758
+ * set the mute on entry flag for participants if you're the host
5759
+ * @returns {Promise}
5760
+ * @param {boolean} enabled
5761
+ * @public
5762
+ * @memberof Meeting
5763
+ */
5764
+ }, {
5765
+ key: "setMuteOnEntry",
5766
+ value: function setMuteOnEntry(enabled) {
5767
+ return this.controlsOptionsManager.setMuteOnEntry(enabled);
5768
+ }
5769
+
5770
+ /**
5771
+ * set the disallow unmute flag for participants if you're the host
5772
+ * @returns {Promise}
5773
+ * @param {boolean} enabled
5774
+ * @public
5775
+ * @memberof Meeting
5776
+ */
5777
+ }, {
5778
+ key: "setDisallowUnmute",
5779
+ value: function setDisallowUnmute(enabled) {
5780
+ return this.controlsOptionsManager.setDisallowUnmute(enabled);
5781
+ }
5782
+
5736
5783
  /**
5737
5784
  * End the recording of this meeting
5738
5785
  * @returns {Promise}
@@ -6545,8 +6592,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6545
6592
  * @memberof Meeting
6546
6593
  */
6547
6594
  function sendReaction(reactionType, skinToneType) {
6548
- var _this$locusInfo6, _this$locusInfo6$cont, _this$locusInfo6$cont2;
6549
- var reactionChannelUrl = (_this$locusInfo6 = this.locusInfo) === null || _this$locusInfo6 === void 0 ? void 0 : (_this$locusInfo6$cont = _this$locusInfo6.controls) === null || _this$locusInfo6$cont === void 0 ? void 0 : (_this$locusInfo6$cont2 = _this$locusInfo6$cont.reactions) === null || _this$locusInfo6$cont2 === void 0 ? void 0 : _this$locusInfo6$cont2.reactionChannelUrl;
6595
+ var _this$locusInfo7, _this$locusInfo7$cont, _this$locusInfo7$cont2;
6596
+ var reactionChannelUrl = (_this$locusInfo7 = this.locusInfo) === null || _this$locusInfo7 === void 0 ? void 0 : (_this$locusInfo7$cont = _this$locusInfo7.controls) === null || _this$locusInfo7$cont === void 0 ? void 0 : (_this$locusInfo7$cont2 = _this$locusInfo7$cont.reactions) === null || _this$locusInfo7$cont2 === void 0 ? void 0 : _this$locusInfo7$cont2.reactionChannelUrl;
6550
6597
  var participantId = this.members.selfId;
6551
6598
  var reactionData = _reactions.Reactions[reactionType];
6552
6599
  if (!reactionData) {
@@ -6577,8 +6624,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6577
6624
  }, {
6578
6625
  key: "toggleReactions",
6579
6626
  value: function toggleReactions(enable) {
6580
- var _this$locusInfo7, _this$locusInfo7$cont, _this$locusInfo7$cont2;
6581
- var isEnabled = (_this$locusInfo7 = this.locusInfo) === null || _this$locusInfo7 === void 0 ? void 0 : (_this$locusInfo7$cont = _this$locusInfo7.controls) === null || _this$locusInfo7$cont === void 0 ? void 0 : (_this$locusInfo7$cont2 = _this$locusInfo7$cont.reactions) === null || _this$locusInfo7$cont2 === void 0 ? void 0 : _this$locusInfo7$cont2.enabled;
6627
+ var _this$locusInfo8, _this$locusInfo8$cont, _this$locusInfo8$cont2;
6628
+ var isEnabled = (_this$locusInfo8 = this.locusInfo) === null || _this$locusInfo8 === void 0 ? void 0 : (_this$locusInfo8$cont = _this$locusInfo8.controls) === null || _this$locusInfo8$cont === void 0 ? void 0 : (_this$locusInfo8$cont2 = _this$locusInfo8$cont.reactions) === null || _this$locusInfo8$cont2 === void 0 ? void 0 : _this$locusInfo8$cont2.enabled;
6582
6629
  if (isEnabled && enable || !isEnabled && !enable) {
6583
6630
  return _promise.default.resolve("Reactions are already ".concat(isEnabled ? 'enabled' : 'disabled', "."));
6584
6631
  }