@azure/communication-react 1.4.2-alpha-202212010027.0 → 1.4.3-alpha-202212020014.0

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 (44) hide show
  1. package/CHANGELOG.stable.md +10 -1
  2. package/dist/communication-react.d.ts +39 -2
  3. package/dist/dist-cjs/communication-react/index.js +154 -65
  4. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  7. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +4 -2
  8. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  9. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -1
  10. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +14 -0
  11. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  12. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +11 -4
  13. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.d.ts +19 -0
  15. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +44 -0
  16. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -0
  17. package/dist/dist-esm/communication-react/src/index.d.ts +2 -0
  18. package/dist/dist-esm/communication-react/src/index.js +2 -0
  19. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.d.ts +1 -1
  21. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.d.ts +1 -1
  23. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.d.ts +2 -2
  25. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +2 -2
  26. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.d.ts +32 -0
  28. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +14 -0
  29. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -0
  30. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
  31. package/dist/dist-esm/react-components/src/components/index.js +1 -0
  32. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js +3 -2
  34. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
  36. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +7 -2
  38. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -0
  39. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +10 -2
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +3 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  44. package/package.json +8 -8
@@ -202,7 +202,7 @@ const _toCommunicationIdentifier = (id) => {
202
202
  // Copyright (c) Microsoft Corporation.
203
203
  // Licensed under the MIT license.
204
204
  // GENERATED FILE. DO NOT EDIT MANUALLY.
205
- var telemetryVersion = '1.4.2-alpha-202212010027.0';
205
+ var telemetryVersion = '1.4.3-alpha-202212020014.0';
206
206
 
207
207
  // Copyright (c) Microsoft Corporation.
208
208
  /**
@@ -411,7 +411,7 @@ const getCallState = (state, props) => { var _a; return (_a = state.calls[props.
411
411
 
412
412
  // Copyright (c) Microsoft Corporation.
413
413
  // Licensed under the MIT license.
414
- var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
414
+ var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
415
415
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
416
416
  return new (P || (P = Promise))(function (resolve, reject) {
417
417
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -449,7 +449,7 @@ const _isPreviewOn = (deviceManager) => {
449
449
  *
450
450
  * @private
451
451
  */
452
- const disposeAllLocalPreviewViews = (callClient) => __awaiter$A(void 0, void 0, void 0, function* () {
452
+ const disposeAllLocalPreviewViews = (callClient) => __awaiter$B(void 0, void 0, void 0, function* () {
453
453
  const unparentedViews = callClient.getState().deviceManager.unparentedViews;
454
454
  for (const view of unparentedViews) {
455
455
  yield callClient.disposeView(undefined, undefined, view);
@@ -573,7 +573,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
573
573
 
574
574
  // Copyright (c) Microsoft Corporation.
575
575
  // Licensed under the MIT license.
576
- var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
576
+ var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
577
577
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
578
578
  return new (P || (P = Promise))(function (resolve, reject) {
579
579
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -594,7 +594,7 @@ const areStreamsEqual = (prevStream, newStream) => {
594
594
  * @private
595
595
  */
596
596
  const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callClient, deviceManager, call) => {
597
- const onStartLocalVideo = () => __awaiter$z(void 0, void 0, void 0, function* () {
597
+ const onStartLocalVideo = () => __awaiter$A(void 0, void 0, void 0, function* () {
598
598
  // Before the call object creates a stream, dispose of any local preview streams.
599
599
  // @TODO: is there any way to parent the unparented view to the call object instead
600
600
  // of disposing and creating a new stream?
@@ -614,7 +614,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
614
614
  yield call.startVideo(stream);
615
615
  }
616
616
  });
617
- const onStopLocalVideo = (stream) => __awaiter$z(void 0, void 0, void 0, function* () {
617
+ const onStopLocalVideo = (stream) => __awaiter$A(void 0, void 0, void 0, function* () {
618
618
  const callId = call === null || call === void 0 ? void 0 : call.id;
619
619
  if (!callId) {
620
620
  return;
@@ -627,7 +627,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
627
627
  });
628
628
  }
629
629
  });
630
- const onToggleCamera = (options) => __awaiter$z(void 0, void 0, void 0, function* () {
630
+ const onToggleCamera = (options) => __awaiter$A(void 0, void 0, void 0, function* () {
631
631
  const previewOn = _isPreviewOn(callClient.getState().deviceManager);
632
632
  if (previewOn && call && call.state === 'Connecting') {
633
633
  // This is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.
@@ -675,19 +675,19 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
675
675
  }
676
676
  }
677
677
  });
678
- const onSelectMicrophone = (device) => __awaiter$z(void 0, void 0, void 0, function* () {
678
+ const onSelectMicrophone = (device) => __awaiter$A(void 0, void 0, void 0, function* () {
679
679
  if (!deviceManager) {
680
680
  return;
681
681
  }
682
682
  return deviceManager.selectMicrophone(device);
683
683
  });
684
- const onSelectSpeaker = (device) => __awaiter$z(void 0, void 0, void 0, function* () {
684
+ const onSelectSpeaker = (device) => __awaiter$A(void 0, void 0, void 0, function* () {
685
685
  if (!deviceManager) {
686
686
  return;
687
687
  }
688
688
  return deviceManager.selectSpeaker(device);
689
689
  });
690
- const onSelectCamera = (device, options) => __awaiter$z(void 0, void 0, void 0, function* () {
690
+ const onSelectCamera = (device, options) => __awaiter$A(void 0, void 0, void 0, function* () {
691
691
  if (!deviceManager) {
692
692
  return;
693
693
  }
@@ -710,19 +710,19 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
710
710
  }, options);
711
711
  }
712
712
  });
713
- const onToggleMicrophone = () => __awaiter$z(void 0, void 0, void 0, function* () {
713
+ const onToggleMicrophone = () => __awaiter$A(void 0, void 0, void 0, function* () {
714
714
  if (!call || !_isInCall(call.state)) {
715
715
  throw new Error(`Please invoke onToggleMicrophone after call is started`);
716
716
  }
717
717
  return call.isMuted ? yield call.unmute() : yield call.mute();
718
718
  });
719
- const onStartScreenShare = () => __awaiter$z(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
720
- const onStopScreenShare = () => __awaiter$z(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
721
- const onToggleScreenShare = () => __awaiter$z(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
722
- const onHangUp = (forEveryone) => __awaiter$z(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
719
+ const onStartScreenShare = () => __awaiter$A(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
720
+ const onStopScreenShare = () => __awaiter$A(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
721
+ const onToggleScreenShare = () => __awaiter$A(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
722
+ const onHangUp = (forEveryone) => __awaiter$A(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
723
723
  /* @conditional-compile-remove(PSTN-calls) */
724
- const onToggleHold = () => __awaiter$z(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()); });
725
- const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$z(void 0, void 0, void 0, function* () {
724
+ const onToggleHold = () => __awaiter$A(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()); });
725
+ const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$A(void 0, void 0, void 0, function* () {
726
726
  var _a;
727
727
  if (!call || call.localVideoStreams.length === 0) {
728
728
  return;
@@ -738,7 +738,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
738
738
  const { view } = (_a = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _a !== void 0 ? _a : {};
739
739
  return view ? { view } : undefined;
740
740
  });
741
- const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$z(void 0, void 0, void 0, function* () {
741
+ const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$A(void 0, void 0, void 0, function* () {
742
742
  if (!call) {
743
743
  return;
744
744
  }
@@ -766,7 +766,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
766
766
  }
767
767
  return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
768
768
  });
769
- const onDisposeRemoteStreamView = (userId) => __awaiter$z(void 0, void 0, void 0, function* () {
769
+ const onDisposeRemoteStreamView = (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
770
770
  if (!call) {
771
771
  return;
772
772
  }
@@ -787,7 +787,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
787
787
  callClient.disposeView(call.id, participant.identifier, screenShareStream);
788
788
  }
789
789
  });
790
- const onDisposeLocalStreamView = () => __awaiter$z(void 0, void 0, void 0, function* () {
790
+ const onDisposeLocalStreamView = () => __awaiter$A(void 0, void 0, void 0, function* () {
791
791
  // If the user is currently in a call, dispose of the local stream view attached to that call.
792
792
  const callState = call && callClient.getState().calls[call.id];
793
793
  const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
@@ -800,12 +800,12 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
800
800
  yield disposeAllLocalPreviewViews(callClient);
801
801
  });
802
802
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
803
- const onSendDtmfTone = (dtmfTone) => __awaiter$z(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
803
+ const onSendDtmfTone = (dtmfTone) => __awaiter$A(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
804
804
  const notImplemented = () => {
805
805
  throw new Error('Not implemented, cannot call a method from an abstract object');
806
806
  };
807
807
  /* @conditional-compile-remove(call-readiness) */
808
- const askDevicePermission = (constrain) => __awaiter$z(void 0, void 0, void 0, function* () {
808
+ const askDevicePermission = (constrain) => __awaiter$A(void 0, void 0, void 0, function* () {
809
809
  if (deviceManager) {
810
810
  yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
811
811
  }
@@ -839,7 +839,7 @@ const createDefaultCommonCallingHandlers = memoizeOne__default['default']((callC
839
839
 
840
840
  // Copyright (c) Microsoft Corporation.
841
841
  // Licensed under the MIT license.
842
- var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
842
+ var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
843
843
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
844
844
  return new (P || (P = Promise))(function (resolve, reject) {
845
845
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -866,7 +866,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
866
866
  return callAgent ? callAgent.startCall(participants, options) : undefined;
867
867
  },
868
868
  /* @conditional-compile-remove(PSTN-calls) */
869
- onAddParticipant: (userId, options) => __awaiter$y(void 0, void 0, void 0, function* () {
869
+ onAddParticipant: (userId, options) => __awaiter$z(void 0, void 0, void 0, function* () {
870
870
  const participant = _toCommunicationIdentifier(userId);
871
871
  if (communicationCommon.isPhoneNumberIdentifier(participant)) {
872
872
  call === null || call === void 0 ? void 0 : call.addParticipant(participant, options);
@@ -874,7 +874,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
874
874
  else if (communicationCommon.isCommunicationUserIdentifier(participant) || communicationCommon.isMicrosoftTeamsUserIdentifier(participant)) {
875
875
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
876
876
  }
877
- }), onRemoveParticipant: (userId) => __awaiter$y(void 0, void 0, void 0, function* () {
877
+ }), onRemoveParticipant: (userId) => __awaiter$z(void 0, void 0, void 0, function* () {
878
878
  const participant = _toCommunicationIdentifier(userId);
879
879
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
880
880
  }) });
@@ -882,7 +882,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
882
882
 
883
883
  // Copyright (c) Microsoft Corporation.
884
884
  // Licensed under the MIT license.
885
- var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
885
+ var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
886
886
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
887
887
  return new (P || (P = Promise))(function (resolve, reject) {
888
888
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -914,7 +914,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
914
914
  },
915
915
  /* @conditional-compile-remove(teams-identity-support) */
916
916
  /* @conditional-compile-remove(PSTN-calls) */
917
- onAddParticipant: (userId, options) => __awaiter$x(void 0, void 0, void 0, function* () {
917
+ onAddParticipant: (userId, options) => __awaiter$y(void 0, void 0, void 0, function* () {
918
918
  const participant = _toCommunicationIdentifier(userId);
919
919
  /* @conditional-compile-remove(teams-identity-support) */
920
920
  const threadId = options === null || options === void 0 ? void 0 : options.threadId;
@@ -927,7 +927,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
927
927
  }
928
928
  /* @conditional-compile-remove(teams-identity-support) */
929
929
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
930
- }), onRemoveParticipant: (userId) => __awaiter$x(void 0, void 0, void 0, function* () {
930
+ }), onRemoveParticipant: (userId) => __awaiter$y(void 0, void 0, void 0, function* () {
931
931
  const participant = _toCommunicationIdentifier(userId);
932
932
  if (communicationCommon.isCommunicationUserIdentifier(participant)) {
933
933
  throw new Error('CommunicationIdentifier in Teams call is not supported!');
@@ -939,7 +939,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne__default['default']((callCl
939
939
 
940
940
  // Copyright (c) Microsoft Corporation.
941
941
  // Licensed under the MIT license.
942
- var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
942
+ var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
943
943
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
944
944
  return new (P || (P = Promise))(function (resolve, reject) {
945
945
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -988,13 +988,13 @@ class ProxyDeviceManager {
988
988
  this.selectCamera = (videoDeviceInfo) => {
989
989
  this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
990
990
  };
991
- this.videoDevicesUpdated = () => __awaiter$w(this, void 0, void 0, function* () {
991
+ this.videoDevicesUpdated = () => __awaiter$x(this, void 0, void 0, function* () {
992
992
  // Device Manager always has a camera with '' name if there are no real camera devices available.
993
993
  // We don't want to show that in the UI.
994
994
  const realCameras = (yield this._deviceManager.getCameras()).filter((c) => !!c.name);
995
995
  this._context.setDeviceManagerCameras(dedupeById(realCameras));
996
996
  });
997
- this.audioDevicesUpdated = () => __awaiter$w(this, void 0, void 0, function* () {
997
+ this.audioDevicesUpdated = () => __awaiter$x(this, void 0, void 0, function* () {
998
998
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
999
999
  this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
1000
1000
  });
@@ -1201,7 +1201,7 @@ class CallIdHistory {
1201
1201
 
1202
1202
  // Copyright (c) Microsoft Corporation.
1203
1203
  // Licensed under the MIT license.
1204
- var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1204
+ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1205
1205
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1206
1206
  return new (P || (P = Promise))(function (resolve, reject) {
1207
1207
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1605,6 +1605,20 @@ class CallContext$2 {
1605
1605
  }
1606
1606
  });
1607
1607
  }
1608
+ setRemoteVideoStreamViewScalingMode(callId, participantKey, streamId, scalingMode) {
1609
+ this.modifyState((draft) => {
1610
+ const call = draft.calls[this._callIdHistory.latestCallId(callId)];
1611
+ if (call) {
1612
+ const participant = call.remoteParticipants[participantKey];
1613
+ if (participant) {
1614
+ const stream = participant.videoStreams[streamId];
1615
+ if (stream && stream.view) {
1616
+ stream.view.scalingMode = scalingMode;
1617
+ }
1618
+ }
1619
+ }
1620
+ });
1621
+ }
1608
1622
  setIncomingCall(call) {
1609
1623
  this.modifyState((draft) => {
1610
1624
  const existingCall = draft.incomingCalls[call.id];
@@ -1716,7 +1730,7 @@ class CallContext$2 {
1716
1730
  * @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
1717
1731
  */
1718
1732
  withAsyncErrorTeedToState(action, target) {
1719
- return (...args) => __awaiter$v(this, void 0, void 0, function* () {
1733
+ return (...args) => __awaiter$w(this, void 0, void 0, function* () {
1720
1734
  try {
1721
1735
  return yield action(...args);
1722
1736
  }
@@ -1993,7 +2007,7 @@ class RemoteVideoStreamSubscriber {
1993
2007
 
1994
2008
  // Copyright (c) Microsoft Corporation.
1995
2009
  // Licensed under the MIT license.
1996
- var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2010
+ var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1997
2011
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1998
2012
  return new (P || (P = Promise))(function (resolve, reject) {
1999
2013
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2003,7 +2017,7 @@ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments,
2003
2017
  });
2004
2018
  };
2005
2019
  function createViewRemoteVideo(context, internalContext, callId, participantId, stream, options) {
2006
- return __awaiter$u(this, void 0, void 0, function* () {
2020
+ return __awaiter$v(this, void 0, void 0, function* () {
2007
2021
  // Render RemoteVideoStream that is part of a Call
2008
2022
  const streamId = stream.id;
2009
2023
  let participantKey;
@@ -2111,7 +2125,7 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
2111
2125
  });
2112
2126
  }
2113
2127
  function createViewLocalVideo(context, internalContext, callId, options) {
2114
- return __awaiter$u(this, void 0, void 0, function* () {
2128
+ return __awaiter$v(this, void 0, void 0, function* () {
2115
2129
  _logEvent(callingStatefulLogger, {
2116
2130
  name: EventNames.START_LOCAL_STREAM_RENDERING,
2117
2131
  level: 'info',
@@ -2229,7 +2243,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
2229
2243
  });
2230
2244
  }
2231
2245
  function createViewUnparentedVideo(context, internalContext, stream, options) {
2232
- return __awaiter$u(this, void 0, void 0, function* () {
2246
+ return __awaiter$v(this, void 0, void 0, function* () {
2233
2247
  const renderInfo = internalContext.getUnparentedRenderInfo(stream);
2234
2248
  if (renderInfo && renderInfo.status === 'Rendered') {
2235
2249
  console.warn('Unparented LocalVideoStream is already rendered');
@@ -2894,7 +2908,7 @@ class CallSubscriber {
2894
2908
 
2895
2909
  // Copyright (c) Microsoft Corporation.
2896
2910
  // Licensed under the MIT license.
2897
- var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2911
+ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2898
2912
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2899
2913
  return new (P || (P = Promise))(function (resolve, reject) {
2900
2914
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2914,14 +2928,14 @@ class ProxyIncomingCall {
2914
2928
  switch (prop) {
2915
2929
  case 'accept': {
2916
2930
  return this._context.withAsyncErrorTeedToState(function (...args) {
2917
- return __awaiter$t(this, void 0, void 0, function* () {
2931
+ return __awaiter$u(this, void 0, void 0, function* () {
2918
2932
  return yield target.accept(...args);
2919
2933
  });
2920
2934
  }, 'IncomingCall.accept');
2921
2935
  }
2922
2936
  case 'reject': {
2923
2937
  return this._context.withAsyncErrorTeedToState(function (...args) {
2924
- return __awaiter$t(this, void 0, void 0, function* () {
2938
+ return __awaiter$u(this, void 0, void 0, function* () {
2925
2939
  return yield target.reject(...args);
2926
2940
  });
2927
2941
  }, 'IncomingCall.reject');
@@ -3158,7 +3172,7 @@ const clearCallRelatedState = (context, internalContext) => {
3158
3172
 
3159
3173
  // Copyright (c) Microsoft Corporation.
3160
3174
  // Licensed under the MIT license.
3161
- var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3175
+ var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3162
3176
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3163
3177
  return new (P || (P = Promise))(function (resolve, reject) {
3164
3178
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3184,56 +3198,56 @@ class ProxyCallCommon {
3184
3198
  switch (prop) {
3185
3199
  case 'mute': {
3186
3200
  return this._context.withAsyncErrorTeedToState(function (...args) {
3187
- return __awaiter$s(this, void 0, void 0, function* () {
3201
+ return __awaiter$t(this, void 0, void 0, function* () {
3188
3202
  return yield target.mute(...args);
3189
3203
  });
3190
3204
  }, 'Call.mute');
3191
3205
  }
3192
3206
  case 'unmute': {
3193
3207
  return this._context.withAsyncErrorTeedToState(function (...args) {
3194
- return __awaiter$s(this, void 0, void 0, function* () {
3208
+ return __awaiter$t(this, void 0, void 0, function* () {
3195
3209
  return yield target.unmute(...args);
3196
3210
  });
3197
3211
  }, 'Call.unmute');
3198
3212
  }
3199
3213
  case 'startVideo': {
3200
3214
  return this._context.withAsyncErrorTeedToState(function (...args) {
3201
- return __awaiter$s(this, void 0, void 0, function* () {
3215
+ return __awaiter$t(this, void 0, void 0, function* () {
3202
3216
  return yield target.startVideo(...args);
3203
3217
  });
3204
3218
  }, 'Call.startVideo');
3205
3219
  }
3206
3220
  case 'stopVideo': {
3207
3221
  return this._context.withAsyncErrorTeedToState(function (...args) {
3208
- return __awaiter$s(this, void 0, void 0, function* () {
3222
+ return __awaiter$t(this, void 0, void 0, function* () {
3209
3223
  return yield target.stopVideo(...args);
3210
3224
  });
3211
3225
  }, 'Call.stopVideo');
3212
3226
  }
3213
3227
  case 'startScreenSharing': {
3214
3228
  return this._context.withAsyncErrorTeedToState(function (...args) {
3215
- return __awaiter$s(this, void 0, void 0, function* () {
3229
+ return __awaiter$t(this, void 0, void 0, function* () {
3216
3230
  return yield target.startScreenSharing(...args);
3217
3231
  });
3218
3232
  }, 'Call.startScreenSharing');
3219
3233
  }
3220
3234
  case 'stopScreenSharing': {
3221
3235
  return this._context.withAsyncErrorTeedToState(function (...args) {
3222
- return __awaiter$s(this, void 0, void 0, function* () {
3236
+ return __awaiter$t(this, void 0, void 0, function* () {
3223
3237
  return yield target.stopScreenSharing(...args);
3224
3238
  });
3225
3239
  }, 'Call.stopScreenSharing');
3226
3240
  }
3227
3241
  case 'hold': {
3228
3242
  return this._context.withAsyncErrorTeedToState(function (...args) {
3229
- return __awaiter$s(this, void 0, void 0, function* () {
3243
+ return __awaiter$t(this, void 0, void 0, function* () {
3230
3244
  return yield target.hold(...args);
3231
3245
  });
3232
3246
  }, 'Call.hold');
3233
3247
  }
3234
3248
  case 'resume': {
3235
3249
  return this._context.withAsyncErrorTeedToState(function (...args) {
3236
- return __awaiter$s(this, void 0, void 0, function* () {
3250
+ return __awaiter$t(this, void 0, void 0, function* () {
3237
3251
  return yield target.resume(...args);
3238
3252
  });
3239
3253
  }, 'Call.resume');
@@ -3246,7 +3260,7 @@ class ProxyCallCommon {
3246
3260
 
3247
3261
  // Copyright (c) Microsoft Corporation.
3248
3262
  // Licensed under the MIT license.
3249
- var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3263
+ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3250
3264
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3251
3265
  return new (P || (P = Promise))(function (resolve, reject) {
3252
3266
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3260,7 +3274,7 @@ class ProxyCall extends ProxyCallCommon {
3260
3274
  switch (prop) {
3261
3275
  case 'addParticipant': {
3262
3276
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
3263
- return __awaiter$r(this, void 0, void 0, function* () {
3277
+ return __awaiter$s(this, void 0, void 0, function* () {
3264
3278
  return yield target.addParticipant(...args);
3265
3279
  });
3266
3280
  }, 'Call.addParticipant');
@@ -3457,7 +3471,7 @@ class InternalCallContext {
3457
3471
 
3458
3472
  // Copyright (c) Microsoft Corporation.
3459
3473
  // Licensed under the MIT license.
3460
- var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3474
+ var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3461
3475
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3462
3476
  return new (P || (P = Promise))(function (resolve, reject) {
3463
3477
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3472,7 +3486,7 @@ class ProxyTeamsCall extends ProxyCallCommon {
3472
3486
  switch (prop) {
3473
3487
  case 'addParticipant': {
3474
3488
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
3475
- return __awaiter$q(this, void 0, void 0, function* () {
3489
+ return __awaiter$r(this, void 0, void 0, function* () {
3476
3490
  return yield target.addParticipant(...args);
3477
3491
  });
3478
3492
  }, 'TeamsCall.addParticipant');
@@ -3585,6 +3599,50 @@ const teamsCallAgentDeclaratify = (callAgent, context, internalContext) => {
3585
3599
  return new Proxy(callAgent, new ProxyTeamsCallAgent(callAgent, context, internalContext));
3586
3600
  };
3587
3601
 
3602
+ // Copyright (c) Microsoft Corporation.
3603
+ // Licensed under the MIT license.
3604
+ var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3605
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3606
+ return new (P || (P = Promise))(function (resolve, reject) {
3607
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3608
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3609
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3610
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
3611
+ });
3612
+ };
3613
+ /**
3614
+ * @private
3615
+ */
3616
+ class ProxyVideoStreamRendererView {
3617
+ constructor(context, callId, participantId, _streamId) {
3618
+ this._context = context;
3619
+ this._callId = callId;
3620
+ this._participantId = participantId;
3621
+ this._streamId = _streamId;
3622
+ }
3623
+ get(target, prop) {
3624
+ switch (prop) {
3625
+ case 'updateScalingMode': {
3626
+ return (args) => __awaiter$q(this, void 0, void 0, function* () {
3627
+ const result = yield target.updateScalingMode(...args);
3628
+ this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);
3629
+ return result;
3630
+ });
3631
+ }
3632
+ default:
3633
+ return Reflect.get(target, prop);
3634
+ }
3635
+ }
3636
+ }
3637
+ /**
3638
+ * Creates a declarative VideoStreamRendererView that is backed by a VideoStreamRendererView from the SDK.
3639
+ * Calling methods on this declarative object triggers state updates in the stateful client.
3640
+ */
3641
+ const videoStreamRendererViewDeclaratify = (view, context, callId, participantId, streamId) => {
3642
+ const proxyVideoStreamRendererView = new ProxyVideoStreamRendererView(context, callId, participantId, streamId);
3643
+ return new Proxy(view, proxyVideoStreamRendererView);
3644
+ };
3645
+
3588
3646
  // Copyright (c) Microsoft Corporation.
3589
3647
  // Licensed under the MIT license.
3590
3648
  var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -3717,10 +3775,16 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
3717
3775
  });
3718
3776
  Object.defineProperty(callClient, 'createView', {
3719
3777
  configurable: false,
3720
- value: (callId, participantId, stream, options) => {
3778
+ value: (callId, participantId, stream, options) => __awaiter$p(void 0, void 0, void 0, function* () {
3721
3779
  const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
3722
- return createView(context, internalContext, callId, participantIdKind, stream, options);
3723
- }
3780
+ const result = yield createView(context, internalContext, callId, participantIdKind, stream, options);
3781
+ // We only need to declaratify the VideoStreamRendererView object for remote participants. Because the updateScalingMode only needs to be called on remote participant stream views.
3782
+ if ('id' in stream && callId && participantId && result) {
3783
+ const participantKey = toFlatCommunicationIdentifier(participantId);
3784
+ result.view = videoStreamRendererViewDeclaratify(result.view, context, callId, participantKey, stream.id);
3785
+ }
3786
+ return result;
3787
+ })
3724
3788
  });
3725
3789
  Object.defineProperty(callClient, 'disposeView', {
3726
3790
  configurable: false,
@@ -3940,7 +4004,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
3940
4004
  wordBreak: 'break-word'
3941
4005
  });
3942
4006
 
3943
- var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateConnecting:"Calling...",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"};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.",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$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"};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={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneDomainPermissionsRequest={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 CameraDomainPermissionsRequest={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 MicrophoneDomainPermissionsRequest={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 CameraAndMicrophoneDomainPermissionsCheck={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 CameraDomainPermissionsCheck={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 MicrophoneDomainPermissionsCheck={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 CameraAndMicrophoneDomainPermissionsDenied={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 CameraDomainPermissionsDenied={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 MicrophoneDomainPermissionsDenied={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 UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpText:"More help"};var UnsupportedBrowserVersion$1={primaryText:"Browser version not supported",secondaryText:"Please update your browser and then try joining the call again.",moreHelpText:"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,CameraAndMicrophoneDomainPermissionsRequest:CameraAndMicrophoneDomainPermissionsRequest,CameraDomainPermissionsRequest:CameraDomainPermissionsRequest,MicrophoneDomainPermissionsRequest:MicrophoneDomainPermissionsRequest,CameraAndMicrophoneDomainPermissionsCheck:CameraAndMicrophoneDomainPermissionsCheck,CameraDomainPermissionsCheck:CameraDomainPermissionsCheck,MicrophoneDomainPermissionsCheck:MicrophoneDomainPermissionsCheck,CameraAndMicrophoneDomainPermissionsDenied:CameraAndMicrophoneDomainPermissionsDenied,CameraDomainPermissionsDenied:CameraDomainPermissionsDenied,MicrophoneDomainPermissionsDenied:MicrophoneDomainPermissionsDenied,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
4007
+ var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateConnecting:"Calling...",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"};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.",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$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"};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={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneDomainPermissionsRequest={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 CameraDomainPermissionsRequest={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 MicrophoneDomainPermissionsRequest={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 CameraAndMicrophoneDomainPermissionsCheck={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 CameraDomainPermissionsCheck={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 MicrophoneDomainPermissionsCheck={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 CameraAndMicrophoneDomainPermissionsDenied={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 CameraDomainPermissionsDenied={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 MicrophoneDomainPermissionsDenied={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 UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$1={primaryText:"Browser version not supported",secondaryText:"Please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements"};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,CameraAndMicrophoneDomainPermissionsRequest:CameraAndMicrophoneDomainPermissionsRequest,CameraDomainPermissionsRequest:CameraDomainPermissionsRequest,MicrophoneDomainPermissionsRequest:MicrophoneDomainPermissionsRequest,CameraAndMicrophoneDomainPermissionsCheck:CameraAndMicrophoneDomainPermissionsCheck,CameraDomainPermissionsCheck:CameraDomainPermissionsCheck,MicrophoneDomainPermissionsCheck:MicrophoneDomainPermissionsCheck,CameraAndMicrophoneDomainPermissionsDenied:CameraAndMicrophoneDomainPermissionsDenied,CameraDomainPermissionsDenied:CameraDomainPermissionsDenied,MicrophoneDomainPermissionsDenied:MicrophoneDomainPermissionsDenied,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,UnsupportedOperatingSystem:UnsupportedOperatingSystem$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
3944
4008
 
3945
4009
  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 DomainPermissions$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,DomainPermissions:DomainPermissions$c,UnsupportedBrowser:UnsupportedBrowser$d,BrowserPermissionDenied:BrowserPermissionDenied$c,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$c};
3946
4010
 
@@ -11458,7 +11522,8 @@ const mainTextStyles = {
11458
11522
  fontSize: _pxToRem(20),
11459
11523
  lineHeight: _pxToRem(28),
11460
11524
  paddingBottom: '1rem',
11461
- margin: 'auto'
11525
+ margin: 'auto',
11526
+ textAlign: 'center'
11462
11527
  }
11463
11528
  };
11464
11529
  /**
@@ -11479,7 +11544,7 @@ const linkTextStyles = {
11479
11544
  root: {
11480
11545
  margin: 'auto',
11481
11546
  fontWeight: 600,
11482
- textAlign: 'inherit'
11547
+ textAlign: 'center'
11483
11548
  }
11484
11549
  };
11485
11550
  /**
@@ -11509,10 +11574,10 @@ const UnsupportedEnvironmentContainer = (props) => {
11509
11574
  React__default['default'].createElement(react.Text, { styles: secondaryTextStyles }, strings.secondaryText),
11510
11575
  onTroubleshootingClick && (React__default['default'].createElement(react.Link, { styles: linkTextStyles, onClick: () => {
11511
11576
  onTroubleshootingClick();
11512
- }, "data-ui-id": "unsupported-environment-link" }, strings.moreHelpText))));
11577
+ }, "data-ui-id": "unsupported-environment-link" }, strings.moreHelpLinkText))));
11513
11578
  };
11514
11579
  /**
11515
- * UI to display to the user that the browser they are using is not supported by calling application.
11580
+ * UI to display to the user that the environment they are using is not supported by calling application.
11516
11581
  *
11517
11582
  * @private
11518
11583
  */
@@ -11544,6 +11609,17 @@ const UnsupportedBrowserVersion = (props) => {
11544
11609
  return React__default['default'].createElement(UnsupportedEnvironment, { onTroubleshootingClick: onTroubleshootingClick, strings: strings });
11545
11610
  };
11546
11611
 
11612
+ // Copyright (c) Microsoft Corporation.
11613
+ /**
11614
+ * UI to display to the user that the operating system they are using is not supported by Azure Communications Calling service.
11615
+ *
11616
+ * @beta
11617
+ */
11618
+ const UnsupportedOperatingSystem = (props) => {
11619
+ const { onTroubleshootingClick, strings } = props;
11620
+ return React__default['default'].createElement(UnsupportedEnvironment, { onTroubleshootingClick: onTroubleshootingClick, strings: strings });
11621
+ };
11622
+
11547
11623
  // Copyright (c) Microsoft Corporation.
11548
11624
  /**
11549
11625
  * @private
@@ -11719,14 +11795,16 @@ const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted
11719
11795
  };
11720
11796
  };
11721
11797
  const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
11722
- var _a, _b;
11798
+ var _a, _b, _c;
11723
11799
  return {
11724
11800
  id: stream.id,
11725
11801
  isAvailable: stream.isAvailable,
11726
11802
  /* @conditional-compile-remove(video-stream-is-receiving-flag) */
11727
11803
  isReceiving: stream.isReceiving,
11728
11804
  isMirrored: (_a = stream.view) === null || _a === void 0 ? void 0 : _a.isMirrored,
11729
- renderElement: (_b = stream.view) === null || _b === void 0 ? void 0 : _b.target
11805
+ renderElement: (_b = stream.view) === null || _b === void 0 ? void 0 : _b.target,
11806
+ /* @conditional-compile-remove(pinned-participants) */
11807
+ scalingMode: (_c = stream.view) === null || _c === void 0 ? void 0 : _c.scalingMode
11730
11808
  };
11731
11809
  };
11732
11810
 
@@ -15938,7 +16016,9 @@ const getDevicePermissionState = (setVideoState, setAudioState) => {
15938
16016
  /* @conditional-compile-remove(unsupported-browser) */
15939
16017
  const isUnsupportedEnvironment = (features, environmentInfo) => {
15940
16018
  return !!((features === null || features === void 0 ? void 0 : features.unsupportedEnvironment) &&
15941
- ((environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowser) === false || (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowserVersion) === false));
16019
+ ((environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowser) === false ||
16020
+ (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowserVersion) === false ||
16021
+ (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedPlatform) === false));
15942
16022
  };
15943
16023
 
15944
16024
  // Copyright (c) Microsoft Corporation.
@@ -19379,14 +19459,22 @@ const UnsupportedBrowserPage = (props) => {
19379
19459
  const unsupportedBrowserStrings = locale.component.strings.UnsupportedBrowser;
19380
19460
  /* @conditional-compile-remove(unsupported-browser) */
19381
19461
  const unsupportedBrowserVersionStrings = locale.component.strings.UnsupportedBrowserVersion;
19462
+ /* @conditional-compile-remove(unsupported-browser) */
19463
+ const unsupportedOperatingSystemStrings = locale.component.strings.UnsupportedOperatingSystem;
19382
19464
  let pageElement = React__default['default'].createElement(React__default['default'].Fragment, null);
19383
19465
  /* @conditional-compile-remove(unsupported-browser) */
19384
- if (!(environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowser)) {
19466
+ if (!(environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedPlatform)) {
19467
+ pageElement = (React__default['default'].createElement(UnsupportedOperatingSystem, { onTroubleshootingClick: onTroubleshootingClick, strings: unsupportedOperatingSystemStrings }));
19468
+ }
19469
+ else if (!(environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowser)) {
19385
19470
  pageElement = (React__default['default'].createElement(UnsupportedBrowser, { onTroubleshootingClick: onTroubleshootingClick, strings: unsupportedBrowserStrings }));
19386
19471
  }
19387
19472
  else if (!(environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.isSupportedBrowserVersion)) {
19388
19473
  pageElement = (React__default['default'].createElement(UnsupportedBrowserVersion, { onTroubleshootingClick: onTroubleshootingClick, strings: unsupportedBrowserVersionStrings }));
19389
19474
  }
19475
+ else {
19476
+ throw new Error('There was a problem with your environment info');
19477
+ }
19390
19478
  return React__default['default'].createElement(react.Stack, { styles: containerStyles }, pageElement);
19391
19479
  };
19392
19480
  const containerStyles = {
@@ -22428,6 +22516,7 @@ exports.StreamMedia = StreamMedia;
22428
22516
  exports.TypingIndicator = TypingIndicator;
22429
22517
  exports.UnsupportedBrowser = UnsupportedBrowser;
22430
22518
  exports.UnsupportedBrowserVersion = UnsupportedBrowserVersion;
22519
+ exports.UnsupportedOperatingSystem = UnsupportedOperatingSystem;
22431
22520
  exports.VideoGallery = VideoGallery;
22432
22521
  exports.VideoTile = VideoTile;
22433
22522
  exports._DevicePermissionDropdown = _DevicePermissionDropdown;