@webex/plugin-meetings 3.0.0-beta.94 → 3.0.0-beta.96

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 (35) hide show
  1. package/dist/breakouts/breakout.js +4 -3
  2. package/dist/breakouts/breakout.js.map +1 -1
  3. package/dist/breakouts/index.js +83 -52
  4. package/dist/breakouts/index.js.map +1 -1
  5. package/dist/constants.js +5 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/controls-options-manager/index.js +19 -14
  8. package/dist/controls-options-manager/index.js.map +1 -1
  9. package/dist/meeting/in-meeting-actions.js +27 -3
  10. package/dist/meeting/in-meeting-actions.js.map +1 -1
  11. package/dist/meeting/index.js +138 -29
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/meeting/util.js +0 -9
  14. package/dist/meeting/util.js.map +1 -1
  15. package/dist/metrics/index.js +5 -2
  16. package/dist/metrics/index.js.map +1 -1
  17. package/dist/types/constants.d.ts +3 -0
  18. package/dist/types/controls-options-manager/index.d.ts +1 -1
  19. package/dist/types/meeting/in-meeting-actions.d.ts +26 -2
  20. package/dist/types/meeting/index.d.ts +17 -6
  21. package/package.json +19 -19
  22. package/src/breakouts/breakout.ts +1 -0
  23. package/src/breakouts/index.ts +33 -5
  24. package/src/constants.ts +3 -0
  25. package/src/controls-options-manager/index.ts +13 -10
  26. package/src/meeting/in-meeting-actions.ts +52 -4
  27. package/src/meeting/index.ts +144 -29
  28. package/src/meeting/util.ts +0 -11
  29. package/src/metrics/index.ts +5 -2
  30. package/test/unit/spec/breakouts/index.ts +83 -103
  31. package/test/unit/spec/controls-options-manager/index.js +8 -1
  32. package/test/unit/spec/meeting/in-meeting-actions.ts +26 -2
  33. package/test/unit/spec/meeting/index.js +91 -5
  34. package/test/unit/spec/meeting/utils.js +0 -21
  35. package/test/unit/spec/meetings/index.js +55 -0
