@webex/plugin-meetings 3.8.0-web-workers-keepalive.1 → 3.8.1-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +70 -6
  3. package/dist/breakouts/index.js.map +1 -1
  4. package/dist/common/errors/webex-errors.js +12 -2
  5. package/dist/common/errors/webex-errors.js.map +1 -1
  6. package/dist/config.js +4 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +22 -123
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controls-options-manager/enums.js +2 -0
  11. package/dist/controls-options-manager/enums.js.map +1 -1
  12. package/dist/controls-options-manager/types.js.map +1 -1
  13. package/dist/controls-options-manager/util.js +52 -0
  14. package/dist/controls-options-manager/util.js.map +1 -1
  15. package/dist/interpretation/index.js +1 -1
  16. package/dist/interpretation/siLanguage.js +1 -1
  17. package/dist/locus-info/controlsUtils.js +30 -10
  18. package/dist/locus-info/controlsUtils.js.map +1 -1
  19. package/dist/locus-info/index.js +83 -12
  20. package/dist/locus-info/index.js.map +1 -1
  21. package/dist/locus-info/selfUtils.js +432 -418
  22. package/dist/locus-info/selfUtils.js.map +1 -1
  23. package/dist/media/index.js +17 -17
  24. package/dist/media/index.js.map +1 -1
  25. package/dist/media/properties.js +94 -6
  26. package/dist/media/properties.js.map +1 -1
  27. package/dist/meeting/brbState.js +9 -2
  28. package/dist/meeting/brbState.js.map +1 -1
  29. package/dist/meeting/in-meeting-actions.js +17 -1
  30. package/dist/meeting/in-meeting-actions.js.map +1 -1
  31. package/dist/meeting/index.js +568 -328
  32. package/dist/meeting/index.js.map +1 -1
  33. package/dist/meeting/locusMediaRequest.js +0 -17
  34. package/dist/meeting/locusMediaRequest.js.map +1 -1
  35. package/dist/meeting/muteState.js +4 -4
  36. package/dist/meeting/muteState.js.map +1 -1
  37. package/dist/meeting/request.js +30 -0
  38. package/dist/meeting/request.js.map +1 -1
  39. package/dist/meeting/request.type.js.map +1 -1
  40. package/dist/meeting/util.js +9 -1
  41. package/dist/meeting/util.js.map +1 -1
  42. package/dist/meeting-info/meeting-info-v2.js +19 -13
  43. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  44. package/dist/meeting-info/utilv2.js +5 -1
  45. package/dist/meeting-info/utilv2.js.map +1 -1
  46. package/dist/meetings/index.js +76 -0
  47. package/dist/meetings/index.js.map +1 -1
  48. package/dist/meetings/util.js +14 -0
  49. package/dist/meetings/util.js.map +1 -1
  50. package/dist/member/index.js +45 -9
  51. package/dist/member/index.js.map +1 -1
  52. package/dist/member/types.js +3 -0
  53. package/dist/member/types.js.map +1 -1
  54. package/dist/member/util.js +335 -356
  55. package/dist/member/util.js.map +1 -1
  56. package/dist/members/collection.js.map +1 -1
  57. package/dist/members/index.js +137 -29
  58. package/dist/members/index.js.map +1 -1
  59. package/dist/members/request.js +38 -0
  60. package/dist/members/request.js.map +1 -1
  61. package/dist/members/util.js +36 -1
  62. package/dist/members/util.js.map +1 -1
  63. package/dist/metrics/constants.js +1 -0
  64. package/dist/metrics/constants.js.map +1 -1
  65. package/dist/reachability/clusterReachability.js +23 -31
  66. package/dist/reachability/clusterReachability.js.map +1 -1
  67. package/dist/reachability/index.js +42 -2
  68. package/dist/reachability/index.js.map +1 -1
  69. package/dist/reconnection-manager/index.js +2 -2
  70. package/dist/reconnection-manager/index.js.map +1 -1
  71. package/dist/roap/index.js.map +1 -1
  72. package/dist/roap/turnDiscovery.js +45 -27
  73. package/dist/roap/turnDiscovery.js.map +1 -1
  74. package/dist/roap/types.js +17 -0
  75. package/dist/roap/types.js.map +1 -0
  76. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  77. package/dist/types/config.d.ts +2 -0
  78. package/dist/types/constants.d.ts +15 -85
  79. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  80. package/dist/types/controls-options-manager/types.d.ts +7 -1
  81. package/dist/types/locus-info/index.d.ts +3 -3
  82. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  83. package/dist/types/media/properties.d.ts +15 -0
  84. package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
  85. package/dist/types/meeting/index.d.ts +35 -1
  86. package/dist/types/meeting/muteState.d.ts +0 -1
  87. package/dist/types/meeting/request.d.ts +12 -1
  88. package/dist/types/meeting/request.type.d.ts +6 -0
  89. package/dist/types/meeting/util.d.ts +3 -1
  90. package/dist/types/meeting-info/meeting-info-v2.d.ts +2 -1
  91. package/dist/types/meetings/index.d.ts +28 -0
  92. package/dist/types/member/index.d.ts +20 -6
  93. package/dist/types/member/types.d.ts +73 -14
  94. package/dist/types/member/util.d.ts +156 -1
  95. package/dist/types/members/collection.d.ts +6 -5
  96. package/dist/types/members/index.d.ts +32 -43
  97. package/dist/types/members/request.d.ts +26 -0
  98. package/dist/types/members/util.d.ts +27 -0
  99. package/dist/types/metrics/constants.d.ts +1 -0
  100. package/dist/types/reachability/clusterReachability.d.ts +2 -6
  101. package/dist/types/reachability/index.d.ts +8 -0
  102. package/dist/types/roap/index.d.ts +3 -2
  103. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  104. package/dist/types/roap/types.d.ts +16 -0
  105. package/dist/webinar/index.js +1 -1
  106. package/package.json +24 -23
  107. package/src/breakouts/index.ts +69 -0
  108. package/src/common/errors/webex-errors.ts +8 -1
  109. package/src/config.ts +2 -0
  110. package/src/constants.ts +23 -90
  111. package/src/controls-options-manager/enums.ts +2 -0
  112. package/src/controls-options-manager/types.ts +11 -1
  113. package/src/controls-options-manager/util.ts +62 -0
  114. package/src/locus-info/controlsUtils.ts +48 -12
  115. package/src/locus-info/index.ts +88 -13
  116. package/src/locus-info/selfUtils.ts +496 -442
  117. package/src/media/index.ts +23 -21
  118. package/src/media/properties.ts +96 -0
  119. package/src/meeting/brbState.ts +11 -2
  120. package/src/meeting/in-meeting-actions.ts +32 -0
  121. package/src/meeting/index.ts +356 -87
  122. package/src/meeting/locusMediaRequest.ts +0 -18
  123. package/src/meeting/muteState.ts +4 -4
  124. package/src/meeting/request.ts +36 -1
  125. package/src/meeting/request.type.ts +7 -0
  126. package/src/meeting/util.ts +9 -1
  127. package/src/meeting-info/meeting-info-v2.ts +7 -2
  128. package/src/meeting-info/utilv2.ts +5 -0
  129. package/src/meetings/index.ts +76 -0
  130. package/src/meetings/util.ts +18 -0
  131. package/src/member/index.ts +57 -22
  132. package/src/member/types.ts +82 -16
  133. package/src/member/util.ts +357 -353
  134. package/src/members/collection.ts +4 -3
  135. package/src/members/index.ts +137 -18
  136. package/src/members/request.ts +44 -0
  137. package/src/members/util.ts +43 -1
  138. package/src/metrics/constants.ts +1 -0
  139. package/src/reachability/clusterReachability.ts +26 -25
  140. package/src/reachability/index.ts +55 -1
  141. package/src/reconnection-manager/index.ts +2 -2
  142. package/src/roap/index.ts +3 -7
  143. package/src/roap/turnDiscovery.ts +34 -39
  144. package/src/roap/types.ts +23 -0
  145. package/test/unit/spec/breakouts/index.ts +167 -95
  146. package/test/unit/spec/controls-options-manager/util.js +120 -0
  147. package/test/unit/spec/locus-info/controlsUtils.js +131 -9
  148. package/test/unit/spec/locus-info/index.js +195 -73
  149. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  150. package/test/unit/spec/media/index.ts +150 -18
  151. package/test/unit/spec/media/properties.ts +130 -0
  152. package/test/unit/spec/meeting/brbState.ts +40 -2
  153. package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
  154. package/test/unit/spec/meeting/index.js +553 -36
  155. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
  156. package/test/unit/spec/meeting/muteState.js +73 -2
  157. package/test/unit/spec/meeting/request.js +32 -1
  158. package/test/unit/spec/meeting/utils.js +79 -33
  159. package/test/unit/spec/meeting-info/meetinginfov2.js +41 -0
  160. package/test/unit/spec/meeting-info/utilv2.js +19 -0
  161. package/test/unit/spec/meetings/index.js +68 -1
  162. package/test/unit/spec/members/index.js +304 -78
  163. package/test/unit/spec/members/request.js +68 -22
  164. package/test/unit/spec/members/utils.js +75 -0
  165. package/test/unit/spec/reachability/clusterReachability.ts +41 -55
  166. package/test/unit/spec/reachability/index.ts +89 -0
  167. package/test/unit/spec/reconnection-manager/index.js +4 -4
  168. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.8.0-web-workers-keepalive.1"
212
+ version: "3.8.1-next.1"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -77,7 +77,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
77
77
  // appears when getBreakout info editlock = true
78
78
  intervalID: 'number',
79
79
  meetingId: 'string',
80
- canManageBreakouts: 'boolean' // appear the ability to manage breakouts
80
+ canManageBreakouts: 'boolean',
81
+ // appear the ability to manage breakouts
82
+ mainGroupId: 'string',
83
+ // appears from the moment you enable breakouts
84
+ mainSessionId: 'string' // appears from the moment you enable breakouts
81
85
  },
82
86
 
