@webex/plugin-meetings 3.8.1 → 3.9.0-webinar5k.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 (296) hide show
  1. package/README.md +26 -13
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/constants.js +16 -3
  5. package/dist/constants.js.map +1 -1
  6. package/dist/controls-options-manager/enums.js +1 -0
  7. package/dist/controls-options-manager/enums.js.map +1 -1
  8. package/dist/controls-options-manager/types.js.map +1 -1
  9. package/dist/controls-options-manager/util.js +26 -0
  10. package/dist/controls-options-manager/util.js.map +1 -1
  11. package/dist/hashTree/constants.js +23 -0
  12. package/dist/hashTree/constants.js.map +1 -0
  13. package/dist/hashTree/hashTree.js +516 -0
  14. package/dist/hashTree/hashTree.js.map +1 -0
  15. package/dist/hashTree/hashTreeParser.js +521 -0
  16. package/dist/hashTree/hashTreeParser.js.map +1 -0
  17. package/dist/interpretation/index.js +1 -1
  18. package/dist/interpretation/siLanguage.js +1 -1
  19. package/dist/locus-info/controlsUtils.js +11 -3
  20. package/dist/locus-info/controlsUtils.js.map +1 -1
  21. package/dist/locus-info/index.js +331 -59
  22. package/dist/locus-info/index.js.map +1 -1
  23. package/dist/media/index.js +2 -2
  24. package/dist/media/index.js.map +1 -1
  25. package/dist/meeting/brbState.js +17 -14
  26. package/dist/meeting/brbState.js.map +1 -1
  27. package/dist/meeting/in-meeting-actions.js +5 -1
  28. package/dist/meeting/in-meeting-actions.js.map +1 -1
  29. package/dist/meeting/index.js +264 -125
  30. package/dist/meeting/index.js.map +1 -1
  31. package/dist/meeting/muteState.js +2 -5
  32. package/dist/meeting/muteState.js.map +1 -1
  33. package/dist/meeting/request.js +19 -0
  34. package/dist/meeting/request.js.map +1 -1
  35. package/dist/meeting/request.type.js.map +1 -1
  36. package/dist/meeting/util.js +8 -11
  37. package/dist/meeting/util.js.map +1 -1
  38. package/dist/meetings/index.js +6 -2
  39. package/dist/meetings/index.js.map +1 -1
  40. package/dist/member/types.js.map +1 -1
  41. package/dist/members/collection.js +13 -0
  42. package/dist/members/collection.js.map +1 -1
  43. package/dist/members/index.js +44 -23
  44. package/dist/members/index.js.map +1 -1
  45. package/dist/members/request.js +3 -3
  46. package/dist/members/request.js.map +1 -1
  47. package/dist/members/util.js +18 -6
  48. package/dist/members/util.js.map +1 -1
  49. package/dist/metrics/constants.js +1 -0
  50. package/dist/metrics/constants.js.map +1 -1
  51. package/dist/multistream/sendSlotManager.js +32 -2
  52. package/dist/multistream/sendSlotManager.js.map +1 -1
  53. package/dist/reachability/index.js +5 -10
  54. package/dist/reachability/index.js.map +1 -1
  55. package/dist/types/constants.d.ts +12 -0
  56. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  57. package/dist/types/controls-options-manager/types.d.ts +4 -1
  58. package/dist/types/hashTree/constants.d.ts +8 -0
  59. package/dist/types/hashTree/hashTree.d.ts +128 -0
  60. package/dist/types/hashTree/hashTreeParser.d.ts +152 -0
  61. package/dist/types/locus-info/index.d.ts +93 -3
  62. package/dist/types/meeting/brbState.d.ts +0 -1
  63. package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
  64. package/dist/types/meeting/index.d.ts +36 -3
  65. package/dist/types/meeting/request.d.ts +9 -1
  66. package/dist/types/meeting/request.type.d.ts +74 -0
  67. package/dist/types/meeting/util.d.ts +3 -3
  68. package/dist/types/member/types.d.ts +1 -0
  69. package/dist/types/members/collection.d.ts +6 -0
  70. package/dist/types/members/index.d.ts +15 -3
  71. package/dist/types/members/request.d.ts +1 -1
  72. package/dist/types/members/util.d.ts +5 -2
  73. package/dist/types/metrics/constants.d.ts +1 -0
  74. package/dist/types/multistream/sendSlotManager.d.ts +16 -0
  75. package/dist/types/reachability/index.d.ts +2 -2
  76. package/dist/webinar/index.js +1 -1
  77. package/package.json +26 -25
  78. package/src/constants.ts +16 -0
  79. package/src/controls-options-manager/enums.ts +1 -0
  80. package/src/controls-options-manager/types.ts +6 -1
  81. package/src/controls-options-manager/util.ts +31 -0
  82. package/src/hashTree/constants.ts +12 -0
  83. package/src/hashTree/hashTree.ts +460 -0
  84. package/src/hashTree/hashTreeParser.ts +556 -0
  85. package/src/locus-info/controlsUtils.ts +15 -0
  86. package/src/locus-info/index.ts +434 -58
  87. package/src/media/index.ts +2 -2
  88. package/src/meeting/brbState.ts +13 -9
  89. package/src/meeting/in-meeting-actions.ts +8 -0
  90. package/src/meeting/index.ts +193 -39
  91. package/src/meeting/muteState.ts +2 -6
  92. package/src/meeting/request.ts +16 -0
  93. package/src/meeting/request.type.ts +64 -0
  94. package/src/meeting/util.ts +17 -20
  95. package/src/meetings/index.ts +17 -3
  96. package/src/member/types.ts +1 -0
  97. package/src/members/collection.ts +11 -0
  98. package/src/members/index.ts +33 -7
  99. package/src/members/request.ts +2 -2
  100. package/src/members/util.ts +14 -3
  101. package/src/metrics/constants.ts +1 -0
  102. package/src/multistream/sendSlotManager.ts +34 -2
  103. package/src/reachability/index.ts +5 -13
  104. package/test/unit/spec/controls-options-manager/util.js +58 -0
  105. package/test/unit/spec/hashTree/hashTree.ts +394 -0
  106. package/test/unit/spec/hashTree/hashTreeParser.ts +156 -0
  107. package/test/unit/spec/locus-info/controlsUtils.js +52 -0
  108. package/test/unit/spec/locus-info/index.js +547 -54
  109. package/test/unit/spec/media/index.ts +107 -0
  110. package/test/unit/spec/meeting/brbState.ts +23 -4
  111. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  112. package/test/unit/spec/meeting/index.js +647 -46
  113. package/test/unit/spec/meeting/request.js +71 -0
  114. package/test/unit/spec/members/index.js +33 -10
  115. package/test/unit/spec/members/request.js +2 -2
  116. package/test/unit/spec/members/utils.js +27 -7
  117. package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
  118. package/test/unit/spec/reachability/index.ts +2 -6
  119. package/dist/annotation/annotation.types.d.ts +0 -42
  120. package/dist/annotation/constants.d.ts +0 -31
  121. package/dist/annotation/index.d.ts +0 -117
  122. package/dist/breakouts/breakout.d.ts +0 -8
  123. package/dist/breakouts/collection.d.ts +0 -5
  124. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  125. package/dist/breakouts/events.d.ts +0 -8
  126. package/dist/breakouts/index.d.ts +0 -5
  127. package/dist/breakouts/request.d.ts +0 -22
  128. package/dist/breakouts/utils.d.ts +0 -15
  129. package/dist/common/browser-detection.d.ts +0 -9
  130. package/dist/common/collection.d.ts +0 -48
  131. package/dist/common/config.d.ts +0 -2
  132. package/dist/common/errors/captcha-error.d.ts +0 -15
  133. package/dist/common/errors/intent-to-join.d.ts +0 -16
  134. package/dist/common/errors/join-meeting.d.ts +0 -17
  135. package/dist/common/errors/media.d.ts +0 -15
  136. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  137. package/dist/common/errors/parameter.d.ts +0 -15
  138. package/dist/common/errors/password-error.d.ts +0 -15
  139. package/dist/common/errors/permission.d.ts +0 -14
  140. package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
  141. package/dist/common/errors/reclaim-host-role-error.js +0 -158
  142. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  143. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  144. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  145. package/dist/common/errors/reconnection-in-progress.js +0 -35
  146. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  147. package/dist/common/errors/reconnection.d.ts +0 -15
  148. package/dist/common/errors/stats.d.ts +0 -15
  149. package/dist/common/errors/webex-errors.d.ts +0 -81
  150. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  151. package/dist/common/events/events-scope.d.ts +0 -17
  152. package/dist/common/events/events.d.ts +0 -12
  153. package/dist/common/events/trigger-proxy.d.ts +0 -2
  154. package/dist/common/events/util.d.ts +0 -2
  155. package/dist/common/logs/logger-config.d.ts +0 -2
  156. package/dist/common/logs/logger-proxy.d.ts +0 -2
  157. package/dist/common/logs/request.d.ts +0 -34
  158. package/dist/common/queue.d.ts +0 -32
  159. package/dist/config.d.ts +0 -73
  160. package/dist/constants.d.ts +0 -952
  161. package/dist/controls-options-manager/constants.d.ts +0 -4
  162. package/dist/controls-options-manager/enums.d.ts +0 -5
  163. package/dist/controls-options-manager/index.d.ts +0 -120
  164. package/dist/controls-options-manager/types.d.ts +0 -43
  165. package/dist/controls-options-manager/util.d.ts +0 -7
  166. package/dist/index.d.ts +0 -4
  167. package/dist/interceptors/index.d.ts +0 -2
  168. package/dist/interceptors/locusRetry.d.ts +0 -27
  169. package/dist/interpretation/collection.d.ts +0 -5
  170. package/dist/interpretation/index.d.ts +0 -5
  171. package/dist/interpretation/siLanguage.d.ts +0 -5
  172. package/dist/locus-info/controlsUtils.d.ts +0 -2
  173. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  174. package/dist/locus-info/fullState.d.ts +0 -2
  175. package/dist/locus-info/hostUtils.d.ts +0 -2
  176. package/dist/locus-info/index.d.ts +0 -269
  177. package/dist/locus-info/infoUtils.d.ts +0 -2
  178. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  179. package/dist/locus-info/parser.d.ts +0 -212
  180. package/dist/locus-info/selfUtils.d.ts +0 -2
  181. package/dist/media/index.d.ts +0 -32
  182. package/dist/media/properties.d.ts +0 -108
  183. package/dist/media/util.d.ts +0 -2
  184. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  185. package/dist/mediaQualityMetrics/config.js +0 -513
  186. package/dist/mediaQualityMetrics/config.js.map +0 -1
  187. package/dist/meeting/effectsState.d.ts +0 -42
  188. package/dist/meeting/effectsState.js +0 -260
  189. package/dist/meeting/effectsState.js.map +0 -1
  190. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  191. package/dist/meeting/index.d.ts +0 -1622
  192. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  193. package/dist/meeting/muteState.d.ts +0 -116
  194. package/dist/meeting/request.d.ts +0 -257
  195. package/dist/meeting/request.type.d.ts +0 -11
  196. package/dist/meeting/state.d.ts +0 -9
  197. package/dist/meeting/util.d.ts +0 -2
  198. package/dist/meeting/voicea-meeting.d.ts +0 -16
  199. package/dist/meeting-info/collection.d.ts +0 -20
  200. package/dist/meeting-info/index.d.ts +0 -57
  201. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  202. package/dist/meeting-info/request.d.ts +0 -22
  203. package/dist/meeting-info/util.d.ts +0 -2
  204. package/dist/meeting-info/utilv2.d.ts +0 -2
  205. package/dist/meetings/collection.d.ts +0 -23
  206. package/dist/meetings/index.d.ts +0 -296
  207. package/dist/meetings/meetings.types.d.ts +0 -4
  208. package/dist/meetings/request.d.ts +0 -27
  209. package/dist/meetings/util.d.ts +0 -18
  210. package/dist/member/index.d.ts +0 -148
  211. package/dist/member/member.types.d.ts +0 -11
  212. package/dist/member/member.types.js +0 -18
  213. package/dist/member/member.types.js.map +0 -1
  214. package/dist/member/types.d.ts +0 -32
  215. package/dist/member/util.d.ts +0 -2
  216. package/dist/members/collection.d.ts +0 -24
  217. package/dist/members/index.d.ts +0 -308
  218. package/dist/members/request.d.ts +0 -58
  219. package/dist/members/types.d.ts +0 -25
  220. package/dist/members/util.d.ts +0 -2
  221. package/dist/metrics/config.d.ts +0 -169
  222. package/dist/metrics/config.js +0 -289
  223. package/dist/metrics/config.js.map +0 -1
  224. package/dist/metrics/constants.d.ts +0 -59
  225. package/dist/metrics/index.d.ts +0 -152
  226. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  227. package/dist/multistream/receiveSlot.d.ts +0 -68
  228. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  229. package/dist/multistream/remoteMedia.d.ts +0 -72
  230. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  231. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  232. package/dist/multistream/sendSlotManager.d.ts +0 -69
  233. package/dist/networkQualityMonitor/index.d.ts +0 -70
  234. package/dist/networkQualityMonitor/index.js +0 -226
  235. package/dist/networkQualityMonitor/index.js.map +0 -1
  236. package/dist/peer-connection-manager/index.d.ts +0 -6
  237. package/dist/peer-connection-manager/index.js +0 -671
  238. package/dist/peer-connection-manager/index.js.map +0 -1
  239. package/dist/peer-connection-manager/util.d.ts +0 -6
  240. package/dist/peer-connection-manager/util.js +0 -110
  241. package/dist/peer-connection-manager/util.js.map +0 -1
  242. package/dist/personal-meeting-room/index.d.ts +0 -47
  243. package/dist/personal-meeting-room/request.d.ts +0 -14
  244. package/dist/personal-meeting-room/util.d.ts +0 -2
  245. package/dist/reachability/clusterReachability.d.ts +0 -109
  246. package/dist/reachability/index.d.ts +0 -139
  247. package/dist/reachability/request.d.ts +0 -35
  248. package/dist/reachability/util.d.ts +0 -8
  249. package/dist/reactions/constants.d.ts +0 -3
  250. package/dist/reactions/reactions.d.ts +0 -4
  251. package/dist/reactions/reactions.type.d.ts +0 -32
  252. package/dist/reconnection-manager/index.d.ts +0 -112
  253. package/dist/recording-controller/enums.d.ts +0 -7
  254. package/dist/recording-controller/index.d.ts +0 -193
  255. package/dist/recording-controller/util.d.ts +0 -13
  256. package/dist/roap/collection.d.ts +0 -10
  257. package/dist/roap/collection.js +0 -63
  258. package/dist/roap/collection.js.map +0 -1
  259. package/dist/roap/handler.d.ts +0 -47
  260. package/dist/roap/handler.js +0 -279
  261. package/dist/roap/handler.js.map +0 -1
  262. package/dist/roap/index.d.ts +0 -116
  263. package/dist/roap/request.d.ts +0 -35
  264. package/dist/roap/state.d.ts +0 -9
  265. package/dist/roap/state.js +0 -127
  266. package/dist/roap/state.js.map +0 -1
  267. package/dist/roap/turnDiscovery.d.ts +0 -81
  268. package/dist/roap/util.d.ts +0 -2
  269. package/dist/roap/util.js +0 -76
  270. package/dist/roap/util.js.map +0 -1
  271. package/dist/rtcMetrics/constants.d.ts +0 -4
  272. package/dist/rtcMetrics/constants.js +0 -11
  273. package/dist/rtcMetrics/constants.js.map +0 -1
  274. package/dist/rtcMetrics/index.d.ts +0 -61
  275. package/dist/rtcMetrics/index.js +0 -197
  276. package/dist/rtcMetrics/index.js.map +0 -1
  277. package/dist/statsAnalyzer/global.d.ts +0 -118
  278. package/dist/statsAnalyzer/global.js +0 -127
  279. package/dist/statsAnalyzer/global.js.map +0 -1
  280. package/dist/statsAnalyzer/index.d.ts +0 -193
  281. package/dist/statsAnalyzer/index.js +0 -1019
  282. package/dist/statsAnalyzer/index.js.map +0 -1
  283. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  284. package/dist/statsAnalyzer/mqaUtil.js +0 -181
  285. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  286. package/dist/transcription/index.d.ts +0 -64
  287. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  288. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  289. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  290. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  291. package/dist/types/rtcMetrics/index.d.ts +0 -71
  292. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  293. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  294. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  295. package/dist/webinar/collection.d.ts +0 -16
  296. package/dist/webinar/index.d.ts +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lodash","require","_hashTree","_interopRequireDefault","_loggerProxy","_constants","_constants2","ownKeys","e","r","t","_Object$keys3","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createForOfIteratorHelper","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray2","_unsupportedIterableToArray","i","F","s","n","done","value","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ObjectType","exports","participant","self","locus","LocusInfoUpdateType","OBJECTS_UPDATED","MEETING_ENDED","HashTreeParser","options","_classCallCheck2","_options$initialLocus","initialLocus","dataSets","debugId","webexRequest","locusInfoUpdateCallback","leafData","analyzeLocusHtMeta","_iterator","_step","dataSet","leafCount","hashTree","HashTree","_createClass2","key","findAndStoreMetaData","currentLocusPart","_typeof2","htMeta","dataSetNames","_currentLocusPart$htM","elementId","type","id","version","leafInfo","_iterator2","_step2","dataSetName","_isArray","_iterator3","_step3","item","_i","_Object$keys","_keys","hasOwnProperty","isEndMessage","message","mainDataSet","find","toLowerCase","DataSetNames","MAIN","root","EMPTY_HASH","handleRootHashHeartBeatMessage","_this","LoggerProxy","logger","info","concat","_stringify","map","_ref","runSyncAlgorithm","handleLocusUpdate","update","_this2","warn","putItems","handleMessage","_this3","stopAllTimers","updatedObjects","locusStateElementsForThisSet","locusStateElements","object","includes","appliedChangesList","updateItems","data","operation","zip","_ref2","_ref3","_slicedToArray2","changeApplied","idleMs","backoff","maxMs","exponent","getWeightedBackoffTime","randomValue","Math","random","round","pow","receivedDataSet","_this4","resize","ourCurrentRootHash","getRootHash","delay","timer","clearTimeout","setTimeout","_asyncToGenerator2","_regenerator","mark","_callee","rootHash","mismatchedLeavesData","receivedHashes","mismatchedLeaveIndexes","wrap","_callee$","_context","prev","undefined","getHashesFromLocus","sent","t0","statusCode","abrupt","diffHashes","index","getLeafData","sendSyncRequestToLocus","stop","_values","_this5","url","method","HTTP_VERBS","GET","uri","then","response","_response$body","hashes","body","Error","catch","error","_this6","leafDataEntries","leafIndex","_parseInt2","elementIds","POST","resp","_resp$body","objects","_default"],"sources":["hashTreeParser.ts"],"sourcesContent":["import {zip} from 'lodash';\nimport HashTree, {LeafDataItem} from './hashTree';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {Enum, HTTP_VERBS} from '../constants';\nimport {DataSetNames, EMPTY_HASH} from './constants';\n\nexport interface DataSet {\n url: string;\n root: string;\n version: number;\n leafCount: number;\n name: string;\n idleMs: number;\n backoff: {\n maxMs: number;\n exponent: number;\n };\n}\n\n// todo: Locus docs have now more types like CONTROL_ENTRY, EMBEDDED_APP, FULL_STATE, INFO, MEDIA_SHARE - need to add support for them once Locus implements them\nexport const ObjectType = {\n participant: 'participant',\n self: 'self',\n locus: 'locus',\n} as const;\n\nexport type ObjectType = Enum<typeof ObjectType>;\n\nexport interface HtMeta {\n elementId: {\n type: ObjectType;\n id: number;\n version: number;\n };\n dataSetNames: string[];\n}\nexport interface HashTreeObject {\n htMeta: HtMeta;\n data: Record<string, any>;\n}\n\nexport interface RootHashMessage {\n dataSets: Array<DataSet>;\n}\nexport interface HashTreeMessage {\n dataSets: Array<DataSet>;\n locusStateElements?: Array<HashTreeObject>;\n locusSessionId?: string;\n locusUrl?: string;\n}\n\ninterface InternalDataSet extends DataSet {\n hashTree: HashTree;\n timer?: ReturnType<typeof setTimeout>;\n}\n\ntype WebexRequestMethod = (options: Record<string, any>) => Promise<any>;\n\nexport const LocusInfoUpdateType = {\n OBJECTS_UPDATED: 'OBJECTS_UPDATED',\n MEETING_ENDED: 'MEETING_ENDED',\n} as const;\n\nexport type LocusInfoUpdateType = Enum<typeof LocusInfoUpdateType>;\nexport type LocusInfoUpdateCallback = (\n updateType: LocusInfoUpdateType,\n data?: {updatedObjects: HashTreeObject[]}\n) => void;\n/**\n * Parses hash tree eventing locus data\n */\nclass HashTreeParser {\n dataSets: Record<string, InternalDataSet> = {};\n webexRequest: WebexRequestMethod;\n locusInfoUpdateCallback: LocusInfoUpdateCallback;\n debugId: string;\n\n /**\n * Constructor for HashTreeParser\n * @param {Object} options\n * @param {Object} options.initialLocus The initial locus data containing the hash tree information\n */\n constructor(options: {\n initialLocus: {\n dataSets: Array<DataSet>;\n locus: any;\n };\n webexRequest: WebexRequestMethod;\n locusInfoUpdateCallback: LocusInfoUpdateCallback;\n debugId: string;\n }) {\n const {dataSets, locus} = options.initialLocus; // extract dataSets from initialLocus\n\n this.debugId = options.debugId;\n this.webexRequest = options.webexRequest;\n this.locusInfoUpdateCallback = options.locusInfoUpdateCallback;\n\n // object mapping dataset names to arrays of leaf data\n const leafData = this.analyzeLocusHtMeta(locus);\n\n for (const dataSet of dataSets) {\n const {name, leafCount} = dataSet;\n\n const hashTree = new HashTree(leafData[name] || [], leafCount);\n\n this.dataSets[name] = {\n ...dataSet,\n hashTree,\n };\n }\n }\n\n /**\n * Each dataset exists at a different place in the dto\n * iterate recursively over the locus and if it has a htMeta key,\n * create an object with the type, id and version and add it to the appropriate leafData array\n *\n * @param {any} locus - The current part of the locus being processed\n * @returns {any} - An object mapping dataset names to arrays of leaf data\n */\n private analyzeLocusHtMeta(locus: any) {\n // object mapping dataset names to arrays of leaf data\n const leafData: Record<string, Array<{type: string; id: number; version: number}>> = {};\n\n const findAndStoreMetaData = (currentLocusPart: any) => {\n if (typeof currentLocusPart !== 'object' || currentLocusPart === null) {\n return;\n }\n\n if (currentLocusPart.htMeta && currentLocusPart.htMeta.dataSetNames) {\n const {type, id, version} = currentLocusPart.htMeta.elementId;\n const {dataSetNames} = currentLocusPart.htMeta;\n const leafInfo = {type, id, version};\n\n for (const dataSetName of dataSetNames) {\n if (!leafData[dataSetName]) {\n leafData[dataSetName] = [];\n }\n leafData[dataSetName].push(leafInfo);\n }\n }\n\n if (Array.isArray(currentLocusPart)) {\n for (const item of currentLocusPart) {\n findAndStoreMetaData(item);\n }\n } else {\n for (const key of Object.keys(currentLocusPart)) {\n if (Object.prototype.hasOwnProperty.call(currentLocusPart, key)) {\n findAndStoreMetaData(currentLocusPart[key]);\n }\n }\n }\n };\n\n findAndStoreMetaData(locus);\n\n return leafData;\n }\n\n /**\n * Checks if the provided hash tree message indicates the end of the meeting and that there won't be any more updates.\n *\n * @param {HashTreeMessage} message - The hash tree message to check\n * @returns {boolean} - Returns true if the message indicates the end of the meeting, false otherwise\n */\n private isEndMessage(message: HashTreeMessage) {\n const mainDataSet = message.dataSets.find(\n (dataSet) => dataSet.name.toLowerCase() === DataSetNames.MAIN\n );\n\n if (\n mainDataSet &&\n mainDataSet.leafCount === 1 &&\n mainDataSet.root === EMPTY_HASH &&\n this.dataSets[DataSetNames.MAIN].version < mainDataSet.version\n ) {\n // this is a special way for Locus to indicate that this meeting has ended\n return true;\n }\n\n return false;\n }\n\n /**\n * Handles the root hash heartbeat message\n *\n * @param {RootHashMessage} message - The root hash heartbeat message\n * @returns {void}\n */\n handleRootHashHeartBeatMessage(message: RootHashMessage): void {\n const {dataSets} = message;\n\n LoggerProxy.logger.info(\n `HashTreeParser#handleRootHashMessage --> ${\n this.debugId\n } Received heartbeat root hash message with data sets: ${JSON.stringify(\n dataSets.map(({name, root, leafCount, version}) => ({\n name,\n root,\n leafCount,\n version,\n }))\n )}`\n );\n dataSets.forEach((dataSet) => {\n this.runSyncAlgorithm(dataSet);\n });\n }\n\n /**\n * This method should be called when we receive a partial locus DTO that contains dataSets and htMeta information\n * It updates the hash trees with the new leaf data based on the received Locus\n *\n * @param {Object} update - The locus update containing data sets and locus information\n * @returns {void}\n */\n handleLocusUpdate(update: {dataSets?: Array<DataSet>; locus: any}): void {\n const {dataSets, locus} = update;\n\n if (!dataSets) {\n LoggerProxy.logger.warn(\n `HashTreeParser#handleLocusUpdate --> ${this.debugId} received hash tree update without dataSets, ignoring`\n );\n }\n\n const leafData = this.analyzeLocusHtMeta(locus);\n\n Object.keys(leafData).forEach((dataSetName) => {\n this.dataSets[dataSetName].hashTree.putItems(leafData[dataSetName]);\n });\n }\n\n /**\n * Handles incoming hash tree messages, updates the hash trees and calls locusInfoUpdateCallback\n *\n * @param {HashTreeMessage} message - The hash tree message containing data sets and objects to be processed\n * @returns {void}\n */\n handleMessage(message: HashTreeMessage): void {\n const {dataSets} = message;\n\n LoggerProxy.logger.info(\n `HashTreeParser#handleMessage --> ${this.debugId} received message:`,\n message\n );\n if (this.isEndMessage(message)) {\n LoggerProxy.logger.info(\n `HashTreeParser#handleMessage --> ${this.debugId} received END message`\n );\n this.stopAllTimers();\n this.locusInfoUpdateCallback(LocusInfoUpdateType.MEETING_ENDED);\n } else {\n const updatedObjects: HashTreeObject[] = [];\n\n dataSets.forEach((dataSet) => {\n if (this.dataSets[dataSet.name]) {\n const {hashTree} = this.dataSets[dataSet.name];\n\n if (hashTree) {\n const locusStateElementsForThisSet = message.locusStateElements.filter((object) =>\n object.htMeta.dataSetNames.includes(dataSet.name)\n );\n\n const appliedChangesList = hashTree.updateItems(\n locusStateElementsForThisSet.map((object) =>\n object.data\n ? {operation: 'update', item: object.htMeta.elementId}\n : {operation: 'remove', item: object.htMeta.elementId}\n )\n );\n\n zip(appliedChangesList, locusStateElementsForThisSet).forEach(\n ([changeApplied, object]) => {\n if (changeApplied) {\n // update the locus with the new object\n updatedObjects.push(object);\n }\n }\n );\n } else {\n LoggerProxy.logger.warn(\n `Locus-info:index#handleHashTreeMessage --> ${this.debugId} unsupported dataSet ${dataSet.name} received in hash tree message`\n );\n }\n\n // update our version of the dataSet\n if (this.dataSets[dataSet.name].version < dataSet.version) {\n this.dataSets[dataSet.name].version = dataSet.version;\n this.dataSets[dataSet.name].root = dataSet.root;\n this.dataSets[dataSet.name].idleMs = dataSet.idleMs;\n this.dataSets[dataSet.name].backoff = {\n maxMs: dataSet.backoff.maxMs,\n exponent: dataSet.backoff.exponent,\n };\n LoggerProxy.logger.info(\n `HashTreeParser#handleMessage --> ${this.debugId} updated \"${dataSet.name}\" to version=${dataSet.version}, root=${dataSet.root}`\n );\n }\n\n this.runSyncAlgorithm(dataSet);\n }\n });\n\n if (updatedObjects.length > 0) {\n this.locusInfoUpdateCallback(LocusInfoUpdateType.OBJECTS_UPDATED, {updatedObjects});\n } else {\n LoggerProxy.logger.info(\n `HashTreeParser#handleMessage --> ${this.debugId} No objects updated as a result of received message`\n );\n }\n }\n }\n\n /**\n * Calculates a weighted backoff time that should be used for syncs\n *\n * @param {Object} backoff - The backoff configuration containing maxMs and exponent\n * @returns {number} - A weighted backoff time based on the provided configuration, using algorithm supplied by Locus team\n */\n private getWeightedBackoffTime(backoff: {maxMs: number; exponent: number}): number {\n const {maxMs, exponent} = backoff;\n\n const randomValue = Math.random();\n\n return Math.round(randomValue ** exponent * maxMs);\n }\n\n /**\n * Runs the sync algorithm for the given data set.\n *\n * @param {DataSet} receivedDataSet - The data set to run the sync algorithm for.\n * @returns {void}\n */\n private runSyncAlgorithm(receivedDataSet: DataSet) {\n const dataSet = this.dataSets[receivedDataSet.name];\n\n if (!dataSet) {\n LoggerProxy.logger.warn(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} No data set found for ${receivedDataSet.name}, skipping sync algorithm`\n );\n\n return;\n }\n\n dataSet.hashTree.resize(receivedDataSet.leafCount);\n\n // temporary log for the workshop // todo: remove\n const ourCurrentRootHash = dataSet.hashTree.getRootHash();\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} dataSet=\"${dataSet.name}\" version=${dataSet.version} hashes before starting timer: ours=${ourCurrentRootHash} Locus=${dataSet.root}`\n );\n\n const delay = dataSet.idleMs + this.getWeightedBackoffTime(dataSet.backoff);\n\n if (delay > 0) {\n if (dataSet.timer) {\n clearTimeout(dataSet.timer);\n }\n\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} setting \"${dataSet.name}\" sync timer for ${delay}`\n );\n\n dataSet.timer = setTimeout(async () => {\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} Sync timer fired for \"${dataSet.name}\" data set`\n );\n\n dataSet.timer = undefined;\n\n const rootHash = dataSet.hashTree.getRootHash();\n\n if (dataSet.root !== rootHash) {\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} Root hash mismatch: received=${dataSet.root}, ours=${rootHash}, syncing data set \"${dataSet.name}\"`\n );\n\n const mismatchedLeavesData: Record<number, LeafDataItem[]> = {};\n\n if (dataSet.leafCount !== 1) {\n let receivedHashes;\n\n try {\n // request hashes from sender\n receivedHashes = await this.getHashesFromLocus(dataSet.name);\n } catch (error) {\n if (error.statusCode === 409) {\n // this is a leaf count mismatch, we should do nothing, just wait for another heartbeat message from Locus\n LoggerProxy.logger.info(\n `HashTreeParser#getHashesFromLocus --> ${this.debugId} Got 409 when fetching hashes for data set \"${dataSet.name}\": ${error.message}`\n );\n\n return;\n }\n throw error;\n }\n\n // identify mismatched leaves\n const mismatchedLeaveIndexes = dataSet.hashTree.diffHashes(receivedHashes);\n\n mismatchedLeaveIndexes.forEach((index) => {\n mismatchedLeavesData[index] = dataSet.hashTree.getLeafData(index);\n });\n } else {\n mismatchedLeavesData[0] = dataSet.hashTree.getLeafData(0);\n }\n // request sync for mismatched leaves\n if (Object.keys(mismatchedLeavesData).length > 0) {\n const updatedObjects = await this.sendSyncRequestToLocus(dataSet, mismatchedLeavesData);\n\n if (updatedObjects.length > 0) {\n this.locusInfoUpdateCallback(LocusInfoUpdateType.OBJECTS_UPDATED, {updatedObjects});\n }\n }\n } else {\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} \"${dataSet.name}\" root hash matching: ${rootHash}, version=${dataSet.version}`\n );\n }\n }, delay);\n } else {\n LoggerProxy.logger.info(\n `HashTreeParser#runSyncAlgorithm --> ${this.debugId} No delay for \"${dataSet.name}\" data set, skipping sync timer reset/setup`\n );\n }\n }\n\n /**\n * Stops all timers for the data sets to prevent any further sync attempts.\n * @returns {void}\n */\n stopAllTimers() {\n Object.values(this.dataSets).forEach((dataSet) => {\n if (dataSet.timer) {\n clearTimeout(dataSet.timer);\n dataSet.timer = undefined;\n }\n });\n }\n\n /**\n * Gets the current hashes from the locus for a specific data set.\n * @param {string} dataSetName\n * @returns {string[]}\n */\n private getHashesFromLocus(dataSetName: string) {\n LoggerProxy.logger.info(\n `HashTreeParser#getHashesFromLocus --> ${this.debugId} Requesting hashes for data set \"${dataSetName}\"`\n );\n\n const dataSet = this.dataSets[dataSetName];\n\n const url = `${dataSet.url}/hashtree`;\n\n return this.webexRequest({\n method: HTTP_VERBS.GET,\n uri: url,\n })\n .then((response) => {\n const hashes = response.body?.hashes;\n\n if (!hashes || !Array.isArray(hashes)) {\n LoggerProxy.logger.warn(\n `HashTreeParser#getHashesFromLocus --> ${this.debugId} Locus returned invalid hashes, response body=`,\n response.body\n );\n throw new Error(`Locus returned invalid hashes: ${hashes}`);\n }\n\n LoggerProxy.logger.info(\n `HashTreeParser#getHashesFromLocus --> ${\n this.debugId\n } Received hashes for data set \"${dataSetName}\": ${JSON.stringify(hashes)}`\n );\n\n return hashes;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `HashTreeParser#getHashesFromLocus --> ${this.debugId} Error ${error.statusCode} fetching hashes for data set \"${dataSetName}\":`,\n error\n );\n throw error;\n });\n }\n\n /**\n * Sends a sync request to Locus for the specified data set.\n *\n * @param {InternalDataSet} dataSet The data set to sync.\n * @param {Record<number, LeafDataItem[]>} mismatchedLeavesData The mismatched leaves data to include in the sync request.\n * @returns {Promise<HashTreeObject[]>}\n */\n private sendSyncRequestToLocus(\n dataSet: InternalDataSet,\n mismatchedLeavesData: Record<number, LeafDataItem[]>\n ): Promise<HashTreeObject[]> {\n LoggerProxy.logger.info(\n `HashTreeParser#sendSyncRequestToLocus --> ${this.debugId} Sending sync request for data set \"${dataSet.name}\"`\n );\n\n const url = `${dataSet.url}/sync`;\n const body = {\n dataSet: {\n name: dataSet.name,\n leafCount: dataSet.leafCount,\n root: dataSet.hashTree.getRootHash(), // todo: avoid recalculation\n },\n leafDataEntries: [],\n };\n\n Object.keys(mismatchedLeavesData).forEach((index) => {\n body.leafDataEntries.push({\n leafIndex: parseInt(index, 10),\n elementIds: mismatchedLeavesData[index],\n });\n });\n\n return this.webexRequest({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n })\n .then((resp) => {\n LoggerProxy.logger.info(\n `HashTreeParser#sendSyncRequestToLocus --> ${this.debugId} Sync request succeeded for \"${dataSet.name}\"`\n );\n\n // todo: handle response body (it may be there or not)\n if (resp.statusCode === 202) {\n LoggerProxy.logger.info(\n `HashTreeParser#sendSyncRequestToLocus --> ${this.debugId} Got 202 for sync request for data set \"${dataSet.name}\", data should arrive via messages`\n );\n }\n const updatedObjects = resp.body?.objects || [];\n\n if (updatedObjects.length !== body.leafDataEntries.length) {\n LoggerProxy.logger.info(\n `HashTreeParser#sendSyncRequestToLocus --> ${this.debugId} Sync request sent for \"${dataSet.name}\" with ${body.leafDataEntries.length} entries, but got ${updatedObjects.length} objects in response (statusCode=${resp.statusCode})`\n );\n }\n\n return updatedObjects;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `HashTreeParser#sendSyncRequestToLocus --> ${this.debugId} Error ${error.statusCode} sending sync request for data set \"${dataSet.name}\":`,\n error\n );\n throw error;\n });\n }\n}\n\nexport default HashTreeParser;\n"],"mappings":"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"}
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
373
373
  throw error;