@@ -52,7 +52,6 @@ var InMeetingActions = /*#__PURE__*/(0, _createClass2.default)(function InMeetin
52
52
  (0, _defineProperty2.default)(this, "isRealTimeTranslationEnabled", null);
53
53
  (0, _defineProperty2.default)(this, "canSelectSpokenLanguages", null);
54
54
  (0, _defineProperty2.default)(this, "waitingForOthersToJoin", null);
55
- (0, _defineProperty2.default)(this, "canEnableReactions", null);
56
55
  (0, _defineProperty2.default)(this, "canSendReactions", null);
57
56
  (0, _defineProperty2.default)(this, "canManageBreakout", null);
58
57
  (0, _defineProperty2.default)(this, "canAdmitLobbyToBreakout", null);
@@ -60,6 +59,19 @@ var InMeetingActions = /*#__PURE__*/(0, _createClass2.default)(function InMeetin
60
59
  (0, _defineProperty2.default)(this, "canUserAskForHelp", null);
61
60
  (0, _defineProperty2.default)(this, "canUserRenameSelfAndObserved", null);
62
61
  (0, _defineProperty2.default)(this, "canUserRenameOthers", null);
62
+ (0, _defineProperty2.default)(this, "canMuteAll", null);
63
+ (0, _defineProperty2.default)(this, "canUnmuteAll", null);
64
+ (0, _defineProperty2.default)(this, "canEnableHardMute", null);
65
+ (0, _defineProperty2.default)(this, "canDisableHardMute", null);
66
+ (0, _defineProperty2.default)(this, "canEnableMuteOnEntry", null);
67
+ (0, _defineProperty2.default)(this, "canDisableMuteOnEntry", null);
68
+ (0, _defineProperty2.default)(this, "canEnableReactions", null);
69
+ (0, _defineProperty2.default)(this, "canDisableReactions", null);
70
+ (0, _defineProperty2.default)(this, "canEnableReactionDisplayNames", null);
71
+ (0, _defineProperty2.default)(this, "canDisableReactionDisplayNames", null);
72
+ (0, _defineProperty2.default)(this, "canUpdateShareControl", null);
73
+ (0, _defineProperty2.default)(this, "canEnableViewTheParticipantsList", null);
74
+ (0, _defineProperty2.default)(this, "canDisableViewTheParticipantsList", null);
63
75
  (0, _defineProperty2.default)(this, "get", function () {
64
76
  return {
65
77
  canInviteNewParticipants: _this.canInviteNewParticipants,
@@ -93,14 +105,26 @@ var InMeetingActions = /*#__PURE__*/(0, _createClass2.default)(function InMeetin
93
105
  isRealTimeTranslationEnabled: _this.isRealTimeTranslationEnabled,
94
106
  canSelectSpokenLanguages: _this.canSelectSpokenLanguages,
95
107
  waitingForOthersToJoin: _this.waitingForOthersToJoin,
96
- canEnableReactions: _this.canEnableReactions,
97
108
  canSendReactions: _this.canSendReactions,
98
109
  canManageBreakout: _this.canManageBreakout,
99
110
  canAdmitLobbyToBreakout: _this.canAdmitLobbyToBreakout,
100
111
  isBreakoutPreassignmentsEnabled: _this.isBreakoutPreassignmentsEnabled,
101
112
  canUserAskForHelp: _this.canUserAskForHelp,
102
113
  canUserRenameSelfAndObserved: _this.canUserRenameSelfAndObserved,
103
- canUserRenameOthers: _this.canUserRenameOthers
114
+ canUserRenameOthers: _this.canUserRenameOthers,
115
+ canMuteAll: _this.canMuteAll,
116
+ canUnmuteAll: _this.canUnmuteAll,
117
+ canEnableHardMute: _this.canEnableHardMute,
118
+ canDisableHardMute: _this.canDisableHardMute,
119
+ canEnableMuteOnEntry: _this.canEnableMuteOnEntry,
120
+ canDisableMuteOnEntry: _this.canDisableMuteOnEntry,
121
+ canEnableReactions: _this.canEnableReactions,
122
+ canDisableReactions: _this.canDisableReactions,
123
+ canEnableReactionDisplayNames: _this.canEnableReactionDisplayNames,
124
+ canDisableReactionDisplayNames: _this.canDisableReactionDisplayNames,
125
+ canUpdateShareControl: _this.canUpdateShareControl,
126
+ canEnableViewTheParticipantsList: _this.canEnableViewTheParticipantsList,
127
+ canDisableViewTheParticipantsList: _this.canDisableViewTheParticipantsList
104
128
  };
105
129
  });
106
130
  (0, _defineProperty2.default)(this, "set", function (actions) {
@@ -1 +1 @@
1
- {"version":3,"names":["InMeetingActions","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canSetMuteOnEntry","canUnsetMuteOnEntry","canSetDisallowUnmute","canSetMuted","canUnsetMuted","canSetPresenter","canUnsetPresenter","canUnsetDisallowUnmute","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isSaveTranscriptsEnabled","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canEnableReactions","canSendReactions","canManageBreakout","canAdmitLobbyToBreakout","isBreakoutPreassignmentsEnabled","canUserAskForHelp","canUserRenameSelfAndObserved","canUserRenameOthers","actions","old","get","changed","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canSetMuteOnEntry?: boolean;\n canUnsetMuteOnEntry?: boolean;\n canSetDisallowUnmute?: boolean;\n canUnsetDisallowUnmute?: boolean;\n canSetMuted?: boolean;\n canUnsetMuted?: boolean;\n canAssignHost?: boolean;\n canSetPresenter?: boolean;\n canUnsetPresenter?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isSaveTranscriptsEnabled?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canEnableReactions?: boolean;\n canSendReactions?: boolean;\n canManageBreakout?: boolean;\n canAdmitLobbyToBreakout?: boolean;\n isBreakoutPreassignmentsEnabled?: boolean;\n canUserAskForHelp?: boolean;\n canUserRenameSelfAndObserved?: boolean;\n canUserRenameOthers?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canSetMuteOnEntry = null;\n\n canSetPresenter = null;\n\n canUnsetPresenter = null;\n\n canUnsetMuteOnEntry = null;\n\n canSetDisallowUnmute = null;\n\n canUnsetDisallowUnmute = null;\n\n canSetMuted = null;\n\n canUnsetMuted = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isSaveTranscriptsEnabled = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canEnableReactions = null;\n\n canSendReactions = null;\n\n canManageBreakout = null;\n\n canAdmitLobbyToBreakout = null;\n\n isBreakoutPreassignmentsEnabled = null;\n\n canUserAskForHelp = null;\n\n canUserRenameSelfAndObserved = null;\n\n canUserRenameOthers = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canSetMuteOnEntry: this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: this.canSetDisallowUnmute,\n canSetMuted: this.canSetMuted,\n canUnsetMuted: this.canUnsetMuted,\n canSetPresenter: this.canSetPresenter,\n canUnsetPresenter: this.canUnsetPresenter,\n canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canEnableReactions: this.canEnableReactions,\n canSendReactions: this.canSendReactions,\n canManageBreakout: this.canManageBreakout,\n canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,\n isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,\n canUserAskForHelp: this.canUserAskForHelp,\n canUserRenameSelfAndObserved: this.canUserRenameSelfAndObserved,\n canUserRenameOthers: this.canUserRenameOthers,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["InMeetingActions","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canSetMuteOnEntry","canUnsetMuteOnEntry","canSetDisallowUnmute","canSetMuted","canUnsetMuted","canSetPresenter","canUnsetPresenter","canUnsetDisallowUnmute","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isSaveTranscriptsEnabled","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canSendReactions","canManageBreakout","canAdmitLobbyToBreakout","isBreakoutPreassignmentsEnabled","canUserAskForHelp","canUserRenameSelfAndObserved","canUserRenameOthers","canMuteAll","canUnmuteAll","canEnableHardMute","canDisableHardMute","canEnableMuteOnEntry","canDisableMuteOnEntry","canEnableReactions","canDisableReactions","canEnableReactionDisplayNames","canDisableReactionDisplayNames","canUpdateShareControl","canEnableViewTheParticipantsList","canDisableViewTheParticipantsList","actions","old","get","changed","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canSetMuteOnEntry?: boolean;\n canUnsetMuteOnEntry?: boolean;\n canSetDisallowUnmute?: boolean;\n canUnsetDisallowUnmute?: boolean;\n canSetMuted?: boolean;\n canUnsetMuted?: boolean;\n canAssignHost?: boolean;\n canSetPresenter?: boolean;\n canUnsetPresenter?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isSaveTranscriptsEnabled?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canSendReactions?: boolean;\n canManageBreakout?: boolean;\n canAdmitLobbyToBreakout?: boolean;\n isBreakoutPreassignmentsEnabled?: boolean;\n canUserAskForHelp?: boolean;\n canUserRenameSelfAndObserved?: boolean;\n canUserRenameOthers?: boolean;\n canMuteAll?: boolean;\n canUnmuteAll?: boolean;\n canEnableHardMute?: boolean;\n canDisableHardMute?: boolean;\n canEnableMuteOnEntry?: boolean;\n canDisableMuteOnEntry?: boolean;\n canEnableReactions?: boolean;\n canDisableReactions?: boolean;\n canEnableReactionDisplayNames?: boolean;\n canDisableReactionDisplayNames?: boolean;\n canUpdateShareControl?: boolean;\n canEnableViewTheParticipantsList?: boolean;\n canDisableViewTheParticipantsList?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canSetMuteOnEntry = null;\n\n canSetPresenter = null;\n\n canUnsetPresenter = null;\n\n canUnsetMuteOnEntry = null;\n\n canSetDisallowUnmute = null;\n\n canUnsetDisallowUnmute = null;\n\n canSetMuted = null;\n\n canUnsetMuted = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isSaveTranscriptsEnabled = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canSendReactions = null;\n\n canManageBreakout = null;\n\n canAdmitLobbyToBreakout = null;\n\n isBreakoutPreassignmentsEnabled = null;\n\n canUserAskForHelp = null;\n\n canUserRenameSelfAndObserved = null;\n\n canUserRenameOthers = null;\n\n canMuteAll = null;\n\n canUnmuteAll = null;\n\n canEnableHardMute = null;\n\n canDisableHardMute = null;\n\n canEnableMuteOnEntry = null;\n\n canDisableMuteOnEntry = null;\n\n canEnableReactions = null;\n\n canDisableReactions = null;\n\n canEnableReactionDisplayNames = null;\n\n canDisableReactionDisplayNames = null;\n\n canUpdateShareControl = null;\n\n canEnableViewTheParticipantsList = null;\n\n canDisableViewTheParticipantsList = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canSetMuteOnEntry: this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: this.canSetDisallowUnmute,\n canSetMuted: this.canSetMuted,\n canUnsetMuted: this.canUnsetMuted,\n canSetPresenter: this.canSetPresenter,\n canUnsetPresenter: this.canUnsetPresenter,\n canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canSendReactions: this.canSendReactions,\n canManageBreakout: this.canManageBreakout,\n canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,\n isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,\n canUserAskForHelp: this.canUserAskForHelp,\n canUserRenameSelfAndObserved: this.canUserRenameSelfAndObserved,\n canUserRenameOthers: this.canUserRenameOthers,\n canMuteAll: this.canMuteAll,\n canUnmuteAll: this.canUnmuteAll,\n canEnableHardMute: this.canEnableHardMute,\n canDisableHardMute: this.canDisableHardMute,\n canEnableMuteOnEntry: this.canEnableMuteOnEntry,\n canDisableMuteOnEntry: this.canDisableMuteOnEntry,\n canEnableReactions: this.canEnableReactions,\n canDisableReactions: this.canDisableReactions,\n canEnableReactionDisplayNames: this.canEnableReactionDisplayNames,\n canDisableReactionDisplayNames: this.canDisableReactionDisplayNames,\n canUpdateShareControl: this.canUpdateShareControl,\n canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,\n canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":";;;;;;;;;;;;AAIA;AAJA;AACA;AACA;AA8DA;AACA;AACA;AAFA,IAGqBA,gBAAgB;EAAA;EAAA;EAAA,iDACvBC,mBAAQ;EAAA,gEAEO,IAAI;EAAA,2DAET,IAAI;EAAA,+CAEhB,IAAI;EAAA,iDAEF,IAAI;EAAA,qDAEA,IAAI;EAAA,yDAEA,IAAI;EAAA,yDAEJ,IAAI;EAAA,0DAEH,IAAI;EAAA,wDAEN,IAAI;EAAA,yDAEH,IAAI;EAAA,uDAEN,IAAI;EAAA,yDAEF,IAAI;EAAA,2DAEF,IAAI;EAAA,4DAEH,IAAI;EAAA,8DAEF,IAAI;EAAA,mDAEf,IAAI;EAAA,qDAEF,IAAI;EAAA,oDAEL,IAAI;EAAA,wDAEA,IAAI;EAAA,gEAEI,IAAI;EAAA,uEAEG,IAAI;EAAA,8DAEb,IAAI;EAAA,4DAEN,IAAI;EAAA,2DAEL,IAAI;EAAA,6DAEF,IAAI;EAAA,gEAED,IAAI;EAAA,8DAEN,IAAI;EAAA,2DAEP,IAAI;EAAA,oEAEK,IAAI;EAAA,gEAER,IAAI;EAAA,8DAEN,IAAI;EAAA,wDAEV,IAAI;EAAA,yDAEH,IAAI;EAAA,+DAEE,IAAI;EAAA,uEAEI,IAAI;EAAA,yDAElB,IAAI;EAAA,oEAEO,IAAI;EAAA,2DAEb,IAAI;EAAA,kDAEb,IAAI;EAAA,oDAEF,IAAI;EAAA,yDAEC,IAAI;EAAA,0DAEH,IAAI;EAAA,4DAEF,IAAI;EAAA,6DAEH,IAAI;EAAA,0DAEP,IAAI;EAAA,2DAEH,IAAI;EAAA,qEAEM,IAAI;EAAA,sEAEH,IAAI;EAAA,6DAEb,IAAI;EAAA,wEAEO,IAAI;EAAA,yEAEH,IAAI;EAAA,2CAMlC;IAAA,OAA0B;MAC9BC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,OAAO,EAAE,KAAI,CAACA,OAAO;MACrBC,SAAS,EAAE,KAAI,CAACA,SAAS;MACzBC,aAAa,EAAE,KAAI,CAACA,aAAa;MACjCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,WAAW,EAAE,KAAI,CAACA,WAAW;MAC7BC,aAAa,EAAE,KAAI,CAACA,aAAa;MACjCC,eAAe,EAAE,KAAI,CAACA,eAAe;MACrCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,YAAY,EAAE,KAAI,CAACA,YAAY;MAC/BC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,+BAA+B,EAAE,KAAI,CAACA,+BAA+B;MACrEC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,qBAAqB,EAAE,KAAI,CAACA,qBAAqB;MACjDC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,4BAA4B,EAAE,KAAI,CAACA,4BAA4B;MAC/DC,wBAAwB,EAAE,KAAI,CAACA,wBAAwB;MACvDC,sBAAsB,EAAE,KAAI,CAACA,sBAAsB;MACnDC,gBAAgB,EAAE,KAAI,CAACA,gBAAgB;MACvCC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,uBAAuB,EAAE,KAAI,CAACA,uBAAuB;MACrDC,+BAA+B,EAAE,KAAI,CAACA,+BAA+B;MACrEC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,4BAA4B,EAAE,KAAI,CAACA,4BAA4B;MAC/DC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,UAAU,EAAE,KAAI,CAACA,UAAU;MAC3BC,YAAY,EAAE,KAAI,CAACA,YAAY;MAC/BC,iBAAiB,EAAE,KAAI,CAACA,iBAAiB;MACzCC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,oBAAoB,EAAE,KAAI,CAACA,oBAAoB;MAC/CC,qBAAqB,EAAE,KAAI,CAACA,qBAAqB;MACjDC,kBAAkB,EAAE,KAAI,CAACA,kBAAkB;MAC3CC,mBAAmB,EAAE,KAAI,CAACA,mBAAmB;MAC7CC,6BAA6B,EAAE,KAAI,CAACA,6BAA6B;MACjEC,8BAA8B,EAAE,KAAI,CAACA,8BAA8B;MACnEC,qBAAqB,EAAE,KAAI,CAACA,qBAAqB;MACjDC,gCAAgC,EAAE,KAAI,CAACA,gCAAgC;MACvEC,iCAAiC,EAAE,KAAI,CAACA;IAC1C,CAAC;EAAA,CAAC;EAAA,2CAQI,UAACC,OAAmC,EAAK;IAC7C,IAAMC,GAAG,GAAG,KAAI,CAACC,GAAG,EAAE;IAEtB,IAAIC,OAAO,GAAG,KAAK;IAEnB,mBAAYF,GAAG,CAAC,CAACG,OAAO,CAAC,UAACC,SAAS,EAAK;MACtC,IAAMC,WAAW,GAAGN,OAAO,CAACK,SAAS,CAAC;MAEtC,IAAIC,WAAW,KAAKC,SAAS,IAAID,WAAW,KAAKL,GAAG,CAACI,SAAS,CAAC,EAAE;QAC/DF,OAAO,GAAG,IAAI;QACd,KAAI,CAACE,SAAS,CAAC,GAAGC,WAAW;MAC/B;IACF,CAAC,CAAC;IAEF,OAAOH,OAAO;EAChB,CAAC;AAAA;AAAA"}
@@ -488,12 +488,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
488
488
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsAnalyzer", void 0);
489
489
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "transcription", void 0);
490
490
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateMediaConnections", void 0);
491
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endCallInitiateJoinReq", void 0);
491
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endCallInitJoinReq", void 0);
492
492
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endJoinReqResp", void 0);
493
493
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "endLocalSDPGenRemoteSDPRecvDelay", void 0);
494
494
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "joinedWith", void 0);
495
495
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusId", void 0);
496
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startCallInitiateJoinReq", void 0);
496
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startCallInitJoinReq", void 0);
497
497
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startJoinReqResp", void 0);
498
498
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startLocalSDPGenRemoteSDPRecvDelay", void 0);
499
499
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "wirelessShare", void 0);
@@ -508,7 +508,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
508
508
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
509
509
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localAudioTrackMuteStateHandler", void 0);
510
510
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "localVideoTrackMuteStateHandler", void 0);
511
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "webexMeetingId", void 0);
511
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
512
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "environment", void 0);
512
513
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
513
514
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "processRelayEvent", function (e) {
514
515
  switch (e.data.relayType) {
@@ -1997,6 +1998,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1997
1998
  function: 'setUpBreakoutsListener'
1998
1999
  }, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_LEAVE);
