@azure/communication-react 1.3.3-alpha-202210060021.0 → 1.3.3-alpha-202210080019.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 (65) hide show
  1. package/dist/communication-react.d.ts +182 -4
  2. package/dist/dist-cjs/communication-react/index.js +230 -188
  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/handlers/createHandlers.d.ts +2 -0
  7. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +9 -1
  8. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +2 -1
  10. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +7 -0
  11. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  12. package/dist/dist-esm/communication-react/src/index.d.ts +3 -1
  13. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.d.ts +69 -0
  15. package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.js +35 -0
  16. package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.js.map +1 -0
  17. package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.d.ts +75 -0
  18. package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js +57 -0
  19. package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js.map +1 -0
  20. package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.d.ts +20 -2
  21. package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js +6 -2
  22. package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/DomainPermissions.d.ts +8 -0
  24. package/dist/dist-esm/react-components/src/components/DomainPermissions.js +4 -3
  25. package/dist/dist-esm/react-components/src/components/DomainPermissions.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/index.d.ts +5 -1
  27. package/dist/dist-esm/react-components/src/components/index.js +4 -0
  28. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +58 -0
  30. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +144 -0
  31. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -0
  32. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.d.ts +5 -1
  33. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js +12 -1
  34. package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +6 -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 +24 -2
  38. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
  39. package/dist/dist-esm/react-components/src/theming/icons.js +12 -1
  40. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +13 -0
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +11 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +2 -1
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +2 -0
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js +1 -19
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +2 -0
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js +1 -20
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +11 -3
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +13 -0
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +26 -0
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  64. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
  65. 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.3.3-alpha-202210060021.0';
205
+ var telemetryVersion = '1.3.3-alpha-202210080019.0';
206
206
 
207
207
  // Copyright (c) Microsoft Corporation.
208
208
  /**
@@ -401,7 +401,7 @@ const getCallState = (state, props) => { var _a; return (_a = state.calls[props.
401
401
 
402
402
  // Copyright (c) Microsoft Corporation.
403
403
  // Licensed under the MIT license.
404
- var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
404
+ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
405
405
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
406
406
  return new (P || (P = Promise))(function (resolve, reject) {
407
407
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -439,7 +439,7 @@ const _isPreviewOn = (deviceManager) => {
439
439
  *
440
440
  * @private
441
441
  */