374
374
  });
375
375
  },
376
- version: "3.8.1"
376
+ version: "3.9.0-webinar5k.1"
377
377
  });
378
378
  var _default = exports.default = SimultaneousInterpretation;
379
379
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.8.1"
21
+ version: "3.9.0-webinar5k.1"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -51,7 +51,8 @@ ControlsUtils.parse = function (controls) {
51
51
  if (controls && controls.transcribe) {
52
52
  parsedControls.transcribe = {
53
53
  transcribing: controls.transcribe.transcribing,
54
- caption: controls.transcribe.caption
54
+ caption: controls.transcribe.caption,
55
+ spokenLanguage: controls.transcribe.spokenLanguage
55
56
  };
56
57
  }
57
58
  if (controls && controls.manualCaptionControl) {
@@ -131,6 +132,11 @@ ControlsUtils.parse = function (controls) {
131
132
  enabled: controls.rdcControl.enabled
132
133
  };
133
134
  }
135
+ if (controls !== null && controls !== void 0 && controls.pollingQAControl) {
136
+ parsedControls.pollingQAControl = {
137
+ enabled: controls.pollingQAControl.enabled
138
+ };
139
+ }
134
140
  return parsedControls;
135
141
  };
136
142
 
@@ -141,7 +147,7 @@ ControlsUtils.parse = function (controls) {
141
147
  * @returns {Object} combination of state plus the changes
142
148
  */
143
149
  ControlsUtils.getControls = function (oldControls, newControls) {
144
- var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$viewTheParti2, _previous$viewThePart2, _current$viewTheParti3, _previous$viewThePart3, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _previous$manualCapti, _current$manualCaptio, _previous$manualCapti2, _current$manualCaptio2, _newControls$video, _previous$webcastCont, _current$webcastContr, _previous$meetingFull, _current$meetingFull, _previous$meetingFull2, _current$meetingFull2, _previous$practiceSes, _current$practiceSess, _current$annotationCo, _previous$annotationC, _current$rdcControl, _previous$rdcControl;
150
+ var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$viewTheParti2, _previous$viewThePart2, _current$viewTheParti3, _previous$viewThePart3, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _previous$transcribe3, _current$transcribe3, _previous$transcribe4, _current$transcribe4, _previous$manualCapti, _current$manualCaptio, _previous$manualCapti2, _current$manualCaptio2, _newControls$video, _previous$webcastCont, _current$webcastContr, _previous$meetingFull, _current$meetingFull, _previous$meetingFull2, _current$meetingFull2, _previous$practiceSes, _current$practiceSess, _current$annotationCo, _previous$annotationC, _current$rdcControl, _previous$rdcControl, _current$pollingQACon, _previous$pollingQACo;
145
151
  var previous = ControlsUtils.parse(oldControls);
146
152
  var current = ControlsUtils.parse(newControls);
147
153
  return {
@@ -170,6 +176,7 @@ ControlsUtils.getControls = function (oldControls, newControls) {
170
176
  (previous === null || previous === void 0 ? void 0 : (_previous$transcribe2 = previous.transcribe) === null || _previous$transcribe2 === void 0 ? void 0 : _previous$transcribe2.transcribing) || (current === null || current === void 0 ? void 0 : (_current$transcribe2 = current.transcribe) === null || _current$transcribe2 === void 0 ? void 0 : _current$transcribe2.transcribing)),
171
177
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
172
178
 
179
+ hasTranscribeSpokenLanguageChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe3 = previous.transcribe) === null || _previous$transcribe3 === void 0 ? void 0 : _previous$transcribe3.spokenLanguage, current === null || current === void 0 ? void 0 : (_current$transcribe3 = current.transcribe) === null || _current$transcribe3 === void 0 ? void 0 : _current$transcribe3.spokenLanguage) && !!(previous !== null && previous !== void 0 && (_previous$transcribe4 = previous.transcribe) !== null && _previous$transcribe4 !== void 0 && _previous$transcribe4.spokenLanguage || current !== null && current !== void 0 && (_current$transcribe4 = current.transcribe) !== null && _current$transcribe4 !== void 0 && _current$transcribe4.spokenLanguage),
173
180
  hasManualCaptionChanged: (current === null || current === void 0 ? void 0 : current.manualCaptionControl) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$manualCapti = previous.manualCaptionControl) === null || _previous$manualCapti === void 0 ? void 0 : _previous$manualCapti.enabled, current === null || current === void 0 ? void 0 : (_current$manualCaptio = current.manualCaptionControl) === null || _current$manualCaptio === void 0 ? void 0 : _current$manualCaptio.enabled) && ((previous === null || previous === void 0 ? void 0 : (_previous$manualCapti2 = previous.manualCaptionControl) === null || _previous$manualCapti2 === void 0 ? void 0 : _previous$manualCapti2.enabled) || (current === null || current === void 0 ? void 0 : (_current$manualCaptio2 = current.manualCaptionControl) === null || _current$manualCaptio2 === void 0 ? void 0 : _current$manualCaptio2.enabled)),
