@azure/communication-react 1.3.3-alpha-202210060021.0 → 1.3.3-alpha-202210070024.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 (52) hide show
  1. package/dist/communication-react.d.ts +168 -3
  2. package/dist/dist-cjs/communication-react/index.js +202 -185
  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/components/ConfigurationpageCameraDropdown.d.ts +2 -0
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js +1 -19
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +2 -0
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js +1 -20
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +1 -1
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +11 -3
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
  52. 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-202210070024.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)) {
@@ -14964,7 +15002,7 @@ const isDisabled$2 = (option) => {
14964
15002
 
14965
15003
  // Copyright (c) Microsoft Corporation.
14966
15004
  // Licensed under the MIT license.
14967
- var __awaiter$c = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15005
+ var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
14968
15006
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14969
15007
  return new (P || (P = Promise))(function (resolve, reject) {
14970
15008
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -14983,73 +15021,77 @@ _component) => {
14983
15021
  return createCompositeHandlers(useAdapter());
14984
15022
  };
14985
15023
  const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
14986
- onCreateLocalStreamView: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
15024
+ onCreateLocalStreamView: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
14987
15025
  return yield adapter.createStreamView(undefined, options);
14988
15026
  }),
14989
- onCreateRemoteStreamView: (userId, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15027
+ onCreateRemoteStreamView: (userId, options) => __awaiter$a(void 0, void 0, void 0, function* () {
14990
15028
  return yield adapter.createStreamView(userId, options);
14991
15029
  }),
14992
- onHangUp: () => __awaiter$c(void 0, void 0, void 0, function* () {
15030
+ onHangUp: () => __awaiter$a(void 0, void 0, void 0, function* () {
14993
15031
  yield adapter.leaveCall();
14994
15032
  }),
14995
15033
  /* @conditional-compile-remove(PSTN-calls) */
14996
- onToggleHold: () => __awaiter$c(void 0, void 0, void 0, function* () {
15034
+ onToggleHold: () => __awaiter$a(void 0, void 0, void 0, function* () {
14997
15035
  var _a;
14998
15036
  return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
14999
15037
  }),
15000
15038
  /* @conditional-compile-remove(PSTN-calls) */
15001
- onAddParticipant: (participant, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15039
+ onAddParticipant: (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
15002
15040
  return yield adapter.addParticipant(participant, options);
15003
15041
  }),
15004
15042
  /* @conditional-compile-remove(PSTN-calls) */
15005
- onSendDtmfTone: (dtmfTone) => __awaiter$c(void 0, void 0, void 0, function* () {
15043
+ onSendDtmfTone: (dtmfTone) => __awaiter$a(void 0, void 0, void 0, function* () {
15006
15044
  yield adapter.sendDtmfTone(dtmfTone);
15007
15045
  }),
15008
- onRemoveParticipant: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
15046
+ onRemoveParticipant: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
15009
15047
  yield adapter.removeParticipant(userId);
15010
15048
  }),
15011
- onSelectCamera: (deviceInfo, options) => __awaiter$c(void 0, void 0, void 0, function* () {
15049
+ onSelectCamera: (deviceInfo, options) => __awaiter$a(void 0, void 0, void 0, function* () {
15012
15050
  yield adapter.setCamera(deviceInfo, options);
15013
15051
  }),
15014
- onSelectMicrophone: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
15052
+ onSelectMicrophone: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
15015
15053
  yield adapter.setMicrophone(deviceInfo);
15016
15054
  }),
15017
- onSelectSpeaker: (deviceInfo) => __awaiter$c(void 0, void 0, void 0, function* () {
15055
+ onSelectSpeaker: (deviceInfo) => __awaiter$a(void 0, void 0, void 0, function* () {
15018
15056
  yield adapter.setSpeaker(deviceInfo);
15019
15057
  }),
15020
15058
  onStartCall: (participants, options) => {
15021
15059
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
15022
15060
  return adapter.startCall(rawIds, options);
15023
15061
  },
15024
- onStartScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15062
+ onStartScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15025
15063
  yield adapter.startScreenShare();
15026
15064
  }),
15027
- onStopScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15065
+ onStopScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15028
15066
  yield adapter.stopScreenShare();
15029
15067
  }),
15030
- onToggleCamera: (options) => __awaiter$c(void 0, void 0, void 0, function* () {
15068
+ onToggleCamera: (options) => __awaiter$a(void 0, void 0, void 0, function* () {
15031
15069
  isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
15032
15070
  }),
15033
- onToggleMicrophone: () => __awaiter$c(void 0, void 0, void 0, function* () {
15071
+ onToggleMicrophone: () => __awaiter$a(void 0, void 0, void 0, function* () {
15034
15072
  var _b;
15035
15073
  return ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.isMuted) ? yield adapter.unmute() : yield adapter.mute();
15036
15074
  }),
15037
- onToggleScreenShare: () => __awaiter$c(void 0, void 0, void 0, function* () {
15075
+ onToggleScreenShare: () => __awaiter$a(void 0, void 0, void 0, function* () {
15038
15076
  var _c;
15039
15077
  return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isScreenSharingOn)
15040
15078
  ? yield adapter.stopScreenShare()
15041
15079
  : yield adapter.startScreenShare();
15042
15080
  }),
15043
- onStartLocalVideo: () => __awaiter$c(void 0, void 0, void 0, function* () {
15081
+ onStartLocalVideo: () => __awaiter$a(void 0, void 0, void 0, function* () {
15044
15082
  if (adapter.getState().call) {
15045
15083
  return adapter.startCamera();
15046
15084
  }
15047
15085
  }),
15048
- onDisposeLocalStreamView: () => __awaiter$c(void 0, void 0, void 0, function* () {
15086
+ onDisposeLocalStreamView: () => __awaiter$a(void 0, void 0, void 0, function* () {
15049
15087
  return adapter.disposeStreamView();
15050
15088
  }),
15051
- onDisposeRemoteStreamView: (userId) => __awaiter$c(void 0, void 0, void 0, function* () {
15089
+ onDisposeRemoteStreamView: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
15052
15090
  return adapter.disposeStreamView(userId);
15091
+ }),
15092
+ /* @conditional-compile-remove(call-readiness) */
15093
+ askDevicePermission: (constrain) => __awaiter$a(void 0, void 0, void 0, function* () {
15094
+ return adapter.askDevicePermission(constrain);
15053
15095
  })
15054
15096
  }));
15055
15097
 
@@ -16390,7 +16432,7 @@ const AddPeopleButton = (props) => {
16390
16432
 
16391
16433
  // Copyright (c) Microsoft Corporation.
16392
16434
  // Licensed under the MIT license.
16393
- var __awaiter$b = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16435
+ var __awaiter$9 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16394
16436
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16395
16437
  return new (P || (P = Promise))(function (resolve, reject) {
16396
16438
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16426,7 +16468,7 @@ const PeoplePaneContent = (props) => {
16426
16468
  setDrawerMenuItems
16427
16469
  ]);
16428
16470
  const participantListProps = React.useMemo(() => {
16429
- const onRemoveAParticipant = (participantId) => __awaiter$b(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
16471
+ const onRemoveAParticipant = (participantId) => __awaiter$9(void 0, void 0, void 0, function* () { return onRemoveParticipant(participantId); });
16430
16472
  return Object.assign(Object.assign({}, participantListDefaultProps), {
16431
16473
  // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
16432
16474
  onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
@@ -16624,7 +16666,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
16624
16666
  return { minDragPosition: minDragPosition, maxDragPosition: maxDragPosition };
16625
16667
  };
16626
16668
 
16627
- var __awaiter$a = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16669
+ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16628
16670
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16629
16671
  return new (P || (P = Promise))(function (resolve, reject) {
16630
16672
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16654,11 +16696,11 @@ const CallPane = (props) => {
16654
16696
  /**
16655
16697
  * In a Call Composite when a participant is removed, we must remove them from the call.
16656
16698
  */
16657
- const removeParticipantFromCall = (participantId) => __awaiter$a(void 0, void 0, void 0, function* () {
16699
+ const removeParticipantFromCall = (participantId) => __awaiter$8(void 0, void 0, void 0, function* () {
16658
16700
  yield props.callAdapter.removeParticipant(participantId);
16659
16701
  });
16660
16702
  /* @conditional-compile-remove(PSTN-calls) */
16661
- const addParticipantToCall = (participant, options) => __awaiter$a(void 0, void 0, void 0, function* () {
16703
+ const addParticipantToCall = (participant, options) => __awaiter$8(void 0, void 0, void 0, function* () {
16662
16704
  yield props.callAdapter.addParticipant(participant, options);
16663
16705
  });
16664
16706
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
@@ -17159,15 +17201,7 @@ const optionIconStyles = react.mergeStyles({
17159
17201
  verticalAlign: 'text-top'
17160
17202
  });
17161
17203
 
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
- };
17204
+ // Copyright (c) Microsoft Corporation.
17171
17205
  /**
17172
17206
  * @private
17173
17207
  */
@@ -17175,32 +17209,17 @@ const ConfigurationpageCameraDropdown = (props) => {
17175
17209
  /* @conditional-compile-remove(call-readiness) */
17176
17210
  const theme = useTheme();
17177
17211
  /* @conditional-compile-remove(call-readiness) */
17178
- const adapter = useAdapter();
17179
- /* @conditional-compile-remove(call-readiness) */
17180
17212
  const devicePermissionDropdownStringsCamera = {
17181
17213
  placeHolderText: 'Enable Camera (optional)',
17182
17214
  actionButtonContent: 'Allow'
17183
17215
  };
17184
17216
  /* @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' } }) }));
17217
+ 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
17218
  /* @conditional-compile-remove(call-readiness) */
17192
17219
  return React__default['default'].createElement(React__default['default'].Fragment, null, props.cameraPermissionGranted ? props.cameraGrantedDropdown : cameraBlockedDropdown);
17193
17220
  };
17194
17221
 
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
- };
17222
+ // Copyright (c) Microsoft Corporation.
17204
17223
  /**
17205
17224
  * @private
17206
17225
  */
@@ -17208,20 +17227,12 @@ const ConfigurationpageMicDropdown = (props) => {
17208
17227
  /* @conditional-compile-remove(call-readiness) */
17209
17228
  const theme = useTheme();
17210
17229
  /* @conditional-compile-remove(call-readiness) */
17211
- const adapter = useAdapter();
17212
- /* @conditional-compile-remove(call-readiness) */
17213
17230
  const devicePermissionDropdownStringsMicrophone = {
17214
17231
  placeHolderText: 'Enable Microphone (required)',
17215
17232
  actionButtonContent: 'Allow'
17216
17233
  };
17217
17234
  /* @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' } }) }));
17235
+ 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
17236
  /* @conditional-compile-remove(call-readiness) */
17226
17237
  return React__default['default'].createElement(React__default['default'].Fragment, null,
17227
17238
  " ",
@@ -17303,6 +17314,8 @@ const LocalDeviceSettings = (props) => {
17303
17314
  }
17304
17315
  adapter.querySpeakers();
17305
17316
  }, [adapter, cameraPermissionGranted, micPermissionGranted]);
17317
+ /* @conditional-compile-remove(call-readiness) */
17318
+ const dropdownProps = usePropsFor$1(_DevicePermissionDropdown);
17306
17319
  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
17320
  ? undefined
17308
17321
  : locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted
@@ -17326,11 +17339,15 @@ const LocalDeviceSettings = (props) => {
17326
17339
  return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-device-settings", tokens: mainStackTokens },
17327
17340
  roleCanUseCamera && (React__default['default'].createElement(react.Stack, null,
17328
17341
  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 }))),
17342
+ React__default['default'].createElement(ConfigurationpageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false,
17343
+ /* @conditional-compile-remove(call-readiness) */
17344
+ dropdownProps: dropdownProps }))),
17330
17345
  React__default['default'].createElement(react.Stack, null,
17331
17346
  React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !micPermissionGranted }, soundLabel),
17332
17347
  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 }),
17348
+ React__default['default'].createElement(ConfigurationpageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false,
17349
+ /* @conditional-compile-remove(call-readiness) */
17350
+ dropdownProps: dropdownProps }),
17334
17351
  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
17352
  props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);
17336
17353
  }, onRenderTitle: (props) => onRenderTitle('Speaker', props) })))));