83
87
  children: {
@@ -562,6 +566,28 @@ var Breakouts = _webexCore.WebexPlugin.extend({
562
566
  this.set('manageGroups', breakoutInfo.body.groups);
563
567
  }
564
568
  },
569
+ /**
570
+ * set main group id
571
+ * @param {Object} breakoutInfo -- breakout groups
572
+ * @returns {void}
573
+ */
574
+ _setMainGroupId: function _setMainGroupId(breakoutInfo) {
575
+ var _breakoutInfo$body2;
576
+ if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body2 = breakoutInfo.body) !== null && _breakoutInfo$body2 !== void 0 && _breakoutInfo$body2.mainGroupId) {
577
+ this.set('mainGroupId', breakoutInfo.body.mainGroupId);
578
+ }
579
+ },
580
+ /**
581
+ * set main session id
582
+ * @param {Object} breakoutInfo -- breakout groups
583
+ * @returns {void}
584
+ */
585
+ _setMainSessionId: function _setMainSessionId(breakoutInfo) {
586
+ var _breakoutInfo$body3;
587
+ if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body3 = breakoutInfo.body) !== null && _breakoutInfo$body3 !== void 0 && _breakoutInfo$body3.mainSessionId) {
588
+ this.set('mainSessionId', breakoutInfo.body.mainSessionId);
589
+ }
590
+ },
565
591
  /**
566
592
  * Create new breakout sessions
567
593
  * @param {object} params -- breakout session group
@@ -593,11 +619,13 @@ var Breakouts = _webexCore.WebexPlugin.extend({
593
619
  case 4:
594
620
  breakoutInfo = _context2.sent;
595
621
  _this9._setManageGroups(breakoutInfo);
622
+ _this9._setMainGroupId(breakoutInfo);
623
+ _this9._setMainSessionId(breakoutInfo);
596
624
 
597
625
  // clear edit lock info after save breakout session info
598
626
  _this9._clearEditLockInfo();
599
627
  return _context2.abrupt("return", breakoutInfo);
600
- case 8:
628
+ case 10:
601
629
  case "end":
602
630
  return _context2.stop();
603
631
  }
@@ -683,8 +711,10 @@ var Breakouts = _webexCore.WebexPlugin.extend({
683
711
  case 6:
684
712
  breakoutInfo = _context4.sent;
685
713
  _this11._setManageGroups(breakoutInfo);
714
+ _this11._setMainGroupId(breakoutInfo);
715
+ _this11._setMainSessionId(breakoutInfo);
686
716
  return _context4.abrupt("return", breakoutInfo);
687
- case 9:
717
+ case 11:
688
718
  case "end":
689
719
  return _context4.stop();
690
720
  }
@@ -731,8 +761,10 @@ var Breakouts = _webexCore.WebexPlugin.extend({
731
761
  case 7:
732
762
  breakoutInfo = _context5.sent;
733
763
  _this12._setManageGroups(breakoutInfo);
764
+ _this12._setMainGroupId(breakoutInfo);
765
+ _this12._setMainSessionId(breakoutInfo);
734
766
  return _context5.abrupt("return", breakoutInfo);
735
- case 10:
767
+ case 12:
736
768
  case "end":
737
769
  return _context5.stop();
738
770
  }
@@ -812,12 +844,14 @@ var Breakouts = _webexCore.WebexPlugin.extend({
812
844
  case 2:
813
845
  breakout = _context7.sent;
814
846
  _this14._setManageGroups(breakout);
847
+ _this14._setMainGroupId(breakout);
848
+ _this14._setMainSessionId(breakout);
815
849
  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) {
816
850
  _this14.set('editLock', breakout.body.editlock);
817
851
  _this14.keepEditLockAlive();
818
852
  }
819
853
  return _context7.abrupt("return", breakout);
820
- case 6:
854
+ case 8:
821
855
  case "end":
822
856
  return _context7.stop();
823
857
  }
@@ -1036,6 +1070,36 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1036
1070
  body: body
1037
1071
  });
1038
1072
  },
1073
+ /**
1074
+ * Move participants to main session lobby
1075
+ * @param {Array} sessions
1076
+ * @param {string} sessions[].participants - Participant IDs to move
1077
+ * @returns {void}
1078
+ */
1079
+ moveToLobby: function moveToLobby(sessions) {
1080
+ var _this20 = this;
1081
+ if (!this.mainGroupId || !this.mainSessionId) {
1082
+ throw new Error('Main group ID and session ID must be available to move participants to lobby');
1083
+ }
1084
+ var updatedSessions = sessions.map(function (item) {
1085
+ return {
1086
+ id: _this20.mainSessionId,
1087
+ participants: item.participants,
1088
+ targetState: 'LOBBY'
1089
+ };
1090
+ });
1091
+ var body = {
1092
+ groups: [{
1093
+ id: this.mainGroupId,
1094
+ sessions: updatedSessions
1095
+ }]
1096
+ };
1097
+ return this.request({
1098
+ method: _constants.HTTP_VERBS.PUT,
1099
+ uri: "".concat(this.url, "/dynamicAssign"),
1100
+ body: body
1101
+ });
1102
+ },
1039
1103
  /**
1040
1104
  * trigger ASK_RETURN_TO_MAIN event when main session requested
1041
1105
  * @param {Object} breakout
@@ -1046,7 +1110,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1046
1110
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1047
1111
  }
1048
1112
  },
1049
- version: "3.8.0-web-workers-keepalive.1"
1113
+ version: "3.8.1-next.1"
1050
1114
  });
1051
1115
  var _default = exports.default = Breakouts;
1052
1116
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_callee$","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","create","_this9","_callee2","_callee2$","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this10","_callee3","_callee3$","_context3","action","ACTION","DELETE","start","_arguments","_this11","_callee4","_callee4$","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this12","_callee5","_callee5$","_context5","CLOSE","update","unlockEdit","_this13","_callee6","_this13$editLock","_callee6$","_context6","getBreakout","_this14","_callee7","_breakout$body","_breakout$body$editlo","_callee7$","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this15","_callee8","_callee8$","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this16","_callee9","_breakout$body2","_callee9$","_context9","_this17","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this18","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this19","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_callee$","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_callee2$","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this10","_callee3","_callee3$","_context3","action","ACTION","DELETE","start","_arguments","_this11","_callee4","_callee4$","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this12","_callee5","_callee5$","_context5","CLOSE","update","unlockEdit","_this13","_callee6","_this13$editLock","_callee6$","_context6","getBreakout","_this14","_callee7","_breakout$body","_breakout$body$editlo","_callee7$","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this15","_callee8","_callee8$","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this16","_callee9","_breakout$body2","_callee9$","_context9","_this17","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this18","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this19","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this20","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAEA,IAAAK,SAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,QAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,OAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAAqF,SAAAU,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IAbrF;AACA;AACA;AAaA;AACA;AACA;AACA,IAAMqB,SAAS,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACnCC,SAAS,EAAEC,mBAAQ;EACnBC,eAAe,EAAEC,gBAAe;EAChCC,WAAW,EAAE;IACXC,SAAS,EAAEC;EACb,CAAC;EAEDC,KAAK,EAAE;IACLC,eAAe,EAAE,SAAS;IAAE;IAC5BC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,qBAAqB,EAAE,SAAS;IAAE;IAClCC,yBAAyB,EAAE,SAAS;IAAE;IACtCC,OAAO,EAAE,QAAQ;IAAE;IACnBC,IAAI,EAAE,QAAQ;IAAE;IAChBC,SAAS,EAAE,QAAQ;IAAE;IACrBC,WAAW,EAAE,QAAQ;IAAE;IACvBC,SAAS,EAAE,QAAQ;IAAE;IACrBC,MAAM,EAAE,QAAQ;IAAE;IAClBC,GAAG,EAAE,QAAQ;IAAE;IACfC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,kBAAkB,EAAE,QAAQ;IAAE;IAC9BC,YAAY,EAAE,QAAQ;IAAE;IACxBC,MAAM,EAAE,OAAO;IAAE;IACjBC,YAAY,EAAE,OAAO;IAAE;IACvBC,cAAc,EAAE,OAAO;IAAE;IACzBC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,QAAQ;IACnBC,kBAAkB,EAAE,SAAS;IAAE;IAC/BC,WAAW,EAAE,QAAQ;IAAE;IACvBC,aAAa,EAAE,QAAQ,CAAE;EAC3B,CAAC;;EACDC,QAAQ,EAAE;IACRC,sBAAsB,EAAEC;EAC1B,CAAC;EAEDC,OAAO,EAAE;IACPC,eAAe,EAAE;MACfC,KAAK,EAAE,KAAK;MACZC,IAAI,EAAE,CAAC,aAAa,CAAC;MACrB;AACN;AACA;AACA;MACMC,EAAE,WAAAA,GAAA,EAAG;QACH,OAAO,IAAI,CAACvB,WAAW,KAAKwB,oBAAS,CAACC,aAAa,CAACC,IAAI;MAC1D;IACF,CAAC;IACDC,gBAAgB,EAAE;MAChBN,KAAK,EAAE,KAAK;MAAE;MACdC,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;MAC/B;AACN;AACA;AACA;MACMC,EAAE,WAAAA,GAAA,EAAG;QACH,OACE,IAAI,CAACvB,WAAW,KAAKwB,oBAAS,CAACC,aAAa,CAACG,QAAQ,KACpD,IAAI,CAAC1B,MAAM,KAAKsB,oBAAS,CAACK,MAAM,CAACC,IAAI,IAAI,IAAI,CAAC5B,MAAM,KAAKsB,oBAAS,CAACK,MAAM,CAACE,OAAO,CAAC;MAEvF;IACF,CAAC;IACDC,eAAe,EAAE;MACfX,KAAK,EAAE,KAAK;MACZC,IAAI,EAAE,CAAC,cAAc,CAAC;MACtB;AACN;AACA;AACA;MACMC,EAAE,WAAAA,GAAA,EAAG;QAAA,IAAAU,kBAAA;QACH,KAAAA,kBAAA,GAAI,IAAI,CAACzB,YAAY,cAAAyB,kBAAA,eAAjBA,kBAAA,CAAmB3D,MAAM,EAAE;UAC7B,OAAO,IAAI,CAACkC,YAAY,CAAC,CAAC,CAAC,CAACN,MAAM,KAAKsB,oBAAS,CAACK,MAAM,CAACK,MAAM,GAC1D,IAAI,CAAC1B,YAAY,CAAC,CAAC,CAAC,CAAC2B,EAAE,GACvB,EAAE;QACR;QAEA,OAAO,EAAE;MACX;IACF,CAAC;IACDC,cAAc,EAAE;MACdf,KAAK,EAAE,IAAI;MACXC,IAAI,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC;MAC7C;AACN;AACA;AACA;MACMC,EAAE,WAAAA,GAAA,EAAG;QAAA,IAAAc,YAAA,EAAAC,aAAA;QACH,OAAO,IAAI,CAAClB,eAAe,IAAAiB,YAAA,GAAG,IAAI,CAAC9B,MAAM,cAAA8B,YAAA,wBAAAC,aAAA,GAAXD,YAAA,CAAc,CAAC,CAAC,cAAAC,aAAA,uBAAhBA,aAAA,CAAkBpC,MAAM,GAAG,IAAI,CAACA,MAAM;MACtE;IACF,CAAC;IACDqC,yBAAyB,EAAE;MACzBlB,KAAK,EAAE,KAAK;MACZC,IAAI,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,2BAA2B,CAAC;MAClF;AACN;AACA;AACA;MACMC,EAAE,WAAAA,GAAA,EAAG;QACH,OAAO,CAAC,EACN,IAAI,CAACV,kBAAkB,IACvB,IAAI,CAAClB,qBAAqB,IAC1B,IAAI,CAACC,yBAAyB,CAC/B;MACH;IACF;EACF,CAAC;EAED;AACF;AACA;AACA;EACE4C,UAAU,WAAAA,WAAA,EAAG;IAAA,IAAAC,KAAA;IACX,IAAI,CAACC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,EAAE,YAAM;MACjD,IAAID,KAAI,CAACL,cAAc,KAAKZ,oBAAS,CAACK,MAAM,CAACE,OAAO,EAAE;QACpDU,KAAI,CAACE,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACC,iBAAiB,CAAC;MAClD;IACF,CAAC,CAAC;IACF,IAAI,CAACH,QAAQ,CAAC,IAAI,EAAE,kCAAkC,EAAE,YAAM;MAC5D,IAAID,KAAI,CAACF,yBAAyB,IAAI,CAACE,KAAI,CAAChC,cAAc,EAAE;QAC1DgC,KAAI,CAACK,mBAAmB,CAAC,CAAC;MAC5B;IACF,CAAC,CAAC;IACF,IAAI,CAACC,qBAAqB,GAAG,IAAAC,gBAAQ,EAAC,IAAI,CAACC,YAAY,EAAE,EAAE,EAAE;MAC3DC,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACF,IAAI,CAACT,QAAQ,CAAC,IAAI,CAACpD,SAAS,EAAE,KAAK,EAAE,UAAC8D,QAAQ,EAAK;MACjDX,KAAI,CAACM,qBAAqB,CAAC,CAAC;MAC5BN,KAAI,CAACY,wBAAwB,CAACD,QAAQ,CAAC;IACzC,CAAC,CAAC;IACF,IAAI,CAACV,QAAQ,CAAC,IAAI,CAACpD,SAAS,EAAE,kCAAkC,EAAE,UAAC8D,QAAQ,EAAK;MAC9EX,KAAI,CAACY,wBAAwB,CAACD,QAAQ,CAAC;IACzC,CAAC,CAAC;IACF,IAAI,CAACE,gCAAgC,CAAC,CAAC;IACvC,IAAI,CAACC,uBAAuB,CAAC,CAAC;IAC9B,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC3B;IACA,IAAI,CAACrE,eAAe,GAAG,IAAIC,gBAAe,CAAC;MAACqE,KAAK,EAAE,IAAI,CAACA;IAAK,CAAC,CAAC;EACjE,CAAC;EAED;AACF;AACA;AACA;EACEC,OAAO,WAAAA,QAAA,EAAG;IACR,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,IAAI,CAACC,sBAAsB,GAAGC,SAAS;EACzC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,cAAc,WAAAA,eAAC1D,QAAQ,EAAE;IACvB,IAAI,CAAC2D,GAAG,CAAC,UAAU,EAAE3D,QAAQ,CAAC;IAC9B,IAAI,CAAC4D,yBAAyB,CAAC,CAAC;IAChC,IAAO5C,eAAe,GAAkB,IAAI,CAArCA,eAAe;MAAEd,YAAY,GAAI,IAAI,CAApBA,YAAY;IACpC,IAAIc,eAAe,IAAI,CAACd,YAAY,EAAE;MACpC,IAAI,CAACyD,GAAG,CAAC,cAAc,EAAE3D,QAAQ,CAAC;IACpC;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACE6D,wBAAwB,WAAAA,yBAACpD,kBAAkB,EAAE;IAC3C,IAAI,CAACkD,GAAG,CAAC,oBAAoB,EAAElD,kBAAkB,CAAC;EACpD,CAAC;EAED;AACF;AACA;AACA;AACA;EACEqD,wBAAwB,WAAAA,yBAAC7D,kBAAkB,EAAE;IAC3C,IAAI,CAAC0D,GAAG,CAAC,oBAAoB,KAAAI,MAAA,CAAK9D,kBAAkB,eAAY,CAAC;EACnE,CAAC;EAED;AACF;AACA;AACA;AACA;EACE4C,YAAY,WAAAA,aAAA,EAAG;IAAA,IAAAmB,MAAA;IACb,IAAI,CAACX,KAAK,CACPY,OAAO,CAAC;MAACC,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,YAAS;MAAEoE,EAAE,EAAE;QAACnE,QAAQ,EAAEoE,IAAI,CAAC,IAAI,CAACpE,QAAQ;MAAC;IAAC,CAAC,CAAC,CACzEqE,IAAI,CAAC,UAACC,MAAM,EAAK;MAChB,IACSC,OAAO,GACZD,MAAM,CADRE,IAAI,CAAGD,OAAO;MAGhBA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnG,OAAO,CAAC,UAAAqG,IAAA,EAAa;QAAA,IAAXC,KAAK,GAAAD,IAAA,CAALC,KAAK;QACtBV,MAAI,CAACW,kBAAkB,CAACD,KAAK,CAAC;MAChC,CAAC,CAAC;MAEFV,MAAI,CAACzB,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACoC,cAAc,CAAC;IAC/C,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,KAAK,EAAK;MAChBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;IAC1E,CAAC,CAAC;EACN,CAAC;EAED;AACF;AACA;AACA;AACA;EACEH,kBAAkB,WAAAA,mBAACD,KAAK,EAAE;IAAA,IAAAO,eAAA,EAAAC,qBAAA;IACxB,IAAMvF,SAAS,IAAAsF,eAAA,GAAGP,KAAK,CAACS,QAAQ,cAAAF,eAAA,wBAAAC,qBAAA,GAAdD,eAAA,CAAgBjC,QAAQ,cAAAkC,qBAAA,uBAAxBA,qBAAA,CAA0BvF,SAAS;IAErD,IAAMyF,OAAO,GAAG,IAAI,CAAClG,SAAS,CAACmG,GAAG,CAAC1F,SAAS,CAAC;IAE7C,IAAI,CAACyF,OAAO,EAAE;MACZ;IACF;IAEAA,OAAO,CAACE,WAAW,CAACZ,KAAK,CAAC;EAC5B,CAAC;EACD;AACF;AACA;AACA;EACExB,gCAAgC,WAAAA,iCAAA,EAAS;IAAA,IAAAqC,MAAA;IACvC,IAAI,CAACjD,QAAQ,CACX,IAAI,CAACzB,sBAAsB,EAC3B,oBAAoB,EACpB,UAACA,sBAAsB,EAAEjB,WAAW,EAAK;MACvC,IAAI,IAAA4F,4CAAqC,EAAC3E,sBAAsB,EAAEjB,WAAW,CAAC,EAAE;QAC9E2F,MAAI,CAAChD,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACiD,cAAc,CAAC;MAC/C;IACF,CACF,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;EACE7B,yBAAyB,WAAAA,0BAAA,EAAG;IAAA,IAAA8B,MAAA;IAC1B,IAAI,CAAC,IAAI,CAACrC,KAAK,CAACsC,QAAQ,CAACC,GAAG,CAACC,WAAW,CAAC,CAAC,IAAI,IAAI,CAACrC,sBAAsB,EAAE;MACzE;IACF;IAEA,IAAI,CAAClB,QAAQ,CAAC,IAAI,CAACe,KAAK,CAACsC,QAAQ,CAACC,GAAG,EAAE,wBAAwB,EAAE,UAACE,KAAK,EAAK;MAC1E,IAAAC,WAAA,GAEID,KAAK,CADPE,IAAI;QAAGC,YAAY,GAAAF,WAAA,CAAZE,YAAY;QAAEC,QAAQ,GAAAH,WAAA,CAARG,QAAQ;QAAEC,OAAO,GAAAJ,WAAA,CAAPI,OAAO;MAGxCT,MAAI,CAACnD,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAAC4D,OAAO,EAAE;QACrCH,YAAY,EAAZA,YAAY;QACZC,QAAQ,EAARA,QAAQ;QACRC,OAAO,EAAPA,OAAO;QACP;QACA;QACA;QACAxG,SAAS,EAAE+F,MAAI,CAAC7E,sBAAsB,CAAClB;MACzC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC6D,sBAAsB,GAAG,IAAI;EACpC,CAAC;EAED;AACF;AACA;AACA;EACEL,uBAAuB,WAAAA,wBAAA,EAAG;IAAA,IAAAkD,MAAA;IACxB,IAAI,CAAC/D,QAAQ,CAAC,IAAI,CAACe,KAAK,CAACsC,QAAQ,CAACW,OAAO,EAAE,uBAAuB,EAAE,UAACR,KAAK,EAAK;MAC7EO,MAAI,CAAC1B,kBAAkB,CAACmB,KAAK,CAACE,IAAI,CAACtB,KAAK,CAAC;MACzC2B,MAAI,CAAC9D,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACoC,cAAc,CAAC;IAC/C,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;EACExB,oBAAoB,WAAAA,qBAAA,EAAG;IAAA,IAAAmD,MAAA;IACrB,IAAI,CAACjE,QAAQ,CAAC,IAAI,CAACe,KAAK,CAACsC,QAAQ,CAACW,OAAO,EAAE,qBAAqB,EAAE,UAACR,KAAK,EAAK;MAC3E,IAAAU,YAAA,GAEIV,KAAK,CADPE,IAAI;QAAGS,WAAW,GAAAD,YAAA,CAAXC,WAAW;QAAE9G,SAAS,GAAA6G,YAAA,CAAT7G,SAAS;MAE/B4G,MAAI,CAAChE,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACkE,YAAY,EAAE;QAACD,WAAW,EAAXA,WAAW;QAAE9G,SAAS,EAATA;MAAS,CAAC,CAAC;IACvE,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;EACEgH,oBAAoB,WAAAA,qBAAA,EAAG;IAAA,IAAAC,aAAA,EAAAC,cAAA;IACrB,IAAMC,aAAa,GAAG,EAAAF,aAAA,OAAI,CAACzG,MAAM,cAAAyG,aAAA,wBAAAC,cAAA,GAAXD,aAAA,CAAc,CAAC,CAAC,cAAAC,cAAA,uBAAhBA,cAAA,CAAkB/G,MAAM,KAAI,IAAI,CAACA,MAAM;IAE7D,OAAOgH,aAAa,KAAK1F,oBAAS,CAACK,MAAM,CAACC,IAAI,IAAIoF,aAAa,KAAK1F,oBAAS,CAACK,MAAM,CAACE,OAAO;EAC9F,CAAC;EAED;AACF;AACA;AACA;EACEoF,kBAAkB,WAAAA,mBAAA,EAAG;IAAA,IAAAC,aAAA,EAAAC,cAAA;IACnB,OAAO,CAAC,EAAAD,aAAA,OAAI,CAAC7G,MAAM,cAAA6G,aAAA,wBAAAC,cAAA,GAAXD,aAAA,CAAc,CAAC,CAAC,cAAAC,cAAA,uBAAhBA,cAAA,CAAkBnH,MAAM,KAAI,IAAI,CAACA,MAAM,MAAMsB,oBAAS,CAACK,MAAM,CAACE,OAAO;EAC/E,CAAC;EACD;AACF;AACA;AACA;AACA;EACEuF,cAAc,WAAAA,eAACC,MAAM,EAAE;IACrB,IAAI,CAACxD,GAAG,CAACwD,MAAM,CAAC;IAChB;IACA,IAAI,CAACxD,GAAG,CAAC,QAAQ,EAAEwD,MAAM,CAAChH,MAAM,CAAC;IACjC,IAAI,CAACwD,GAAG,CAAC,WAAW,EAAEwD,MAAM,CAACtH,SAAS,CAAC;IACvC,IAAI,CAAC8D,GAAG,CAAC,QAAQ,EAAEwD,MAAM,CAACrH,MAAM,CAAC;IAEjC,IAAI,CAAC6D,GAAG,CAAC,wBAAwB,MAAAtF,gBAAA,CAAAC,OAAA,MAAAD,gBAAA,CAAAC,OAAA,MAAAD,gBAAA,CAAAC,OAAA,MAAAD,gBAAA,CAAAC,OAAA,MAAAD,gBAAA,CAAAC,OAAA;MAC/BqB,SAAS,EAAEwH,MAAM,CAACxH,SAAS;MAC3BF,OAAO,EAAE0H,MAAM,CAAC1H,OAAO;MACvBC,IAAI,EAAEyH,MAAM,CAACzH,IAAI;MACjB0H,OAAO,EAAE,IAAI;MACbxH,WAAW,EAAEuH,MAAM,CAACvH,WAAW;MAC/BG,GAAG,EAAEoH,MAAM,CAACpH;IAAG,GACdqB,oBAAS,CAACiG,cAAc,CAACC,MAAM,EAAG,KAAK,GACvClG,oBAAS,CAACiG,cAAc,CAACE,OAAO,EAAG,KAAK,GACxCnG,oBAAS,CAACiG,cAAc,CAACG,QAAQ,EAAG,KAAK,GACzCpG,oBAAS,CAACiG,cAAc,CAACI,gBAAgB,EAAG,KAAK,GACjDrG,oBAAS,CAACiG,cAAc,CAACK,SAAS,EAAG,KAAK,CAC5C,CAAC;IAEF,IAAI,CAAC,IAAI,CAACf,oBAAoB,CAAC,CAAC,EAAE;MAChC,IAAI,CAACgB,cAAc,CAAC,CAAC;IACvB;IAEA,IACE,IAAI,CAAC9G,sBAAsB,CAAC+G,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC/G,sBAAsB,CAAClB,SAAS,IAC3F,IAAI,CAACkB,sBAAsB,CAAC+G,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC/G,sBAAsB,CAACpB,OAAO,EACvF;MACA;MACA,IAAMoI,OAAO,GAAG,IAAI,CAACxE,KAAK,CAACyE,QAAQ,CAACC,gBAAgB,CAACC,eAAI,EAAE,IAAI,CAACxH,SAAS,CAAC;MAC1EyH,eAAa,CAACC,sBAAsB,CAClC;QACEC,cAAc,EAAE,IAAI,CAACtH,sBAAsB;QAC3CgH,OAAO,EAAPA,OAAO;QACPO,cAAc,EAAEjB,MAAM,CAACiB;MACzB,CAAC;MACD;MACA,IAAI,CAAC/E,KAAK,CAACsC,QAAQ,CAAC0C,UAAU,CAACC,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAClF,KAAK,CAACsC,QAAQ,CAAC0C,UAAU,CACtF,CAAC;IACH;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEG,sBAAsB,WAAAA,uBAACC,OAAO,EAAE;IAAA,IAAAC,MAAA;IAC9B,IAAMxJ,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC6H,kBAAkB,CAAC,CAAC,EAAE;MAC7B;MACA;MACA;MACA;IACF;IACA,IAAI0B,OAAO,CAACE,gBAAgB,EAAE;MAC5B,IAAAvK,eAAO,EAACgD,oBAAS,CAACiG,cAAc,EAAE,UAACuB,KAAK,EAAK;QAC3C,IAAAxK,eAAO,EAACqK,OAAO,CAACE,gBAAgB,CAACC,KAAK,CAAC,EAAE,UAAC5F,QAAQ,EAAK;UACrD,IAAOrD,SAAS,GAAIqD,QAAQ,CAArBrD,SAAS;UAEhB,IAAI,CAACT,SAAS,CAACS,SAAS,CAAC,EAAE;YACzBT,SAAS,CAACS,SAAS,CAAC,GAAGqD,QAAQ;YAC/B9D,SAAS,CAACS,SAAS,CAAC,CAACyB,oBAAS,CAACiG,cAAc,CAACC,MAAM,CAAC,GAAG,KAAK;YAC7DpI,SAAS,CAACS,SAAS,CAAC,CAACyB,oBAAS,CAACiG,cAAc,CAACG,QAAQ,CAAC,GAAG,KAAK;YAC/DtI,SAAS,CAACS,SAAS,CAAC,CAACyB,oBAAS,CAACiG,cAAc,CAACE,OAAO,CAAC,GAAG,KAAK;YAC9DrI,SAAS,CAACS,SAAS,CAAC,CAACyB,oBAAS,CAACiG,cAAc,CAACI,gBAAgB,CAAC,GAAG,KAAK;YACvEvI,SAAS,CAACS,SAAS,CAAC,CAACyB,oBAAS,CAACiG,cAAc,CAACK,SAAS,CAAC,GAAG,KAAK;UAClE;UAEAxI,SAAS,CAACS,SAAS,CAAC,CAACiJ,KAAK,CAAC,GAAG,IAAI;UAElC,IAAIA,KAAK,KAAKxH,oBAAS,CAACiG,cAAc,CAACK,SAAS,EAAE;YAChDxI,SAAS,CAACS,SAAS,CAAC,CAACkJ,yBAAyB,GAAG7F,QAAQ,CAAC8F,UAAU;UACtE;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IACA,IAAA1K,eAAO,EAACc,SAAS,EAAE,UAAC8D,QAAyB,EAAK;MAChD;MACAA,QAAQ,CAACjD,GAAG,GAAG2I,MAAI,CAAC3I,GAAG;IACzB,CAAC,CAAC;IAEF,IAAI,CAACb,SAAS,CAACyE,GAAG,CAAC,IAAAoF,OAAA,CAAAzK,OAAA,EAAcY,SAAS,CAAC,CAAC;EAC9C,CAAC;EACD;AACF;AACA;AACA;EACEyI,cAAc,WAAAA,eAAA,EAAG;IACf,IAAI,IAAI,CAACzI,SAAS,CAAChB,MAAM,GAAG,CAAC,EAAE;MAC7B,IAAI,CAACgB,SAAS,CAAC8J,KAAK,CAAC,CAAC;IACxB;EACF,CAAC;EACD;AACF;AACA;AACA;EACEC,cAAc,WAAAA,eAAA,EAAG;IACf,IAAI,IAAI,CAACjI,eAAe,EAAE;MACxB,OAAO,IAAI,CAACH,sBAAsB;IACpC;IAEA,IAAMqI,WAAW,GAAG,IAAI,CAAChK,SAAS,CAACvB,MAAM,CAAC,UAACqF,QAAQ;MAAA,OAAKA,QAAQ,CAACmG,MAAM;IAAA,EAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAACD,WAAW,EAAE;MAChB,MAAM,IAAIE,KAAK,CAAC,uBAAuB,CAAC;IAC1C;IAEA,OAAOF,WAAW;EACpB,CAAC;EACD;AACF;AACA;AACA;EACEG,cAAc,WAAAA,eAAA,EAAG;IACf,IAAMH,WAAW,GAAG,IAAI,CAACD,cAAc,CAAC,CAAC;IAEzC,OAAO,IAAI,CAAC5F,KAAK,CAACY,OAAO,CAAC;MACxBqF,MAAM,EAAEC,qBAAU,CAACC,IAAI;MACvBtF,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,iBAAc;MAC9ByE,IAAI,EAAE;QACJ/E,OAAO,EAAEyJ,WAAW,CAACzJ,OAAO;QAC5BE,SAAS,EAAEuJ,WAAW,CAACvJ;MACzB;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACE8J,SAAS,WAAAA,UAACtD,OAAO,EAAEuD,OAAO,EAAE;IAC1B,IAAO9H,eAAe,GAAI,IAAI,CAAvBA,eAAe;IACtB,IAAI,CAACA,eAAe,EAAE;MACpB,MAAM,IAAIwH,KAAK,CAAC,6CAA6C,CAAC;IAChE;IAEA,OAAO,IAAI,CAACrK,eAAe,CAAC0K,SAAS,CAAC;MACpC1J,GAAG,EAAE,IAAI,CAACA,GAAG;MACboG,OAAO,EAAPA,OAAO;MACPuD,OAAO,EAAPA,OAAO;MACPjK,OAAO,EAAEmC;IACX,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;EACE+H,eAAe,WAAAA,gBAAA,EAAG;IAChB,IAAI,IAAI,CAAC1J,kBAAkB,EAAE;MAC3B;MACA,OAAO,IAAI,CAACoD,KAAK,CACdY,OAAO,CAAC;QACPqF,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBtF,GAAG,EAAE,IAAI,CAACjE,kBAAkB;QAC5BuE,IAAI,EAAE;UACJxE,QAAQ,EAAE,IAAI,CAACA;QACjB;MACF,CAAC,CAAC,CACD6E,KAAK,CAAC,UAAC+E,GAAG,EAAK;QACd7E,oBAAW,CAACC,MAAM,CAACF,KAAK,+DAAAf,MAAA,CACwC6F,GAAG,CACnE,CAAC;QACD,MAAMA,GAAG;MACX,CAAC,CAAC;IACN;IAEA,OAAOC,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAIV,KAAK,mDAAmD,CAAC,CAAC;EACtF,CAAC;EAED;AACF;AACA;AACA;AACA;EACQW,cAAc,WAAAA,eAACC,MAAM,EAAE;IAAA,IAAAC,MAAA;IAAA,WAAAC,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAC,QAAA;MAAA,IAAAC,IAAA;MAAA,OAAAH,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,MACvBV,MAAI,CAAC1K,qBAAqB,KAAKkE,SAAS;cAAAgH,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACvBV,MAAI,CAACN,eAAe,CAAC,CAAC;UAAA;YAAnCW,IAAI,GAAAG,QAAA,CAAAG,IAAA;YACV;YACAX,MAAI,CAAC/C,cAAc,CAACoD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE9F,IAAI,CAAC;YAAC,IAC3BwF,MAAM;cAAAS,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACHV,MAAI,CAACY,gBAAgB,CAACb,MAAM,CAAC;UAAA;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAG/BV,MAAI,CAACY,gBAAgB,CAACb,MAAM,CAAC;UAAA;UAAA;YAAA,OAAAS,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAT,OAAA;IAAA;EAEvC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEQ,gBAAgB,WAAAA,iBAACb,MAAM,EAAE;IACvB,IAAMxF,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJ,IAAI,CAACsC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACA,QAAQ,CAACyK,KAAK,GAAG;MAACC,QAAQ,EAAE;QAACD,KAAK,EAAE,IAAI,CAACzK,QAAQ,CAACyK;MAAK;IAAC,CAAC,GAAG,CAAC,CAAC,GACvF;MAACxL,qBAAqB,EAAEyK;IAAM,CAAC,CACnC;;IAED;IACA,OAAO,IAAI,CAAC3G,KAAK,CAACY,OAAO,CAAC;MACxBqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;MACtB/G,GAAG,EAAE,IAAI,CAACnE,GAAG;MACbyE,IAAI,EAAJA;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EACE0G,gBAAgB,WAAAA,iBAACC,YAAY,EAAE;IAAA,IAAAC,kBAAA;IAC7B,IAAID,YAAY,aAAZA,YAAY,gBAAAC,kBAAA,GAAZD,YAAY,CAAE3G,IAAI,cAAA4G,kBAAA,eAAlBA,kBAAA,CAAoBjL,MAAM,EAAE;MAC9B,IAAI,CAACwD,GAAG,CAAC,cAAc,EAAEwH,YAAY,CAAC3G,IAAI,CAACrE,MAAM,CAAC;IACpD;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEkL,eAAe,WAAAA,gBAACF,YAAY,EAAE;IAAA,IAAAG,mBAAA;IAC5B,IAAIH,YAAY,aAAZA,YAAY,gBAAAG,mBAAA,GAAZH,YAAY,CAAE3G,IAAI,cAAA8G,mBAAA,eAAlBA,mBAAA,CAAoB5K,WAAW,EAAE;MACnC,IAAI,CAACiD,GAAG,CAAC,aAAa,EAAEwH,YAAY,CAAC3G,IAAI,CAAC9D,WAAW,CAAC;IACxD;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACE6K,iBAAiB,WAAAA,kBAACJ,YAAY,EAAE;IAAA,IAAAK,mBAAA;IAC9B,IAAIL,YAAY,aAAZA,YAAY,gBAAAK,mBAAA,GAAZL,YAAY,CAAE3G,IAAI,cAAAgH,mBAAA,eAAlBA,mBAAA,CAAoB7K,aAAa,EAAE;MACrC,IAAI,CAACgD,GAAG,CAAC,eAAe,EAAEwH,YAAY,CAAC3G,IAAI,CAAC7D,aAAa,CAAC;IAC5D;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACQ8K,MAAM,WAAAA,OAACtE,MAAM,EAAE;IAAA,IAAAuE,MAAA;IAAA,WAAAxB,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAuB,SAAA;MAAA,IAAAlD,OAAA,EAAAjE,IAAA,EAAA2G,YAAA;MAAA,OAAAhB,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAAqB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnB,IAAA,GAAAmB,SAAA,CAAAlB,IAAA;UAAA;YACblC,OAAO,GAAAzK,aAAA,KAAOmJ,MAAM;YACpB3C,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJ0N,MAAI,CAACpL,QAAQ,IAAI,CAAC,CAACoL,MAAI,CAACpL,QAAQ,CAACyK,KAAK,GAAG;cAACC,QAAQ,EAAE;gBAACD,KAAK,EAAEW,MAAI,CAACpL,QAAQ,CAACyK;cAAK;YAAC,CAAC,GAAG,CAAC,CAAC,GACvF;cAAC5K,MAAM,EAAE,CAACsI,OAAO;YAAC,CAAC,GAExB;YAAAoD,SAAA,CAAAlB,IAAA;YAAA,OAC2Be,MAAI,CAACrI,KAAK,CAClCY,OAAO,CAAC;cACPqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;cACtB/G,GAAG,EAAEwH,MAAI,CAAC3L,GAAG;cACbyE,IAAI,EAAJA;YACF,CAAC,CAAC,CACDK,KAAK,CAAC,UAACC,KAAK,EAAK;cAChB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACzE,CAAC,CAAC;UAAA;YAREqG,YAAY,GAAAU,SAAA,CAAAjB,IAAA;YAUlBc,MAAI,CAACR,gBAAgB,CAACC,YAAY,CAAC;YACnCO,MAAI,CAACL,eAAe,CAACF,YAAY,CAAC;YAClCO,MAAI,CAACH,iBAAiB,CAACJ,YAAY,CAAC;;YAEpC;YACAO,MAAI,CAACK,kBAAkB,CAAC,CAAC;YAAC,OAAAF,SAAA,CAAAG,MAAA,WAEnBb,YAAY;UAAA;UAAA;YAAA,OAAAU,SAAA,CAAAf,IAAA;QAAA;MAAA,GAAAa,QAAA;IAAA;EACrB,CAAC;EAED;AACF;AACA;AACA;EACQM,aAAa,WAAAA,cAAA,EAAG;IAAA,IAAAC,OAAA;IAAA,WAAAhC,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAA+B,SAAA;MAAA,IAAA3H,IAAA,EAAA2G,YAAA;MAAA,OAAAhB,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAA6B,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA3B,IAAA,GAAA2B,SAAA,CAAA1B,IAAA;UAAA;YACdnG,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJkO,OAAI,CAAC5L,QAAQ,IAAI,CAAC,CAAC4L,OAAI,CAAC5L,QAAQ,CAACyK,KAAK,GAAG;cAACC,QAAQ,EAAE;gBAACD,KAAK,EAAEmB,OAAI,CAAC5L,QAAQ,CAACyK;cAAK;YAAC,CAAC,GAAG,CAAC,CAAC,GACvF;cAAC5K,MAAM,EAAE,CAAC;gBAACmM,MAAM,EAAElL,oBAAS,CAACmL,MAAM,CAACC;cAAM,CAAC;YAAC,CAAC,GAElD;YAAAH,SAAA,CAAA1B,IAAA;YAAA,OAC2BuB,OAAI,CAAC7I,KAAK,CAClCY,OAAO,CAAC;cACPqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;cACtB/G,GAAG,EAAEgI,OAAI,CAACnM,GAAG;cACbyE,IAAI,EAAJA;YACF,CAAC,CAAC,CACDK,KAAK,CAAC,UAACC,KAAK,EAAK;cAChB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,yBAAyB,CAAC,CAAC;YAChF,CAAC,CAAC;UAAA;YAREqG,YAAY,GAAAkB,SAAA,CAAAzB,IAAA;YAUlBsB,OAAI,CAAChB,gBAAgB,CAACC,YAAY,CAAC;YAAC,OAAAkB,SAAA,CAAAL,MAAA,WAE7Bb,YAAY;UAAA;UAAA;YAAA,OAAAkB,SAAA,CAAAvB,IAAA;QAAA;MAAA,GAAAqB,QAAA;IAAA;EACrB,CAAC;EAED;AACF;AACA;AACA;AACA;EACQM,KAAK,WAAAA,MAAA,EAAc;IAAA,IAAAC,UAAA,GAAAzO,SAAA;MAAA0O,OAAA;IAAA,WAAAzC,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAwC,SAAA;MAAA,IAAAzF,MAAA,EAAAmF,MAAA,EAAA7D,OAAA,EAAAjE,IAAA,EAAA2G,YAAA;MAAA,OAAAhB,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAAsC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAApC,IAAA,GAAAoC,SAAA,CAAAnC,IAAA;UAAA;YAAbxD,MAAM,GAAAuF,UAAA,CAAAxO,MAAA,QAAAwO,UAAA,QAAAjJ,SAAA,GAAAiJ,UAAA,MAAG,CAAC,CAAC;YACfJ,MAAM,GAAGlL,oBAAS,CAACmL,MAAM,CAACQ,KAAK;YAC/BtE,OAAO,GAAAzK,aAAA;cACX+D,EAAE,EAAE4K,OAAI,CAAC/K,eAAe;cACxB0K,MAAM,EAANA,MAAM;cACNjN,eAAe,EAAE,KAAK;cACtB2N,gBAAgB,EAAE;YAAK,GACpB7F,MAAM;YAGL3C,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJ2O,OAAI,CAACrM,QAAQ,IAAI,CAAC,CAACqM,OAAI,CAACrM,QAAQ,CAACyK,KAAK,GACtC;cAACC,QAAQ,EAAE;gBAACD,KAAK,EAAE4B,OAAI,CAACrM,QAAQ,CAACyK,KAAK;gBAAEkC,OAAO,EAAE;cAAI;YAAC,CAAC,GACvD,CAAC,CAAC,GACH;cAAC9M,MAAM,EAAE,CAACsI,OAAO;YAAC,CAAC;YAAAqE,SAAA,CAAAnC,IAAA;YAAA,OAGGgC,OAAI,CAAC1I,OAAO,CAAC;cACtCqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;cACtB/G,GAAG,EAAEyI,OAAI,CAAC5M,GAAG;cACbyE,IAAI,EAAJA;YACF,CAAC,CAAC,CAACK,KAAK,CAAC,UAACC,KAAK,EAAK;cAClB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,iBAAiB,CAAC,CAAC;YACxE,CAAC,CAAC;UAAA;YANIqG,YAAY,GAAA2B,SAAA,CAAAlC,IAAA;YAQlB+B,OAAI,CAACzB,gBAAgB,CAACC,YAAY,CAAC;YACnCwB,OAAI,CAACtB,eAAe,CAACF,YAAY,CAAC;YAClCwB,OAAI,CAACpB,iBAAiB,CAACJ,YAAY,CAAC;YAAC,OAAA2B,SAAA,CAAAd,MAAA,WAE9Bb,YAAY;UAAA;UAAA;YAAA,OAAA2B,SAAA,CAAAhC,IAAA;QAAA;MAAA,GAAA8B,QAAA;IAAA;EACrB,CAAC;EAED;AACF;AACA;AACA;AACA;EACQM,GAAG,WAAAA,IAAA,EAAc;IAAA,IAAAC,WAAA,GAAAlP,SAAA;MAAAmP,OAAA;IAAA,WAAAlD,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAiD,SAAA;MAAA,IAAAlG,MAAA,EAAA7H,cAAA,EAAAyC,EAAA,EAAAuK,MAAA,EAAA7D,OAAA,EAAAjE,IAAA,EAAA2G,YAAA;MAAA,OAAAhB,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAA+C,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7C,IAAA,GAAA6C,SAAA,CAAA5C,IAAA;UAAA;YAAbxD,MAAM,GAAAgG,WAAA,CAAAjP,MAAA,QAAAiP,WAAA,QAAA1J,SAAA,GAAA0J,WAAA,MAAG,CAAC,CAAC;YACZ7N,cAAc,GAAyB8N,OAAI,CAA3C9N,cAAc,EAAmByC,EAAE,GAAIqL,OAAI,CAA3BxL,eAAe;YAChC0K,MAAM,GAAGlL,oBAAS,CAACmL,MAAM,CAACiB,KAAK;YAC/B/E,OAAO,GAAAzK,aAAA;cACX+D,EAAE,EAAFA,EAAE;cACFuK,MAAM,EAANA,MAAM;cACNhN,cAAc,EAAdA;YAAc,GACX6H,MAAM;YAGL3C,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJoP,OAAI,CAAC9M,QAAQ,IAAI,CAAC,CAAC8M,OAAI,CAAC9M,QAAQ,CAACyK,KAAK,GACtC;cAACC,QAAQ,EAAE;gBAACD,KAAK,EAAEqC,OAAI,CAAC9M,QAAQ,CAACyK,KAAK;gBAAEkC,OAAO,EAAE;cAAI;YAAC,CAAC,GACvD,CAAC,CAAC,GACH;cAAC9M,MAAM,EAAE,CAACsI,OAAO;YAAC,CAAC;YAAA8E,SAAA,CAAA5C,IAAA;YAAA,OAGGyC,OAAI,CAACnJ,OAAO,CAAC;cACtCqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;cACtB/G,GAAG,EAAEkJ,OAAI,CAACrN,GAAG;cACbyE,IAAI,EAAJA;YACF,CAAC,CAAC,CAACK,KAAK,CAAC,UAACC,KAAK,EAAK;cAClB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC,CAAC;UAAA;YANIqG,YAAY,GAAAoC,SAAA,CAAA3C,IAAA;YAQlBwC,OAAI,CAAClC,gBAAgB,CAACC,YAAY,CAAC;YACnCiC,OAAI,CAAC/B,eAAe,CAACF,YAAY,CAAC;YAClCiC,OAAI,CAAC7B,iBAAiB,CAACJ,YAAY,CAAC;YAAC,OAAAoC,SAAA,CAAAvB,MAAA,WAE9Bb,YAAY;UAAA;UAAA;YAAA,OAAAoC,SAAA,CAAAzC,IAAA;QAAA;MAAA,GAAAuC,QAAA;IAAA;EACrB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACQI,MAAM,WAAAA,OAACtG,MAAoB,EAAEuG,UAAoB,EAAE;IAAA,IAAAC,OAAA;IAAA,WAAAzD,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAwD,SAAA;MAAA,IAAAC,gBAAA;MAAA,IAAApF,OAAA,EAAAjE,IAAA,EAAA2G,YAAA;MAAA,OAAAhB,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAAuD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArD,IAAA,GAAAqD,SAAA,CAAApD,IAAA;UAAA;YAAA,IAClDxD,MAAM,CAACpF,EAAE;cAAAgM,SAAA,CAAApD,IAAA;cAAA;YAAA;YAAA,OAAAoD,SAAA,CAAA/B,MAAA,WACLnC,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAIV,KAAK,CAAC,2BAA2B,CAAC,CAAC;UAAA;YAEzDX,OAAO,GAAAzK,aAAA,KAAOmJ,MAAM;YAEpB3C,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJ,CAAA6P,gBAAA,GAAAF,OAAI,CAACrN,QAAQ,cAAAuN,gBAAA,eAAbA,gBAAA,CAAe9C,KAAK,GACpB;cAACC,QAAQ,EAAE;gBAACD,KAAK,EAAE4C,OAAI,CAACrN,QAAQ,CAACyK,KAAK;gBAAEkC,OAAO,EAAE,CAACS;cAAU;YAAC,CAAC,GAC9D,CAAC,CAAC,GACH;cAACvN,MAAM,EAAE,CAACsI,OAAO;YAAC,CAAC;YAAAsF,SAAA,CAAApD,IAAA;YAAA,OAGGgD,OAAI,CAAC1J,OAAO,CAAC;cACtCqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;cACtB/G,GAAG,EAAEyJ,OAAI,CAAC5N,GAAG;cACbyE,IAAI,EAAJA;YACF,CAAC,CAAC,CAACK,KAAK,CAAC,UAACC,KAAK,EAAK;cAClB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACzE,CAAC,CAAC;UAAA;YANIqG,YAAY,GAAA4C,SAAA,CAAAnD,IAAA;YAQlB,IAAI8C,UAAU,EAAE;cACdC,OAAI,CAAC5B,kBAAkB,CAAC,CAAC;YAC3B;YAEA4B,OAAI,CAACzC,gBAAgB,CAACC,YAAY,CAAC;YAAC,OAAA4C,SAAA,CAAA/B,MAAA,WAE7Bb,YAAY;UAAA;UAAA;YAAA,OAAA4C,SAAA,CAAAjD,IAAA;QAAA;MAAA,GAAA8C,QAAA;IAAA;EACrB,CAAC;EAED;AACF;AACA;AACA;AACA;EACQI,WAAW,WAAAA,YAAChD,QAAQ,EAAE;IAAA,IAAAiD,OAAA;IAAA,WAAA/D,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAA8D,SAAA;MAAA,IAAAC,cAAA,EAAAC,qBAAA;MAAA,IAAApL,QAAA;MAAA,OAAAmH,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAA8D,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3D,IAAA;UAAA;YAAA2D,SAAA,CAAA3D,IAAA;YAAA,OACHsD,OAAI,CAAChK,OAAO,CAAC;cAClCqF,MAAM,EAAEC,qBAAU,CAACgF,GAAG;cACtBrK,GAAG,EAAE+J,OAAI,CAAClO,GAAG,IAAIiL,QAAQ,gBAAAjH,MAAA,CAAgBiH,QAAQ,IAAK,EAAE;YAC1D,CAAC,CAAC;UAAA;YAHIhI,QAAQ,GAAAsL,SAAA,CAAA1D,IAAA;YAKdqD,OAAI,CAAC/C,gBAAgB,CAAClI,QAAQ,CAAC;YAC/BiL,OAAI,CAAC5C,eAAe,CAACrI,QAAQ,CAAC;YAC9BiL,OAAI,CAAC1C,iBAAiB,CAACvI,QAAQ,CAAC;YAEhC,IAAIgI,QAAQ,KAAAmD,cAAA,GAAInL,QAAQ,CAACwB,IAAI,cAAA2J,cAAA,gBAAAC,qBAAA,GAAbD,cAAA,CAAenD,QAAQ,cAAAoD,qBAAA,eAAvBA,qBAAA,CAAyBrD,KAAK,EAAE;cAC9CkD,OAAI,CAACtK,GAAG,CAAC,UAAU,EAAEX,QAAQ,CAACwB,IAAI,CAACwG,QAAQ,CAAC;cAC5CiD,OAAI,CAACO,iBAAiB,CAAC,CAAC;YAC1B;YAAC,OAAAF,SAAA,CAAAtC,MAAA,WAEMhJ,QAAQ;UAAA;UAAA;YAAA,OAAAsL,SAAA,CAAAxD,IAAA;QAAA;MAAA,GAAAoD,QAAA;IAAA;EACjB,CAAC;EAED;AACF;AACA;AACA;EACQO,qBAAqB,WAAAA,sBAAA,EAAG;IAAA,IAAAC,OAAA;IAAA,WAAAxE,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAAuE,SAAA;MAAA,IAAArE,IAAA;MAAA,OAAAH,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAAqE,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnE,IAAA,GAAAmE,SAAA,CAAAlE,IAAA;UAAA;YAAA,KACxB+D,OAAI,CAACnP,qBAAqB;cAAAsP,SAAA,CAAAlE,IAAA;cAAA;YAAA;YAC5B+D,OAAI,CAACI,YAAY,CAAC,CAAC;YAACD,SAAA,CAAAlE,IAAA;YAAA;UAAA;YAAAkE,SAAA,CAAAlE,IAAA;YAAA,OAED+D,OAAI,CAAC/E,eAAe,CAAC,CAAC;UAAA;YAAnCW,IAAI,GAAAuE,SAAA,CAAAjE,IAAA;YAEV,IAAIN,IAAI,CAAC9F,IAAI,EAAE;cACbkK,OAAI,CAACI,YAAY,CAAC,CAAC;YACrB;UAAC;UAAA;YAAA,OAAAD,SAAA,CAAA/D,IAAA;QAAA;MAAA,GAAA6D,QAAA;IAAA;EAEL,CAAC;EAED;AACF;AACA;AACA;EACEI,iBAAiB,WAAAA,kBAAA,EAAG;IAClB,OACE,IAAI,CAACzO,QAAQ,IACb,IAAI,CAACA,QAAQ,CAACyK,KAAK,IACnB,IAAI,CAACzK,QAAQ,CAACsI,KAAK,KAAKxH,oBAAS,CAAC4N,gBAAgB,CAACC,MAAM;EAE7D,CAAC;EAED;AACF;AACA;AACA;EACQH,YAAY,WAAAA,aAAA,EAAG;IAAA,IAAAI,OAAA;IAAA,WAAAhF,kBAAA,CAAA5L,OAAA,gBAAA6L,YAAA,CAAA7L,OAAA,CAAA8L,IAAA,UAAA+E,SAAA;MAAA,IAAAC,eAAA,EAAApM,QAAA;MAAA,OAAAmH,YAAA,CAAA7L,OAAA,CAAAiM,IAAA,UAAA8E,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5E,IAAA,GAAA4E,SAAA,CAAA3E,IAAA;UAAA;YAAA,MACfuE,OAAI,CAAC5O,QAAQ,IAAI,CAAC,CAAC4O,OAAI,CAAC5O,QAAQ,CAACyK,KAAK;cAAAuE,SAAA,CAAA3E,IAAA;cAAA;YAAA;YAAA,MACpCuE,OAAI,CAAC5O,QAAQ,CAACsI,KAAK,KAAKxH,oBAAS,CAAC4N,gBAAgB,CAACC,MAAM;cAAAK,SAAA,CAAA3E,IAAA;cAAA;YAAA;YAAA,MACrD,IAAIvB,KAAK,CAAC,yBAAyB,CAAC;UAAA;YAE1C8F,OAAI,CAACV,iBAAiB,CAAC,CAAC;UAAC;YAAAc,SAAA,CAAA3E,IAAA;YAAA;UAAA;YAAA2E,SAAA,CAAA3E,IAAA;YAAA,OAGJuE,OAAI,CAAClB,WAAW,CAAC,IAAI,CAAC;UAAA;YAAvChL,QAAQ,GAAAsM,SAAA,CAAA1E,IAAA;YACd,KAAAwE,eAAA,GAAIpM,QAAQ,CAACwB,IAAI,cAAA4K,eAAA,eAAbA,eAAA,CAAepE,QAAQ,EAAE;cAC3BkE,OAAI,CAACV,iBAAiB,CAAC,CAAC;YAC1B;UAAC;UAAA;YAAA,OAAAc,SAAA,CAAAxE,IAAA;QAAA;MAAA,GAAAqE,QAAA;IAAA;EAEL,CAAC;EAED;AACF;AACA;AACA;EACEX,iBAAiB,WAAAA,kBAAA,EAAG;IAAA,IAAAe,OAAA;IAClB,IAAI,IAAI,CAACjP,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACA,QAAQ,CAACyK,KAAK,EAAE;MAC1C,IAAMyE,GAAG,GAAG,IAAI,CAAClP,QAAQ,CAACkP,GAAG,GAAG,EAAE,GAAGpO,oBAAS,CAACqO,WAAW,GAAG,IAAI,CAACnP,QAAQ,CAACkP,GAAG;MAC9E,IAAI,IAAI,CAACjP,UAAU,EAAE;QACnBmP,MAAM,CAACC,aAAa,CAAC,IAAI,CAACpP,UAAU,CAAC;MACvC;MAEA,IAAI,CAACA,UAAU,GAAGmP,MAAM,CAACE,WAAW,CAAC,YAAM;QACzCL,OAAI,CAACtL,OAAO,CAAC;UACXqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;UACtB/G,GAAG,KAAAH,MAAA,CAAKwL,OAAI,CAACxP,GAAG,gBAAAgE,MAAA,CAAawL,OAAI,CAACjP,QAAQ,CAACyK,KAAK;QAClD,CAAC,CAAC,CAAClG,KAAK,CAAC,UAACC,KAAK,EAAK;UAClByK,OAAI,CAACxD,kBAAkB,CAAC,CAAC;UAEzB,OAAOlC,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACpF,CAAC,CAAC;MACJ,CAAC,EAAG0K,GAAG,GAAG,CAAC,GAAI,IAAI,CAAC;IACtB;EACF,CAAC;EAED;AACF;AACA;AACA;EACEK,kBAAkB,WAAAA,mBAAA,EAAG;IAAA,IAAAC,OAAA;IACnB,IAAI,IAAI,CAACxP,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACA,QAAQ,CAACyK,KAAK,EAAE;MAC1C,IAAI,CAAC9G,OAAO,CAAC;QACXqF,MAAM,EAAEC,qBAAU,CAACiD,MAAM;QACzBtI,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,gBAAAgE,MAAA,CAAa,IAAI,CAACzD,QAAQ,CAACyK,KAAK;MAClD,CAAC,CAAC,CACC1G,IAAI,CAAC,YAAM;QACVyL,OAAI,CAAC/D,kBAAkB,CAAC,CAAC;MAC3B,CAAC,CAAC,CACDlH,KAAK,CAAC,UAACC,KAAK,EAAK;QAChB,OAAO+E,QAAA,CAAAvL,OAAA,CAAQwL,MAAM,CAAC,IAAAgC,4BAAqB,EAAChH,KAAK,EAAE,8BAA8B,CAAC,CAAC;MACrF,CAAC,CAAC;IACN;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEiH,kBAAkB,WAAAA,mBAAA,EAAG;IACnB,IAAI,IAAI,CAACxL,UAAU,EAAE;MACnBoP,aAAa,CAAC,IAAI,CAACpP,UAAU,CAAC;IAChC;IACA,IAAI,CAACoD,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;EAC1B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEoM,MAAM,WAAAA,OAACC,QAAe,EAAE;IACtB,IAAMC,gBAAgB,GAAGD,QAAQ,CAACE,GAAG,CAAC,UAACC,IAAI,EAAK;MAC9C,OAAO;QACLpO,EAAE,EAAEoO,IAAI,CAACpO,EAAE;QACXqO,QAAQ,EAAED,IAAI,CAACE,SAAS;QACxBC,cAAc,EAAEH,IAAI,CAACI,MAAM;QAC3BC,aAAa,EAAE,CAAC,CAACL,IAAI,CAACM;MACxB,CAAC;IACH,CAAC,CAAC;IAEF,IAAMjM,IAAI,GAAAxG,aAAA,CAAAA,aAAA,KACJ,IAAI,CAACsC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACA,QAAQ,CAACyK,KAAK,GACtC;MAACC,QAAQ,EAAE;QAACD,KAAK,EAAE,IAAI,CAACzK,QAAQ,CAACyK,KAAK;QAAEkC,OAAO,EAAE;MAAI;IAAC,CAAC,GACvD,CAAC,CAAC,GACH;MACD9M,MAAM,EAAE,CACN;QACE4B,EAAE,EAAE,IAAI,CAACH,eAAe;QACxBoO,QAAQ,EAAEC;MACZ,CAAC;IAEL,CAAC,CACF;IAED,OAAO,IAAI,CAAChM,OAAO,CAAC;MAClBqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;MACtB/G,GAAG,EAAE,IAAI,CAACnE,GAAG;MACbyE,IAAI,EAAJA;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;EACE9B,mBAAmB,WAAAA,oBAAA,EAAG;IAAA,IAAAgO,OAAA;IACpB,IAAI,CAACrN,KAAK,CACPY,OAAO,CAAC;MAACC,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,oBAAiB;MAAEoE,EAAE,EAAE;QAACnE,QAAQ,EAAEoE,IAAI,CAAC,IAAI,CAACpE,QAAQ;MAAC;IAAC,CAAC,CAAC,CACjFqE,IAAI,CAAC,UAACC,MAAM,EAAK;MAAA,IAAAqM,YAAA;MAChB,KAAAA,YAAA,GAAIrM,MAAM,CAACE,IAAI,cAAAmM,YAAA,eAAXA,YAAA,CAAaxQ,MAAM,EAAE;QACvBuQ,OAAI,CAAC/M,GAAG,CAAC,gBAAgB,EAAEW,MAAM,CAACE,IAAI,CAACrE,MAAM,CAAC;QAC9CuQ,OAAI,CAACnO,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAACoO,sBAAsB,CAAC;MACvD;IACF,CAAC,CAAC,CACD/L,KAAK,CAAC,UAACC,KAAK,EAAK;MAChBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;IACjF,CAAC,CAAC;EACN,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACE+L,aAAa,WAAAA,cAACb,QAAe,EAAE;IAC7B,IAAMc,eAAe,GAAGd,QAAQ,CAACE,GAAG,CAAC,UAACC,IAAI,EAAK;MAC7C,OAAO;QACLpO,EAAE,EAAEoO,IAAI,CAACpO,EAAE;QACXgP,YAAY,EAAEZ,IAAI,CAACY,YAAY;QAC/BC,WAAW,EAAEb,IAAI,CAACa;MACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAMxM,IAAI,GAAG;MACXrE,MAAM,EAAE,CACN;QACE4B,EAAE,EAAE,IAAI,CAACH,eAAe;QACxBoO,QAAQ,EAAEc;MACZ,CAAC,CACF;MACD9F,QAAQ,EAAE;IACZ,CAAC;IAED,IAAI,IAAI,CAAC1K,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACyK,KAAK,EAAE;MACxCvG,IAAI,CAACwG,QAAQ,GAAG,IAAI,CAAC1K,QAAQ;IAC/B;IAEA,OAAO,IAAI,CAAC2D,OAAO,CAAC;MAClBqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;MACtB/G,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,mBAAgB;MAChCyE,IAAI,EAAJA;IACF,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEyM,WAAW,WAAAA,YAACjB,QAAyC,EAAE;IAAA,IAAAkB,OAAA;IACrD,IAAI,CAAC,IAAI,CAACxQ,WAAW,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE;MAC5C,MAAM,IAAIyI,KAAK,CACb,8EACF,CAAC;IACH;IAEA,IAAM0H,eAAe,GAAGd,QAAQ,CAACE,GAAG,CAAC,UAACC,IAAI,EAAK;MAC7C,OAAO;QACLpO,EAAE,EAAEmP,OAAI,CAACvQ,aAAa;QACtBoQ,YAAY,EAAEZ,IAAI,CAACY,YAAY;QAC/BC,WAAW,EAAE;MACf,CAAC;IACH,CAAC,CAAC;IAEF,IAAMxM,IAAI,GAAG;MACXrE,MAAM,EAAE,CACN;QACE4B,EAAE,EAAE,IAAI,CAACrB,WAAW;QACpBsP,QAAQ,EAAEc;MACZ,CAAC;IAEL,CAAC;IAED,OAAO,IAAI,CAAC7M,OAAO,CAAC;MAClBqF,MAAM,EAAEC,qBAAU,CAAC0B,GAAG;MACtB/G,GAAG,KAAAH,MAAA,CAAK,IAAI,CAAChE,GAAG,mBAAgB;MAChCyE,IAAI,EAAJA;IACF,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEvB,wBAAwB,WAAAA,yBAACD,QAAQ,EAAE;IACjC,IAAIA,QAAQ,CAACmG,MAAM,IAAInG,QAAQ,CAACmO,SAAS,EAAE;MACzC,IAAI,CAAC5O,OAAO,CAACnB,oBAAS,CAACoB,MAAM,CAAC4O,kBAAkB,CAAC;IACnD;EACF,CAAC;EAAAC,OAAA;AACH,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjT,OAAA,GAEYI,SAAS"}
@@ -8,6 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  });
9
9
  exports.UserNotJoinedError = exports.UserInLobbyError = exports.SpaceIDDeprecatedError = exports.NoMediaEstablishedYetError = exports.MeetingNotActiveError = exports.IceGatheringFailed = exports.AddMediaFailed = void 0;
10
10
  exports.createMeetingsError = createMeetingsError;
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
11
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
13
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
@@ -159,13 +160,22 @@ WebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;
159
160
  * @extends WebexMeetingsError
160
161
  * @property {number} code - 30203
161
162
  * @property {string} message - 'Failed to add media'
163
+ * @property {Error} [cause] - The underlying error that caused the failure
162
164
  */