442
- const disposeAllLocalPreviewViews = (callClient) => __awaiter$y(void 0, void 0, void 0, function* () {
442
+ const disposeAllLocalPreviewViews = (callClient) => __awaiter$w(void 0, void 0, void 0, function* () {
443
443
  const unparentedViews = callClient.getState().deviceManager.unparentedViews;
444
444
  for (const view of unparentedViews) {
445
445
  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$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
549
+ var __awaiter$v = (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); } }
@@ -570,7 +570,7 @@ const areStreamsEqual = (prevStream, newStream) => {
570
570
  * @public
571
571
  */
572
572
  const createDefaultCallingHandlers = memoizeOne__default['default']((callClient, callAgent, deviceManager, call) => {
573
- const onStartLocalVideo = () => __awaiter$x(void 0, void 0, void 0, function* () {
573
+ const onStartLocalVideo = () => __awaiter$v(void 0, void 0, void 0, function* () {
574
574
  // Before the call object creates a stream, dispose of any local preview streams.
575
575
  // @TODO: is there any way to parent the unparented view to the call object instead
576
576
  // of disposing and creating a new stream?
@@ -590,7 +590,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
590
590
  yield call.startVideo(stream);
591
591
  }
592
592
  });
593
- const onStopLocalVideo = (stream) => __awaiter$x(void 0, void 0, void 0, function* () {
593
+ const onStopLocalVideo = (stream) => __awaiter$v(void 0, void 0, void 0, function* () {
594
594
  const callId = call === null || call === void 0 ? void 0 : call.id;
595
595
  if (!callId) {
596
596
  return;
@@ -603,7 +603,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
603
603
  });
604
604
  }
605
605
  });
606
- const onToggleCamera = (options) => __awaiter$x(void 0, void 0, void 0, function* () {
606
+ const onToggleCamera = (options) => __awaiter$v(void 0, void 0, void 0, function* () {
607
607
  if (call && _isInCall(call.state)) {
608
608
  const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');
609
609
  if (stream) {
@@ -632,19 +632,19 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
632
632
  const onStartCall = (participants, options) => {
633
633
  return callAgent ? callAgent.startCall(participants, options) : undefined;
634
634
  };
635
- const onSelectMicrophone = (device) => __awaiter$x(void 0, void 0, void 0, function* () {
635
+ const onSelectMicrophone = (device) => __awaiter$v(void 0, void 0, void 0, function* () {
636
636
  if (!deviceManager) {
637
637
  return;
638
638
  }
639
639
  return deviceManager.selectMicrophone(device);
640
640
  });
641
- const onSelectSpeaker = (device) => __awaiter$x(void 0, void 0, void 0, function* () {
641
+ const onSelectSpeaker = (device) => __awaiter$v(void 0, void 0, void 0, function* () {
642
642
  if (!deviceManager) {
643
643
  return;
644
644
  }
645
645
  return deviceManager.selectSpeaker(device);
646
646
  });
647
- const onSelectCamera = (device, options) => __awaiter$x(void 0, void 0, void 0, function* () {
647
+ const onSelectCamera = (device, options) => __awaiter$v(void 0, void 0, void 0, function* () {
648
648
  if (!deviceManager) {
649
649
  return;
650
650
  }
@@ -667,19 +667,19 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
667
667
  }, options);
668
668
  }
669
669
  });
670
- const onToggleMicrophone = () => __awaiter$x(void 0, void 0, void 0, function* () {
670
+ const onToggleMicrophone = () => __awaiter$v(void 0, void 0, void 0, function* () {
671
671
  if (!call || !_isInCall(call.state)) {
672
672
  throw new Error(`Please invoke onToggleMicrophone after call is started`);
673
673
  }
674
674
  return call.isMuted ? yield call.unmute() : yield call.mute();
675
675
  });
676
- const onStartScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
677
- const onStopScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
678
- const onToggleScreenShare = () => __awaiter$x(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
679
- const onHangUp = () => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp()); });
676
+ const onStartScreenShare = () => __awaiter$v(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
677
+ const onStopScreenShare = () => __awaiter$v(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
678
+ const onToggleScreenShare = () => __awaiter$v(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
679
+ const onHangUp = () => __awaiter$v(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp()); });
680
680
  /* @conditional-compile-remove(PSTN-calls) */
681
- const onToggleHold = () => __awaiter$x(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()); });
682
- const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$x(void 0, void 0, void 0, function* () {
681
+ const onToggleHold = () => __awaiter$v(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()); });
682
+ const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$v(void 0, void 0, void 0, function* () {
683
683
  var _a;
684
684
  if (!call || call.localVideoStreams.length === 0) {
685
685
  return;
@@ -695,7 +695,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
695
695
  const { view } = (_a = (yield callClient.createView(call.id, undefined, localStream, options))) !== null && _a !== void 0 ? _a : {};
696
696
  return view ? { view } : undefined;
697
697
  });
698
- const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$x(void 0, void 0, void 0, function* () {
698
+ const onCreateRemoteStreamView = (userId, options = { scalingMode: 'Crop' }) => __awaiter$v(void 0, void 0, void 0, function* () {
699
699
  if (!call) {
700
700
  return;
701
701
  }
@@ -723,7 +723,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
723
723
  }
724
724
  return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
725
725
  });
726
- const onDisposeRemoteStreamView = (userId) => __awaiter$x(void 0, void 0, void 0, function* () {
726
+ const onDisposeRemoteStreamView = (userId) => __awaiter$v(void 0, void 0, void 0, function* () {
727
727
  if (!call) {
728
728
  return;
729
729
  }
@@ -744,7 +744,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
744
744
  callClient.disposeView(call.id, participant.identifier, screenShareStream);
745
745
  }
746
746
  });
747
- const onDisposeLocalStreamView = () => __awaiter$x(void 0, void 0, void 0, function* () {
747
+ const onDisposeLocalStreamView = () => __awaiter$v(void 0, void 0, void 0, function* () {
748
748
  // If the user is currently in a call, dispose of the local stream view attached to that call.
749
749
  const callState = call && callClient.getState().calls[call.id];
750
750
  const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
@@ -756,12 +756,12 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
756
756
  // TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.
757
757
  yield disposeAllLocalPreviewViews(callClient);
758
758
  });
759
- const onRemoveParticipant = (userId) => __awaiter$x(void 0, void 0, void 0, function* () {
759
+ const onRemoveParticipant = (userId) => __awaiter$v(void 0, void 0, void 0, function* () {
760
760
  const participant = _toCommunicationIdentifier(userId);
761
761
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
762
762
  });
763
763
  /* @conditional-compile-remove(PSTN-calls) */
764
- const onAddParticipant = (participant, options) => __awaiter$x(void 0, void 0, void 0, function* () {
764
+ const onAddParticipant = (participant, options) => __awaiter$v(void 0, void 0, void 0, function* () {
765
765
  const participantType = participantTypeHelper(participant);
766
766
  switch (participantType) {
767
767
  case 'PSTN':
@@ -773,7 +773,13 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
773
773
  }
774
774
  });
775
775
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
776
- const onSendDtmfTone = (dtmfTone) => __awaiter$x(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
776
+ const onSendDtmfTone = (dtmfTone) => __awaiter$v(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
777
+ /* @conditional-compile-remove(call-readiness) */
778
+ const askDevicePermission = (constrain) => __awaiter$v(void 0, void 0, void 0, function* () {
779
+ if (deviceManager) {
780
+ yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
781
+ }
782
+ });
777
783
  return {
778
784
  onHangUp,
779
785
  /* @conditional-compile-remove(PSTN-calls) */
@@ -795,7 +801,9 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
795
801
  onStartLocalVideo,
796
802
  onDisposeRemoteStreamView,
797
803
  onDisposeLocalStreamView,
798
- /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone
804
+ /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone,
805
+ /* @conditional-compile-remove(call-readiness) */
806
+ askDevicePermission
799
807
  };
800
808
  });
801
809
  /**
@@ -988,7 +996,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
988
996
  wordBreak: 'break-word'
989
997
  });
990
998
 
991
- 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={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var DomainPermissions$1={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"More help"};var UnsupportedBrowser$1={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"More help"};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,videoTile:videoTile,DomainPermissions:DomainPermissions$1,UnsupportedBrowser:UnsupportedBrowser$1};
999
+ 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={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var DomainPermissions$1={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$1={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"Need help? Get troubleshooting help"};var BrowserPermissionDenied={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={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,videoTile:videoTile,DomainPermissions:DomainPermissions$1,UnsupportedBrowser:UnsupportedBrowser$1,BrowserPermissionDenied:BrowserPermissionDenied,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS};
992
1000
 
993
1001
  var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};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."};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",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"};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.",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.",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 a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};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$d};
994
1002
 
@@ -1986,6 +1994,13 @@ const UnsupportedBrowserWarning = () => {
1986
1994
  React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
1987
1995
  React__default['default'].createElement(reactIcons.Warning20Filled, null))));
1988
1996
  };
1997
+ /* @conditional-compile-remove(call-readiness) */
1998
+ const BrowserPermissionDenied20Filled = () => {
1999
+ const theme = useTheme();
2000
+ return (React__default['default'].createElement(react.Stack, { horizontalAlign: 'center', styles: { root: { borderRadius: '100%', background: theme.palette.themeLighterAlt, padding: '2rem' } } },
2001
+ React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
2002
+ React__default['default'].createElement(reactIcons.Important20Filled, null))));
2003
+ };
1989
2004
  /**
1990
2005
  * The default set of icons that are available to use in the UI components.
1991
2006
  *
@@ -2060,7 +2075,9 @@ const DEFAULT_COMPONENT_ICONS = {
2060
2075
  /* @conditional-compile-remove(call-readiness) */
2061
2076
  DomainPermissionMic: React__default['default'].createElement(DomainPermissionMic20Filled, null),
2062
2077
  /* @conditional-compile-remove(unsupported-browser) */
2063
- UnsupportedBrowserWarning: React__default['default'].createElement(UnsupportedBrowserWarning, null)
2078
+ UnsupportedBrowserWarning: React__default['default'].createElement(UnsupportedBrowserWarning, null),
2079
+ /* @conditional-compile-remove(call-readiness) */
2080
+ BrowserPermissionDeniedError: React__default['default'].createElement(BrowserPermissionDenied20Filled, null)
2064
2081
  };
2065
2082
  /* @conditional-compile-remove(unsupported-browser) */
2066
2083
  const scaledIconStyles = (theme) => {
@@ -3504,7 +3521,7 @@ const chatMessageActionMenuProps = (menuProps) => {
3504
3521
  return actionMenuProps;
3505
3522
  };
3506
3523
 
3507
- var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3524
+ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3508
3525
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3509
3526
  return new (P || (P = Promise))(function (resolve, reject) {
3510
3527
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3529,7 +3546,7 @@ const _FileDownloadCards = (props) => {
3529
3546
  var _a, _b;
3530
3547
  return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile) !== null && _b !== void 0 ? _b : localeStrings.downloadFile;
3531
3548
  }, [(_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile, localeStrings.downloadFile]);
3532
- const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$w(void 0, void 0, void 0, function* () {
3549
+ const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$u(void 0, void 0, void 0, function* () {
3533
3550
  if (!props.downloadHandler) {
3534
3551
  window.open(file.url, '_blank', 'noopener,noreferrer');
3535
3552
  }
@@ -3677,7 +3694,7 @@ const ChatMessageComponentAsMessageBubble = React__default['default'].memo(Messa
3677
3694
 
3678
3695
  // Copyright (c) Microsoft Corporation.
3679
3696
  // Licensed under the MIT license.
3680
- var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3697
+ var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3681
3698
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3682
3699
  return new (P || (P = Promise))(function (resolve, reject) {
3683
3700
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3711,7 +3728,7 @@ const ChatMessageComponent = (props) => {
3711
3728
  return React__default['default'].createElement(React__default['default'].Fragment, null);
3712
3729
  }
3713
3730
  else if (isEditing) {
3714
- return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$v(void 0, void 0, void 0, function* () {
3731
+ return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$t(void 0, void 0, void 0, function* () {
3715
3732
  props.onUpdateMessage &&
3716
3733
  props.message.messageId &&
3717
3734
  (yield props.onUpdateMessage(props.message.messageId, text, metadata, options));
@@ -3810,7 +3827,7 @@ const getParticipantsWhoHaveReadMessage = (message, readReceiptsBySenderId) => {
3810
3827
 
3811
3828
  // Copyright (c) Microsoft Corporation.
3812
3829
  // Licensed under the MIT license.
3813
- var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3830
+ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
3814
3831
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3815
3832
  return new (P || (P = Promise))(function (resolve, reject) {
3816
3833
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -4037,7 +4054,7 @@ const MessageThread = (props) => {
4037
4054
  setChatMessagesInitialized(chatMessagesInitialized);
4038
4055
  };
4039
4056
  // we try to only send those message status if user is scrolled to the bottom.
4040
- const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$u(void 0, void 0, void 0, function* () {
4057
+ const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$s(void 0, void 0, void 0, function* () {
4041
4058
  if (!isAtBottomOfScrollRef.current ||
4042
4059
  !document.hasFocus() ||
4043
4060
  !messagesRef.current ||
@@ -4088,7 +4105,7 @@ const MessageThread = (props) => {
4088
4105
  setIsAtBottomOfScrollRef(atBottom);
4089
4106
  }, [scrollToBottom, sendMessageStatusIfAtBottom]);
4090
4107
  // Infinite scrolling + threadInitialize function
4091
- const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$u(void 0, void 0, void 0, function* () {
4108
+ const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$s(void 0, void 0, void 0, function* () {
4092
4109
  if (chatScrollDivRef.current && !isLoadingChatMessagesRef.current) {
4093
4110
  if (onLoadPreviousChatMessages) {
4094
4111
  isLoadingChatMessagesRef.current = true;
@@ -6877,7 +6894,7 @@ const DevicesButton = (props) => {
6877
6894
 
6878
6895
  // Copyright (c) Microsoft Corporation.
6879
6896
  // Licensed under the MIT license.
6880
- var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6897
+ var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6881
6898
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6882
6899
  return new (P || (P = Promise))(function (resolve, reject) {
6883
6900
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6915,7 +6932,7 @@ const CameraButton = (props) => {
6915
6932
  const toggleAnnouncerString = React.useCallback((isCameraOn) => {
6916
6933
  setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
6917
6934
  }, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
6918
- const onToggleClick = React.useCallback(() => __awaiter$t(void 0, void 0, void 0, function* () {
6935
+ const onToggleClick = React.useCallback(() => __awaiter$r(void 0, void 0, void 0, function* () {
6919
6936
  // Throttle click on camera, need to await onToggleCamera then allow another click
6920
6937
  if (onToggleCamera) {
6921
6938
  setWaitForCamera(true);
@@ -7047,7 +7064,7 @@ const lightThemeCallButtonStyles = {
7047
7064
 
7048
7065
  // Copyright (c) Microsoft Corporation.
7049
7066
  // Licensed under the MIT license.
7050
- var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
7067
+ var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
7051
7068
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7052
7069
  return new (P || (P = Promise))(function (resolve, reject) {
7053
7070
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -7088,7 +7105,7 @@ const MicrophoneButton = (props) => {
7088
7105
  const toggleAnnouncerString = React.useCallback((isMicOn) => {
7089
7106
  setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
7090
7107
  }, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
7091
- const onToggleClick = React.useCallback(() => __awaiter$s(void 0, void 0, void 0, function* () {
7108
+ const onToggleClick = React.useCallback(() => __awaiter$q(void 0, void 0, void 0, function* () {
7092
7109
  if (onToggleMicrophone) {
7093
7110
  try {
7094
7111
  yield onToggleMicrophone();
@@ -7163,7 +7180,7 @@ const secondaryTextStyles$2 = {
7163
7180
  root: {
7164
7181
  margin: 'auto',
7165
7182
  fontWeight: 400,
7166
- paddingBottom: '0.5rem'
7183
+ paddingBottom: _pxToRem(22)
7167
7184
  }
7168
7185
  };
7169
7186
  /**
@@ -7176,11 +7193,22 @@ const linkTextStyles$1 = {
7176
7193
  textAlign: 'inherit'
7177
7194
  }
7178
7195
  };
7196
+ /**
7197
+ * @internal
7198
+ */
7199
+ const primaryButtonStyles = {
7200
+ root: {
7201
+ paddingTop: '1.5rem',
7202
+ paddingBottom: '1.5rem',
7203
+ borderRadius: '0.5rem',
7204
+ marginBottom: _pxToRem(22)
7205
+ }
7206
+ };
7179
7207
 
7180
7208
  // Copyright (c) Microsoft Corporation.
7181
7209
  /* @conditional-compile-remove(call-readiness) */
7182
7210
  const DomainPermissionsContainer = (props) => {
7183
- const { appName, onTroubleshootingClick, strings } = props;
7211
+ const { appName, onTroubleshootingClick, onAllowAccessClick, strings } = props;
7184
7212
  const theme = react.useTheme();
7185
7213
  return (React__default['default'].createElement(react.Stack, { style: { padding: '2rem', maxWidth: '25.375rem' } },
7186
7214
  React__default['default'].createElement(react.Stack, { horizontal: true, style: { paddingBottom: '1rem' }, horizontalAlign: 'space-between' },
@@ -7193,6 +7221,7 @@ const DomainPermissionsContainer = (props) => {
7193
7221
  React__default['default'].createElement(react.Stack, { styles: textContainerStyles },
7194
7222
  React__default['default'].createElement(react.Text, { styles: primaryTextStyles }, _formatString(strings.primaryText, { appName: appName })),
7195
7223
  React__default['default'].createElement(react.Text, { styles: secondaryTextStyles$2 }, strings.secondaryText),
7224
+ onAllowAccessClick && (React__default['default'].createElement(react.PrimaryButton, { styles: primaryButtonStyles, text: strings.primaryButtonText, onClick: onAllowAccessClick })),
7196
7225
  React__default['default'].createElement(react.Link, { styles: linkTextStyles$1, onClick: onTroubleshootingClick }, strings.linkText))));
7197
7226
  };
7198
7227
  /**
@@ -8068,7 +8097,7 @@ function useLongPress(onClick, onLongPress, isMobile) {
8068
8097
 
8069
8098
  // Copyright (c) Microsoft Corporation.
8070
8099
  // Licensed under the MIT license.
8071
- var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
8100
+ var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
8072
8101
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8073
8102
  return new (P || (P = Promise))(function (resolve, reject) {
8074
8103
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -8109,10 +8138,10 @@ const DialpadButton = (props) => {
8109
8138
  var _a, _b, _c, _d;
8110
8139
  const theme = react.useTheme();
8111
8140
  const { digit, index, onClick, onLongPress, isMobile = false } = props;
8112
- const clickFunction = React.useCallback(() => __awaiter$r(void 0, void 0, void 0, function* () {
8141
+ const clickFunction = React.useCallback(() => __awaiter$p(void 0, void 0, void 0, function* () {
8113
8142
  onClick(digit, index);
8114
8143
  }), [digit, index, onClick]);
8115
- const longPressFunction = React.useCallback(() => __awaiter$r(void 0, void 0, void 0, function* () {
8144
+ const longPressFunction = React.useCallback(() => __awaiter$p(void 0, void 0, void 0, function* () {
8116
8145
  onLongPress(digit, index);
8117
8146
  }), [digit, index, onLongPress]);
8118
8147
  const { handlers } = useLongPress(clickFunction, longPressFunction, isMobile);
@@ -8322,7 +8351,7 @@ const UnsupportedBrowser = (props) => {
8322
8351
  * @internal
8323
8352
  */
8324
8353
  const _DevicePermissionDropdown = (props) => {
8325
- const { icon, onClickActionButton, strings, options, styles } = props;
8354
+ const { icon, askDevicePermission, constrain, strings, options, styles } = props;
8326
8355
  const onRenderPlaceholder = () => {
8327
8356
  return (React__default['default'].createElement(react.Stack, { horizontal: true, verticalAlign: "center" },
8328
8357
  icon,
@@ -8331,7 +8360,11 @@ const _DevicePermissionDropdown = (props) => {
8331
8360
  const onRenderCaretDown = () => {
8332
8361
  return React__default['default'].createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent);
8333
8362
  };
8334
- return (React__default['default'].createElement(react.Dropdown, { placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: onClickActionButton, options: options !== null && options !== void 0 ? options : [], styles: styles }));
8363
+ return (React__default['default'].createElement(react.Dropdown, { placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: () => {
8364
+ if (askDevicePermission) {
8365
+ askDevicePermission(constrain !== null && constrain !== void 0 ? constrain : { video: true, audio: true });
8366
+ }
8367
+ }, options: options !== null && options !== void 0 ? options : [], styles: styles }));
8335
8368
  };
8336
8369
 
8337
8370
  // Copyright (c) Microsoft Corporation.
@@ -8744,6 +8777,11 @@ const findSelector$1 = (component) => {
8744
8777
  if (component === Dialpad) {
8745
8778
  return emptySelector;
8746
8779
  }
8780
+ /* @conditional-compile-remove(call-readiness) */
8781
+ // _DevicePermissionDropdown only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector
8782
+ if (component === _DevicePermissionDropdown) {
8783
+ return emptySelector;
8784
+ }
8747
8785
  switch (component) {
8748
8786
  case VideoGallery:
8749
8787
  return videoGallerySelector;
@@ -8776,7 +8814,7 @@ const findConditionalCompiledSelector = (component) => {
8776
8814
 
8777
8815
  // Copyright (c) Microsoft Corporation.
8778
8816
  // Licensed under the MIT license.
8779
- var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
8817
+ var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
8780
8818
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8781
8819
  return new (P || (P = Promise))(function (resolve, reject) {
8782
8820
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -8799,35 +8837,35 @@ const createDefaultChatHandlers = memoizeOne__default['default']((chatClient, ch
8799
8837
  let messageIterator = undefined;
8800
8838
  let readReceiptIterator = undefined;
8801
8839
  return {
8802
- onSendMessage: (content, options) => __awaiter$q(void 0, void 0, void 0, function* () {
8840
+ onSendMessage: (content, options) => __awaiter$o(void 0, void 0, void 0, function* () {
8803
8841
  const sendMessageRequest = {
8804
8842
  content,
8805
8843
  senderDisplayName: chatClient.getState().displayName
8806
8844
  };
8807
8845
  yield chatThreadClient.sendMessage(sendMessageRequest, options);
8808
8846
  }),
8809
- onUpdateMessage: (messageId, content, metadata, options) => __awaiter$q(void 0, void 0, void 0, function* () {
8847
+ onUpdateMessage: (messageId, content, metadata, options) => __awaiter$o(void 0, void 0, void 0, function* () {
8810
8848
  const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
8811
8849
  updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
8812
8850
  yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
8813
8851
  }),
8814
- onDeleteMessage: (messageId) => __awaiter$q(void 0, void 0, void 0, function* () {
8852
+ onDeleteMessage: (messageId) => __awaiter$o(void 0, void 0, void 0, function* () {
8815
8853
  yield chatThreadClient.deleteMessage(messageId);
8816
8854
  }),
8817
8855
  // This handler is designed for chatThread to consume
8818
- onMessageSeen: (chatMessageId) => __awaiter$q(void 0, void 0, void 0, function* () {
8856
+ onMessageSeen: (chatMessageId) => __awaiter$o(void 0, void 0, void 0, function* () {
8819
8857
  yield chatThreadClient.sendReadReceipt({ chatMessageId });
8820
8858
  }),
8821
- onTyping: () => __awaiter$q(void 0, void 0, void 0, function* () {
8859
+ onTyping: () => __awaiter$o(void 0, void 0, void 0, function* () {
8822
8860
  yield chatThreadClient.sendTypingNotification();
8823
8861
  }),
8824
- onRemoveParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
8862
+ onRemoveParticipant: (userId) => __awaiter$o(void 0, void 0, void 0, function* () {
8825
8863
  yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
8826
8864
  }),
8827
- updateThreadTopicName: (topicName) => __awaiter$q(void 0, void 0, void 0, function* () {
8865
+ updateThreadTopicName: (topicName) => __awaiter$o(void 0, void 0, void 0, function* () {
8828
8866
  yield chatThreadClient.updateTopic(topicName);
8829
8867
  }),
8830
- onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$q(void 0, void 0, void 0, function* () {
8868
+ onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$o(void 0, void 0, void 0, function* () {
8831
8869
  var _a, _b, _c;
8832
8870
  if (messageIterator === undefined) {
8833
8871
  // Lazy definition so that errors in the method call are reported correctly.
@@ -9529,7 +9567,7 @@ const findSelector = (component) => {
9529
9567
 
9530
9568
  // Copyright (c) Microsoft Corporation.
9531
9569
  // Licensed under the MIT license.
9532
- var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9570
+ var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9533
9571
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9534
9572
  return new (P || (P = Promise))(function (resolve, reject) {
9535
9573
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -9578,10 +9616,10 @@ class ProxyDeviceManager {
9578
9616
  this.selectCamera = (videoDeviceInfo) => {
9579
9617
  this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
9580
9618
  };
9581
- this.videoDevicesUpdated = () => __awaiter$p(this, void 0, void 0, function* () {
9619
+ this.videoDevicesUpdated = () => __awaiter$n(this, void 0, void 0, function* () {
9582
9620
  this._context.setDeviceManagerCameras(dedupeById(yield this._deviceManager.getCameras()));
9583
9621
  });
9584
- this.audioDevicesUpdated = () => __awaiter$p(this, void 0, void 0, function* () {
9622
+ this.audioDevicesUpdated = () => __awaiter$n(this, void 0, void 0, function* () {
9585
9623
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
9586
9624
  this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
9587
9625
  });
@@ -9784,7 +9822,7 @@ class CallIdHistory {
9784
9822
 
9785
9823
  // Copyright (c) Microsoft Corporation.
9786
9824
  // Licensed under the MIT license.
9787
- var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9825
+ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9788
9826
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9789
9827
  return new (P || (P = Promise))(function (resolve, reject) {
9790
9828
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -10269,7 +10307,7 @@ class CallContext$1 {
10269
10307
  * @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
10270
10308
  */
10271
10309
  withAsyncErrorTeedToState(action, target) {
10272
- return (...args) => __awaiter$o(this, void 0, void 0, function* () {
10310
+ return (...args) => __awaiter$m(this, void 0, void 0, function* () {
10273
10311
  try {
10274
10312
  return yield action(...args);
10275
10313
  }
@@ -10333,7 +10371,7 @@ const findOldestCallEnded = (calls) => {
10333
10371
 
10334
10372
  // Copyright (c) Microsoft Corporation.
10335
10373
  // Licensed under the MIT license.
10336
- var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10374
+ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10337
10375
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10338
10376
  return new (P || (P = Promise))(function (resolve, reject) {
10339
10377
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -10353,63 +10391,63 @@ class ProxyCall {
10353
10391
  switch (prop) {
10354
10392
  case 'mute': {
10355
10393
  return this._context.withAsyncErrorTeedToState(function (...args) {
10356
- return __awaiter$n(this, void 0, void 0, function* () {
10394
+ return __awaiter$l(this, void 0, void 0, function* () {
10357
10395
  return yield target.mute(...args);
10358
10396
  });
10359
10397
  }, 'Call.mute');
10360
10398
  }
10361
10399
  case 'unmute': {
10362
10400
  return this._context.withAsyncErrorTeedToState(function (...args) {
10363
- return __awaiter$n(this, void 0, void 0, function* () {
10401
+ return __awaiter$l(this, void 0, void 0, function* () {
10364
10402
  return yield target.unmute(...args);
10365
10403
  });
10366
10404
  }, 'Call.unmute');
10367
10405
  }
10368
10406
  case 'startVideo': {
10369
10407
  return this._context.withAsyncErrorTeedToState(function (...args) {
10370
- return __awaiter$n(this, void 0, void 0, function* () {
10408
+ return __awaiter$l(this, void 0, void 0, function* () {
10371
10409
  return yield target.startVideo(...args);
10372
10410
  });
10373
10411
  }, 'Call.startVideo');
10374
10412
  }
10375
10413
  case 'stopVideo': {
10376
10414
  return this._context.withAsyncErrorTeedToState(function (...args) {
10377
- return __awaiter$n(this, void 0, void 0, function* () {
10415
+ return __awaiter$l(this, void 0, void 0, function* () {
10378
10416
  return yield target.stopVideo(...args);
10379
10417
  });
10380
10418
  }, 'Call.stopVideo');
10381
10419
  }
10382
10420
  case 'startScreenSharing': {
10383
10421
  return this._context.withAsyncErrorTeedToState(function (...args) {
10384
- return __awaiter$n(this, void 0, void 0, function* () {
10422
+ return __awaiter$l(this, void 0, void 0, function* () {
10385
10423
  return yield target.startScreenSharing(...args);
10386
10424
  });
10387
10425
  }, 'Call.startScreenSharing');
10388
10426
  }
10389
10427
  case 'stopScreenSharing': {
10390
10428
  return this._context.withAsyncErrorTeedToState(function (...args) {
10391
- return __awaiter$n(this, void 0, void 0, function* () {
10429
+ return __awaiter$l(this, void 0, void 0, function* () {
10392
10430
  return yield target.stopScreenSharing(...args);
10393
10431
  });
10394
10432
  }, 'Call.stopScreenSharing');
10395
10433
  }
10396
10434
  case 'hold': {
10397
10435
  return this._context.withAsyncErrorTeedToState(function (...args) {
10398
- return __awaiter$n(this, void 0, void 0, function* () {
10436
+ return __awaiter$l(this, void 0, void 0, function* () {
10399
10437
  return yield target.hold(...args);
10400
10438
  });
10401
10439
  }, 'Call.hold');
10402
10440
  }
10403
10441
  case 'resume': {
10404
10442
  return this._context.withAsyncErrorTeedToState(function (...args) {
10405
- return __awaiter$n(this, void 0, void 0, function* () {
10443
+ return __awaiter$l(this, void 0, void 0, function* () {
10406
10444
  return yield target.resume(...args);
10407
10445
  });
10408
10446
  }, 'Call.resume');
10409
10447
  }
10410
10448
  case 'addParticipant': {
10411
10449
  return this._context.withAsyncErrorTeedToState(function (...args) {
10412
- return __awaiter$n(this, void 0, void 0, function* () {
10450
+ return __awaiter$l(this, void 0, void 0, function* () {
10413
10451
  return yield target.addParticipant(...args);
10414
10452
  });
10415
10453
  }, 'Call.addParticipant');
@@ -10617,7 +10655,7 @@ class RemoteVideoStreamSubscriber {
10617
10655
 
10618
10656
  // Copyright (c) Microsoft Corporation.
10619
10657
  // Licensed under the MIT license.
10620
- var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10658
+ var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10621
10659
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10622
10660
  return new (P || (P = Promise))(function (resolve, reject) {
10623
10661
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -10627,7 +10665,7 @@ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments,
10627
10665
  });
10628
10666
  };
10629
10667
  function createViewRemoteVideo(context, internalContext, callId, participantId, stream, options) {
10630
- return __awaiter$m(this, void 0, void 0, function* () {
10668
+ return __awaiter$k(this, void 0, void 0, function* () {
10631
10669
  // Render RemoteVideoStream that is part of a Call
10632
10670
  const streamId = stream.id;
10633
10671
  let participantKey;
@@ -10735,7 +10773,7 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
10735
10773
  });
10736
10774
  }
10737
10775
  function createViewLocalVideo(context, internalContext, callId, options) {
10738
- return __awaiter$m(this, void 0, void 0, function* () {
10776
+ return __awaiter$k(this, void 0, void 0, function* () {
10739
10777
  _logEvent(callingStatefulLogger, {
10740
10778
  name: EventNames.START_LOCAL_STREAM_RENDERING,
10741
10779
  level: 'info',
@@ -10851,7 +10889,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
10851
10889
  });
10852
10890
  }
10853
10891
  function createViewUnparentedVideo(context, internalContext, stream, options) {
10854
- return __awaiter$m(this, void 0, void 0, function* () {
10892
+ return __awaiter$k(this, void 0, void 0, function* () {
10855
10893
  const renderInfo = internalContext.getUnparentedRenderInfo(stream);
10856
10894
  if (renderInfo && renderInfo.status === 'Rendered') {
10857
10895
  console.warn('Unparented LocalVideoStream is already rendered');
@@ -11479,7 +11517,7 @@ class CallSubscriber {
11479
11517
 
11480
11518
  // Copyright (c) Microsoft Corporation.
11481
11519
  // Licensed under the MIT license.
11482
- var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11520
+ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11483
11521
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11484
11522
  return new (P || (P = Promise))(function (resolve, reject) {
11485
11523
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -11499,14 +11537,14 @@ class ProxyIncomingCall {
11499
11537
  switch (prop) {
11500
11538
  case 'accept': {
11501
11539
  return this._context.withAsyncErrorTeedToState(function (...args) {
11502
- return __awaiter$l(this, void 0, void 0, function* () {
11540
+ return __awaiter$j(this, void 0, void 0, function* () {
11503
11541
  return yield target.accept(...args);
11504
11542
  });
11505
11543
  }, 'IncomingCall.accept');
11506
11544
  }
11507
11545
  case 'reject': {
11508
11546
  return this._context.withAsyncErrorTeedToState(function (...args) {
11509
- return __awaiter$l(this, void 0, void 0, function* () {
11547
+ return __awaiter$j(this, void 0, void 0, function* () {
11510
11548
  return yield target.reject(...args);
11511
11549
  });
11512
11550
  }, 'IncomingCall.reject');
@@ -11854,7 +11892,7 @@ class InternalCallContext {
11854
11892
 
11855
11893
  // Copyright (c) Microsoft Corporation.
11856
11894
  // Licensed under the MIT license.
11857
- var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11895
+ var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
11858
11896
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11859
11897
  return new (P || (P = Promise))(function (resolve, reject) {
11860
11898
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -11876,7 +11914,7 @@ class ProxyCallClient {
11876
11914
  get(target, prop) {
11877
11915
  switch (prop) {
11878
11916
  case 'createCallAgent': {
11879
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$k(this, void 0, void 0, function* () {
11917
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$i(this, void 0, void 0, function* () {
11880
11918
  // createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
11881
11919
  // callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
11882
11920
  // callAgent if the createCallAgent succeeds.
@@ -11889,7 +11927,7 @@ class ProxyCallClient {
11889
11927
  }), 'CallClient.createCallAgent');
11890
11928
  }
11891
11929
  case 'getDeviceManager': {
11892
- return this._context.withAsyncErrorTeedToState(() => __awaiter$k(this, void 0, void 0, function* () {
11930
+ return this._context.withAsyncErrorTeedToState(() => __awaiter$i(this, void 0, void 0, function* () {
11893
11931
  // As of writing, the SDK always returns the same instance of DeviceManager so we keep a reference of
11894
11932
  // DeviceManager and if it does not change we return the cached DeclarativeDeviceManager. If it does not we'll
11895
11933
  // throw an error that indicate we need to fix this issue as our implementation has diverged from the SDK.
@@ -12012,7 +12050,7 @@ const chatStatefulLogger = logger.createClientLogger('communication-react:chat-s
12012
12050
 
12013
12051
  // Copyright (c) Microsoft Corporation.
12014
12052
  // Licensed under the MIT license.
12015
- var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12053
+ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12016
12054
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12017
12055
  return new (P || (P = Promise))(function (resolve, reject) {
12018
12056
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12287,7 +12325,7 @@ class ChatContext$1 {
12287
12325
  * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
12288
12326
  */
12289
12327
  withAsyncErrorTeedToState(f, target) {
12290
- return (...args) => __awaiter$j(this, void 0, void 0, function* () {
12328
+ return (...args) => __awaiter$h(this, void 0, void 0, function* () {
12291
12329
  try {
12292
12330
  return yield f(...args);
12293
12331
  }
@@ -12394,7 +12432,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
12394
12432
 
12395
12433
  // Copyright (c) Microsoft Corporation.
12396
12434
  // Licensed under the MIT license.
12397
- var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12435
+ var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12398
12436
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12399
12437
  return new (P || (P = Promise))(function (resolve, reject) {
12400
12438
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12478,7 +12516,7 @@ class EventSubscriber {
12478
12516
  this.fetchLastParticipantMessage(event.threadId, 'participantAdded');
12479
12517
  };
12480
12518
  // This is a hot fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK
12481
- this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$i(this, void 0, void 0, function* () {
12519
+ this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$g(this, void 0, void 0, function* () {
12482
12520
  var e_1, _a;
12483
12521
  try {
12484
12522
  for (var _b = __asyncValues$1(this.chatClient
@@ -12564,7 +12602,7 @@ class EventSubscriber {
12564
12602
 
12565
12603
  // Copyright (c) Microsoft Corporation.
12566
12604
  // Licensed under the MIT license.
12567
- var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12605
+ var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12568
12606
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12569
12607
  return new (P || (P = Promise))(function (resolve, reject) {
12570
12608
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12586,7 +12624,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
12586
12624
  const threadsIterator = iteratorCreator(...args);
12587
12625
  return {
12588
12626
  next() {
12589
- return __awaiter$h(this, void 0, void 0, function* () {
12627
+ return __awaiter$f(this, void 0, void 0, function* () {
12590
12628
  const result = yield threadsIterator.next();
12591
12629
  if (!result.done && result.value) {
12592
12630
  decorateFn(result.value, context);
@@ -12601,7 +12639,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
12601
12639
  const pages = threadsIterator.byPage(settings);
12602
12640
  return {
12603
12641
  next() {
12604
- return __awaiter$h(this, void 0, void 0, function* () {
12642
+ return __awaiter$f(this, void 0, void 0, function* () {
12605
12643
  const result = yield pages.next();
12606
12644
  const page = result.value;
12607
12645
  if (!result.done && result.value) {
@@ -12685,7 +12723,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
12685
12723
 
12686
12724
  // Copyright (c) Microsoft Corporation.
12687
12725
  // Licensed under the MIT license.
12688
- var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12726
+ var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12689
12727
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12690
12728
  return new (P || (P = Promise))(function (resolve, reject) {
12691
12729
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12704,14 +12742,14 @@ class ProxyChatThreadClient {
12704
12742
  return createDecoratedListMessages(chatThreadClient, this._context);
12705
12743
  }
12706
12744
  case 'getMessage': {
12707
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12745
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12708
12746
  const message = yield chatThreadClient.getMessage(...args);
12709
12747
  this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
12710
12748
  return message;
12711
12749
  }), 'ChatThreadClient.getMessage');
12712
12750
  }
12713
12751
  case 'sendMessage': {
12714
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12752
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12715
12753
  // Retry logic?
12716
12754
  const [request, options] = args;
12717
12755
  const { content } = request;
@@ -12751,7 +12789,7 @@ class ProxyChatThreadClient {
12751
12789
  }), 'ChatThreadClient.sendMessage');
12752
12790
  }
12753
12791
  case 'addParticipants': {
12754
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12792
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12755
12793
  const result = yield chatThreadClient.addParticipants(...args);
12756
12794
  const [addRequest] = args;
12757
12795
  const participantsToAdd = addRequest.participants;
@@ -12760,7 +12798,7 @@ class ProxyChatThreadClient {
12760
12798
  }), 'ChatThreadClient.addParticipants');
12761
12799
  }
12762
12800
  case 'deleteMessage': {
12763
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12801
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12764
12802
  // DeleteMessage is able to either delete local one(for failed message) or synced message
12765
12803
  const [messageId] = args;
12766
12804
  if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
@@ -12778,7 +12816,7 @@ class ProxyChatThreadClient {
12778
12816
  return createDecoratedListReadReceipts(chatThreadClient, this._context);
12779
12817
  }
12780
12818
  case 'removeParticipant': {
12781
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12819
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12782
12820
  const result = yield chatThreadClient.removeParticipant(...args);
12783
12821
  const [removeIdentifier] = args;
12784
12822
  this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
@@ -12786,7 +12824,7 @@ class ProxyChatThreadClient {
12786
12824
  }), 'ChatThreadClient.removeParticipant');
12787
12825
  }
12788
12826
  case 'updateMessage': {
12789
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12827
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12790
12828
  const result = yield chatThreadClient.updateMessage(...args);
12791
12829
  const [messageId, updateOption] = args;
12792
12830
  this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
@@ -12794,7 +12832,7 @@ class ProxyChatThreadClient {
12794
12832
  }), 'ChatThreadClient.updateMessage');
12795
12833
  }
12796
12834
  case 'updateTopic': {
12797
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12835
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12798
12836
  const result = yield chatThreadClient.updateTopic(...args);
12799
12837
  const [topic] = args;
12800
12838
  this._context.updateThreadTopic(chatThreadClient.threadId, topic);
@@ -12802,7 +12840,7 @@ class ProxyChatThreadClient {
12802
12840
  }), 'ChatThreadClient.updateTopic');
12803
12841
  }
12804
12842
  case 'getProperties': {
12805
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$g(this, void 0, void 0, function* () {
12843
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$e(this, void 0, void 0, function* () {
12806
12844
  const result = yield chatThreadClient.getProperties(...args);
12807
12845
  this._context.updateThread(chatThreadClient.threadId, result);
12808
12846
  return result;
@@ -12839,7 +12877,7 @@ const createDecoratedListThreads = (chatClient, context) => {
12839
12877
 
12840
12878
  // Copyright (c) Microsoft Corporation.
12841
12879
  // Licensed under the MIT license.
12842
- var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12880
+ var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12843
12881
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12844
12882
  return new (P || (P = Promise))(function (resolve, reject) {
12845
12883
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12858,7 +12896,7 @@ const proxyChatClient = {
12858
12896
  switch (prop) {
12859
12897
  case 'createChatThread': {
12860
12898
  return context.withAsyncErrorTeedToState(function (...args) {
12861
- return __awaiter$f(this, void 0, void 0, function* () {
12899
+ return __awaiter$d(this, void 0, void 0, function* () {
12862
12900
  const result = yield chatClient.createChatThread(...args);
12863
12901
  const thread = result.chatThread;
12864
12902
  if (thread) {
@@ -12871,7 +12909,7 @@ const proxyChatClient = {
12871
12909
  }
12872
12910
  case 'deleteChatThread': {
12873
12911
  return context.withAsyncErrorTeedToState(function (...args) {
12874
- return __awaiter$f(this, void 0, void 0, function* () {
12912
+ return __awaiter$d(this, void 0, void 0, function* () {
12875
12913
  const result = yield chatClient.deleteChatThread(...args);
12876
12914
  context.deleteThread(args[0]);
12877
12915
  return result;
@@ -12891,7 +12929,7 @@ const proxyChatClient = {
12891
12929
  }
12892
12930
  case 'startRealtimeNotifications': {
12893
12931
  return context.withAsyncErrorTeedToState(function (...args) {
12894
- return __awaiter$f(this, void 0, void 0, function* () {
12932
+ return __awaiter$d(this, void 0, void 0, function* () {
12895
12933
  const ret = yield chatClient.startRealtimeNotifications(...args);
12896
12934
  if (!receiver.eventSubscriber) {
12897
12935
  receiver.eventSubscriber = new EventSubscriber(chatClient, context);
@@ -12902,7 +12940,7 @@ const proxyChatClient = {
12902
12940
  }
12903
12941
  case 'stopRealtimeNotifications': {
12904
12942
  return context.withAsyncErrorTeedToState(function (...args) {
12905
- return __awaiter$f(this, void 0, void 0, function* () {
12943
+ return __awaiter$d(this, void 0, void 0, function* () {
12906
12944
  const ret = yield chatClient.stopRealtimeNotifications(...args);
12907
12945
  if (receiver.eventSubscriber) {
12908
12946
  receiver.eventSubscriber.unsubscribe();
@@ -13493,7 +13531,7 @@ const convertObservableFileUploadToFileUploadsUiState = (fileUploads) => {
13493
13531
 
13494
13532
  // Copyright (c) Microsoft Corporation.
13495
13533
  // Licensed under the MIT license.
13496
- var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
13534
+ var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
13497
13535
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13498
13536
  return new (P || (P = Promise))(function (resolve, reject) {
13499
13537
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -13619,9 +13657,9 @@ class AzureCommunicationChatAdapter {
13619
13657
  this.unsubscribeAllEvents();
13620
13658
  }
13621
13659
  fetchInitialData() {
13622
- return __awaiter$e(this, void 0, void 0, function* () {
13660
+ return __awaiter$c(this, void 0, void 0, function* () {
13623
13661
  // If get properties fails we dont want to try to get the participants after.
13624
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13662
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13625
13663
  var e_1, _a;
13626
13664
  yield this.chatThreadClient.getProperties();
13627
13665
  try {
@@ -13655,8 +13693,8 @@ class AzureCommunicationChatAdapter {
13655
13693
  this.context.offStateChange(handler);
13656
13694
  }
13657
13695
  sendMessage(content, options = {}) {
13658
- return __awaiter$e(this, void 0, void 0, function* () {
13659
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13696
+ return __awaiter$c(this, void 0, void 0, function* () {
13697
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13660
13698
  /* @conditional-compile-remove(file-sharing) */
13661
13699
  options.metadata = Object.assign(Object.assign({}, options.metadata), convertFileUploadsUiStateToMessageMetadata(this.context.getState().fileUploads));
13662
13700
  /* @conditional-compile-remove(file-sharing) */
@@ -13673,49 +13711,49 @@ class AzureCommunicationChatAdapter {
13673
13711
  });
13674
13712
  }
13675
13713
  sendReadReceipt(chatMessageId) {
13676
- return __awaiter$e(this, void 0, void 0, function* () {
13677
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13714
+ return __awaiter$c(this, void 0, void 0, function* () {
13715
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13678
13716
  yield this.handlers.onMessageSeen(chatMessageId);
13679
13717
  }));
13680
13718
  });
13681
13719
  }
13682
13720
  sendTypingIndicator() {
13683
- return __awaiter$e(this, void 0, void 0, function* () {
13721
+ return __awaiter$c(this, void 0, void 0, function* () {
13684
13722
  yield this.handlers.onTyping();
13685
13723
  });
13686
13724
  }
13687
13725
  removeParticipant(userId) {
13688
- return __awaiter$e(this, void 0, void 0, function* () {
13689
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13726
+ return __awaiter$c(this, void 0, void 0, function* () {
13727
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13690
13728
  yield this.handlers.onRemoveParticipant(userId);
13691
13729
  }));
13692
13730
  });
13693
13731
  }
13694
13732
  setTopic(topicName) {
13695
- return __awaiter$e(this, void 0, void 0, function* () {
13696
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13733
+ return __awaiter$c(this, void 0, void 0, function* () {
13734
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13697
13735
  yield this.handlers.updateThreadTopicName(topicName);
13698
13736
  }));
13699
13737
  });
13700
13738
  }
13701
13739
  loadPreviousChatMessages(messagesToLoad) {
13702
- return __awaiter$e(this, void 0, void 0, function* () {
13703
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13740
+ return __awaiter$c(this, void 0, void 0, function* () {
13741
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13704
13742
  return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
13705
13743
  }));
13706
13744
  });
13707
13745
  }
13708
13746
  updateMessage(messageId, content, metadata, options) {
13709
- return __awaiter$e(this, void 0, void 0, function* () {
13710
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13747
+ return __awaiter$c(this, void 0, void 0, function* () {
13748
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13711
13749
  /* @conditional-compile-remove(file-sharing) */
13712
13750
  return yield this.handlers.onUpdateMessage(messageId, content, metadata, options);
13713
13751
  }));
13714
13752
  });
13715
13753
  }
13716
13754
  deleteMessage(messageId) {
13717
- return __awaiter$e(this, void 0, void 0, function* () {
13718
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$e(this, void 0, void 0, function* () {
13755
+ return __awaiter$c(this, void 0, void 0, function* () {
13756
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$c(this, void 0, void 0, function* () {
13719
13757
  return yield this.handlers.onDeleteMessage(messageId);
13720
13758
  }));
13721
13759
  });
@@ -13796,7 +13834,7 @@ class AzureCommunicationChatAdapter {
13796
13834
  this.emitter.off(event, listener);
13797
13835
  }
13798
13836
  asyncTeeErrorToEventEmitter(f) {
13799
- return __awaiter$e(this, void 0, void 0, function* () {
13837
+ return __awaiter$c(this, void 0, void 0, function* () {
13800
13838
  try {
13801
13839
  return yield f();
13802
13840
  }
@@ -13838,7 +13876,7 @@ const convertEventType = (type) => {
13838
13876
  *
13839
13877
  * @public
13840
13878
  */
13841
- const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$e(void 0, void 0, void 0, function* () {
13879
+ const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) => __awaiter$c(void 0, void 0, void 0, function* () {
13842
13880
  const chatClient = createStatefulChatClient({
13843
13881
  userId,
13844
13882
  displayName,
@@ -13901,7 +13939,7 @@ beforeDispose) => {
13901
13939
  if (!credential || !displayName || !endpoint || !threadId || !userId) {
13902
13940
  return;
13903
13941
  }
13904
- (() => __awaiter$e(void 0, void 0, void 0, function* () {
13942
+ (() => __awaiter$c(void 0, void 0, void 0, function* () {
13905
13943
  if (adapterRef.current) {
13906
13944
  // Dispose the old adapter when a new one is created.
13907
13945
  //
@@ -13933,7 +13971,7 @@ beforeDispose) => {
13933
13971
  // Dispose any existing adapter when the component unmounts.
13934
13972
  React.useEffect(() => {
13935
13973
  return () => {
13936
- (() => __awaiter$e(void 0, void 0, void 0, function* () {
13974
+ (() => __awaiter$c(void 0, void 0, void 0, function* () {
13937
13975
  if (adapterRef.current) {
13938
13976
  if (beforeDisposeRef.current) {
13939
13977
  yield beforeDisposeRef.current(adapterRef.current);
@@ -13954,7 +13992,7 @@ beforeDispose) => {
13954
13992
  *
13955
13993
  * @public
13956
13994
  */
13957
- const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$e(void 0, void 0, void 0, function* () {
13995
+ const createAzureCommunicationChatAdapterFromClient = (chatClient, chatThreadClient) => __awaiter$c(void 0, void 0, void 0, function* () {
13958
13996
  return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
13959
13997
  });
13960
13998
  const isChatError = (e) => {
@@ -14156,7 +14194,7 @@ const sendboxContainerStyles = {
14156
14194
 
14157
14195
  // Copyright (c) Microsoft Corporation.
14158
14196
  // Licensed under the MIT license.
14159
- var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14197
+ var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14160
14198
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14161
14199
  return new (P || (P = Promise))(function (resolve, reject) {
14162
14200
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14177,7 +14215,7 @@ const AvatarPersona = (props) => {
14177
14215
  const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
14178
14216
  const [data, setData] = React.useState();
14179
14217
  React.useEffect(() => {
14180
- (() => __awaiter$d(void 0, void 0, void 0, function* () {
14218
+ (() => __awaiter$b(void 0, void 0, void 0, function* () {
14181
14219
  if (dataProvider && userId) {
14182
14220
  const newData = yield dataProvider(userId);
14183
14221
  if (avatarDeepDifferenceCheck(data, newData)) {
@@ -14751,7 +14789,8 @@ const END_CALL_PAGES = [
14751
14789
  'leftCall',
14752
14790
  /* @conditional-compile-remove(rooms) */ 'deniedPermissionToRoom',
14753
14791
  'removedFromCall',
14754
- /* @conditional-compile-remove(rooms) */ 'roomNotFound'
14792
+ /* @conditional-compile-remove(rooms) */ 'roomNotFound',
14793
+ /* @conditional-compile-remove(unsupported-browser) */ 'unsupportedEnvironment'
14755
14794
  ];
14756
14795
 
14757
14796
  // Copyright (c) Microsoft Corporation.
@@ -14964,7 +15003,7 @@ const isDisabled$2 = (option) => {
14964
15003
 
14965
15004
  // Copyright (c) Microsoft Corporation.
14966
15005
  // Licensed under the MIT license.
14967
- var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15006
+ var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14968
15007
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14969
15008
  return new (P || (P = Promise))(function (resolve, reject) {
14970
15009
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14983,73 +15022,77 @@ _component) => {
14983
15022
  return createCompositeHandlers(useAdapter());
14984
15023
  };
14985
15024
  const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
14986
- onCreateLocalStreamView: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
15025
+ onCreateLocalStreamView: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
14987
15026
  return yield adapter.createStreamView(undefined, options);
14988
15027
  }),
14989
- onCreateRemoteStreamView: (userId, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15028
+ onCreateRemoteStreamView: (userId, options) => __awaiter$a(void 0, void 0, void 0, function* () {
14990
15029
  return yield adapter.createStreamView(userId, options);
14991
15030
  }),
14992
- onHangUp: () => __awaiter$c(void 0, void 0, void 0, function* () {
15031
+ onHangUp: () => __awaiter$a(void 0, void 0, void 0, function* () {
14993
15032
  yield adapter.leaveCall();
14994
15033
  }),
14995
15034
  /* @conditional-compile-remove(PSTN-calls) */
14996
- onToggleHold: () => __awaiter$c(void 0, void 0, void 0, function* () {
15035
+ onToggleHold: () => __awaiter$a(void 0, void 0, void 0, function* () {
14997
15036
  var _a;
14998
15037
  return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
14999
15038
  }),
15000
15039
  /* @conditional-compile-remove(PSTN-calls) */
15001
- onAddParticipant: (participant, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15040
+ onAddParticipant: (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
15002
15041
  return yield adapter.addParticipant(participant, options);
15003
15042
  }),
15004
15043
  /* @conditional-compile-remove(PSTN-calls) */
15005
- onSendDtmfTone: (dtmfTone) => __awaiter$c(void 0, void 0, void 0, function* () {
15044
+ onSendDtmfTone: (dtmfTone) => __awaiter$a(void 0, void 0, void 0, function* () {
15006
15045
  yield adapter.sendDtmfTone(dtmfTone);
15007
15046
  }),
15008
- onRemoveParticipant: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
15047
+ onRemoveParticipant: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
15009
15048
  yield adapter.removeParticipant(userId);
15010
15049
  }),
15011
- onSelectCamera: (deviceInfo, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15050
+ onSelectCamera: (deviceInfo, options) => __awaiter$a(void 0, void 0, void 0, function* () {
15012
15051
  yield adapter.setCamera(deviceInfo, options);
15013
15052
  }),
15014
- onSelectMicrophone: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
15053
+ onSelectMicrophone: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
15015
15054
  yield adapter.setMicrophone(deviceInfo);
15016
15055
  }),
15017
- onSelectSpeaker: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
15056
+ onSelectSpeaker: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
15018
15057
  yield adapter.setSpeaker(deviceInfo);
15019
15058
  }),
15020
15059
  onStartCall: (participants, options) => {
15021
15060
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
15022
15061
  return adapter.startCall(rawIds, options);
15023
15062
  },
15024
- onStartScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15063
+ onStartScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15025
15064
  yield adapter.startScreenShare();
15026
15065
  }),
15027
- onStopScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15066
+ onStopScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15028
15067
  yield adapter.stopScreenShare();
15029
15068
  }),
15030
- onToggleCamera: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
15069
+ onToggleCamera: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
15031
15070
  isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
15032
15071
  }),
15033
- onToggleMicrophone: () => __awaiter$c(void 0, void 0, void 0, function* () {
15072
+ onToggleMicrophone: () => __awaiter$a(void 0, void 0, void 0, function* () {
15034
15073
  var _b;
15035
15074
  return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();
15036
15075
  }),
15037
- onToggleScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15076
+ onToggleScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15038
15077
  var _c;
15039
15078
  return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn)
15040
15079
  ? yield adapter.stopScreenShare()
15041
15080
  : yield adapter.startScreenShare();
15042
15081
  }),
15043
- onStartLocalVideo: () => __awaiter$c(void 0, void 0, void 0, function* () {
15082
+ onStartLocalVideo: () => __awaiter$a(void 0, void 0, void 0, function* () {
15044
15083
  if (adapter.getState().call) {
15045
15084
  return adapter.startCamera();
15046
15085
  }
15047
15086
  }),
15048
- onDisposeLocalStreamView: () => __awaiter$c(void 0, void 0, void 0, function* () {
15087
+ onDisposeLocalStreamView: () => __awaiter$a(void 0, void 0, void 0, function* () {
15049
15088
  return adapter.disposeStreamView();
15050
15089
  }),
15051
- onDisposeRemoteStreamView: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
15090
+ onDisposeRemoteStreamView: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
15052
15091
  return adapter.disposeStreamView(userId);
15092
+ }),
15093
+ /* @conditional-compile-remove(call-readiness) */
15094
+ askDevicePermission: (constrain) => __awaiter$a(void 0, void 0, void 0, function* () {
15095
+ return adapter.askDevicePermission(constrain);
15053
15096
  })
15054
15097
  }));
15055
15098
 
@@ -15640,7 +15683,7 @@ const CallControls = (props) => {
15640
15683
  React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) })),
15641
15684
  isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) })),
15642
15685
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
15643
- isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonContextualMenuItems().length > 0 && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
15686
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonContextualMenuItems().length > 0 && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact' })),
15644
15687
  customButtons['primary'],
15645
15688
  isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
15646
15689
  };
@@ -16390,7 +16433,7 @@ const AddPeopleButton = (props) => {
16390
16433
 
16391
16434
  // Copyright (c) Microsoft Corporation.
16392
16435
  // Licensed under the MIT license.
16393
- var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16436
+ var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16394
16437
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16395
16438
  return new (P || (P = Promise))(function (resolve, reject) {
16396
16439
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16426,7 +16469,7 @@ const PeoplePaneContent = (props) => {
16426
16469
  setDrawerMenuItems
16427
16470
  ]);
16428
16471
  const participantListProps = React.useMemo(() => {
16429
- const onRemoveAParticipant = (participantId) => __awaiter$b(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
16472
+ const onRemoveAParticipant = (participantId) => __awaiter$9(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
16430
16473
  return Object.assign(Object.assign({}, participantListDefaultProps), {
16431
16474
  // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
16432
16475
  onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
@@ -16624,7 +16667,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
16624
16667
  return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
16625
16668
  };
16626
16669
 
16627
- var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16670
+ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16628
16671
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16629
16672
  return new (P || (P = Promise))(function (resolve, reject) {
16630
16673
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16654,11 +16697,11 @@ const CallPane = (props) => {
16654
16697
  /**
16655
16698
  * In a Call Composite when a participant is removed, we must remove them from the call.
16656
16699
  */
16657
- const removeParticipantFromCall = (participantId) => __awaiter$a(void 0, void 0, void 0, function* () {
16700
+ const removeParticipantFromCall = (participantId) => __awaiter$8(void 0, void 0, void 0, function* () {
16658
16701
  yield props.callAdapter.removeParticipant(participantId);
16659
16702
  });
16660
16703
  /* @conditional-compile-remove(PSTN-calls) */
16661
- const addParticipantToCall = (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
16704
+ const addParticipantToCall = (participant, options) => __awaiter$8(void 0, void 0, void 0, function* () {
16662
16705
  yield props.callAdapter.addParticipant(participant, options);
16663
16706
  });
16664
16707
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
@@ -17159,15 +17202,7 @@ const optionIconStyles = react.mergeStyles({
17159
17202
  verticalAlign: 'text-top'
17160
17203
  });
17161
17204
 
17162
- var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
17163
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17164
- return new (P || (P = Promise))(function (resolve, reject) {
17165
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17166
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17167
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17168
- step((generator = generator.apply(thisArg, _arguments || [])).next());
17169
- });
17170
- };
17205
+ // Copyright (c) Microsoft Corporation.
17171
17206
  /**
17172
17207
  * @private
17173
17208
  */
@@ -17175,32 +17210,17 @@ const ConfigurationpageCameraDropdown = (props) => {
17175
17210
  /* @conditional-compile-remove(call-readiness) */
17176
17211
  const theme = useTheme();
17177
17212
  /* @conditional-compile-remove(call-readiness) */
17178
- const adapter = useAdapter();
17179
- /* @conditional-compile-remove(call-readiness) */
17180
17213
  const devicePermissionDropdownStringsCamera = {
17181
17214
  placeHolderText: 'Enable Camera (optional)',
17182
17215
  actionButtonContent: 'Allow'
17183
17216
  };
17184
17217
  /* @conditional-compile-remove(call-readiness) */
17185
- const cameraBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, { styles: dropDownStyles(theme), onClickActionButton: () => __awaiter$9(void 0, void 0, void 0, function* () {
17186
- yield adapter.askDevicePermission({ video: true, audio: false });
17187
- if (props.cameraPermissionGranted) {
17188
- adapter.queryCameras();
17189
- }
17190
- }), strings: devicePermissionDropdownStringsCamera, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonCameraOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }));
17218
+ const cameraBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, Object.assign({ styles: dropDownStyles(theme), constrain: { video: true, audio: false }, strings: devicePermissionDropdownStringsCamera, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonCameraOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }, props.dropdownProps)));
17191
17219
  /* @conditional-compile-remove(call-readiness) */
17192
17220
  return React__default['default'].createElement(React__default['default'].Fragment, null, props.cameraPermissionGranted ? props.cameraGrantedDropdown : cameraBlockedDropdown);
17193
17221
  };
17194
17222
 
17195
- var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
17196
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17197
- return new (P || (P = Promise))(function (resolve, reject) {
17198
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17199
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17200
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17201
- step((generator = generator.apply(thisArg, _arguments || [])).next());
17202
- });
17203
- };
17223
+ // Copyright (c) Microsoft Corporation.
17204
17224
  /**
17205
17225
  * @private
17206
17226
  */
@@ -17208,20 +17228,12 @@ const ConfigurationpageMicDropdown = (props) => {
17208
17228
  /* @conditional-compile-remove(call-readiness) */
17209
17229
  const theme = useTheme();
17210
17230
  /* @conditional-compile-remove(call-readiness) */
17211
- const adapter = useAdapter();
17212
- /* @conditional-compile-remove(call-readiness) */
17213
17231
  const devicePermissionDropdownStringsMicrophone = {
17214
17232
  placeHolderText: 'Enable Microphone (required)',
17215
17233
  actionButtonContent: 'Allow'
17216
17234
  };
17217
17235
  /* @conditional-compile-remove(call-readiness) */
17218
- const microphoneBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, { styles: dropDownStyles(theme), onClickActionButton: () => __awaiter$8(void 0, void 0, void 0, function* () {
17219
- yield adapter.askDevicePermission({ video: false, audio: true });
17220
- if (props.micPermissionGranted) {
17221
- adapter.queryMicrophones();
17222
- adapter.querySpeakers();
17223
- }
17224
- }), strings: devicePermissionDropdownStringsMicrophone, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonMicOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }));
17236
+ const microphoneBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, Object.assign({ styles: dropDownStyles(theme), constrain: { video: false, audio: true }, strings: devicePermissionDropdownStringsMicrophone, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonMicOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }, props.dropdownProps)));
17225
17237
  /* @conditional-compile-remove(call-readiness) */
17226
17238
  return React__default['default'].createElement(React__default['default'].Fragment, null,
17227
17239
  " ",
@@ -17303,6 +17315,8 @@ const LocalDeviceSettings = (props) => {
17303
17315
  }
17304
17316
  adapter.querySpeakers();
17305
17317
  }, [adapter, cameraPermissionGranted, micPermissionGranted]);
17318
+ /* @conditional-compile-remove(call-readiness) */
17319
+ const dropdownProps = usePropsFor$1(_DevicePermissionDropdown);
17306
17320
  const cameraGrantedDropdown = (React__default['default'].createElement(react.Dropdown, { "data-ui-id": "call-composite-local-camera-settings", "aria-labelledby": 'call-composite-local-camera-settings-label', placeholder: defaultPlaceHolder, options: cameraPermissionGranted ? getDropDownList(props.cameras) : [{ key: 'deniedOrUnknown', text: '' }], styles: dropDownStyles(theme), disabled: !cameraPermissionGranted, errorMessage: props.cameraPermissionGranted === undefined || props.cameraPermissionGranted
17307
17321
  ? undefined
17308
17322
  : locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted
@@ -17326,11 +17340,15 @@ const LocalDeviceSettings = (props) => {
17326
17340
  return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-device-settings", tokens: mainStackTokens },
17327
17341
  roleCanUseCamera && (React__default['default'].createElement(react.Stack, null,
17328
17342
  React__default['default'].createElement(react.Label, { id: 'call-composite-local-camera-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !cameraPermissionGranted }, cameraLabel),
17329
- React__default['default'].createElement(ConfigurationpageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false }))),
17343
+ React__default['default'].createElement(ConfigurationpageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false,
17344
+ /* @conditional-compile-remove(call-readiness) */
17345
+ dropdownProps: dropdownProps }))),
17330
17346
  React__default['default'].createElement(react.Stack, null,
17331
17347
  React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !micPermissionGranted }, soundLabel),
17332
17348
  React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-sound-settings", tokens: mainStackTokens },
17333
- React__default['default'].createElement(ConfigurationpageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false }),
17349
+ React__default['default'].createElement(ConfigurationpageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false,
17350
+ /* @conditional-compile-remove(call-readiness) */
17351
+ dropdownProps: dropdownProps }),
17334
17352
  React__default['default'].createElement(react.Dropdown, { "aria-labelledby": 'call-composite-local-sound-settings-label', placeholder: defaultPlaceHolder, styles: dropDownStyles(theme), disabled: props.speakers.length === 0, options: getDropDownList(props.speakers), defaultSelectedKey: props.selectedSpeaker ? props.selectedSpeaker.id : defaultDeviceId(props.speakers), onChange: (event, option, index) => {
17335
17353
  props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);
17336
17354
  }, onRenderTitle: (props) => onRenderTitle('Speaker', props) })))));
@@ -17966,6 +17984,23 @@ const HoldPage = (props) => {
17966
17984
  modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(HoldPane, null), dataUiId: 'hold-page' }));
17967
17985
  };
17968
17986
 
17987
+ // Copyright (c) Microsoft Corporation.
17988
+ /**
17989
+ *
17990
+ * @internal
17991
+ */
17992
+ const UnsupportedBrowserPage = (props) => {
17993
+ /* @conditional-compile-remove(unsupported-browser) */
17994
+ const { onTroubleshootingClick } = props;
17995
+ /* @conditional-compile-remove(unsupported-browser) */
17996
+ const locale = useLocale();
17997
+ /* @conditional-compile-remove(unsupported-browser) */
17998
+ const unsupportedBrowserStrings = locale.component.strings.UnsupportedBrowser;
17999
+ /* @conditional-compile-remove(unsupported-browser) */
18000
+ return (React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', paddingTop: '3rem' } } },
18001
+ React__default['default'].createElement(UnsupportedBrowser, { onTroubleShootingClick: onTroubleshootingClick, strings: unsupportedBrowserStrings })));
18002
+ };
18003
+
17969
18004
  // Copyright (c) Microsoft Corporation.
17970
18005
  // Licensed under the MIT license.
17971
18006
  var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -17978,7 +18013,7 @@ var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments,
17978
18013
  });
17979
18014
  };
17980
18015
  const MainScreen = (props) => {
17981
- var _a;
18016
+ var _a, _b, _c;
17982
18017
  const { callInvitationUrl, onRenderAvatar, onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;
17983
18018
  const page = useSelector$1(getPage);
17984
18019
  const adapter = useAdapter();
@@ -18028,6 +18063,9 @@ const MainScreen = (props) => {
18028
18063
  pageElement = (React__default['default'].createElement(React__default['default'].Fragment, null,
18029
18064
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ React__default['default'].createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options })));
18030
18065
  break;
18066
+ case unsupportedEnvironmentPageTrampoline():
18067
+ pageElement = (React__default['default'].createElement(React__default['default'].Fragment, null,
18068
+ /* @conditional-compile-remove(unsupported-browser) */ ((_b = props.options) === null || _b === void 0 ? void 0 : _b.onEnvironmentInfoTroubleshootingClick) && (React__default['default'].createElement(UnsupportedBrowserPage, { onTroubleshootingClick: (_c = props.options) === null || _c === void 0 ? void 0 : _c.onEnvironmentInfoTroubleshootingClick }))));
18031
18069
  }
18032
18070
  if (!pageElement) {
18033
18071
  throw new Error('Invalid call composite page');
@@ -18120,6 +18158,10 @@ const holdPageTrampoline = () => {
18120
18158
  /* @conditional-compile-remove(PSTN-calls) */
18121
18159
  return 'hold';
18122
18160
  };
18161
+ const unsupportedEnvironmentPageTrampoline = () => {
18162
+ /* @conditional-compile-remove(unsupported-browser) */
18163
+ return 'unsupportedEnvironment';
18164
+ };
18123
18165
 
18124
18166
  /**
18125
18167
  * @private