174
181
  hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone)),
175
182
  hasBreakoutChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),
@@ -180,7 +187,8 @@ ControlsUtils.getControls = function (oldControls, newControls) {
180
187
  hasPracticeSessionEnabledChanged: !(0, _lodash.isEqual)(!!(previous !== null && previous !== void 0 && (_previous$practiceSes = previous.practiceSession) !== null && _previous$practiceSes !== void 0 && _previous$practiceSes.enabled), !!(current !== null && current !== void 0 && (_current$practiceSess = current.practiceSession) !== null && _current$practiceSess !== void 0 && _current$practiceSess.enabled)),
181
188
  hasStageViewChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.videoLayout, current === null || current === void 0 ? void 0 : current.videoLayout),
182
189
  hasAnnotationControlChanged: (current === null || current === void 0 ? void 0 : (_current$annotationCo = current.annotationControl) === null || _current$annotationCo === void 0 ? void 0 : _current$annotationCo.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$annotationC = previous.annotationControl) === null || _previous$annotationC === void 0 ? void 0 : _previous$annotationC.enabled),
183
- hasRemoteDesktopControlChanged: (current === null || current === void 0 ? void 0 : (_current$rdcControl = current.rdcControl) === null || _current$rdcControl === void 0 ? void 0 : _current$rdcControl.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$rdcControl = previous.rdcControl) === null || _previous$rdcControl === void 0 ? void 0 : _previous$rdcControl.enabled)
190
+ hasRemoteDesktopControlChanged: (current === null || current === void 0 ? void 0 : (_current$rdcControl = current.rdcControl) === null || _current$rdcControl === void 0 ? void 0 : _current$rdcControl.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$rdcControl = previous.rdcControl) === null || _previous$rdcControl === void 0 ? void 0 : _previous$rdcControl.enabled),
191
+ hasPollingQAControlChanged: (current === null || current === void 0 ? void 0 : (_current$pollingQACon = current.pollingQAControl) === null || _current$pollingQACon === void 0 ? void 0 : _current$pollingQACon.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$pollingQACo = previous.pollingQAControl) === null || _previous$pollingQACo === void 0 ? void 0 : _previous$pollingQACo.enabled)
184
192
  }