163
165
  var AddMediaFailed = exports.AddMediaFailed = /*#__PURE__*/function (_WebexMeetingsError7) {
164
166
  (0, _inherits2.default)(AddMediaFailed, _WebexMeetingsError7);
165
167
  var _super7 = _createSuper(AddMediaFailed);
166
- function AddMediaFailed() {
168
+ /**
169
+ * Creates a new AddMediaFailed error
170
+ * @param {Error} [cause] - The underlying error that caused the media addition to fail
171
+ */
172
+ function AddMediaFailed(cause) {
173
+ var _this;
167
174
  (0, _classCallCheck2.default)(this, AddMediaFailed);
168
- return _super7.call(this, AddMediaFailed.CODE, 'Failed to add media');
175
+ _this = _super7.call(this, AddMediaFailed.CODE, 'Failed to add media');
176
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "cause", void 0);
177
+ _this.cause = cause;
178
+ return _this;
169
179
  }
170
180
  return (0, _createClass2.default)(AddMediaFailed);
171
181
  }(_webexMeetingsError.default);
@@ -1 +1 @@
1
- {"version":3,"names":["_webexMeetingsError","_interopRequireDefault","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","WebExMeetingsErrors","createMeetingsError","code","message","WebexMeetingsError","MeetingNotActiveError","exports","_WebexMeetingsError","_inherits2","_super","_classCallCheck2","CODE","_createClass2","_defineProperty2","UserNotJoinedError","_WebexMeetingsError2","_super2","NoMediaEstablishedYetError","_WebexMeetingsError3","_super3","UserInLobbyError","_WebexMeetingsError4","_super4","SpaceIDDeprecatedError","_WebexMeetingsError5","_super5","IceGatheringFailed","_WebexMeetingsError6","_super6","AddMediaFailed","_WebexMeetingsError7","_super7"],"sources":["webex-errors.ts"],"sourcesContent":["// The document would auto generate the doc for errors\n\n// 1) Error codes for Oauth, login, mercury should be separated out (Code range)\n// 2) Errors from the actual locus server or other server in case, we can use the same error code as locus and redirect it\n// 3) Any errors we generate from the SDK can be split into various categories\n// Parameter validation, user action, connection, media specific(They can have different range)\n\n// TODO: all the errors from the server need to be captured\n\n// add a way to log and send metrics if needed\nimport WebexMeetingsError from './webex-meetings-error';\n\nconst WebExMeetingsErrors = {};\n\n/**\n * Create a {@link WebexMeetingsError} for a given code and message.\n * @private\n * @param {number} [code] - Error code\n * @param {string} [message] - Error message\n * @returns {WebexMeetingsError}\n */\nexport function createMeetingsError(code?: number, message?: string) {\n code = typeof code === 'number' ? code : 0;\n message = typeof message === 'string' && message ? message : 'Unknown error';\n\n return WebExMeetingsErrors[code]\n ? new WebExMeetingsErrors[code]()\n : new WebexMeetingsError(code, message);\n}\n\n/**\n * @class MeetingNotActiveError\n * @classdesc Raised whenever Meeting has already ended and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30101\n * @property {string} message - 'Meeting has already Ended or not Active'\n */\nclass MeetingNotActiveError extends WebexMeetingsError {\n static CODE = 30101;\n\n constructor() {\n super(MeetingNotActiveError.CODE, 'Meeting has already Ended or not Active');\n }\n}\n\nexport {MeetingNotActiveError};\nWebExMeetingsErrors[MeetingNotActiveError.CODE] = MeetingNotActiveError;\n\n/**\n * @class UserNotJoinedError\n * @classdesc Raised whenever the user has already left the meeting and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30102\n * @property {string} message - 'User has already left the meeting'\n */\nclass UserNotJoinedError extends WebexMeetingsError {\n static CODE = 30102;\n\n constructor() {\n super(\n UserNotJoinedError.CODE,\n 'User currently not in meeting. Please join a meeting before adding media.'\n );\n }\n}\n\nexport {UserNotJoinedError};\nWebExMeetingsErrors[UserNotJoinedError.CODE] = UserNotJoinedError;\n\n/**\n * @class NoMediaEstablishedYetError\n * @classdesc Raised whenever the user has not established media yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30103\n * @property {string} message - error message\n */\nclass NoMediaEstablishedYetError extends WebexMeetingsError {\n static CODE = 30103;\n\n // eslint-disable-next-line require-jsdoc\n constructor() {\n super(\n NoMediaEstablishedYetError.CODE,\n 'Webrtc media connection is missing, call addMedia() first'\n );\n }\n}\n\nexport {NoMediaEstablishedYetError};\nWebExMeetingsErrors[NoMediaEstablishedYetError.CODE] = NoMediaEstablishedYetError;\n\n/**\n * @class UserInLobbyError\n * @classdesc Raised whenever the user is in lobby and not joined yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30104\n * @property {string} message - 'user is still in the lobby or not joined'\n */\nclass UserInLobbyError extends WebexMeetingsError {\n static CODE = 30104;\n\n constructor() {\n super(UserInLobbyError.CODE, 'user is still in the lobby or not joined');\n }\n}\n\nexport {UserInLobbyError};\nWebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;\n\n/**\n * @class SpaceIDDeprecatedError\n * @classdesc Raised whenever the user passes Space ID as destination for create meeting.\n * @extends WebexMeetingsError\n * @property {number} code - 30105\n * @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'\n */\nclass SpaceIDDeprecatedError extends WebexMeetingsError {\n static CODE = 30105;\n\n constructor() {\n super(\n SpaceIDDeprecatedError.CODE,\n 'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'\n );\n }\n}\n\nexport {SpaceIDDeprecatedError};\nWebExMeetingsErrors[SpaceIDDeprecatedError.CODE] = SpaceIDDeprecatedError;\n\n/**\n * @class IceGatheringFailed\n * @classdesc Raised whenever ice gathering fails.\n * @extends WebexMeetingsError\n * @property {number} code - 30202\n * @property {string} message - 'user failed ice gathering check network/firewall'\n */\nclass IceGatheringFailed extends WebexMeetingsError {\n static CODE = 30202;\n\n constructor() {\n super(IceGatheringFailed.CODE, 'iceConnection: gethering ice candidate failed');\n }\n}\n\nexport {IceGatheringFailed};\nWebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;\n\n/**\n * @class AddMediaFailed\n * @classdesc Raised whenever we fail to successfully add media to a meeting\n * @extends WebexMeetingsError\n * @property {number} code - 30203\n * @property {string} message - 'Failed to add media'\n */\nclass AddMediaFailed extends WebexMeetingsError {\n static CODE = 30203;\n\n constructor() {\n super(AddMediaFailed.CODE, 'Failed to add media');\n }\n}\nexport {AddMediaFailed};\nWebExMeetingsErrors[AddMediaFailed.CODE] = AddMediaFailed;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexMeetingsError","_interopRequireDefault","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","WebExMeetingsErrors","createMeetingsError","code","message","WebexMeetingsError","MeetingNotActiveError","exports","_WebexMeetingsError","_inherits2","_super","_classCallCheck2","CODE","_createClass2","_defineProperty2","UserNotJoinedError","_WebexMeetingsError2","_super2","NoMediaEstablishedYetError","_WebexMeetingsError3","_super3","UserInLobbyError","_WebexMeetingsError4","_super4","SpaceIDDeprecatedError","_WebexMeetingsError5","_super5","IceGatheringFailed","_WebexMeetingsError6","_super6","AddMediaFailed","_WebexMeetingsError7","_super7","cause","_this","_assertThisInitialized2"],"sources":["webex-errors.ts"],"sourcesContent":["// The document would auto generate the doc for errors\n\n// 1) Error codes for Oauth, login, mercury should be separated out (Code range)\n// 2) Errors from the actual locus server or other server in case, we can use the same error code as locus and redirect it\n// 3) Any errors we generate from the SDK can be split into various categories\n// Parameter validation, user action, connection, media specific(They can have different range)\n\n// TODO: all the errors from the server need to be captured\n\n// add a way to log and send metrics if needed\nimport WebexMeetingsError from './webex-meetings-error';\n\nconst WebExMeetingsErrors = {};\n\n/**\n * Create a {@link WebexMeetingsError} for a given code and message.\n * @private\n * @param {number} [code] - Error code\n * @param {string} [message] - Error message\n * @returns {WebexMeetingsError}\n */\nexport function createMeetingsError(code?: number, message?: string) {\n code = typeof code === 'number' ? code : 0;\n message = typeof message === 'string' && message ? message : 'Unknown error';\n\n return WebExMeetingsErrors[code]\n ? new WebExMeetingsErrors[code]()\n : new WebexMeetingsError(code, message);\n}\n\n/**\n * @class MeetingNotActiveError\n * @classdesc Raised whenever Meeting has already ended and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30101\n * @property {string} message - 'Meeting has already Ended or not Active'\n */\nclass MeetingNotActiveError extends WebexMeetingsError {\n static CODE = 30101;\n\n constructor() {\n super(MeetingNotActiveError.CODE, 'Meeting has already Ended or not Active');\n }\n}\n\nexport {MeetingNotActiveError};\nWebExMeetingsErrors[MeetingNotActiveError.CODE] = MeetingNotActiveError;\n\n/**\n * @class UserNotJoinedError\n * @classdesc Raised whenever the user has already left the meeting and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30102\n * @property {string} message - 'User has already left the meeting'\n */\nclass UserNotJoinedError extends WebexMeetingsError {\n static CODE = 30102;\n\n constructor() {\n super(\n UserNotJoinedError.CODE,\n 'User currently not in meeting. Please join a meeting before adding media.'\n );\n }\n}\n\nexport {UserNotJoinedError};\nWebExMeetingsErrors[UserNotJoinedError.CODE] = UserNotJoinedError;\n\n/**\n * @class NoMediaEstablishedYetError\n * @classdesc Raised whenever the user has not established media yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30103\n * @property {string} message - error message\n */\nclass NoMediaEstablishedYetError extends WebexMeetingsError {\n static CODE = 30103;\n\n // eslint-disable-next-line require-jsdoc\n constructor() {\n super(\n NoMediaEstablishedYetError.CODE,\n 'Webrtc media connection is missing, call addMedia() first'\n );\n }\n}\n\nexport {NoMediaEstablishedYetError};\nWebExMeetingsErrors[NoMediaEstablishedYetError.CODE] = NoMediaEstablishedYetError;\n\n/**\n * @class UserInLobbyError\n * @classdesc Raised whenever the user is in lobby and not joined yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30104\n * @property {string} message - 'user is still in the lobby or not joined'\n */\nclass UserInLobbyError extends WebexMeetingsError {\n static CODE = 30104;\n\n constructor() {\n super(UserInLobbyError.CODE, 'user is still in the lobby or not joined');\n }\n}\n\nexport {UserInLobbyError};\nWebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;\n\n/**\n * @class SpaceIDDeprecatedError\n * @classdesc Raised whenever the user passes Space ID as destination for create meeting.\n * @extends WebexMeetingsError\n * @property {number} code - 30105\n * @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'\n */\nclass SpaceIDDeprecatedError extends WebexMeetingsError {\n static CODE = 30105;\n\n constructor() {\n super(\n SpaceIDDeprecatedError.CODE,\n 'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'\n );\n }\n}\n\nexport {SpaceIDDeprecatedError};\nWebExMeetingsErrors[SpaceIDDeprecatedError.CODE] = SpaceIDDeprecatedError;\n\n/**\n * @class IceGatheringFailed\n * @classdesc Raised whenever ice gathering fails.\n * @extends WebexMeetingsError\n * @property {number} code - 30202\n * @property {string} message - 'user failed ice gathering check network/firewall'\n */\nclass IceGatheringFailed extends WebexMeetingsError {\n static CODE = 30202;\n\n constructor() {\n super(IceGatheringFailed.CODE, 'iceConnection: gethering ice candidate failed');\n }\n}\n\nexport {IceGatheringFailed};\nWebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;\n\n/**\n * @class AddMediaFailed\n * @classdesc Raised whenever we fail to successfully add media to a meeting\n * @extends WebexMeetingsError\n * @property {number} code - 30203\n * @property {string} message - 'Failed to add media'\n * @property {Error} [cause] - The underlying error that caused the failure\n */\nclass AddMediaFailed extends WebexMeetingsError {\n static CODE = 30203;\n cause?: Error;\n\n /**\n * Creates a new AddMediaFailed error\n * @param {Error} [cause] - The underlying error that caused the media addition to fail\n */\n constructor(cause?: Error) {\n super(AddMediaFailed.CODE, 'Failed to add media');\n this.cause = cause;\n }\n}\nexport {AddMediaFailed};\nWebExMeetingsErrors[AddMediaFailed.CODE] = AddMediaFailed;\n"],"mappings":"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"}
package/dist/config.js CHANGED
@@ -106,7 +106,10 @@ var _default = exports.default = {
106
106
  backendIpv6NativeSupport: false,
107
107
  enableReachabilityChecks: true,
108
108
  reachabilityGetClusterTimeout: 5000,
109
- logUploadIntervalMultiplicationFactor: 0 // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1
109
+ logUploadIntervalMultiplicationFactor: 0,
110
+ // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1
111
+ stopIceGatheringAfterFirstRelayCandidate: false,
112
+ enableAudioTwccForMultistream: false
110
113
  }