1999
2000
  });
2001
+ this.breakouts.on(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, function (helpEvent) {
2002
+ _triggerProxy.default.trigger(_this4, {
2003
+ file: 'meeting/index',
2004
+ function: 'setUpBreakoutsListener'
2005
+ }, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_ASK_FOR_HELP, helpEvent);
2006
+ });
2000
2007
  }
2001
2008
 
2002
2009
  /**
@@ -2166,10 +2173,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2166
2173
  localSDPGenRemoteSDPRecv: localSDPGenRemoteSDPRecv
2167
2174
  });
2168
2175
  }
2169
- var callInitiateJoinReq = this.getCallInitiateJoinReq();
2170
- if (callInitiateJoinReq) {
2176
+ var callInitJoinReq = this.getCallInitJoinReq();
2177
+ if (callInitJoinReq) {
2171
2178
  options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
2172
- callInitiateJoinReq: callInitiateJoinReq
2179
+ callInitJoinReq: callInitJoinReq
2173
2180
  });
2174
2181
  }
2175
2182
  var joinReqResp = this.getJoinReqResp();
@@ -2178,12 +2185,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2178
2185
  joinReqResp: joinReqResp
2179
2186
  });
2180
2187
  }
2181
- var getTotalJmt = this.getTotalJmt();
2182
- if (getTotalJmt) {
2188
+ var totalJmt = this.getTotalJmt();
2189
+ if (totalJmt) {
2183
2190
  options.joinTimes = _objectSpread(_objectSpread({}, options.joinTimes), {}, {
2184
- getTotalJmt: getTotalJmt
2191
+ totalJmt: totalJmt
2185
2192
  });
2186
2193
  }
2194
+ var curUserType = this.getCurUserType();
2195
+ if (curUserType) {
2196
+ options.userType = curUserType;
2197
+ }
2198
+ var curLoginType = this.getCurLoginType();
2199
+ if (curLoginType) {
2200
+ options.loginType = curLoginType;
2201
+ }
2202
+ if (this.environment) {
2203
+ options.environment = this.environment;
2204
+ }
2187
2205
  if (options.type === _constants.MQA_STATS.CA_TYPE) {
2188
2206
  payload = _metrics.default.initMediaPayload(options.event, identifiers, options);
2189
2207
  } else {
@@ -2822,14 +2840,65 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2822
2840
  isRealTimeTranslationEnabled: _util.default.isRealTimeTranslationEnabled(payload.info.userDisplayHints),
2823
2841
  canSelectSpokenLanguages: _util.default.canSelectSpokenLanguages(payload.info.userDisplayHints),
2824
2842
  waitingForOthersToJoin: _util.default.waitingForOthersToJoin(payload.info.userDisplayHints),
2825
- canEnableReactions: _util.default.canEnableReactions(_this16.inMeetingActions.canEnableReactions, payload.info.userDisplayHints),
2826
2843
  canSendReactions: _util.default.canSendReactions(_this16.inMeetingActions.canSendReactions, payload.info.userDisplayHints),
2827
2844
  canManageBreakout: _util.default.canManageBreakout(payload.info.userDisplayHints),
2828
2845
  canAdmitLobbyToBreakout: _util.default.canAdmitLobbyToBreakout(payload.info.userDisplayHints),
2829
2846
  isBreakoutPreassignmentsEnabled: _util.default.isBreakoutPreassignmentsEnabled(payload.info.userDisplayHints),
2830
2847
  canUserAskForHelp: _util.default.canUserAskForHelp(payload.info.userDisplayHints),
2831
2848
  canUserRenameSelfAndObserved: _util.default.canUserRenameSelfAndObserved(payload.info.userDisplayHints),
2832
- canUserRenameOthers: _util.default.canUserRenameOthers(payload.info.userDisplayHints)
2849
+ canUserRenameOthers: _util.default.canUserRenameOthers(payload.info.userDisplayHints),
2850
+ canMuteAll: _util3.default.hasHints({
2851
+ requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
2852
+ displayHints: payload.info.userDisplayHints
2853
+ }),
2854
+ canUnmuteAll: _util3.default.hasHints({
2855
+ requiredHints: [_constants.DISPLAY_HINTS.UNMUTE_ALL],
2856
+ displayHints: payload.info.userDisplayHints
2857
+ }),
2858
+ canEnableHardMute: _util3.default.hasHints({
2859
+ requiredHints: [_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE],
2860
+ displayHints: payload.info.userDisplayHints
2861
+ }),
2862
+ canDisableHardMute: _util3.default.hasHints({
2863
+ requiredHints: [_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE],
2864
+ displayHints: payload.info.userDisplayHints
2865
+ }),
2866
+ canEnableMuteOnEntry: _util3.default.hasHints({
2867
+ requiredHints: [_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY],
2868
+ displayHints: payload.info.userDisplayHints
2869
+ }),
2870
+ canDisableMuteOnEntry: _util3.default.hasHints({
2871
+ requiredHints: [_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY],
2872
+ displayHints: payload.info.userDisplayHints
2873
+ }),
2874
+ canEnableReactions: _util3.default.hasHints({
2875
+ requiredHints: [_constants.DISPLAY_HINTS.ENABLE_REACTIONS],
2876
+ displayHints: payload.info.userDisplayHints
2877
+ }),
2878
+ canDisableReactions: _util3.default.hasHints({
2879
+ requiredHints: [_constants.DISPLAY_HINTS.DISABLE_REACTIONS],
2880
+ displayHints: payload.info.userDisplayHints
2881
+ }),
2882
+ canEnableReactionDisplayNames: _util3.default.hasHints({
2883
+ requiredHints: [_constants.DISPLAY_HINTS.ENABLE_SHOW_DISPLAY_NAME],
2884
+ displayHints: payload.info.userDisplayHints
2885
+ }),
2886
+ canDisableReactionDisplayNames: _util3.default.hasHints({
2887
+ requiredHints: [_constants.DISPLAY_HINTS.DISABLE_SHOW_DISPLAY_NAME],
2888
+ displayHints: payload.info.userDisplayHints
2889
+ }),
2890
+ canUpdateShareControl: _util3.default.hasHints({
2891
+ requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTROL],
2892
+ displayHints: payload.info.userDisplayHints
2893
+ }),
2894
+ canEnableViewTheParticipantsList: _util3.default.hasHints({
2895
+ requiredHints: [_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST],
2896
+ displayHints: payload.info.userDisplayHints
2897
+ }),
2898
+ canDisableViewTheParticipantsList: _util3.default.hasHints({
2899
+ requiredHints: [_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST],
2900
+ displayHints: payload.info.userDisplayHints
2901
+ })
2833
2902
  });
2834
2903
  _this16.recordingController.setDisplayHints(payload.info.userDisplayHints);
2835
2904
  _this16.controlsOptionsManager.setDisplayHints(payload.info.userDisplayHints);
@@ -3344,7 +3413,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3344
3413
 
3345
3414
  // MeetingInfo will be undefined for 1:1 calls
3346
3415
  if (locusMeetingObject || webexMeetingInfo && !(meetingInfo !== null && meetingInfo !== void 0 && meetingInfo.errors && (meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.errors.length) > 0)) {
3347
- var _locusMeetingObject, _locusMeetingObject2, _locusMeetingObject3, _locusMeetingObject4, _locusMeetingObject6;
3416
+ var _locusMeetingObject, _locusMeetingObject2, _locusMeetingObject3, _locusMeetingObject4, _locusMeetingObject6, _locusMeetingObject7;
3348
3417
  this.conversationUrl = ((_locusMeetingObject = locusMeetingObject) === null || _locusMeetingObject === void 0 ? void 0 : _locusMeetingObject.conversationUrl) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.conversationUrl) || this.conversationUrl;
3349
3418
  this.locusUrl = ((_locusMeetingObject2 = locusMeetingObject) === null || _locusMeetingObject2 === void 0 ? void 0 : _locusMeetingObject2.url) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.locusUrl) || this.locusUrl;
3350
3419
  // @ts-ignore - config coming from registerPlugin
@@ -3359,6 +3428,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3359
3428
  }
3360
3429
  this.owner = ((_locusMeetingObject6 = locusMeetingObject) === null || _locusMeetingObject6 === void 0 ? void 0 : _locusMeetingObject6.info.owner) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.owner) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.hostId) || this.owner;
3361
3430
  this.permissionToken = webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.permissionToken;
3431
+ // Need to populate environment when sending CA event
3432
+ this.environment = ((_locusMeetingObject7 = locusMeetingObject) === null || _locusMeetingObject7 === void 0 ? void 0 : _locusMeetingObject7.info.channel) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.channel);
3362
3433
  }
3363
3434
  }
3364
3435
 
@@ -5634,15 +5705,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5634
5705
  value: function leave() {
5635
5706
  var _this48 = this;
5636
5707
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5708
+ var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
5637
5709
  _metrics.default.postEvent({
5638
5710
  event: _config.eventType.LEAVE,
5639
5711
  meeting: this,
5640
5712
  data: {
5641
5713
  trigger: _config.trigger.USER_INTERACTION,
5642
- canProceed: false
5714
+ canProceed: false,
5715
+ reason: leaveReason
5643
5716
  }
5644
5717
  });
5645
- var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
5646
5718
  _loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
5647
5719
  return _util.default.leaveMeeting(this, options).then(function (leave) {
5648
5720
  _this48.meetingFiniteStateMachine.leave();
@@ -6470,7 +6542,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6470
6542
  var start = this.startLocalSDPGenRemoteSDPRecvDelay;
6471
6543
  var end = this.endLocalSDPGenRemoteSDPRecvDelay;
6472
6544
  if (start && end) {
6473
- var calculatedDelay = end - start;
6545
+ var calculatedDelay = Math.round(end - start);
6474
6546
  return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
6475
6547
  }
6476
6548
  return undefined;
@@ -6481,10 +6553,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6481
6553
  * @returns {undefined}
6482
6554
  */