185
193
  };
186
194
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_constants","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","ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","manualCaptionControl","enabled","entryExitTone","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","_controls$viewThePart","_controls$viewThePart2","_controls$viewThePart3","_controls$viewThePart4","_controls$viewThePart5","_controls$viewThePart6","panelistEnabled","attendeeCount","raiseHand","webcastControl","streaming","meetingFull","_controls$meetingFull","_controls$meetingFull2","_controls$meetingFull3","_controls$meetingFull4","meetingPanelistFull","practiceSession","annotationControl","rdcControl","getControls","oldControls","newControls","_current$muteOnEntry","_previous$muteOnEntry","_current$shareControl","_previous$shareContro","_current$disallowUnmu","_previous$disallowUnm","_current$reactions","_previous$reactions","_current$reactions2","_previous$reactions2","_current$viewTheParti","_previous$viewThePart","_current$viewTheParti2","_previous$viewThePart2","_current$viewTheParti3","_previous$viewThePart3","_current$raiseHand","_previous$raiseHand","_current$video","_previous$video","_previous$record","_previous$record2","_current$record","_previous$record3","_current$record2","_previous$record4","_current$record3","_previous$meetingCont","_current$meetingConta","_previous$transcribe","_current$transcribe","_previous$transcribe2","_current$transcribe2","_previous$manualCapti","_current$manualCaptio","_previous$manualCapti2","_current$manualCaptio2","_newControls$video","_previous$webcastCont","_current$webcastContr","_previous$meetingFull","_current$meetingFull","_previous$meetingFull2","_current$meetingFull2","_previous$practiceSes","_current$practiceSess","_current$annotationCo","_previous$annotationC","_current$rdcControl","_previous$rdcControl","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","isEqual","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasManualCaptionChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","hasWebcastChanged","hasMeetingFullChanged","hasPracticeSessionEnabledChanged","hasStageViewChanged","videoLayout","hasAnnotationControlChanged","hasRemoteDesktopControlChanged","isNeedReplaceMembers","_oldControls$breakout","_controls$breakout","_oldControls$breakout2","_controls$breakout2","groupId","sessionId","getSessionSwitchStatus","oldLocus","newLocus","_oldLocus$controls","_newLocus$controls","_oldLocus$self","_newLocus$participant","_newLocus$participant2","_newLocus$participant3","_newLocus$controls2","_newLocus$controls2$b","_newLocus$controls3","_newLocus$controls3$b","_newLocus$controls3$b2","status","isReturnToMain","isJoinToBreakout","needUseCache","self","isCreator","participants","state","MEETING_STATE","STATES","JOINED","sessionType","BREAKOUTS","SESSION_TYPES","MAIN","groups","BREAKOUT","isMainSessionDTO","locus","_locus$controls","_locus$controls$break","_default","exports"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS, MEETING_STATE} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n };\n }\n\n if (controls && controls.manualCaptionControl) {\n parsedControls.manualCaptionControl = {\n enabled: controls.manualCaptionControl.enabled,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {\n enabled: controls.viewTheParticipantList?.enabled ?? false,\n panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,\n attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,\n };\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n if (controls?.webcastControl) {\n parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};\n }\n\n if (controls?.meetingFull) {\n parsedControls.meetingFull = {\n meetingFull: controls.meetingFull?.meetingFull ?? false,\n meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,\n };\n }\n\n if (controls?.practiceSession) {\n parsedControls.practiceSession = {\n enabled: controls.practiceSession.enabled,\n };\n }\n\n if (controls?.annotationControl) {\n parsedControls.annotationControl = {\n enabled: controls.annotationControl.enabled,\n };\n }\n\n if (controls?.rdcControl) {\n parsedControls.rdcControl = {\n enabled: controls.rdcControl.enabled,\n };\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||\n current?.viewTheParticipantList?.panelistEnabled !==\n previous?.viewTheParticipantList?.panelistEnabled ||\n current?.viewTheParticipantList?.attendeeCount !==\n previous?.viewTheParticipantList?.attendeeCount,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasManualCaptionChanged:\n current?.manualCaptionControl &&\n !isEqual(previous?.manualCaptionControl?.enabled, current?.manualCaptionControl?.enabled) &&\n (previous?.manualCaptionControl?.enabled || current?.manualCaptionControl?.enabled),\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n\n hasWebcastChanged: !isEqual(\n previous?.webcastControl?.streaming,\n current?.webcastControl?.streaming\n ),\n\n hasMeetingFullChanged:\n !isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||\n !isEqual(\n previous?.meetingFull?.meetingPanelistFull,\n current?.meetingFull?.meetingPanelistFull\n ),\n\n hasPracticeSessionEnabledChanged: !isEqual(\n !!previous?.practiceSession?.enabled,\n !!current?.practiceSession?.enabled\n ),\n\n hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),\n\n hasAnnotationControlChanged:\n current?.annotationControl?.enabled !== previous?.annotationControl?.enabled,\n\n hasRemoteDesktopControlChanged:\n current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls?.breakout?.groupId !== controls?.breakout?.groupId ||\n oldControls?.breakout?.sessionId !== controls?.breakout?.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusInfo} oldLocus\n * @param {LocusInfo} newLocus\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldLocus: any, newLocus: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldLocus.controls?.breakout || !newLocus.controls?.breakout) {\n return status;\n }\n\n // It is used to fix the timing issue triggered when the creator leaves session to ensure that the member list is complete\n const needUseCache = !!(\n oldLocus.self?.isCreator &&\n newLocus.participants?.length === 1 &&\n newLocus.participants?.[0].isCreator &&\n newLocus.participants?.[0].state === MEETING_STATE.STATES.JOINED &&\n newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls?.breakout?.groups?.length\n );\n\n const isReturnToMain =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n\n status.isReturnToMain = needUseCache || isReturnToMain;\n status.isJoinToBreakout =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_constants","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","ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","spokenLanguage","manualCaptionControl","enabled","entryExitTone","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","_controls$viewThePart","_controls$viewThePart2","_controls$viewThePart3","_controls$viewThePart4","_controls$viewThePart5","_controls$viewThePart6","panelistEnabled","attendeeCount","raiseHand","webcastControl","streaming","meetingFull","_controls$meetingFull","_controls$meetingFull2","_controls$meetingFull3","_controls$meetingFull4","meetingPanelistFull","practiceSession","annotationControl","rdcControl","pollingQAControl","getControls","oldControls","newControls","_current$muteOnEntry","_previous$muteOnEntry","_current$shareControl","_previous$shareContro","_current$disallowUnmu","_previous$disallowUnm","_current$reactions","_previous$reactions","_current$reactions2","_previous$reactions2","_current$viewTheParti","_previous$viewThePart","_current$viewTheParti2","_previous$viewThePart2","_current$viewTheParti3","_previous$viewThePart3","_current$raiseHand","_previous$raiseHand","_current$video","_previous$video","_previous$record","_previous$record2","_current$record","_previous$record3","_current$record2","_previous$record4","_current$record3","_previous$meetingCont","_current$meetingConta","_previous$transcribe","_current$transcribe","_previous$transcribe2","_current$transcribe2","_previous$transcribe3","_current$transcribe3","_previous$transcribe4","_current$transcribe4","_previous$manualCapti","_current$manualCaptio","_previous$manualCapti2","_current$manualCaptio2","_newControls$video","_previous$webcastCont","_current$webcastContr","_previous$meetingFull","_current$meetingFull","_previous$meetingFull2","_current$meetingFull2","_previous$practiceSes","_current$practiceSess","_current$annotationCo","_previous$annotationC","_current$rdcControl","_previous$rdcControl","_current$pollingQACon","_previous$pollingQACo","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","isEqual","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasTranscribeSpokenLanguageChanged","hasManualCaptionChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","hasWebcastChanged","hasMeetingFullChanged","hasPracticeSessionEnabledChanged","hasStageViewChanged","videoLayout","hasAnnotationControlChanged","hasRemoteDesktopControlChanged","hasPollingQAControlChanged","isNeedReplaceMembers","_oldControls$breakout","_controls$breakout","_oldControls$breakout2","_controls$breakout2","groupId","sessionId","getSessionSwitchStatus","oldLocus","newLocus","_oldLocus$controls","_newLocus$controls","_oldLocus$self","_newLocus$participant","_newLocus$participant2","_newLocus$participant3","_newLocus$controls2","_newLocus$controls2$b","_newLocus$controls3","_newLocus$controls3$b","_newLocus$controls3$b2","status","isReturnToMain","isJoinToBreakout","needUseCache","self","isCreator","participants","state","MEETING_STATE","STATES","JOINED","sessionType","BREAKOUTS","SESSION_TYPES","MAIN","groups","BREAKOUT","isMainSessionDTO","locus","_locus$controls","_locus$controls$break","_default","exports"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS, MEETING_STATE} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n spokenLanguage: controls.transcribe.spokenLanguage,\n };\n }\n\n if (controls && controls.manualCaptionControl) {\n parsedControls.manualCaptionControl = {\n enabled: controls.manualCaptionControl.enabled,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {\n enabled: controls.viewTheParticipantList?.enabled ?? false,\n panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,\n attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,\n };\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n if (controls?.webcastControl) {\n parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};\n }\n\n if (controls?.meetingFull) {\n parsedControls.meetingFull = {\n meetingFull: controls.meetingFull?.meetingFull ?? false,\n meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,\n };\n }\n\n if (controls?.practiceSession) {\n parsedControls.practiceSession = {\n enabled: controls.practiceSession.enabled,\n };\n }\n\n if (controls?.annotationControl) {\n parsedControls.annotationControl = {\n enabled: controls.annotationControl.enabled,\n };\n }\n\n if (controls?.rdcControl) {\n parsedControls.rdcControl = {\n enabled: controls.rdcControl.enabled,\n };\n }\n\n if (controls?.pollingQAControl) {\n parsedControls.pollingQAControl = {\n enabled: controls.pollingQAControl.enabled,\n };\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||\n current?.viewTheParticipantList?.panelistEnabled !==\n previous?.viewTheParticipantList?.panelistEnabled ||\n current?.viewTheParticipantList?.attendeeCount !==\n previous?.viewTheParticipantList?.attendeeCount,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasTranscribeSpokenLanguageChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.spokenLanguage, current?.transcribe?.spokenLanguage) &&\n !!(previous?.transcribe?.spokenLanguage || current?.transcribe?.spokenLanguage),\n\n hasManualCaptionChanged:\n current?.manualCaptionControl &&\n !isEqual(previous?.manualCaptionControl?.enabled, current?.manualCaptionControl?.enabled) &&\n (previous?.manualCaptionControl?.enabled || current?.manualCaptionControl?.enabled),\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n\n hasWebcastChanged: !isEqual(\n previous?.webcastControl?.streaming,\n current?.webcastControl?.streaming\n ),\n\n hasMeetingFullChanged:\n !isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||\n !isEqual(\n previous?.meetingFull?.meetingPanelistFull,\n current?.meetingFull?.meetingPanelistFull\n ),\n\n hasPracticeSessionEnabledChanged: !isEqual(\n !!previous?.practiceSession?.enabled,\n !!current?.practiceSession?.enabled\n ),\n\n hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),\n\n hasAnnotationControlChanged:\n current?.annotationControl?.enabled !== previous?.annotationControl?.enabled,\n\n hasRemoteDesktopControlChanged:\n current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,\n\n hasPollingQAControlChanged:\n current?.pollingQAControl?.enabled !== previous?.pollingQAControl?.enabled,\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls?.breakout?.groupId !== controls?.breakout?.groupId ||\n oldControls?.breakout?.sessionId !== controls?.breakout?.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusInfo} oldLocus\n * @param {LocusInfo} newLocus\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldLocus: any, newLocus: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldLocus.controls?.breakout || !newLocus.controls?.breakout) {\n return status;\n }\n\n // It is used to fix the timing issue triggered when the creator leaves session to ensure that the member list is complete\n const needUseCache = !!(\n oldLocus.self?.isCreator &&\n newLocus.participants?.length === 1 &&\n newLocus.participants?.[0].isCreator &&\n newLocus.participants?.[0].state === MEETING_STATE.STATES.JOINED &&\n newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls?.breakout?.groups?.length\n );\n\n const isReturnToMain =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n\n status.isReturnToMain = needUseCache || isReturnToMain;\n status.isJoinToBreakout =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}