111
114
  };
112
115
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_default","exports","default","meetings","deviceType","WEB","mediaSettings","pstn","reconnection","enabled","autoRejoin","detection","iceReconnectionTimeout","maxRejoinAttempts","stats","enableStatsAnalyzer","autoDowngradeEnabled","interval","analyzerInterval","historyMax","videoPacketLossRatioThreshold","rttThreshold","jitterThreshold","metrics","clientName","clientType","subClientType","mqaMetricsInterval","autoSendMQA","logging","enable","verboseEvents","resolution","maxWidth","maxHeight","idealWidth","idealHeight","screenResolution","bandwidth","audio","video","startBitrate","screenFrameRate","videoShareFrameRate","aspectRatio","autoUploadLogs","enableRtx","receiveTranscription","enableExtmap","enableAutomaticLLM","installedOrgID","undefined","experimental","enableMediaNegotiatedEvent","enableUnifiedMeetings","enableAdhocMeetings","enableTcpReachability","enableTlsReachability","degradationPreferences","maxMacroblocksLimit","iceCandidatesGatheringTimeout","backendIpv6NativeSupport","enableReachabilityChecks","reachabilityGetClusterTimeout","logUploadIntervalMultiplicationFactor"],"sources":["config.ts"],"sourcesContent":["// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nexport default {\n // TODO: this needs to be defaulted\n // to JS_SDK and clients set it to WEB or others\n // see https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-73167\n meetings: {\n deviceType: deviceType.WEB,\n mediaSettings: {\n pstn: false,\n },\n reconnection: {\n enabled: false,\n autoRejoin: true,\n detection: true,\n // Timeout duration to wait for ICE to reconnect if a disconnect is received.\n iceReconnectionTimeout: 10000,\n // Amount of times attempting to rejoin a meeting during reconnect\n maxRejoinAttempts: 3,\n },\n stats: {\n // Enable the webrtc stats analyzer that emits quality degradation events\n enableStatsAnalyzer: true,\n // Enable the auto downgrade video quality feature\n autoDowngradeEnabled: false,\n // 1 second intervals to collect stats data\n interval: 1000,\n // we just want to analyze data every 5 sec interval\n analyzerInterval: 5000,\n // hold the last 2 minute of a calls data\n historyMax: 120,\n // Once packet loss hits this ratio, the video will downgrade\n videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received\n rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n },\n metrics: {\n // change to your client name else data will be muddled\n // you do not need a specific format, and you do not need to register it\n clientName: 'WEBEX_JS_SDK',\n // TODO: for now this line has to be whitelisted, which is problematic for third party\n clientType: 'WEBEX_SDK',\n // Stores the sub client type used when sending metrics\n subClientType: 'WEB_APP',\n // send average values MQA in 60 second intervals\n mqaMetricsInterval: 60000,\n // send to cisco internal MQA data automatically\n // we already send CA\n autoSendMQA: true,\n },\n logging: {\n enable: true,\n verboseEvents: true,\n },\n resolution: {\n maxWidth: 1280,\n maxHeight: 720,\n idealWidth: 1280,\n idealHeight: 720,\n },\n screenResolution: {\n maxWidth: 1920,\n maxHeight: 1080,\n idealWidth: 1920,\n idealHeight: 1080,\n },\n bandwidth: {\n // please note, these are the maximum bandwidth values\n // the server supports, minimums have to be tested\n audio: 64000,\n video: 4000000,\n startBitrate: 2000,\n },\n screenFrameRate: 10,\n videoShareFrameRate: 30,\n aspectRatio: 1.7695852534562213,\n // When enabled, as calls are ended, it will upload the SDK logs and correlate them\n autoUploadLogs: true,\n enableRtx: true,\n receiveTranscription: false,\n enableExtmap: false,\n enableAutomaticLLM: false,\n installedOrgID: undefined,\n experimental: {\n enableMediaNegotiatedEvent: false,\n enableUnifiedMeetings: true,\n enableAdhocMeetings: true,\n enableTcpReachability: false,\n enableTlsReachability: false,\n },\n degradationPreferences: {\n maxMacroblocksLimit: 8192,\n },\n // This only applies to non-multistream meetings\n iceCandidatesGatheringTimeout: undefined,\n backendIpv6NativeSupport: false,\n enableReachabilityChecks: true,\n reachabilityGetClusterTimeout: 5000,\n logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1\n },\n};\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AADA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGe;EACb;EACA;EACA;EACAC,QAAQ,EAAE;IACRC,UAAU,EAAEA,kBAAU,CAACC,GAAG;IAC1BC,aAAa,EAAE;MACbC,IAAI,EAAE;IACR,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,IAAI;MACf;MACAC,sBAAsB,EAAE,KAAK;MAC7B;MACAC,iBAAiB,EAAE;IACrB,CAAC;IACDC,KAAK,EAAE;MACL;MACAC,mBAAmB,EAAE,IAAI;MACzB;MACAC,oBAAoB,EAAE,KAAK;MAC3B;MACAC,QAAQ,EAAE,IAAI;MACd;MACAC,gBAAgB,EAAE,IAAI;MACtB;MACAC,UAAU,EAAE,GAAG;MACf;MACAC,6BAA6B,EAAE,CAAC;MAAE;MAClCC,YAAY,EAAE,GAAG;MAAE;MACnBC,eAAe,EAAE,GAAG,CAAE;IACxB,CAAC;;IACDC,OAAO,EAAE;MACP;MACA;MACAC,UAAU,EAAE,cAAc;MAC1B;MACAC,UAAU,EAAE,WAAW;MACvB;MACAC,aAAa,EAAE,SAAS;MACxB;MACAC,kBAAkB,EAAE,KAAK;MACzB;MACA;MACAC,WAAW,EAAE;IACf,CAAC;IACDC,OAAO,EAAE;MACPC,MAAM,EAAE,IAAI;MACZC,aAAa,EAAE;IACjB,CAAC;IACDC,UAAU,EAAE;MACVC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDC,gBAAgB,EAAE;MAChBJ,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDE,SAAS,EAAE;MACT;MACA;MACAC,KAAK,EAAE,KAAK;MACZC,KAAK,EAAE,OAAO;MACdC,YAAY,EAAE;IAChB,CAAC;IACDC,eAAe,EAAE,EAAE;IACnBC,mBAAmB,EAAE,EAAE;IACvBC,WAAW,EAAE,kBAAkB;IAC/B;IACAC,cAAc,EAAE,IAAI;IACpBC,SAAS,EAAE,IAAI;IACfC,oBAAoB,EAAE,KAAK;IAC3BC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE,KAAK;IACzBC,cAAc,EAAEC,SAAS;IACzBC,YAAY,EAAE;MACZC,0BAA0B,EAAE,KAAK;MACjCC,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE,IAAI;MACzBC,qBAAqB,EAAE,KAAK;MAC5BC,qBAAqB,EAAE;IACzB,CAAC;IACDC,sBAAsB,EAAE;MACtBC,mBAAmB,EAAE;IACvB,CAAC;IACD;IACAC,6BAA6B,EAAET,SAAS;IACxCU,wBAAwB,EAAE,KAAK;IAC/BC,wBAAwB,EAAE,IAAI;IAC9BC,6BAA6B,EAAE,IAAI;IACnCC,qCAAqC,EAAE,CAAC,CAAE;EAC5C;AACF,CAAC"}
1
+ {"version":3,"names":["_common","require","_default","exports","default","meetings","deviceType","WEB","mediaSettings","pstn","reconnection","enabled","autoRejoin","detection","iceReconnectionTimeout","maxRejoinAttempts","stats","enableStatsAnalyzer","autoDowngradeEnabled","interval","analyzerInterval","historyMax","videoPacketLossRatioThreshold","rttThreshold","jitterThreshold","metrics","clientName","clientType","subClientType","mqaMetricsInterval","autoSendMQA","logging","enable","verboseEvents","resolution","maxWidth","maxHeight","idealWidth","idealHeight","screenResolution","bandwidth","audio","video","startBitrate","screenFrameRate","videoShareFrameRate","aspectRatio","autoUploadLogs","enableRtx","receiveTranscription","enableExtmap","enableAutomaticLLM","installedOrgID","undefined","experimental","enableMediaNegotiatedEvent","enableUnifiedMeetings","enableAdhocMeetings","enableTcpReachability","enableTlsReachability","degradationPreferences","maxMacroblocksLimit","iceCandidatesGatheringTimeout","backendIpv6NativeSupport","enableReachabilityChecks","reachabilityGetClusterTimeout","logUploadIntervalMultiplicationFactor","stopIceGatheringAfterFirstRelayCandidate","enableAudioTwccForMultistream"],"sources":["config.ts"],"sourcesContent":["// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nexport default {\n // TODO: this needs to be defaulted\n // to JS_SDK and clients set it to WEB or others\n // see https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-73167\n meetings: {\n deviceType: deviceType.WEB,\n mediaSettings: {\n pstn: false,\n },\n reconnection: {\n enabled: false,\n autoRejoin: true,\n detection: true,\n // Timeout duration to wait for ICE to reconnect if a disconnect is received.\n iceReconnectionTimeout: 10000,\n // Amount of times attempting to rejoin a meeting during reconnect\n maxRejoinAttempts: 3,\n },\n stats: {\n // Enable the webrtc stats analyzer that emits quality degradation events\n enableStatsAnalyzer: true,\n // Enable the auto downgrade video quality feature\n autoDowngradeEnabled: false,\n // 1 second intervals to collect stats data\n interval: 1000,\n // we just want to analyze data every 5 sec interval\n analyzerInterval: 5000,\n // hold the last 2 minute of a calls data\n historyMax: 120,\n // Once packet loss hits this ratio, the video will downgrade\n videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received\n rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n },\n metrics: {\n // change to your client name else data will be muddled\n // you do not need a specific format, and you do not need to register it\n clientName: 'WEBEX_JS_SDK',\n // TODO: for now this line has to be whitelisted, which is problematic for third party\n clientType: 'WEBEX_SDK',\n // Stores the sub client type used when sending metrics\n subClientType: 'WEB_APP',\n // send average values MQA in 60 second intervals\n mqaMetricsInterval: 60000,\n // send to cisco internal MQA data automatically\n // we already send CA\n autoSendMQA: true,\n },\n logging: {\n enable: true,\n verboseEvents: true,\n },\n resolution: {\n maxWidth: 1280,\n maxHeight: 720,\n idealWidth: 1280,\n idealHeight: 720,\n },\n screenResolution: {\n maxWidth: 1920,\n maxHeight: 1080,\n idealWidth: 1920,\n idealHeight: 1080,\n },\n bandwidth: {\n // please note, these are the maximum bandwidth values\n // the server supports, minimums have to be tested\n audio: 64000,\n video: 4000000,\n startBitrate: 2000,\n },\n screenFrameRate: 10,\n videoShareFrameRate: 30,\n aspectRatio: 1.7695852534562213,\n // When enabled, as calls are ended, it will upload the SDK logs and correlate them\n autoUploadLogs: true,\n enableRtx: true,\n receiveTranscription: false,\n enableExtmap: false,\n enableAutomaticLLM: false,\n installedOrgID: undefined,\n experimental: {\n enableMediaNegotiatedEvent: false,\n enableUnifiedMeetings: true,\n enableAdhocMeetings: true,\n enableTcpReachability: false,\n enableTlsReachability: false,\n },\n degradationPreferences: {\n maxMacroblocksLimit: 8192,\n },\n // This only applies to non-multistream meetings\n iceCandidatesGatheringTimeout: undefined,\n backendIpv6NativeSupport: false,\n enableReachabilityChecks: true,\n reachabilityGetClusterTimeout: 5000,\n logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1\n stopIceGatheringAfterFirstRelayCandidate: false,\n enableAudioTwccForMultistream: false,\n },\n};\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AADA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGe;EACb;EACA;EACA;EACAC,QAAQ,EAAE;IACRC,UAAU,EAAEA,kBAAU,CAACC,GAAG;IAC1BC,aAAa,EAAE;MACbC,IAAI,EAAE;IACR,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,IAAI;MACf;MACAC,sBAAsB,EAAE,KAAK;MAC7B;MACAC,iBAAiB,EAAE;IACrB,CAAC;IACDC,KAAK,EAAE;MACL;MACAC,mBAAmB,EAAE,IAAI;MACzB;MACAC,oBAAoB,EAAE,KAAK;MAC3B;MACAC,QAAQ,EAAE,IAAI;MACd;MACAC,gBAAgB,EAAE,IAAI;MACtB;MACAC,UAAU,EAAE,GAAG;MACf;MACAC,6BAA6B,EAAE,CAAC;MAAE;MAClCC,YAAY,EAAE,GAAG;MAAE;MACnBC,eAAe,EAAE,GAAG,CAAE;IACxB,CAAC;;IACDC,OAAO,EAAE;MACP;MACA;MACAC,UAAU,EAAE,cAAc;MAC1B;MACAC,UAAU,EAAE,WAAW;MACvB;MACAC,aAAa,EAAE,SAAS;MACxB;MACAC,kBAAkB,EAAE,KAAK;MACzB;MACA;MACAC,WAAW,EAAE;IACf,CAAC;IACDC,OAAO,EAAE;MACPC,MAAM,EAAE,IAAI;MACZC,aAAa,EAAE;IACjB,CAAC;IACDC,UAAU,EAAE;MACVC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDC,gBAAgB,EAAE;MAChBJ,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDE,SAAS,EAAE;MACT;MACA;MACAC,KAAK,EAAE,KAAK;MACZC,KAAK,EAAE,OAAO;MACdC,YAAY,EAAE;IAChB,CAAC;IACDC,eAAe,EAAE,EAAE;IACnBC,mBAAmB,EAAE,EAAE;IACvBC,WAAW,EAAE,kBAAkB;IAC/B;IACAC,cAAc,EAAE,IAAI;IACpBC,SAAS,EAAE,IAAI;IACfC,oBAAoB,EAAE,KAAK;IAC3BC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE,KAAK;IACzBC,cAAc,EAAEC,SAAS;IACzBC,YAAY,EAAE;MACZC,0BAA0B,EAAE,KAAK;MACjCC,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE,IAAI;MACzBC,qBAAqB,EAAE,KAAK;MAC5BC,qBAAqB,EAAE;IACzB,CAAC;IACDC,sBAAsB,EAAE;MACtBC,mBAAmB,EAAE;IACvB,CAAC;IACD;IACAC,6BAA6B,EAAET,SAAS;IACxCU,wBAAwB,EAAE,KAAK;IAC/BC,wBAAwB,EAAE,IAAI;IAC9BC,6BAA6B,EAAE,IAAI;IACnCC,qCAAqC,EAAE,CAAC;IAAE;IAC1CC,wCAAwC,EAAE,KAAK;IAC/CC,6BAA6B,EAAE;EACjC;AACF,CAAC"}