6483
6555
  }, {
6484
- key: "setStartCallInitiateJoinReq",
6485
- value: function setStartCallInitiateJoinReq() {
6486
- this.startCallInitiateJoinReq = performance.now();
6487
- this.endCallInitiateJoinReq = undefined;
6556
+ key: "setStartCallInitJoinReq",
6557
+ value: function setStartCallInitJoinReq() {
6558
+ this.startCallInitJoinReq = performance.now();
6559
+ this.endCallInitJoinReq = undefined;
6488
6560
  }
6489
6561
 
6490
6562
  /**
@@ -6492,9 +6564,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6492
6564
  * @returns {undefined}
6493
6565
  */
6494
6566
  }, {
6495
- key: "setEndCallInitiateJoinReq",
6496
- value: function setEndCallInitiateJoinReq() {
6497
- this.endCallInitiateJoinReq = performance.now();
6567
+ key: "setEndCallInitJoinReq",
6568
+ value: function setEndCallInitJoinReq() {
6569
+ this.endCallInitJoinReq = performance.now();
6498
6570
  }
6499
6571
 
6500
6572
  /**
@@ -6502,10 +6574,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6502
6574
  * @returns {string} duration between call initiate and sending join request to locus
6503
6575
  */
6504
6576
  }, {
6505
- key: "getCallInitiateJoinReq",
6506
- value: function getCallInitiateJoinReq() {
6507
- var start = this.startCallInitiateJoinReq;
6508
- var end = this.endCallInitiateJoinReq;
6577
+ key: "getCallInitJoinReq",
6578
+ value: function getCallInitJoinReq() {
6579
+ var start = this.startCallInitJoinReq;
6580
+ var end = this.endCallInitJoinReq;
6509
6581
  if (start && end) {
6510
6582
  var calculatedDelay = end - start;
6511
6583
  return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
@@ -6544,7 +6616,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6544
6616
  var start = this.startJoinReqResp;
6545
6617
  var end = this.endJoinReqResp;
6546
6618
  if (start && end) {
6547
- var calculatedDelay = end - start;
6619
+ var calculatedDelay = Math.round(end - start);
6548
6620
  return calculatedDelay > _constants.METRICS_JOIN_TIMES_MAX_DURATION ? undefined : calculatedDelay;
6549
6621
  }
6550
6622
  return undefined;
@@ -6557,9 +6629,46 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6557
6629
  }, {
6558
6630
  key: "getTotalJmt",
6559
6631
  value: function getTotalJmt() {
6560
- var start = this.startCallInitiateJoinReq;
6632
+ var start = this.startCallInitJoinReq;
6561
6633
  var end = this.endJoinReqResp;
6562
- return start && end ? end - start : undefined;
6634
+ return start && end ? Math.round(end - start) : undefined;
6635
+ }
6636
+
6637
+ /**
6638
+ *
6639
+ * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
6640
+ */
6641
+ }, {
6642
+ key: "getCurUserType",
6643
+ value: function getCurUserType() {
6644
+ var roles = this.roles;
6645
+ if (roles) {
6646
+ if (roles.includes(_constants.SELF_ROLES.MODERATOR)) {
6647
+ return 'host';
6648
+ }
6649
+ if (roles.includes(_constants.SELF_ROLES.COHOST)) {
6650
+ return 'cohost';
6651
+ }
6652
+ if (roles.includes(_constants.SELF_ROLES.ATTENDEE)) {
6653
+ return 'attendee';
6654
+ }
6655
+ }
6656
+ return null;
6657
+ }
6658
+
6659
+ /**
6660
+ *
6661
+ * @returns {string} one of 'login-ci','unverified-guest', returns the login type of the current user
6662
+ */
6663
+ }, {
6664
+ key: "getCurLoginType",
6665
+ value: function getCurLoginType() {
6666
+ // @ts-ignore
6667
+ if (this.webex.canAuthorize) {
6668
+ // @ts-ignore
6669
+ return this.webex.credentials.isUnverifiedGuest ? 'unverified-guest' : 'login-ci';
6670
+ }
6671
+ return null;
6563
6672
  }
6564
6673
 
6565
6674
  /**