@azure/communication-react 1.5.1-alpha-202302010014 → 1.5.1-alpha-202302030014

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 (29) hide show
  1. package/dist/communication-react.d.ts +43 -2
  2. package/dist/dist-cjs/communication-react/index.js +306 -189
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +28 -11
  7. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +4 -0
  9. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/utils.js +1 -0
  11. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  12. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -1
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +25 -3
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +24 -6
  15. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  16. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.d.ts +23 -0
  17. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +45 -0
  18. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -0
  19. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +2 -1
  20. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  21. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -1
  22. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  23. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +1 -1
  24. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +3 -3
  25. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  26. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +9 -1
  27. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +39 -0
  28. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  29. package/package.json +8 -8
@@ -159,7 +159,7 @@ const _toCommunicationIdentifier = (id) => {
159
159
  // Copyright (c) Microsoft Corporation.
160
160
  // Licensed under the MIT license.
161
161
  // GENERATED FILE. DO NOT EDIT MANUALLY.
162
- var telemetryVersion = '1.5.1-alpha-202302010014';
162
+ var telemetryVersion = '1.5.1-alpha-202302030014';
163
163
 
164
164
  // Copyright (c) Microsoft Corporation.
165
165
  /**
@@ -375,7 +375,7 @@ const getEnvironmentInfo = (state) => {
375
375
 
376
376
  // Copyright (c) Microsoft Corporation.
377
377
  // Licensed under the MIT license.
378
- var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
378
+ var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
379
379
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
380
380
  return new (P || (P = Promise))(function (resolve, reject) {
381
381
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -413,7 +413,7 @@ const _isPreviewOn = (deviceManager) => {
413
413
  *
414
414
  * @private
415
415
  */
416
- const disposeAllLocalPreviewViews = (callClient) => __awaiter$C(void 0, void 0, void 0, function* () {
416
+ const disposeAllLocalPreviewViews = (callClient) => __awaiter$D(void 0, void 0, void 0, function* () {
417
417
  const unparentedViews = callClient.getState().deviceManager.unparentedViews;
418
418
  for (const view of unparentedViews) {
419
419
  yield callClient.disposeView(undefined, undefined, view);
@@ -546,7 +546,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
546
546
 
547
547
  // Copyright (c) Microsoft Corporation.
548
548
  // Licensed under the MIT license.
549
- var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
549
+ var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
550
550
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
551
551
  return new (P || (P = Promise))(function (resolve, reject) {
552
552
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -567,7 +567,7 @@ const areStreamsEqual = (prevStream, newStream) => {
567
567
  * @private
568
568
  */
569
569
  const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callClient, deviceManager, call) => {
570
- const onStartLocalVideo = () => __awaiter$B(void 0, void 0, void 0, function* () {
570
+ const onStartLocalVideo = () => __awaiter$C(void 0, void 0, void 0, function* () {
571
571
  // Before the call object creates a stream, dispose of any local preview streams.
572
572
  // @TODO: is there any way to parent the unparented view to the call object instead
573
573
  // of disposing and creating a new stream?
@@ -587,7 +587,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
587
587
  yield call.startVideo(stream);
588
588
  }
589
589
  });
590
- const onStopLocalVideo = (stream) => __awaiter$B(void 0, void 0, void 0, function* () {
590
+ const onStopLocalVideo = (stream) => __awaiter$C(void 0, void 0, void 0, function* () {
591
591
  const callId = call === null || call === void 0 ? void 0 : call.id;
592
592
  if (!callId) {
593
593
  return;
@@ -600,7 +600,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
600
600
  });
601
601
  }
602
602
  });
603
- const onToggleCamera = (options) => __awaiter$B(void 0, void 0, void 0, function* () {
603
+ const onToggleCamera = (options) => __awaiter$C(void 0, void 0, void 0, function* () {
604
604
  const previewOn = _isPreviewOn(callClient.getState().deviceManager);
605
605
  if (previewOn && call && call.state === 'Connecting') {
606
606
  // This is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.
@@ -648,19 +648,19 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
648
648
  }
649
649
  }
650
650
  });
651
- const onSelectMicrophone = (device) => __awaiter$B(void 0, void 0, void 0, function* () {
651
+ const onSelectMicrophone = (device) => __awaiter$C(void 0, void 0, void 0, function* () {
652
652
  if (!deviceManager) {
653
653
  return;
654
654
  }
655
655
  return deviceManager.selectMicrophone(device);
656
656
  });
657
- const onSelectSpeaker = (device) => __awaiter$B(void 0, void 0, void 0, function* () {
657
+ const onSelectSpeaker = (device) => __awaiter$C(void 0, void 0, void 0, function* () {
658
658
  if (!deviceManager) {
659
659
  return;
660
660
  }
661
661
  return deviceManager.selectSpeaker(device);
662
662
  });
663
- const onSelectCamera = (device, options) => __awaiter$B(void 0, void 0, void 0, function* () {
663
+ const onSelectCamera = (device, options) => __awaiter$C(void 0, void 0, void 0, function* () {
664
664
  if (!deviceManager) {
665
665
  return;
666
666
  }
@@ -683,19 +683,19 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
683
683
  }, options);
684
684
  }
685
685
  });
686
- const onToggleMicrophone = () => __awaiter$B(void 0, void 0, void 0, function* () {
686
+ const onToggleMicrophone = () => __awaiter$C(void 0, void 0, void 0, function* () {
687
687
  if (!call || !_isInCall(call.state)) {
688
688
  throw new Error(`Please invoke onToggleMicrophone after call is started`);
689
689
  }
690
690
  return call.isMuted ? yield call.unmute() : yield call.mute();
691
691
  });
692
- const onStartScreenShare = () => __awaiter$B(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
693
- const onStopScreenShare = () => __awaiter$B(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
694
- const onToggleScreenShare = () => __awaiter$B(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
695
- const onHangUp = (forEveryone) => __awaiter$B(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
692
+ const onStartScreenShare = () => __awaiter$C(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
693
+ const onStopScreenShare = () => __awaiter$C(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
694
+ const onToggleScreenShare = () => __awaiter$C(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
695
+ const onHangUp = (forEveryone) => __awaiter$C(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
696
696
  /* @conditional-compile-remove(PSTN-calls) */
697
- const onToggleHold = () => __awaiter$B(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.state) === 'LocalHold' ? yield (call === null || call === void 0 ? void 0 : call.resume()) : yield (call === null || call === void 0 ? void 0 : call.hold()); });
698
- const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$B(void 0, void 0, void 0, function* () {
697
+ const onToggleHold = () => __awaiter$C(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.state) === 'LocalHold' ? yield (call === null || call === void 0 ? void 0 : call.resume()) : yield (call === null || call === void 0 ? void 0 : call.hold()); });
698
+ const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$C(void 0, void 0, void 0, function* () {
699
699
  var _a;
700
700
  if (!call || call.localVideoStreams.length === 0) {
701
701
  return;
@@ -711,7 +711,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
711
711
  const { view } = (_a = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _a !== void 0 ? _a : {};
712
712
  return view ? { view } : undefined;
713
713
  });
714
- const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$B(void 0, void 0, void 0, function* () {
714
+ const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$C(void 0, void 0, void 0, function* () {
715
715
  if (!call) {
716
716
  return;
717
717
  }
@@ -739,7 +739,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
739
739
  }
740
740
  return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
741
741
  });
742
- const onDisposeRemoteStreamView = (userId) => __awaiter$B(void 0, void 0, void 0, function* () {
742
+ const onDisposeRemoteStreamView = (userId) => __awaiter$C(void 0, void 0, void 0, function* () {
743
743
  if (!call) {
744
744
  return;
745
745
  }
@@ -760,7 +760,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
760
760
  callClient.disposeView(call.id, participant.identifier, screenShareStream);
761
761
  }
762
762
  });
763
- const onDisposeLocalStreamView = () => __awaiter$B(void 0, void 0, void 0, function* () {
763
+ const onDisposeLocalStreamView = () => __awaiter$C(void 0, void 0, void 0, function* () {
764
764
  // If the user is currently in a call, dispose of the local stream view attached to that call.
765
765
  const callState = call && callClient.getState().calls[call.id];
766
766
  const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
@@ -773,12 +773,12 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
773
773
  yield disposeAllLocalPreviewViews(callClient);
774
774
  });
775
775
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
776
- const onSendDtmfTone = (dtmfTone) => __awaiter$B(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
776
+ const onSendDtmfTone = (dtmfTone) => __awaiter$C(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
777
777
  const notImplemented = () => {
778
778
  throw new Error('Not implemented, cannot call a method from an abstract object');
779
779
  };
780
780
  /* @conditional-compile-remove(call-readiness) */
781
- const askDevicePermission = (constrain) => __awaiter$B(void 0, void 0, void 0, function* () {
781
+ const askDevicePermission = (constrain) => __awaiter$C(void 0, void 0, void 0, function* () {
782
782
  if (deviceManager) {
783
783
  yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
784
784
  }
@@ -812,7 +812,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
812
812
 
813
813
  // Copyright (c) Microsoft Corporation.
814
814
  // Licensed under the MIT license.
815
- var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
815
+ var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
816
816
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
817
817
  return new (P || (P = Promise))(function (resolve, reject) {
818
818
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -839,7 +839,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
839
839
  return callAgent ? callAgent.startCall(participants, options) : undefined;
840
840
  },
841
841
  /* @conditional-compile-remove(PSTN-calls) */
842
- onAddParticipant: (userId, options) => __awaiter$A(void 0, void 0, void 0, function* () {
842
+ onAddParticipant: (userId, options) => __awaiter$B(void 0, void 0, void 0, function* () {
843
843
  const participant = _toCommunicationIdentifier(userId);
844
844
  if (communicationCommon.isPhoneNumberIdentifier(participant)) {
845
845
  call === null || call === void 0 ? void 0 : call.addParticipant(participant, options);
@@ -847,7 +847,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
847
847
  else if (communicationCommon.isCommunicationUserIdentifier(participant) || communicationCommon.isMicrosoftTeamsUserIdentifier(participant)) {
848
848
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
849
849
  }
850
- }), onRemoveParticipant: (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
850
+ }), onRemoveParticipant: (userId) => __awaiter$B(void 0, void 0, void 0, function* () {
851
851
  const participant = _toCommunicationIdentifier(userId);
852
852
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
853
853
  }) });
@@ -855,7 +855,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
855
855
 
856
856
  // Copyright (c) Microsoft Corporation.
857
857
  // Licensed under the MIT license.
858
- var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
858
+ var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
859
859
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
860
860
  return new (P || (P = Promise))(function (resolve, reject) {
861
861
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -887,7 +887,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
887
887
  },
888
888
  /* @conditional-compile-remove(teams-identity-support) */
889
889
  /* @conditional-compile-remove(PSTN-calls) */
890
- onAddParticipant: (userId, options) => __awaiter$z(void 0, void 0, void 0, function* () {
890
+ onAddParticipant: (userId, options) => __awaiter$A(void 0, void 0, void 0, function* () {
891
891
  const participant = _toCommunicationIdentifier(userId);
892
892
  /* @conditional-compile-remove(teams-identity-support) */
893
893
  const threadId = options === null || options === void 0 ? void 0 : options.threadId;
@@ -900,7 +900,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
900
900
  }
901
901
  /* @conditional-compile-remove(teams-identity-support) */
902
902
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
903
- }), onRemoveParticipant: (userId) => __awaiter$z(void 0, void 0, void 0, function* () {
903
+ }), onRemoveParticipant: (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
904
904
  const participant = _toCommunicationIdentifier(userId);
905
905
  if (communicationCommon.isCommunicationUserIdentifier(participant)) {
906
906
  throw new Error('CommunicationIdentifier in Teams call is not supported!');
@@ -912,7 +912,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
912
912
 
913
913
  // Copyright (c) Microsoft Corporation.
914
914
  // Licensed under the MIT license.
915
- var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
915
+ var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
916
916
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
917
917
  return new (P || (P = Promise))(function (resolve, reject) {
918
918
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -961,13 +961,13 @@ class ProxyDeviceManager {
961
961
  this.selectCamera = (videoDeviceInfo) => {
962
962
  this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
963
963
  };
964
- this.videoDevicesUpdated = () => __awaiter$y(this, void 0, void 0, function* () {
964
+ this.videoDevicesUpdated = () => __awaiter$z(this, void 0, void 0, function* () {
965
965
  // Device Manager always has a camera with '' name if there are no real camera devices available.
966
966
  // We don't want to show that in the UI.
967
967
  const realCameras = (yield this._deviceManager.getCameras()).filter((c) => !!c.name);
968
968
  this._context.setDeviceManagerCameras(dedupeById(realCameras));
969
969
  });
970
- this.audioDevicesUpdated = () => __awaiter$y(this, void 0, void 0, function* () {
970
+ this.audioDevicesUpdated = () => __awaiter$z(this, void 0, void 0, function* () {
971
971
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
972
972
  this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
973
973
  });
@@ -1176,7 +1176,7 @@ class CallIdHistory {
1176
1176
 
1177
1177
  // Copyright (c) Microsoft Corporation.
1178
1178
  // Licensed under the MIT license.
1179
- var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1179
+ var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1180
1180
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1181
1181
  return new (P || (P = Promise))(function (resolve, reject) {
1182
1182
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1716,7 +1716,7 @@ class CallContext$2 {
1716
1716
  * @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
1717
1717
  */
1718
1718
  withAsyncErrorTeedToState(action, target) {
1719
- return (...args) => __awaiter$x(this, void 0, void 0, function* () {
1719
+ return (...args) => __awaiter$y(this, void 0, void 0, function* () {
1720
1720
  try {
1721
1721
  return yield action(...args);
1722
1722
  }
@@ -1993,7 +1993,7 @@ class RemoteVideoStreamSubscriber {
1993
1993
 
1994
1994
  // Copyright (c) Microsoft Corporation.
1995
1995
  // Licensed under the MIT license.
1996
- var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1996
+ var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1997
1997
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1998
1998
  return new (P || (P = Promise))(function (resolve, reject) {
1999
1999
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2003,7 +2003,7 @@ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments,
2003
2003
  });
2004
2004
  };
2005
2005
  function createViewRemoteVideo(context, internalContext, callId, participantId, stream, options) {
2006
- return __awaiter$w(this, void 0, void 0, function* () {
2006
+ return __awaiter$x(this, void 0, void 0, function* () {
2007
2007
  // Render RemoteVideoStream that is part of a Call
2008
2008
  const streamId = stream.id;
2009
2009
  let participantKey;
@@ -2128,7 +2128,7 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
2128
2128
  });
2129
2129
  }
2130
2130
  function createViewLocalVideo(context, internalContext, callId, options) {
2131
- return __awaiter$w(this, void 0, void 0, function* () {
2131
+ return __awaiter$x(this, void 0, void 0, function* () {
2132
2132
  _logEvent(callingStatefulLogger, {
2133
2133
  name: EventNames.START_LOCAL_STREAM_RENDERING,
2134
2134
  level: 'info',
@@ -2246,7 +2246,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
2246
2246
  });
2247
2247
  }
2248
2248
  function createViewUnparentedVideo(context, internalContext, stream, options) {
2249
- return __awaiter$w(this, void 0, void 0, function* () {
2249
+ return __awaiter$x(this, void 0, void 0, function* () {
2250
2250
  const renderInfo = internalContext.getUnparentedRenderInfo(stream);
2251
2251
  if (renderInfo && renderInfo.status === 'Rendered') {
2252
2252
  console.warn('Unparented LocalVideoStream is already rendered');
@@ -2518,7 +2518,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
2518
2518
  // Render LocalVideoStream that is not part of a Call
2519
2519
  // Because it is not part of the call we don't tee errors to state naturally (e.g. via a Call Client function such as startVideo).
2520
2520
  // We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.
2521
- return context.withAsyncErrorTeedToState(() => __awaiter$w(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
2521
+ return context.withAsyncErrorTeedToState(() => __awaiter$x(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
2522
2522
  }
2523
2523
  else {
2524
2524
  _logEvent(callingStatefulLogger, {
@@ -2945,7 +2945,7 @@ class CallSubscriber {
2945
2945
 
2946
2946
  // Copyright (c) Microsoft Corporation.
2947
2947
  // Licensed under the MIT license.
2948
- var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2948
+ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2949
2949
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2950
2950
  return new (P || (P = Promise))(function (resolve, reject) {
2951
2951
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2965,14 +2965,14 @@ class ProxyIncomingCall {
2965
2965
  switch (prop) {
2966
2966
  case 'accept': {
2967
2967
  return this._context.withAsyncErrorTeedToState(function (...args) {
2968
- return __awaiter$v(this, void 0, void 0, function* () {
2968
+ return __awaiter$w(this, void 0, void 0, function* () {
2969
2969
  return yield target.accept(...args);
2970
2970
  });
2971
2971
  }, 'IncomingCall.accept');
2972
2972
  }
2973
2973
  case 'reject': {
2974
2974
  return this._context.withAsyncErrorTeedToState(function (...args) {
2975
- return __awaiter$v(this, void 0, void 0, function* () {
2975
+ return __awaiter$w(this, void 0, void 0, function* () {
2976
2976
  return yield target.reject(...args);
2977
2977
  });
2978
2978
  }, 'IncomingCall.reject');
@@ -3209,7 +3209,7 @@ const clearCallRelatedState = (context, internalContext) => {
3209
3209
 
3210
3210
  // Copyright (c) Microsoft Corporation.
3211
3211
  // Licensed under the MIT license.
3212
- var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3212
+ var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3213
3213
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3214
3214
  return new (P || (P = Promise))(function (resolve, reject) {
3215
3215
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3235,56 +3235,56 @@ class ProxyCallCommon {
3235
3235
  switch (prop) {
3236
3236
  case 'mute': {
3237
3237
  return this._context.withAsyncErrorTeedToState(function (...args) {
3238
- return __awaiter$u(this, void 0, void 0, function* () {
3238
+ return __awaiter$v(this, void 0, void 0, function* () {
3239
3239
  return yield target.mute(...args);
3240
3240
  });
3241
3241
  }, 'Call.mute');
3242
3242
  }
3243
3243
  case 'unmute': {
3244
3244
  return this._context.withAsyncErrorTeedToState(function (...args) {
3245
- return __awaiter$u(this, void 0, void 0, function* () {
3245
+ return __awaiter$v(this, void 0, void 0, function* () {
3246
3246
  return yield target.unmute(...args);
3247
3247
  });
3248
3248
  }, 'Call.unmute');
3249
3249
  }
3250
3250
  case 'startVideo': {
3251
3251
  return this._context.withAsyncErrorTeedToState(function (...args) {
3252
- return __awaiter$u(this, void 0, void 0, function* () {
3252
+ return __awaiter$v(this, void 0, void 0, function* () {
3253
3253
  return yield target.startVideo(...args);
3254
3254
  });
3255
3255
  }, 'Call.startVideo');
3256
3256
  }
3257
3257
  case 'stopVideo': {
3258
3258
  return this._context.withAsyncErrorTeedToState(function (...args) {
3259
- return __awaiter$u(this, void 0, void 0, function* () {
3259
+ return __awaiter$v(this, void 0, void 0, function* () {
3260
3260
  return yield target.stopVideo(...args);
3261
3261
  });
3262
3262
  }, 'Call.stopVideo');
3263
3263
  }
3264
3264
  case 'startScreenSharing': {
3265
3265
  return this._context.withAsyncErrorTeedToState(function (...args) {
3266
- return __awaiter$u(this, void 0, void 0, function* () {
3266
+ return __awaiter$v(this, void 0, void 0, function* () {
3267
3267
  return yield target.startScreenSharing(...args);
3268
3268
  });
3269
3269
  }, 'Call.startScreenSharing');
3270
3270
  }
3271
3271
  case 'stopScreenSharing': {
3272
3272
  return this._context.withAsyncErrorTeedToState(function (...args) {
3273
- return __awaiter$u(this, void 0, void 0, function* () {
3273
+ return __awaiter$v(this, void 0, void 0, function* () {
3274
3274
  return yield target.stopScreenSharing(...args);
3275
3275
  });
3276
3276
  }, 'Call.stopScreenSharing');
3277
3277
  }
3278
3278
  case 'hold': {
3279
3279
  return this._context.withAsyncErrorTeedToState(function (...args) {
3280
- return __awaiter$u(this, void 0, void 0, function* () {
3280
+ return __awaiter$v(this, void 0, void 0, function* () {
3281
3281
  return yield target.hold(...args);
3282
3282
  });
3283
3283
  }, 'Call.hold');
3284
3284
  }
3285
3285
  case 'resume': {
3286
3286
  return this._context.withAsyncErrorTeedToState(function (...args) {
3287
- return __awaiter$u(this, void 0, void 0, function* () {
3287
+ return __awaiter$v(this, void 0, void 0, function* () {
3288
3288
  return yield target.resume(...args);
3289
3289
  });
3290
3290
  }, 'Call.resume');
@@ -3297,7 +3297,7 @@ class ProxyCallCommon {
3297
3297
 
3298
3298
  // Copyright (c) Microsoft Corporation.
3299
3299
  // Licensed under the MIT license.
3300
- var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3300
+ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3301
3301
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3302
3302
  return new (P || (P = Promise))(function (resolve, reject) {
3303
3303
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3311,7 +3311,7 @@ class ProxyCall extends ProxyCallCommon {
3311
3311
  switch (prop) {
3312
3312
  case 'addParticipant': {
3313
3313
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
3314
- return __awaiter$t(this, void 0, void 0, function* () {
3314
+ return __awaiter$u(this, void 0, void 0, function* () {
3315
3315
  return yield target.addParticipant(...args);
3316
3316
  });
3317
3317
  }, 'Call.addParticipant');
@@ -3508,7 +3508,7 @@ class InternalCallContext {
3508
3508
 
3509
3509
  // Copyright (c) Microsoft Corporation.
3510
3510
  // Licensed under the MIT license.
3511
- var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3511
+ var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3512
3512
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3513
3513
  return new (P || (P = Promise))(function (resolve, reject) {
3514
3514
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3523,7 +3523,7 @@ class ProxyTeamsCall extends ProxyCallCommon {
3523
3523
  switch (prop) {
3524
3524
  case 'addParticipant': {
3525
3525
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
3526
- return __awaiter$s(this, void 0, void 0, function* () {
3526
+ return __awaiter$t(this, void 0, void 0, function* () {
3527
3527
  return yield target.addParticipant(...args);
3528
3528
  });
3529
3529
  }, 'TeamsCall.addParticipant');
@@ -3638,7 +3638,7 @@ const teamsCallAgentDeclaratify = (callAgent, context, internalContext) => {
3638
3638
 
3639
3639
  // Copyright (c) Microsoft Corporation.
3640
3640
  // Licensed under the MIT license.
3641
- var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3641
+ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3642
3642
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3643
3643
  return new (P || (P = Promise))(function (resolve, reject) {
3644
3644
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3660,7 +3660,7 @@ class ProxyVideoStreamRendererView {
3660
3660
  get(target, prop) {
3661
3661
  switch (prop) {
3662
3662
  case 'updateScalingMode': {
3663
- return (...args) => __awaiter$r(this, void 0, void 0, function* () {
3663
+ return (...args) => __awaiter$s(this, void 0, void 0, function* () {
3664
3664
  yield target.updateScalingMode(...args);
3665
3665
  this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);
3666
3666
  });
@@ -3681,7 +3681,7 @@ const videoStreamRendererViewDeclaratify = (view, context, callId, participantId
3681
3681
 
3682
3682
  // Copyright (c) Microsoft Corporation.
3683
3683
  // Licensed under the MIT license.
3684
- var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3684
+ var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3685
3685
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3686
3686
  return new (P || (P = Promise))(function (resolve, reject) {
3687
3687
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3703,7 +3703,7 @@ class ProxyCallClient {
3703
3703
  get(target, prop) {
3704
3704
  switch (prop) {
3705
3705
  case 'createCallAgent': {
3706
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
3706
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$r(this, void 0, void 0, function* () {
3707
3707
  // createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
3708
3708
  // callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
3709
3709
  // callAgent if the createCallAgent succeeds.
@@ -3716,7 +3716,7 @@ class ProxyCallClient {
3716
3716
  }), 'CallClient.createCallAgent');
3717
3717
  }
3718
3718
  case 'createTeamsCallAgent': {
3719
- /* @conditional-compile-remove(teams-identity-support) */ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$q(this, void 0, void 0, function* () {
3719
+ /* @conditional-compile-remove(teams-identity-support) */ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$r(this, void 0, void 0, function* () {
3720
3720
  // createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
3721
3721
  // callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
3722
3722
  // callAgent if the createCallAgent succeeds.
@@ -3729,7 +3729,7 @@ class ProxyCallClient {
3729
3729
  }), 'CallClient.createTeamsCallAgent');
3730
3730
  }
3731
3731
  case 'getDeviceManager': {
3732
- return this._context.withAsyncErrorTeedToState(() => __awaiter$q(this, void 0, void 0, function* () {
3732
+ return this._context.withAsyncErrorTeedToState(() => __awaiter$r(this, void 0, void 0, function* () {
3733
3733
  // As of writing, the SDK always returns the same instance of DeviceManager so we keep a reference of
3734
3734
  // DeviceManager and if it does not change we return the cached DeclarativeDeviceManager. If it does not we'll
3735
3735
  // throw an error that indicate we need to fix this issue as our implementation has diverged from the SDK.
@@ -3758,7 +3758,7 @@ class ProxyCallClient {
3758
3758
  /**
3759
3759
  * add to this object if we want to proxy anything else off the DebugInfo feature object.
3760
3760
  */
3761
- return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$q(this, void 0, void 0, function* () {
3761
+ return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$r(this, void 0, void 0, function* () {
3762
3762
  const environmentInfo = yield feature.getEnvironmentInfo();
3763
3763
  this._context.setEnvironmentInfo(environmentInfo);
3764
3764
  return environmentInfo;
@@ -3811,7 +3811,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
3811
3811
  });
3812
3812
  Object.defineProperty(callClient, 'createView', {
3813
3813
  configurable: false,
3814
- value: (callId, participantId, stream, options) => __awaiter$q(void 0, void 0, void 0, function* () {
3814
+ value: (callId, participantId, stream, options) => __awaiter$r(void 0, void 0, void 0, function* () {
3815
3815
  const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
3816
3816
  const result = yield createView(context, internalContext, callId, participantIdKind, stream, options);
3817
3817
  // We only need to declaratify the VideoStreamRendererView object for remote participants. Because the updateScalingMode only needs to be called on remote participant stream views.
@@ -4040,7 +4040,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
4040
4040
  wordBreak: 'break-word'
4041
4041
  });
4042
4042
 
4043
- var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$d={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$d={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$d={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$1={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$1={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$d={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$d={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton$d,videoTile:videoTile$d,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest,CameraSitePermissionsRequest:CameraSitePermissionsRequest,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck,CameraSitePermissionsCheck:CameraSitePermissionsCheck,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari,CameraSitePermissionsDenied:CameraSitePermissionsDenied,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,UnsupportedOperatingSystem:UnsupportedOperatingSystem$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
4043
+ var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$d={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",startScreenSharingGeneric:"There was an issue starting screen share."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$d={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$d={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$1={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$1={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$d={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$d={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton$d,videoTile:videoTile$d,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest,CameraSitePermissionsRequest:CameraSitePermissionsRequest,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck,CameraSitePermissionsCheck:CameraSitePermissionsCheck,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari,CameraSitePermissionsDenied:CameraSitePermissionsDenied,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,UnsupportedOperatingSystem:UnsupportedOperatingSystem$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
4044
4044
 
4045
4045
  var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$c={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant"};var dialpad$c={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$c={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$c={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var SitePermissions$c={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Allow Access"};var UnsupportedBrowser$d={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"More help"};var BrowserPermissionDenied$c={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$c={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,holdButton:holdButton$c,videoTile:videoTile$c,SitePermissions:SitePermissions$c,UnsupportedBrowser:UnsupportedBrowser$d,BrowserPermissionDenied:BrowserPermissionDenied$c,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$c};
4046
4046
 
@@ -4503,6 +4503,7 @@ const messageBarType = (errorType) => {
4503
4503
  case 'callVideoRecoveredBySystem':
4504
4504
  case 'callMacOsCameraAccessDenied':
4505
4505
  case 'callMacOsScreenShareAccessDenied':
4506
+ case 'startScreenSharingGeneric':
4506
4507
  return react.MessageBarType.warning;
4507
4508
  default:
4508
4509
  return react.MessageBarType.error;
@@ -6624,7 +6625,7 @@ const chatMessageActionMenuProps = (menuProps) => {
6624
6625
  return actionMenuProps;
6625
6626
  };
6626
6627
 
6627
- var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6628
+ var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6628
6629
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6629
6630
  return new (P || (P = Promise))(function (resolve, reject) {
6630
6631
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6649,7 +6650,7 @@ const _FileDownloadCards = (props) => {
6649
6650
  var _a, _b;
6650
6651
  return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile) !== null && _b !== void 0 ? _b : localeStrings.downloadFile;
6651
6652
  }, [(_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile, localeStrings.downloadFile]);
6652
- const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$p(void 0, void 0, void 0, function* () {
6653
+ const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$q(void 0, void 0, void 0, function* () {
6653
6654
  if (!props.downloadHandler) {
6654
6655
  window.open(file.url, '_blank', 'noopener,noreferrer');
6655
6656
  }
@@ -6797,7 +6798,7 @@ const ChatMessageComponentAsMessageBubble = React__default['default'].memo(Messa
6797
6798
 
6798
6799
  // Copyright (c) Microsoft Corporation.
6799
6800
  // Licensed under the MIT license.
6800
- var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6801
+ var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6801
6802
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6802
6803
  return new (P || (P = Promise))(function (resolve, reject) {
6803
6804
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6831,7 +6832,7 @@ const ChatMessageComponent = (props) => {
6831
6832
  return React__default['default'].createElement(React__default['default'].Fragment, null);
6832
6833
  }
6833
6834
  else if (isEditing) {
6834
- return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$o(void 0, void 0, void 0, function* () {
6835
+ return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$p(void 0, void 0, void 0, function* () {
6835
6836
  props.onUpdateMessage &&
6836
6837
  props.message.messageId &&
6837
6838
  (yield props.onUpdateMessage(props.message.messageId, text, metadata, options));
@@ -6930,7 +6931,7 @@ const getParticipantsWhoHaveReadMessage = (message, readReceiptsBySenderId) => {
6930
6931
 
6931
6932
  // Copyright (c) Microsoft Corporation.
6932
6933
  // Licensed under the MIT license.
6933
- var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6934
+ var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6934
6935
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6935
6936
  return new (P || (P = Promise))(function (resolve, reject) {
6936
6937
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -7158,7 +7159,7 @@ const MessageThread = (props) => {
7158
7159
  setChatMessagesInitialized(chatMessagesInitialized);
7159
7160
  };
7160
7161
  // we try to only send those message status if user is scrolled to the bottom.
7161
- const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
7162
+ const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$o(void 0, void 0, void 0, function* () {
7162
7163
  if (!isAtBottomOfScrollRef.current ||
7163
7164
  !document.hasFocus() ||
7164
7165
  !messagesRef.current ||
@@ -7209,7 +7210,7 @@ const MessageThread = (props) => {
7209
7210
  setIsAtBottomOfScrollRef(atBottom);
7210
7211
  }, [scrollToBottom, sendMessageStatusIfAtBottom]);
7211
7212
  // Infinite scrolling + threadInitialize function
7212
- const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
7213
+ const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$o(void 0, void 0, void 0, function* () {
7213
7214
  if (!isLoadingChatMessagesRef.current) {
7214
7215
  if (onLoadPreviousChatMessages) {
7215
7216
  isLoadingChatMessagesRef.current = true;
@@ -10963,7 +10964,7 @@ const DevicesButton = (props) => {
10963
10964
 
10964
10965
  // Copyright (c) Microsoft Corporation.
10965
10966
  // Licensed under the MIT license.
10966
- var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10967
+ var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10967
10968
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10968
10969
  return new (P || (P = Promise))(function (resolve, reject) {
10969
10970
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -11001,7 +11002,7 @@ const CameraButton = (props) => {
11001
11002
  const toggleAnnouncerString = React.useCallback((isCameraOn) => {
11002
11003
  setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
11003
11004
  }, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
11004
- const onToggleClick = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
11005
+ const onToggleClick = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
11005
11006
  // Throttle click on camera, need to await onToggleCamera then allow another click
11006
11007
  if (onToggleCamera) {
11007
11008
  setWaitForCamera(true);
@@ -11133,7 +11134,7 @@ const lightThemeCallButtonStyles = {
11133
11134
 
11134
11135
  // Copyright (c) Microsoft Corporation.
11135
11136
  // Licensed under the MIT license.
11136
- var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11137
+ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11137
11138
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11138
11139
  return new (P || (P = Promise))(function (resolve, reject) {
11139
11140
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -11174,7 +11175,7 @@ const MicrophoneButton = (props) => {
11174
11175
  const toggleAnnouncerString = React.useCallback((isMicOn) => {
11175
11176
  setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
11176
11177
  }, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
11177
- const onToggleClick = React.useCallback(() => __awaiter$l(void 0, void 0, void 0, function* () {
11178
+ const onToggleClick = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
11178
11179
  if (onToggleMicrophone) {
11179
11180
  try {
11180
11181
  yield onToggleMicrophone();
@@ -12035,7 +12036,7 @@ const formatPhoneNumber = (phoneNumber) => {
12035
12036
 
12036
12037
  // Copyright (c) Microsoft Corporation.
12037
12038
  // Licensed under the MIT license.
12038
- var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12039
+ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12039
12040
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12040
12041
  return new (P || (P = Promise))(function (resolve, reject) {
12041
12042
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12077,10 +12078,10 @@ const DialpadButton = (props) => {
12077
12078
  const theme = react.useTheme();
12078
12079
  const { digit, index, onClick, onLongPress, isMobile = false } = props;
12079
12080
  const useLongPressProps = React__default['default'].useMemo(() => ({
12080
- onClick: () => __awaiter$k(void 0, void 0, void 0, function* () {
12081
+ onClick: () => __awaiter$l(void 0, void 0, void 0, function* () {
12081
12082
  onClick(digit, index);
12082
12083
  }),
12083
- onLongPress: () => __awaiter$k(void 0, void 0, void 0, function* () {
12084
+ onLongPress: () => __awaiter$l(void 0, void 0, void 0, function* () {
12084
12085
  onLongPress(digit, index);
12085
12086
  }),
12086
12087
  touchEventsOnly: isMobile
@@ -12832,7 +12833,7 @@ const useSelector$4 = (selector, selectorProps) => {
12832
12833
  * @public
12833
12834
  */
12834
12835
  const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
12835
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
12836
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
12836
12837
  // The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
12837
12838
  // There are several options for the ordering:
12838
12839
  // - Sorted by when the errors happened (latest first / oldest first).
@@ -12842,9 +12843,13 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
12842
12843
  // have timestamps for errors.
12843
12844
  const activeErrorMessages = [];
12844
12845
  const isSafari = () => {
12845
- /* @conditional-compile-remove(unsupported-browser) */
12846
+ /* @conditional-compile-remove(calling-environment-info) */
12846
12847
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
12847
12848
  };
12849
+ const isMacOS = () => {
12850
+ /* @conditional-compile-remove(calling-environment-info) */
12851
+ return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
12852
+ };
12848
12853
  // Errors reported via diagnostics are more reliable than from API method failures, so process those first.
12849
12854
  if (((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value) === communicationCalling.DiagnosticQuality.Bad ||
12850
12855
  ((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor) {
@@ -12862,9 +12867,12 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
12862
12867
  if (((_f = deviceManager.deviceAccess) === null || _f === void 0 ? void 0 : _f.audio) === false && !isSafari()) {
12863
12868
  activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
12864
12869
  }
12865
- if (((_g = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _g === void 0 ? void 0 : _g.value) === true) {
12870
+ if (((_g = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _g === void 0 ? void 0 : _g.value) === true && isMacOS()) {
12866
12871
  activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });
12867
12872
  }
12873
+ else if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _h === void 0 ? void 0 : _h.value) === true) {
12874
+ activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
12875
+ }
12868
12876
  const microphoneMuteUnexpectedlyDiagnostic = (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) || (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning);
12869
12877
  if (microphoneMuteUnexpectedlyDiagnostic) {
12870
12878
  if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
@@ -12887,38 +12895,47 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
12887
12895
  activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });
12888
12896
  }
12889
12897
  }
12890
- if (((_h = deviceManager.deviceAccess) === null || _h === void 0 ? void 0 : _h.video) === false && isSafari()) {
12898
+ if (((_j = deviceManager.deviceAccess) === null || _j === void 0 ? void 0 : _j.video) === false && isSafari()) {
12891
12899
  activeErrorMessages.push({ type: 'callCameraAccessDeniedSafari' });
12892
12900
  }
12893
- else if (((_j = deviceManager.deviceAccess) === null || _j === void 0 ? void 0 : _j.video) === false) {
12901
+ else if (((_k = deviceManager.deviceAccess) === null || _k === void 0 ? void 0 : _k.video) === false) {
12894
12902
  activeErrorMessages.push({ type: 'callCameraAccessDenied' });
12895
12903
  }
12896
12904
  else {
12897
- if (((_k = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _k === void 0 ? void 0 : _k.value) === true) {
12905
+ if (((_l = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _l === void 0 ? void 0 : _l.value) === true) {
12898
12906
  activeErrorMessages.push({ type: 'callCameraAlreadyInUse' });
12899
12907
  }
12900
12908
  }
12901
- if (((_l = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _l === void 0 ? void 0 : _l.value) === true) {
12909
+ /**
12910
+ * show the Mac specific strings if the platform is detected as mac
12911
+ */
12912
+ if (((_m = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _m === void 0 ? void 0 : _m.value) === true && isMacOS()) {
12902
12913
  activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });
12903
12914
  }
12904
- if (((_m = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _m === void 0 ? void 0 : _m.value) === true) {
12915
+ /**
12916
+ * This UFD only works on mac still so we should only see it fire on mac.
12917
+ */
12918
+ if (((_o = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _o === void 0 ? void 0 : _o.value) === true && isMacOS()) {
12905
12919
  activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });
12906
12920
  }
12921
+ else if (((_p = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _p === void 0 ? void 0 : _p.value) === true) {
12922
+ activeErrorMessages.push({ type: 'startScreenSharingGeneric' });
12923
+ }
12907
12924
  // Prefer to show errors with privacy implications.
12908
12925
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopVideo', 'stopVideoGeneric');
12909
12926
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mute', 'muteGeneric');
12910
12927
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
12911
- if (((_o = latestErrors['Call.startVideo']) === null || _o === void 0 ? void 0 : _o.message) === 'Call.startVideo: Video operation failure SourceUnavailableError') {
12928
+ if (((_q = latestErrors['Call.startVideo']) === null || _q === void 0 ? void 0 : _q.message) === 'Call.startVideo: Video operation failure SourceUnavailableError') {
12912
12929
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAlreadyInUse');
12913
12930
  }
12914
- else if (((_p = latestErrors['Call.startVideo']) === null || _p === void 0 ? void 0 : _p.message) === 'Call.startVideo: Video operation failure permissionDeniedError') {
12931
+ else if (((_r = latestErrors['Call.startVideo']) === null || _r === void 0 ? void 0 : _r.message) === 'Call.startVideo: Video operation failure permissionDeniedError') {
12915
12932
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAccessDenied');
12916
12933
  }
12917
12934
  else {
12918
12935
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
12919
12936
  }
12920
12937
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
12921
- if (((_q = latestErrors['CallAgent.join']) === null || _q === void 0 ? void 0 : _q.message) === 'CallAgent.join: Invalid meeting link') {
12938
+ if (((_s = latestErrors['CallAgent.join']) === null || _s === void 0 ? void 0 : _s.message) === 'CallAgent.join: Invalid meeting link') {
12922
12939
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
12923
12940
  }
12924
12941
  else {
@@ -12995,7 +13012,7 @@ const findConditionalCompiledSelector = (component) => {
12995
13012
 
12996
13013
  // Copyright (c) Microsoft Corporation.
12997
13014
  // Licensed under the MIT license.
12998
- var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
13015
+ var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12999
13016
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13000
13017
  return new (P || (P = Promise))(function (resolve, reject) {
13001
13018
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -13018,35 +13035,35 @@ const createDefaultChatHandlers = memoizeOne__default['default']((chatClient, ch
13018
13035
  let messageIterator = undefined;
13019
13036
  let readReceiptIterator = undefined;
13020
13037
  return {
13021
- onSendMessage: (content, options) => __awaiter$j(void 0, void 0, void 0, function* () {
13038
+ onSendMessage: (content, options) => __awaiter$k(void 0, void 0, void 0, function* () {
13022
13039
  const sendMessageRequest = {
13023
13040
  content,
13024
13041
  senderDisplayName: chatClient.getState().displayName
13025
13042
  };
13026
13043
  yield chatThreadClient.sendMessage(sendMessageRequest, options);
13027
13044
  }),
13028
- onUpdateMessage: (messageId, content, metadata, options) => __awaiter$j(void 0, void 0, void 0, function* () {
13045
+ onUpdateMessage: (messageId, content, metadata, options) => __awaiter$k(void 0, void 0, void 0, function* () {
13029
13046
  const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
13030
13047
  updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
13031
13048
  yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
13032
13049
  }),
13033
- onDeleteMessage: (messageId) => __awaiter$j(void 0, void 0, void 0, function* () {
13050
+ onDeleteMessage: (messageId) => __awaiter$k(void 0, void 0, void 0, function* () {
13034
13051
  yield chatThreadClient.deleteMessage(messageId);
13035
13052
  }),
13036
13053
  // This handler is designed for chatThread to consume
13037
- onMessageSeen: (chatMessageId) => __awaiter$j(void 0, void 0, void 0, function* () {
13054
+ onMessageSeen: (chatMessageId) => __awaiter$k(void 0, void 0, void 0, function* () {
13038
13055
  yield chatThreadClient.sendReadReceipt({ chatMessageId });
13039
13056
  }),
13040
- onTyping: () => __awaiter$j(void 0, void 0, void 0, function* () {
13057
+ onTyping: () => __awaiter$k(void 0, void 0, void 0, function* () {
13041
13058
  yield chatThreadClient.sendTypingNotification();
13042
13059
  }),
13043
- onRemoveParticipant: (userId) => __awaiter$j(void 0, void 0, void 0, function* () {
13060
+ onRemoveParticipant: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
13044
13061
  yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
13045
13062
  }),
13046
- updateThreadTopicName: (topicName) => __awaiter$j(void 0, void 0, void 0, function* () {
13063
+ updateThreadTopicName: (topicName) => __awaiter$k(void 0, void 0, void 0, function* () {
13047
13064
  yield chatThreadClient.updateTopic(topicName);
13048
13065
  }),
13049
- onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$j(void 0, void 0, void 0, function* () {
13066
+ onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$k(void 0, void 0, void 0, function* () {
13050
13067
  var _a, _b, _c;
13051
13068
  if (messageIterator === undefined) {
13052
13069
  // Lazy definition so that errors in the method call are reported correctly.
@@ -13783,7 +13800,7 @@ const chatStatefulLogger = logger.createClientLogger('communication-react:chat-s
13783
13800
 
13784
13801
  // Copyright (c) Microsoft Corporation.
13785
13802
  // Licensed under the MIT license.
13786
- var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
13803
+ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
13787
13804
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13788
13805
  return new (P || (P = Promise))(function (resolve, reject) {
13789
13806
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14058,7 +14075,7 @@ class ChatContext$1 {
14058
14075
  * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
14059
14076
  */
14060
14077
  withAsyncErrorTeedToState(f, target) {
14061
- return (...args) => __awaiter$i(this, void 0, void 0, function* () {
14078
+ return (...args) => __awaiter$j(this, void 0, void 0, function* () {
14062
14079
  try {
14063
14080
  return yield f(...args);
14064
14081
  }
@@ -14165,7 +14182,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
14165
14182
 
14166
14183
  // Copyright (c) Microsoft Corporation.
14167
14184
  // Licensed under the MIT license.
14168
- var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14185
+ var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14169
14186
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14170
14187
  return new (P || (P = Promise))(function (resolve, reject) {
14171
14188
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14249,7 +14266,7 @@ class EventSubscriber {
14249
14266
  this.fetchLastParticipantMessage(event.threadId, 'participantAdded');
14250
14267
  };
14251
14268
  // This is a hot fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK
14252
- this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$h(this, void 0, void 0, function* () {
14269
+ this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$i(this, void 0, void 0, function* () {
14253
14270
  var e_1, _a;
14254
14271
  try {
14255
14272
  for (var _b = __asyncValues$1(this.chatClient
@@ -14335,7 +14352,7 @@ class EventSubscriber {
14335
14352
 
14336
14353
  // Copyright (c) Microsoft Corporation.
14337
14354
  // Licensed under the MIT license.
14338
- var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14355
+ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14339
14356
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14340
14357
  return new (P || (P = Promise))(function (resolve, reject) {
14341
14358
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14357,7 +14374,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
14357
14374
  const threadsIterator = iteratorCreator(...args);
14358
14375
  return {
14359
14376
  next() {
14360
- return __awaiter$g(this, void 0, void 0, function* () {
14377
+ return __awaiter$h(this, void 0, void 0, function* () {
14361
14378
  const result = yield threadsIterator.next();
14362
14379
  if (!result.done && result.value) {
14363
14380
  decorateFn(result.value, context);
@@ -14372,7 +14389,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
14372
14389
  const pages = threadsIterator.byPage(settings);
14373
14390
  return {
14374
14391
  next() {
14375
- return __awaiter$g(this, void 0, void 0, function* () {
14392
+ return __awaiter$h(this, void 0, void 0, function* () {
14376
14393
  const result = yield pages.next();
14377
14394
  const page = result.value;
14378
14395
  if (!result.done && result.value) {
@@ -14456,7 +14473,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
14456
14473
 
14457
14474
  // Copyright (c) Microsoft Corporation.
14458
14475
  // Licensed under the MIT license.
14459
- var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14476
+ var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14460
14477
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14461
14478
  return new (P || (P = Promise))(function (resolve, reject) {
14462
14479
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14475,14 +14492,14 @@ class ProxyChatThreadClient {
14475
14492
  return createDecoratedListMessages(chatThreadClient, this._context);
14476
14493
  }
14477
14494
  case 'getMessage': {
14478
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14495
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14479
14496
  const message = yield chatThreadClient.getMessage(...args);
14480
14497
  this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
14481
14498
  return message;
14482
14499
  }), 'ChatThreadClient.getMessage');
14483
14500
  }
14484
14501
  case 'sendMessage': {
14485
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14502
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14486
14503
  // Retry logic?
14487
14504
  const [request, options] = args;
14488
14505
  const { content } = request;
@@ -14522,7 +14539,7 @@ class ProxyChatThreadClient {
14522
14539
  }), 'ChatThreadClient.sendMessage');
14523
14540
  }
14524
14541
  case 'addParticipants': {
14525
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14542
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14526
14543
  const result = yield chatThreadClient.addParticipants(...args);
14527
14544
  const [addRequest] = args;
14528
14545
  const participantsToAdd = addRequest.participants;
@@ -14531,7 +14548,7 @@ class ProxyChatThreadClient {
14531
14548
  }), 'ChatThreadClient.addParticipants');
14532
14549
  }
14533
14550
  case 'deleteMessage': {
14534
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14551
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14535
14552
  // DeleteMessage is able to either delete local one(for failed message) or synced message
14536
14553
  const [messageId] = args;
14537
14554
  if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
@@ -14549,12 +14566,12 @@ class ProxyChatThreadClient {
14549
14566
  return createDecoratedListReadReceipts(chatThreadClient, this._context);
14550
14567
  }
14551
14568
  case 'sendTypingNotification': {
14552
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14569
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14553
14570
  return yield chatThreadClient.sendTypingNotification(...args);
14554
14571
  }), 'ChatThreadClient.sendTypingNotification');
14555
14572
  }
14556
14573
  case 'removeParticipant': {
14557
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14574
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14558
14575
  const result = yield chatThreadClient.removeParticipant(...args);
14559
14576
  const [removeIdentifier] = args;
14560
14577
  this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
@@ -14562,7 +14579,7 @@ class ProxyChatThreadClient {
14562
14579
  }), 'ChatThreadClient.removeParticipant');
14563
14580
  }
14564
14581
  case 'updateMessage': {
14565
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14582
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14566
14583
  const result = yield chatThreadClient.updateMessage(...args);
14567
14584
  const [messageId, updateOption] = args;
14568
14585
  this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
@@ -14570,7 +14587,7 @@ class ProxyChatThreadClient {
14570
14587
  }), 'ChatThreadClient.updateMessage');
14571
14588
  }
14572
14589
  case 'updateTopic': {
14573
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14590
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14574
14591
  const result = yield chatThreadClient.updateTopic(...args);
14575
14592
  const [topic] = args;
14576
14593
  this._context.updateThreadTopic(chatThreadClient.threadId, topic);
@@ -14578,7 +14595,7 @@ class ProxyChatThreadClient {
14578
14595
  }), 'ChatThreadClient.updateTopic');
14579
14596
  }
14580
14597
  case 'getProperties': {
14581
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$f(this, void 0, void 0, function* () {
14598
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
14582
14599
  const result = yield chatThreadClient.getProperties(...args);
14583
14600
  this._context.updateThread(chatThreadClient.threadId, result);
14584
14601
  return result;
@@ -14615,7 +14632,7 @@ const createDecoratedListThreads = (chatClient, context) => {
14615
14632
 
14616
14633
  // Copyright (c) Microsoft Corporation.
14617
14634
  // Licensed under the MIT license.
14618
- var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14635
+ var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14619
14636
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14620
14637
  return new (P || (P = Promise))(function (resolve, reject) {
14621
14638
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14634,7 +14651,7 @@ const proxyChatClient = {
14634
14651
  switch (prop) {
14635
14652
  case 'createChatThread': {
14636
14653
  return context.withAsyncErrorTeedToState(function (...args) {
14637
- return __awaiter$e(this, void 0, void 0, function* () {
14654
+ return __awaiter$f(this, void 0, void 0, function* () {
14638
14655
  const result = yield chatClient.createChatThread(...args);
14639
14656
  const thread = result.chatThread;
14640
14657
  if (thread) {
@@ -14647,7 +14664,7 @@ const proxyChatClient = {
14647
14664
  }
14648
14665
  case 'deleteChatThread': {
14649
14666
  return context.withAsyncErrorTeedToState(function (...args) {
14650
- return __awaiter$e(this, void 0, void 0, function* () {
14667
+ return __awaiter$f(this, void 0, void 0, function* () {
14651
14668
  const result = yield chatClient.deleteChatThread(...args);
14652
14669
  context.deleteThread(args[0]);
14653
14670
  return result;
@@ -14667,7 +14684,7 @@ const proxyChatClient = {
14667
14684
  }
14668
14685
  case 'startRealtimeNotifications': {
14669
14686
  return context.withAsyncErrorTeedToState(function (...args) {
14670
- return __awaiter$e(this, void 0, void 0, function* () {
14687
+ return __awaiter$f(this, void 0, void 0, function* () {
14671
14688
  const ret = yield chatClient.startRealtimeNotifications(...args);
14672
14689
  if (!receiver.eventSubscriber) {
14673
14690
  receiver.eventSubscriber = new EventSubscriber(chatClient, context);
@@ -14678,7 +14695,7 @@ const proxyChatClient = {
14678
14695
  }
14679
14696
  case 'stopRealtimeNotifications': {
14680
14697
  return context.withAsyncErrorTeedToState(function (...args) {
14681
- return __awaiter$e(this, void 0, void 0, function* () {
14698
+ return __awaiter$f(this, void 0, void 0, function* () {
14682
14699
  const ret = yield chatClient.stopRealtimeNotifications(...args);
14683
14700
  if (receiver.eventSubscriber) {
14684
14701
  receiver.eventSubscriber.unsubscribe();
@@ -15285,7 +15302,7 @@ const END_CALL_PAGES = [
15285
15302
 
15286
15303
  // Copyright (c) Microsoft Corporation.
15287
15304
  // Licensed under the MIT license.
15288
- var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15305
+ var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15289
15306
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15290
15307
  return new (P || (P = Promise))(function (resolve, reject) {
15291
15308
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -15508,7 +15525,7 @@ const isDisabled$2 = (option) => {
15508
15525
  /**
15509
15526
  * @returns Permissions state for the camera.
15510
15527
  */
15511
- const queryCameraPermissionFromPermissionsAPI = () => __awaiter$d(void 0, void 0, void 0, function* () {
15528
+ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$e(void 0, void 0, void 0, function* () {
15512
15529
  try {
15513
15530
  return (yield navigator.permissions.query({ name: 'camera' })).state;
15514
15531
  }
@@ -15521,7 +15538,7 @@ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$d(void 0, void 0
15521
15538
  /**
15522
15539
  * @returns Permissions state for the microphone.
15523
15540
  */
15524
- const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$d(void 0, void 0, void 0, function* () {
15541
+ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$e(void 0, void 0, void 0, function* () {
15525
15542
  try {
15526
15543
  return (yield navigator.permissions.query({ name: 'microphone' })).state;
15527
15544
  }
@@ -15538,7 +15555,7 @@ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$d(void 0, vo
15538
15555
  * If permission API is not supported on this browser, permission state is set to unsupported.
15539
15556
  * @private
15540
15557
  */
15541
- const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$d(void 0, void 0, void 0, function* () {
15558
+ const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$e(void 0, void 0, void 0, function* () {
15542
15559
  const [cameraResult, microphoneResult] = yield Promise.all([
15543
15560
  queryCameraPermissionFromPermissionsAPI(),
15544
15561
  queryMicrophonePermissionFromPermissionsAPI()
@@ -15573,10 +15590,49 @@ const _isSafari = (environmentInfo) => {
15573
15590
  /* @conditional-compile-remove(unsupported-browser) */
15574
15591
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
15575
15592
  };
15593
+ /**
15594
+ * @private
15595
+ * This is the util function to create a participant modifier for remote participantList
15596
+ * It memoize previous original participant items and only update the changed participant
15597
+ * It takes in one modifier function to generate one single participant object, it returns undefined if the object keeps unmodified
15598
+ */
15599
+ const createParticipantModifier = (createModifiedParticipant) => {
15600
+ let previousParticipantState = undefined;
15601
+ let modifiedParticipants = {};
15602
+ const memoizedParticipants = {};
15603
+ return (state) => {
15604
+ var _a, _b, _c, _d;
15605
+ // if root state is the same, we don't need to update the participants
15606
+ if (((_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants) !== previousParticipantState) {
15607
+ modifiedParticipants = {};
15608
+ const originalParticipants = (_b = state.call) === null || _b === void 0 ? void 0 : _b.remoteParticipants;
15609
+ for (const key in originalParticipants) {
15610
+ const modifiedParticipant = createModifiedParticipant(key, originalParticipants[key]);
15611
+ if (modifiedParticipant === undefined) {
15612
+ modifiedParticipants[key] = originalParticipants[key];
15613
+ continue;
15614
+ }
15615
+ // Generate the new item if original cached item has been changed
15616
+ if (((_c = memoizedParticipants[key]) === null || _c === void 0 ? void 0 : _c.originalRef) !== originalParticipants[key]) {
15617
+ memoizedParticipants[key] = {
15618
+ newParticipant: modifiedParticipant,
15619
+ originalRef: originalParticipants[key]
15620
+ };
15621
+ }
15622
+ // the modified participant is always coming from the memoized cache, whether is was refreshed
15623
+ // from the previous closure or not
15624
+ modifiedParticipants[key] = memoizedParticipants[key].newParticipant;
15625
+ }
15626
+ previousParticipantState = (_d = state.call) === null || _d === void 0 ? void 0 : _d.remoteParticipants;
15627
+ }
15628
+ return Object.assign(Object.assign({}, state), { call: state.call
15629
+ ? Object.assign(Object.assign({}, state.call), { remoteParticipants: modifiedParticipants }) : undefined });
15630
+ };
15631
+ };
15576
15632
 
15577
15633
  // Copyright (c) Microsoft Corporation.
15578
15634
  // Licensed under the MIT license.
15579
- var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15635
+ var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15580
15636
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15581
15637
  return new (P || (P = Promise))(function (resolve, reject) {
15582
15638
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -15702,9 +15758,9 @@ class AzureCommunicationChatAdapter {
15702
15758
  this.unsubscribeAllEvents();
15703
15759
  }
15704
15760
  fetchInitialData() {
15705
- return __awaiter$c(this, void 0, void 0, function* () {
15761
+ return __awaiter$d(this, void 0, void 0, function* () {
15706
15762
  // If get properties fails we dont want to try to get the participants after.
15707
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15763
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15708
15764
  var e_1, _a;
15709
15765
  yield this.chatThreadClient.getProperties();
15710
15766
  try {
@@ -15738,8 +15794,8 @@ class AzureCommunicationChatAdapter {
15738
15794
  this.context.offStateChange(handler);
15739
15795
  }
15740
15796
  sendMessage(content, options = {}) {
15741
- return __awaiter$c(this, void 0, void 0, function* () {
15742
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15797
+ return __awaiter$d(this, void 0, void 0, function* () {
15798
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15743
15799
  /* @conditional-compile-remove(file-sharing) */
15744
15800
  options.metadata = Object.assign(Object.assign({}, options.metadata), convertFileUploadsUiStateToMessageMetadata(this.context.getState().fileUploads));
15745
15801
  /* @conditional-compile-remove(file-sharing) */
@@ -15756,51 +15812,51 @@ class AzureCommunicationChatAdapter {
15756
15812
  });
15757
15813
  }
15758
15814
  sendReadReceipt(chatMessageId) {
15759
- return __awaiter$c(this, void 0, void 0, function* () {
15760
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15815
+ return __awaiter$d(this, void 0, void 0, function* () {
15816
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15761
15817
  yield this.handlers.onMessageSeen(chatMessageId);
15762
15818
  }));
15763
15819
  });
15764
15820
  }
15765
15821
  sendTypingIndicator() {
15766
- return __awaiter$c(this, void 0, void 0, function* () {
15767
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15822
+ return __awaiter$d(this, void 0, void 0, function* () {
15823
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15768
15824
  yield this.handlers.onTyping();
15769
15825
  }));
15770
15826
  });
15771
15827
  }
15772
15828
  removeParticipant(userId) {
15773
- return __awaiter$c(this, void 0, void 0, function* () {
15774
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15829
+ return __awaiter$d(this, void 0, void 0, function* () {
15830
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15775
15831
  yield this.handlers.onRemoveParticipant(userId);
15776
15832
  }));
15777
15833
  });
15778
15834
  }
15779
15835
  setTopic(topicName) {
15780
- return __awaiter$c(this, void 0, void 0, function* () {
15781
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15836
+ return __awaiter$d(this, void 0, void 0, function* () {
15837
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15782
15838
  yield this.handlers.updateThreadTopicName(topicName);
15783
15839
  }));
15784
15840
  });
15785
15841
  }
15786
15842
  loadPreviousChatMessages(messagesToLoad) {
15787
- return __awaiter$c(this, void 0, void 0, function* () {
15788
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15843
+ return __awaiter$d(this, void 0, void 0, function* () {
15844
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15789
15845
  return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
15790
15846
  }));
15791
15847
  });
15792
15848
  }
15793
15849
  updateMessage(messageId, content, metadata, options) {
15794
- return __awaiter$c(this, void 0, void 0, function* () {
15795
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15850
+ return __awaiter$d(this, void 0, void 0, function* () {
15851
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15796
15852
  /* @conditional-compile-remove(file-sharing) */
15797
15853
  return yield this.handlers.onUpdateMessage(messageId, content, metadata, options);
15798
15854
  }));
15799
15855
  });
15800
15856
  }
15801
15857
  deleteMessage(messageId) {
15802
- return __awaiter$c(this, void 0, void 0, function* () {
15803
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
15858
+ return __awaiter$d(this, void 0, void 0, function* () {
15859
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$d(this, void 0, void 0, function* () {
15804
15860
  return yield this.handlers.onDeleteMessage(messageId);
15805
15861
  }));
15806
15862
  });
@@ -15881,7 +15937,7 @@ class AzureCommunicationChatAdapter {
15881
15937
  this.emitter.off(event, listener);
15882
15938
  }
15883
15939
  asyncTeeErrorToEventEmitter(f) {
15884
- return __awaiter$c(this, void 0, void 0, function* () {
15940
+ return __awaiter$d(this, void 0, void 0, function* () {
15885
15941
  try {
15886
15942
  return yield f();
15887
15943
  }
@@ -15923,7 +15979,7 @@ const convertEventType = (type) => {
15923
15979
  *
15924
15980
  * @public
15925
15981
  */
15926
- const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$c(void 0, void 0, void 0, function* () {
15982
+ const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$d(void 0, void 0, void 0, function* () {
15927
15983
  if (!isValidIdentifier(userId)) {
15928
15984
  throw new Error('Provided userId is invalid. Please provide valid identifier object.');
15929
15985
  }
@@ -15989,7 +16045,7 @@ beforeDispose) => {
15989
16045
  if (!credential || !displayName || !endpoint || !threadId || !userId) {
15990
16046
  return;
15991
16047
  }
15992
- (() => __awaiter$c(void 0, void 0, void 0, function* () {
16048
+ (() => __awaiter$d(void 0, void 0, void 0, function* () {
15993
16049
  if (adapterRef.current) {
15994
16050
  // Dispose the old adapter when a new one is created.
15995
16051
  //
@@ -16021,7 +16077,7 @@ beforeDispose) => {
16021
16077
  // Dispose any existing adapter when the component unmounts.
16022
16078
  React.useEffect(() => {
16023
16079
  return () => {
16024
- (() => __awaiter$c(void 0, void 0, void 0, function* () {
16080
+ (() => __awaiter$d(void 0, void 0, void 0, function* () {
16025
16081
  if (adapterRef.current) {
16026
16082
  if (beforeDisposeRef.current) {
16027
16083
  yield beforeDisposeRef.current(adapterRef.current);
@@ -16042,7 +16098,7 @@ beforeDispose) => {
16042
16098
  *
16043
16099
  * @public
16044
16100
  */
16045
- const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$c(void 0, void 0, void 0, function* () {
16101
+ const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$d(void 0, void 0, void 0, function* () {
16046
16102
  return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
16047
16103
  });
16048
16104
  const isChatError = (e) => {
@@ -16253,7 +16309,7 @@ const sendboxContainerStyles = {
16253
16309
 
16254
16310
  // Copyright (c) Microsoft Corporation.
16255
16311
  // Licensed under the MIT license.
16256
- var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16312
+ var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16257
16313
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16258
16314
  return new (P || (P = Promise))(function (resolve, reject) {
16259
16315
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16274,7 +16330,7 @@ const AvatarPersona = (props) => {
16274
16330
  const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
16275
16331
  const [data, setData] = React.useState();
16276
16332
  React.useEffect(() => {
16277
- (() => __awaiter$b(void 0, void 0, void 0, function* () {
16333
+ (() => __awaiter$c(void 0, void 0, void 0, function* () {
16278
16334
  if (dataProvider && userId) {
16279
16335
  const newData = yield dataProvider(userId);
16280
16336
  if (avatarDeepDifferenceCheck(data, newData)) {
@@ -16848,7 +16904,7 @@ const adaptCompositeState = (compositeState) => {
16848
16904
 
16849
16905
  // Copyright (c) Microsoft Corporation.
16850
16906
  // Licensed under the MIT license.
16851
- var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16907
+ var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16852
16908
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16853
16909
  return new (P || (P = Promise))(function (resolve, reject) {
16854
16910
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16867,76 +16923,76 @@ _component) => {
16867
16923
  return createCompositeHandlers(useAdapter());
16868
16924
  };
16869
16925
  const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
16870
- onCreateLocalStreamView: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
16926
+ onCreateLocalStreamView: (options) => __awaiter$b(void 0, void 0, void 0, function* () {
16871
16927
  return yield adapter.createStreamView(undefined, options);
16872
16928
  }),
16873
- onCreateRemoteStreamView: (userId, options) => __awaiter$a(void 0, void 0, void 0, function* () {
16929
+ onCreateRemoteStreamView: (userId, options) => __awaiter$b(void 0, void 0, void 0, function* () {
16874
16930
  return yield adapter.createStreamView(userId, options);
16875
16931
  }),
16876
- onHangUp: (forEveryone) => __awaiter$a(void 0, void 0, void 0, function* () {
16932
+ onHangUp: (forEveryone) => __awaiter$b(void 0, void 0, void 0, function* () {
16877
16933
  yield adapter.leaveCall(forEveryone);
16878
16934
  }),
16879
16935
  /* @conditional-compile-remove(PSTN-calls) */
16880
- onToggleHold: () => __awaiter$a(void 0, void 0, void 0, function* () {
16936
+ onToggleHold: () => __awaiter$b(void 0, void 0, void 0, function* () {
16881
16937
  var _a;
16882
16938
  return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
16883
16939
  }),
16884
16940
  /* @conditional-compile-remove(PSTN-calls) */
16885
- onAddParticipant: (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
16941
+ onAddParticipant: (participant, options) => __awaiter$b(void 0, void 0, void 0, function* () {
16886
16942
  return yield adapter.addParticipant(participant, options);
16887
16943
  }),
16888
16944
  /* @conditional-compile-remove(PSTN-calls) */
16889
- onSendDtmfTone: (dtmfTone) => __awaiter$a(void 0, void 0, void 0, function* () {
16945
+ onSendDtmfTone: (dtmfTone) => __awaiter$b(void 0, void 0, void 0, function* () {
16890
16946
  yield adapter.sendDtmfTone(dtmfTone);
16891
16947
  }),
16892
- onRemoveParticipant: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
16948
+ onRemoveParticipant: (userId) => __awaiter$b(void 0, void 0, void 0, function* () {
16893
16949
  yield adapter.removeParticipant(userId);
16894
16950
  }),
16895
- onSelectCamera: (deviceInfo, options) => __awaiter$a(void 0, void 0, void 0, function* () {
16951
+ onSelectCamera: (deviceInfo, options) => __awaiter$b(void 0, void 0, void 0, function* () {
16896
16952
  yield adapter.setCamera(deviceInfo, options);
16897
16953
  }),
16898
- onSelectMicrophone: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
16954
+ onSelectMicrophone: (deviceInfo) => __awaiter$b(void 0, void 0, void 0, function* () {
16899
16955
  yield adapter.setMicrophone(deviceInfo);
16900
16956
  }),
16901
- onSelectSpeaker: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
16957
+ onSelectSpeaker: (deviceInfo) => __awaiter$b(void 0, void 0, void 0, function* () {
16902
16958
  yield adapter.setSpeaker(deviceInfo);
16903
16959
  }),
16904
16960
  onStartCall: (participants, options) => {
16905
16961
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
16906
16962
  return adapter.startCall(rawIds, options);
16907
16963
  },
16908
- onStartScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
16964
+ onStartScreenShare: () => __awaiter$b(void 0, void 0, void 0, function* () {
16909
16965
  yield adapter.startScreenShare();
16910
16966
  }),
16911
- onStopScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
16967
+ onStopScreenShare: () => __awaiter$b(void 0, void 0, void 0, function* () {
16912
16968
  yield adapter.stopScreenShare();
16913
16969
  }),
16914
- onToggleCamera: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
16970
+ onToggleCamera: (options) => __awaiter$b(void 0, void 0, void 0, function* () {
16915
16971
  isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
16916
16972
  }),
16917
- onToggleMicrophone: () => __awaiter$a(void 0, void 0, void 0, function* () {
16973
+ onToggleMicrophone: () => __awaiter$b(void 0, void 0, void 0, function* () {
16918
16974
  var _b;
16919
16975
  return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();
16920
16976
  }),
16921
- onToggleScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
16977
+ onToggleScreenShare: () => __awaiter$b(void 0, void 0, void 0, function* () {
16922
16978
  var _c;
16923
16979
  return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn)
16924
16980
  ? yield adapter.stopScreenShare()
16925
16981
  : yield adapter.startScreenShare();
16926
16982
  }),
16927
- onStartLocalVideo: () => __awaiter$a(void 0, void 0, void 0, function* () {
16983
+ onStartLocalVideo: () => __awaiter$b(void 0, void 0, void 0, function* () {
16928
16984
  if (adapter.getState().call) {
16929
16985
  return adapter.startCamera();
16930
16986
  }
16931
16987
  }),
16932
- onDisposeLocalStreamView: () => __awaiter$a(void 0, void 0, void 0, function* () {
16988
+ onDisposeLocalStreamView: () => __awaiter$b(void 0, void 0, void 0, function* () {
16933
16989
  return adapter.disposeStreamView();
16934
16990
  }),
16935
- onDisposeRemoteStreamView: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
16991
+ onDisposeRemoteStreamView: (userId) => __awaiter$b(void 0, void 0, void 0, function* () {
16936
16992
  return adapter.disposeStreamView(userId);
16937
16993
  }),
16938
16994
  /* @conditional-compile-remove(call-readiness) */
16939
- askDevicePermission: (constrain) => __awaiter$a(void 0, void 0, void 0, function* () {
16995
+ askDevicePermission: (constrain) => __awaiter$b(void 0, void 0, void 0, function* () {
16940
16996
  return adapter.askDevicePermission(constrain);
16941
16997
  })
16942
16998
  }));
@@ -18290,7 +18346,7 @@ const AddPeopleButton = (props) => {
18290
18346
 
18291
18347
  // Copyright (c) Microsoft Corporation.
18292
18348
  // Licensed under the MIT license.
18293
- var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
18349
+ var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
18294
18350
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18295
18351
  return new (P || (P = Promise))(function (resolve, reject) {
18296
18352
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -18326,7 +18382,7 @@ const PeoplePaneContent = (props) => {
18326
18382
  setDrawerMenuItems
18327
18383
  ]);
18328
18384
  const participantListProps = React.useMemo(() => {
18329
- const onRemoveAParticipant = (participantId) => __awaiter$9(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
18385
+ const onRemoveAParticipant = (participantId) => __awaiter$a(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
18330
18386
  return Object.assign(Object.assign({}, participantListDefaultProps), {
18331
18387
  // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
18332
18388
  onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
@@ -18525,7 +18581,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
18525
18581
  return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
18526
18582
  };
18527
18583
 
18528
- var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
18584
+ var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
18529
18585
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18530
18586
  return new (P || (P = Promise))(function (resolve, reject) {
18531
18587
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -18555,11 +18611,11 @@ const CallPane = (props) => {
18555
18611
  /**
18556
18612
  * In a Call Composite when a participant is removed, we must remove them from the call.
18557
18613
  */
18558
- const removeParticipantFromCall = (participantId) => __awaiter$8(void 0, void 0, void 0, function* () {
18614
+ const removeParticipantFromCall = (participantId) => __awaiter$9(void 0, void 0, void 0, function* () {
18559
18615
  yield props.callAdapter.removeParticipant(participantId);
18560
18616
  });
18561
18617
  /* @conditional-compile-remove(PSTN-calls) */
18562
- const addParticipantToCall = (participant, options) => __awaiter$8(void 0, void 0, void 0, function* () {
18618
+ const addParticipantToCall = (participant, options) => __awaiter$9(void 0, void 0, void 0, function* () {
18563
18619
  yield props.callAdapter.addParticipant(participant, options);
18564
18620
  });
18565
18621
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
@@ -18791,10 +18847,10 @@ const useParticipantChangedAnnouncement = () => {
18791
18847
  const whoJoined = currentParticipants.filter((p) => !previousIds.includes(toFlatCommunicationIdentifier(p.identifier)));
18792
18848
  const whoLeft = previousParticipants.current.filter((p) => !currentIds.includes(toFlatCommunicationIdentifier(p.identifier)));
18793
18849
  if (whoJoined.length > 0) {
18794
- resetAnnoucement(createAnnouncmentString('joined', whoJoined, strings));
18850
+ resetAnnoucement(createAnnouncementString('joined', whoJoined, strings));
18795
18851
  }
18796
18852
  if (whoLeft.length > 0) {
18797
- resetAnnoucement(createAnnouncmentString('left', whoLeft, strings));
18853
+ resetAnnoucement(createAnnouncementString('left', whoLeft, strings));
18798
18854
  }
18799
18855
  // Update cached value at the end.
18800
18856
  previousParticipants.current = currentParticipants;
@@ -18804,7 +18860,7 @@ const useParticipantChangedAnnouncement = () => {
18804
18860
  /**
18805
18861
  * Generates the announcement string for when a participant joins or leaves a call.
18806
18862
  */
18807
- const createAnnouncmentString = (direction, participants, strings) => {
18863
+ const createAnnouncementString = (direction, participants, strings) => {
18808
18864
  var _a, _b, _c;
18809
18865
  /**
18810
18866
  * If there are no participants return empty string.
@@ -19477,7 +19533,7 @@ const localPreviewTileStyle = {
19477
19533
 
19478
19534
  // Copyright (c) Microsoft Corporation.
19479
19535
  // Licensed under the MIT license.
19480
- var __awaiter$7 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
19536
+ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
19481
19537
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19482
19538
  return new (P || (P = Promise))(function (resolve, reject) {
19483
19539
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -19497,7 +19553,7 @@ const LocalPreview = (props) => {
19497
19553
  const { audio: microphonePermissionGranted, video: cameraPermissionGranted } = useSelector$1(devicePermissionSelector);
19498
19554
  const isLocalMicrophoneEnabled = useSelector$1(getLocalMicrophoneEnabled);
19499
19555
  const adapter = useAdapter();
19500
- const onToggleMic = React.useCallback(() => __awaiter$7(void 0, void 0, void 0, function* () {
19556
+ const onToggleMic = React.useCallback(() => __awaiter$8(void 0, void 0, void 0, function* () {
19501
19557
  isLocalMicrophoneEnabled ? adapter.mute() : adapter.unmute();
19502
19558
  }), [adapter, isLocalMicrophoneEnabled]);
19503
19559
  const hasNoDevices = devicesButtonProps.cameras.length === 0 &&
@@ -20267,7 +20323,7 @@ const holdPaneContentStyles = {
20267
20323
 
20268
20324
  // Copyright (c) Microsoft Corporation.
20269
20325
  // Licensed under the MIT license.
20270
- var __awaiter$6 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
20326
+ var __awaiter$7 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
20271
20327
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20272
20328
  return new (P || (P = Promise))(function (resolve, reject) {
20273
20329
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -20302,7 +20358,7 @@ const HoldPane = () => {
20302
20358
  React__default['default'].createElement(react.Stack, { horizontal: true, styles: holdPaneContentStyles },
20303
20359
  React__default['default'].createElement(react.Text, { styles: holdPaneTimerStyles }, elapsedTime),
20304
20360
  React__default['default'].createElement(react.Text, { styles: holdPaneLabelStyles }, strings.holdScreenLabel),
20305
- React__default['default'].createElement(react.PrimaryButton, { text: !resumingCall ? strings.resumeCallButtonLabel : strings.resumingCallButtonLabel, ariaLabel: !resumingCall ? strings.resumeCallButtonAriaLabel : strings.resumingCallButtonAriaLabel, styles: resumeButtonStyles, disabled: resumingCall, onClick: () => __awaiter$6(void 0, void 0, void 0, function* () {
20361
+ React__default['default'].createElement(react.PrimaryButton, { text: !resumingCall ? strings.resumeCallButtonLabel : strings.resumingCallButtonLabel, ariaLabel: !resumingCall ? strings.resumeCallButtonAriaLabel : strings.resumingCallButtonAriaLabel, styles: resumeButtonStyles, disabled: resumingCall, onClick: () => __awaiter$7(void 0, void 0, void 0, function* () {
20306
20362
  setResumingCall(true);
20307
20363
  try {
20308
20364
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
@@ -20420,7 +20476,7 @@ const containerStyles = {
20420
20476
 
20421
20477
  // Copyright (c) Microsoft Corporation.
20422
20478
  // Licensed under the MIT license.
20423
- var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
20479
+ var __awaiter$6 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
20424
20480
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20425
20481
  return new (P || (P = Promise))(function (resolve, reject) {
20426
20482
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -20522,7 +20578,7 @@ const CallComposite = (props) => {
20522
20578
  /* @conditional-compile-remove(rooms) */
20523
20579
  const roleHint = adapter.getState().roleHint;
20524
20580
  React.useEffect(() => {
20525
- (() => __awaiter$5(void 0, void 0, void 0, function* () {
20581
+ (() => __awaiter$6(void 0, void 0, void 0, function* () {
20526
20582
  const constrain = getQueryOptions({
20527
20583
  /* @conditional-compile-remove(rooms) */ role: roleHint
20528
20584
  });
@@ -20663,6 +20719,50 @@ const createHandlers = (callClient, callAgent, deviceManager, call) => {
20663
20719
  throw new Error('Unhandled agent type');
20664
20720
  };
20665
20721
 
20722
+ // Copyright (c) Microsoft Corporation.
20723
+ // Licensed under the MIT license.
20724
+ var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
20725
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20726
+ return new (P || (P = Promise))(function (resolve, reject) {
20727
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20728
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20729
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20730
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20731
+ });
20732
+ };
20733
+ /**
20734
+ * @private
20735
+ */
20736
+ const createProfileStateModifier = (onFetchProfile, notifyUpdate) => {
20737
+ const cachedDisplayName = {};
20738
+ return (state) => {
20739
+ var _a;
20740
+ const originalParticipants = (_a = state.call) === null || _a === void 0 ? void 0 : _a.remoteParticipants;
20741
+ (() => __awaiter$5(void 0, void 0, void 0, function* () {
20742
+ let shouldNotifyUpdates = false;
20743
+ for (const key in originalParticipants) {
20744
+ if (cachedDisplayName[key]) {
20745
+ continue;
20746
+ }
20747
+ const profile = yield onFetchProfile(key);
20748
+ if ((profile === null || profile === void 0 ? void 0 : profile.displayName) && originalParticipants[key].displayName !== (profile === null || profile === void 0 ? void 0 : profile.displayName)) {
20749
+ cachedDisplayName[key] = profile === null || profile === void 0 ? void 0 : profile.displayName;
20750
+ }
20751
+ shouldNotifyUpdates = true;
20752
+ }
20753
+ // notify update only when there is a change, which most likely will trigger modifier and setState again
20754
+ shouldNotifyUpdates && notifyUpdate();
20755
+ }))();
20756
+ const participantsModifier = createParticipantModifier((id, participant) => {
20757
+ if (cachedDisplayName[id]) {
20758
+ return Object.assign(Object.assign({}, participant), { displayName: cachedDisplayName[id] });
20759
+ }
20760
+ return undefined;
20761
+ });
20762
+ return participantsModifier(state);
20763
+ };
20764
+ };
20765
+
20666
20766
  // Copyright (c) Microsoft Corporation.
20667
20767
  // Licensed under the MIT license.
20668
20768
  var __awaiter$4 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -20696,6 +20796,11 @@ class CallContext {
20696
20796
  };
20697
20797
  this.emitter.setMaxListeners((_b = options === null || options === void 0 ? void 0 : options.maxListeners) !== null && _b !== void 0 ? _b : 50);
20698
20798
  this.bindPublicMethods();
20799
+ this.displayNameModifier = (options === null || options === void 0 ? void 0 : options.onFetchProfile)
20800
+ ? createProfileStateModifier(options.onFetchProfile, () => {
20801
+ this.setState(this.getState());
20802
+ })
20803
+ : undefined;
20699
20804
  }
20700
20805
  bindPublicMethods() {
20701
20806
  /* @conditional-compile-remove(unsupported-browser) */
@@ -20708,7 +20813,7 @@ class CallContext {
20708
20813
  this.emitter.off('stateChanged', handler);
20709
20814
  }
20710
20815
  setState(state) {
20711
- this.state = state;
20816
+ this.state = this.displayNameModifier ? this.displayNameModifier(state) : state;
20712
20817
  this.emitter.emit('stateChanged', this.state);
20713
20818
  }
20714
20819
  getState() {
@@ -21276,14 +21381,14 @@ const createAzureCommunicationCallAdapter = ({ userId, displayName, credential,
21276
21381
  /**
21277
21382
  * @beta
21278
21383
  */
21279
- const createTeamsCallAdapter = ({ userId, credential, locator }) => __awaiter$4(void 0, void 0, void 0, function* () {
21384
+ const createTeamsCallAdapter = ({ userId, credential, locator, options }) => __awaiter$4(void 0, void 0, void 0, function* () {
21280
21385
  const callClient = createStatefulCallClient({
21281
21386
  userId
21282
21387
  });
21283
21388
  const callAgent = yield callClient.createTeamsCallAgent(credential, {
21284
21389
  undefined
21285
21390
  });
21286
- const adapter = createTeamsCallAdapterFromClient(callClient, callAgent, locator);
21391
+ const adapter = createTeamsCallAdapterFromClient(callClient, callAgent, locator, options);
21287
21392
  return adapter;
21288
21393
  });
21289
21394
  /**
@@ -21334,6 +21439,11 @@ const useAzureCommunicationCallAdapterGeneric = (args, afterCreate, beforeDispos
21334
21439
  if (!displayName) {
21335
21440
  throw new Error('Unreachable code, displayName already checked above.');
21336
21441
  }
21442
+ // This is just the type check to ensure that roleHint is defined.
21443
+ /* @conditional-compile-remove(rooms) */
21444
+ if (options && !('roleHint' in options)) {
21445
+ throw new Error('Unreachable code, provided a options without roleHint.');
21446
+ }
21337
21447
  newAdapter = (yield createAzureCommunicationCallAdapter({
21338
21448
  credential,
21339
21449
  displayName: displayName,
@@ -21344,11 +21454,17 @@ const useAzureCommunicationCallAdapterGeneric = (args, afterCreate, beforeDispos
21344
21454
  }));
21345
21455
  }
21346
21456
  else if (adapterKind === 'Teams') {
21457
+ // This is just the type check to ensure that roleHint is defined.
21458
+ /* @conditional-compile-remove(teams-identity-support)) */
21459
+ if (options && !('onFetchProfile' in options)) {
21460
+ throw new Error('Unreachable code, provided a options without roleHint.');
21461
+ }
21347
21462
  /* @conditional-compile-remove(teams-identity-support) */
21348
21463
  newAdapter = (yield createTeamsCallAdapter({
21349
21464
  credential,
21350
21465
  locator: locator,
21351
- userId: userId
21466
+ userId: userId,
21467
+ options
21352
21468
  }));
21353
21469
  }
21354
21470
  else {
@@ -21377,6 +21493,7 @@ const useAzureCommunicationCallAdapterGeneric = (args, afterCreate, beforeDispos
21377
21493
  /* @conditional-compile-remove(PSTN-calls) */
21378
21494
  alternateCallerId,
21379
21495
  /* @conditional-compile-remove(rooms) */
21496
+ /* @conditional-compile-remove(teams-identity-support) */
21380
21497
  options
21381
21498
  ]);
21382
21499
  // Dispose any existing adapter when the component unmounts.
@@ -21492,11 +21609,11 @@ const createAzureCommunicationCallAdapterFromClient = (callClient, callAgent, lo
21492
21609
  *
21493
21610
  * @beta
21494
21611
  */
21495
- const createTeamsCallAdapterFromClient = (callClient, callAgent, locator) => __awaiter$4(void 0, void 0, void 0, function* () {
21612
+ const createTeamsCallAdapterFromClient = (callClient, callAgent, locator, options) => __awaiter$4(void 0, void 0, void 0, function* () {
21496
21613
  const deviceManager = (yield callClient.getDeviceManager());
21497
21614
  /* @conditional-compile-remove(unsupported-browser) */
21498
21615
  yield callClient.feature(communicationCalling.Features.DebugInfo).getEnvironmentInfo();
21499
- return new AzureCommunicationCallAdapter(callClient, locator, callAgent, deviceManager);
21616
+ return new AzureCommunicationCallAdapter(callClient, locator, callAgent, deviceManager, options);
21500
21617
  });
21501
21618
  const isCallError = (e) => {
21502
21619
  return e['target'] !== undefined && e['innerError'] !== undefined;