@azure/communication-react 1.3.2-alpha-202208090015.0 → 1.3.2-alpha-202208100014.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 (62) hide show
  1. package/dist/communication-react.d.ts +25 -9
  2. package/dist/dist-cjs/communication-react/index.js +100 -65
  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/calling-component-bindings/src/utils/videoGalleryUtils.d.ts.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +1 -24
  7. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  8. package/dist/dist-esm/communication-react/src/index.d.ts +2 -2
  9. package/dist/dist-esm/communication-react/src/index.d.ts.map +1 -1
  10. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/FileCard.js +1 -1
  12. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +15 -0
  14. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +24 -11
  16. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/ParticipantList.js +4 -1
  19. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +2 -2
  21. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +2 -2
  24. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/VideoTile.js +2 -2
  26. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/index.d.ts +1 -1
  28. package/dist/dist-esm/react-components/src/index.d.ts.map +1 -1
  29. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +4 -1
  30. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +6 -1
  31. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts.map +1 -1
  32. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +2 -6
  33. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts.map +1 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +13 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.d.ts.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +11 -1
  39. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +3 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -0
  43. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +3 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts +4 -0
  47. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +2 -2
  49. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +4 -0
  51. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +16 -12
  53. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts +4 -0
  55. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +11 -4
  57. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +4 -0
  59. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +10 -2
  61. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  62. package/package.json +8 -8
@@ -1423,7 +1423,7 @@ export declare interface CallingTheme {
1423
1423
  */
1424
1424
  export declare type CallParticipantListParticipant = ParticipantListParticipant & {
1425
1425
  /** State of calling participant */
1426
- state: 'Idle' | 'Connecting' | 'Ringing' | 'Connected' | 'Hold' | 'InLobby' | 'EarlyMedia' | 'Disconnected';
1426
+ state: ParticipantState;
1427
1427
  /** Whether calling participant is screen sharing */
1428
1428
  isScreenSharing?: boolean;
1429
1429
  /** Whether calling participant is muted */
@@ -1924,6 +1924,8 @@ export declare interface CallWithChatClientState {
1924
1924
  devices: DeviceManagerState;
1925
1925
  /** State of whether the active call is a Teams interop call */
1926
1926
  isTeamsCall: boolean;
1927
+ /** alternateCallerId for PSTN call */
1928
+ alternateCallerId?: string | undefined;
1927
1929
  }
1928
1930
 
1929
1931
  /**
@@ -5741,6 +5743,14 @@ export declare interface ParticipantItemProps {
5741
5743
  onClick?: (props?: ParticipantItemProps) => void;
5742
5744
  /** prop to determine if we should show tooltip for participants or not */
5743
5745
  showParticipantOverflowTooltip?: boolean;
5746
+ /**
5747
+ * Optional value to determine and display a participants connection status.
5748
+ * For example, `Connecting`, `Ringing` etc.
5749
+ * The actual text that is displayed is determined by the localized string
5750
+ * corresponding to the provided participant state.
5751
+ * For example, `strings.participantStateConnecting` will be used if `participantState` is `Connecting`.
5752
+ */
5753
+ participantState?: ParticipantState;
5744
5754
  }
5745
5755
 
5746
5756
  /**
@@ -5761,6 +5771,12 @@ export declare interface ParticipantItemStrings {
5761
5771
  mutedIconLabel: string;
5762
5772
  /** placeholder text for participants who does not have a display name*/
5763
5773
  displayNamePlaceholder?: string;
5774
+ /** String shown when `participantState` is `Connecting` */
5775
+ participantStateConnecting?: string;
5776
+ /** String shown when `participantState` is `Ringing` */
5777
+ participantStateRinging?: string;
5778
+ /** String shown when `participantState` is `Hold` */
5779
+ participantStateHold?: string;
5764
5780
  }
5765
5781
 
5766
5782
  /**
@@ -6058,6 +6074,12 @@ export declare type ParticipantsRemovedListener = (event: {
6058
6074
  removedBy: ChatParticipant;
6059
6075
  }) => void;
6060
6076
 
6077
+ /**
6078
+ * @public
6079
+ * The connection state of a call participant.
6080
+ */
6081
+ export declare type ParticipantState = 'Idle' | 'Connecting' | 'Ringing' | 'Connected' | 'Hold' | 'InLobby' | 'EarlyMedia' | 'Disconnected';
6082
+
6061
6083
  /**
6062
6084
  * An array of key value pairs that stores each sender's display name and last read message
6063
6085
  *
@@ -7108,15 +7130,9 @@ export declare interface VideoGalleryRemoteParticipant extends VideoGalleryParti
7108
7130
  * @beta
7109
7131
  * The connection state of the participant. For example, 'Hold', 'Connecting' etc.
7110
7132
  */
7111
- state?: VideoGalleryRemoteParticipantState;
7133
+ state?: ParticipantState;
7112
7134
  }
7113
7135
 
7114
- /**
7115
- * @beta
7116
- * The connection state of the participant. For example, 'Hold', 'Connecting' etc.
7117
- */
7118
- export declare type VideoGalleryRemoteParticipantState = 'Connecting' | 'Ringing' | 'Connected' | 'Hold';
7119
-
7120
7136
  /**
7121
7137
  * Selector type for {@link VideoGallery} component.
7122
7138
  *
@@ -7294,7 +7310,7 @@ export declare interface VideoTileProps {
7294
7310
  * The call connection state of the participant.
7295
7311
  * For example, `Hold` means the participant is on hold.
7296
7312
  */
7297
- participantState?: VideoGalleryRemoteParticipantState;
7313
+ participantState?: ParticipantState;
7298
7314
  strings?: VideoTileStrings;
7299
7315
  }
7300
7316
 
@@ -192,7 +192,7 @@ const fromFlatCommunicationIdentifier = (id) => {
192
192
  // Copyright (c) Microsoft Corporation.
193
193
  // Licensed under the MIT license.
194
194
  // GENERATED FILE. DO NOT EDIT MANUALLY.
195
- var telemetryVersion = '1.3.2-alpha-202208090015.0';
195
+ var telemetryVersion = '1.3.2-alpha-202208100014.0';
196
196
 
197
197
  // Copyright (c) Microsoft Corporation.
198
198
  /**
@@ -958,7 +958,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
958
958
  wordBreak: 'break-word'
959
959
  });
960
960
 
961
- var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};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$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Connecting...",participantStateRinging:"Ringing...",participantStateHold:"On Hold"};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$e,videoTile:videoTile};
961
+ 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$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Connecting...",participantStateRinging:"Ringing...",participantStateHold:"On Hold"};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$e,videoTile:videoTile};
962
962
 
963
963
  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};
964
964
 
@@ -2336,7 +2336,7 @@ const _FileCard = (props) => {
2336
2336
  height: _pxToRem(progressBarThicknessPx)
2337
2337
  }
2338
2338
  };
2339
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
2339
+ return (React__default['default'].createElement("div", { "data-is-focusable": true },
2340
2340
  React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
2341
2341
  React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
2342
2342
  var _a;
@@ -4375,7 +4375,6 @@ const meContainerStyle = {
4375
4375
  * @public
4376
4376
  */
4377
4377
  const ParticipantItem = (props) => {
4378
- var _a, _b, _c, _d;
4379
4378
  const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip } = props;
4380
4379
  const [itemHovered, setItemHovered] = React.useState(false);
4381
4380
  const [menuHidden, setMenuHidden] = React.useState(true);
@@ -4383,8 +4382,7 @@ const ParticipantItem = (props) => {
4383
4382
  const theme = useTheme();
4384
4383
  const localeStrings = useLocale$1().strings.participantItem;
4385
4384
  const ids = useIdentifiers();
4386
- const isMeText = (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.isMeText) !== null && _b !== void 0 ? _b : localeStrings.isMeText;
4387
- const menuTitle = (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.menuTitle) !== null && _d !== void 0 ? _d : localeStrings.menuTitle;
4385
+ const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
4388
4386
  const avatarOptions = {
4389
4387
  text: displayName,
4390
4388
  size: react.PersonaSize.size32,
@@ -4399,26 +4397,40 @@ const ParticipantItem = (props) => {
4399
4397
  const meTextStyle = React.useMemo(() => react.mergeStyles(meContainerStyle, { color: theme.palette.neutralTertiary }, styles === null || styles === void 0 ? void 0 : styles.me), [theme.palette.neutralTertiary, styles === null || styles === void 0 ? void 0 : styles.me]);
4400
4398
  const contextualMenuStyle = React.useMemo(() => react.mergeStyles({ background: theme.palette.neutralLighterAlt }, styles === null || styles === void 0 ? void 0 : styles.menu), [theme.palette.neutralLighterAlt, styles === null || styles === void 0 ? void 0 : styles.menu]);
4401
4399
  const infoContainerStyle = React.useMemo(() => react.mergeStyles(iconContainerStyle$1, { color: theme.palette.neutralTertiary }, styles === null || styles === void 0 ? void 0 : styles.iconContainer), [theme.palette.neutralTertiary, styles === null || styles === void 0 ? void 0 : styles.iconContainer]);
4402
- const menuButton = React.useMemo(() => (React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: react.mergeStyles(menuButtonContainerStyle), title: menuTitle, "data-ui-id": ids.participantItemMenuButton },
4403
- React__default['default'].createElement(react.Icon, { iconName: itemHovered ? 'ParticipantItemOptionsHovered' : 'ParticipantItemOptions', className: iconStyles$3 }))), [itemHovered, menuTitle, ids.participantItemMenuButton]);
4400
+ const menuButton = React.useMemo(() => (React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: react.mergeStyles(menuButtonContainerStyle), title: strings.menuTitle, "data-ui-id": ids.participantItemMenuButton },
4401
+ React__default['default'].createElement(react.Icon, { iconName: itemHovered ? 'ParticipantItemOptionsHovered' : 'ParticipantItemOptions', className: iconStyles$3 }))), [itemHovered, strings.menuTitle, ids.participantItemMenuButton]);
4404
4402
  const onDismissMenu = () => {
4405
4403
  setItemHovered(false);
4406
4404
  setMenuHidden(true);
4407
4405
  };
4406
+ const participantStateString = participantStateStringTrampoline(props, strings);
4408
4407
  return (React__default['default'].createElement("div", { ref: containerRef, role: 'menuitem', "data-is-focusable": true, className: react.mergeStyles(participantItemContainerStyle({ localparticipant: me, clickable: !!menuItems }), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
4409
- setItemHovered(true);
4410
- setMenuHidden(false);
4411
- onClick === null || onClick === void 0 ? void 0 : onClick(props);
4408
+ if (!participantStateString) {
4409
+ setItemHovered(true);
4410
+ setMenuHidden(false);
4411
+ onClick === null || onClick === void 0 ? void 0 : onClick(props);
4412
+ }
4412
4413
  }, tabIndex: 0 },
4413
4414
  React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles({ width: `calc(100% - ${menuButtonContainerStyle.width})`, alignItems: 'center' }) },
4414
4415
  avatar,
4415
- me && React__default['default'].createElement(react.Text, { className: meTextStyle }, isMeText),
4416
+ me && React__default['default'].createElement(react.Text, { className: meTextStyle }, strings.isMeText),
4416
4417
  React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(infoContainerStyle) }, onRenderIcon && onRenderIcon(props))),
4417
- menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4418
+ !me && participantStateString ? (React__default['default'].createElement(react.Text, null, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4418
4419
  menuButton,
4419
4420
  React__default['default'].createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
4420
4421
  preventDismissOnEvent: _preventDismissOnEvent
4421
- } })))));
4422
+ } })))))));
4423
+ };
4424
+ const participantStateStringTrampoline = (props, strings) => {
4425
+ /* @conditional-compile-remove(one-to-n-calling) */
4426
+ /* @conditional-compile-remove(PSTN-calls) */
4427
+ return props.participantState === 'Idle' || props.participantState === 'Connecting'
4428
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting
4429
+ : props.participantState === 'EarlyMedia' || props.participantState === 'Ringing'
4430
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateRinging
4431
+ : props.participantState === 'Hold'
4432
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateHold
4433
+ : undefined;
4422
4434
  };
4423
4435
 
4424
4436
  // Copyright (c) Microsoft Corporation.
@@ -4466,7 +4478,10 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
4466
4478
  callingParticipant.isMuted && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel }))))
4467
4479
  : () => null;
4468
4480
  const displayName = !participant.displayName ? strings.displayNamePlaceholder : participant.displayName;
4469
- return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
4481
+ return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant), showParticipantOverflowTooltip: showParticipantOverflowTooltip,
4482
+ /* @conditional-compile-remove(one-to-n-calling) */
4483
+ /* @conditional-compile-remove(PSTN-calls) */
4484
+ participantState: callingParticipant.state }));
4470
4485
  };
4471
4486
  const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
4472
4487
  if (!excludeMe || !myUserId) {
@@ -4786,10 +4801,10 @@ const DefaultPlaceholder = (props) => {
4786
4801
  if (!strings) {
4787
4802
  return;
4788
4803
  }
4789
- if (participantState === 'Connecting') {
4804
+ if (participantState === 'Idle' || participantState === 'Connecting') {
4790
4805
  return strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting;
4791
4806
  }
4792
- else if (participantState === 'Ringing') {
4807
+ else if (participantState === 'EarlyMedia' || participantState === 'Ringing') {
4793
4808
  return strings === null || strings === void 0 ? void 0 : strings.participantStateRinging;
4794
4809
  }
4795
4810
  else if (participantState === 'Hold') {
@@ -7926,7 +7941,7 @@ const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted
7926
7941
  isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,
7927
7942
  /* @conditional-compile-remove(one-to-n-calling) */
7928
7943
  /* @conditional-compile-remove(PSTN-calls) */
7929
- state: convertRemoteParticipantStateToVideoGalleryRemoteParticipantState(state)
7944
+ state
7930
7945
  };
7931
7946
  };
7932
7947
  const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
@@ -7940,29 +7955,6 @@ const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
7940
7955
  renderElement: (_b = stream.view) === null || _b === void 0 ? void 0 : _b.target
7941
7956
  };
7942
7957
  };
7943
- /* @conditional-compile-remove(one-to-n-calling) */
7944
- /* @conditional-compile-remove(PSTN-calls) */
7945
- /**
7946
- * We convert the Communication Participant states to simpler states that can be used with VideoTiles/VideoGallery.
7947
- */
7948
- const convertRemoteParticipantStateToVideoGalleryRemoteParticipantState = (state) => {
7949
- // `Idle` is the first state of the participant.
7950
- if (state === 'Idle' || state === 'Connecting') {
7951
- return 'Connecting';
7952
- }
7953
- // `EarlyMedia` is a state when the media is played before a participant connects to the call.
7954
- // It occurs immediately after the `Connecting` state.
7955
- if (state === 'EarlyMedia' || state === 'Ringing') {
7956
- return 'Ringing';
7957
- }
7958
- if (state === 'Hold') {
7959
- return 'Hold';
7960
- }
7961
- if (state === 'Connected') {
7962
- return 'Connected';
7963
- }
7964
- return;
7965
- };
7966
7958
 
7967
7959
  // Copyright (c) Microsoft Corporation.
7968
7960
  /**
@@ -15387,7 +15379,7 @@ const drawerContainerStyles$1 = {
15387
15379
  // Copyright (c) Microsoft Corporation.
15388
15380
  /** @private */
15389
15381
  const CallingDialpad = (props) => {
15390
- const { strings, isMobile, showDialpad, onDismissDialpad } = props;
15382
+ const { strings, isMobile, showDialpad, onDismissDialpad, onAddParticipant, alternateCallerId } = props;
15391
15383
  const [textFieldInput, setTextFieldInput] = React.useState('');
15392
15384
  const theme = react.useTheme();
15393
15385
  const onDismissTriggered = () => {
@@ -15395,15 +15387,22 @@ const CallingDialpad = (props) => {
15395
15387
  onDismissDialpad();
15396
15388
  };
15397
15389
  const onClickCall = () => {
15398
- //place holder for adding calling functionality
15399
- console.log(textFieldInput);
15390
+ if (onAddParticipant) {
15391
+ /**
15392
+ * Format the phone number in dialpad textfield to make sure the phone number is in E.164 format.
15393
+ * We assume the input number always include countrycode
15394
+ */
15395
+ const phoneNumber = { phoneNumber: '+' + textFieldInput.replace(/\D/g, '').replaceAll(' ', '') };
15396
+ onAddParticipant(phoneNumber, { alternateCallerId: { phoneNumber: alternateCallerId } });
15397
+ onDismissTriggered();
15398
+ }
15400
15399
  };
15401
15400
  const dialpadModelStyle = React.useMemo(() => themedDialpadModelStyle(theme), [theme]);
15402
15401
  const dialpadStyle = React.useMemo(() => themedDialpadStyle(isMobile, theme), [theme, isMobile]);
15403
15402
  const callButtonStyle = React.useMemo(() => themedCallButtonStyle(theme), [theme]);
15404
15403
  const dialpadComponent = () => {
15405
15404
  return (React__default['default'].createElement(React__default['default'].Fragment, null,
15406
- React__default['default'].createElement(Dialpad, { onChange: setTextFieldInput, styles: dialpadStyle }),
15405
+ React__default['default'].createElement(Dialpad, { styles: dialpadStyle, onChange: setTextFieldInput }),
15407
15406
  React__default['default'].createElement(react.PrimaryButton, { text: strings.dialpadStartCallButtonLabel, onRenderIcon: () => DialpadStartCallIconTrampoline(), onClick: onClickCall, styles: callButtonStyle, disabled: textFieldInput === '' })));
15408
15407
  };
15409
15408
  if (isMobile) {
@@ -15455,7 +15454,7 @@ const drawerContainerStyles = {
15455
15454
  /** @private */
15456
15455
  const AddPeopleDropdown = (props) => {
15457
15456
  const theme = react.useTheme();
15458
- const { inviteLink, strings, mobileView } = props;
15457
+ const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId } = props;
15459
15458
  const [showDialpad, setShowDialpad] = React.useState(false);
15460
15459
  const menuStyleThemed = React.useMemo(() => themedMenuStyle(theme), [theme]);
15461
15460
  const copyLinkButtonStylesThemed = React.useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);
@@ -15477,21 +15476,25 @@ const AddPeopleDropdown = (props) => {
15477
15476
  onClick: () => copy__default['default'](inviteLink)
15478
15477
  });
15479
15478
  }
15480
- menuProps.items.push({
15481
- key: 'DialpadKey',
15482
- text: strings.openDialpadButtonLabel,
15483
- itemProps: { styles: copyLinkButtonStylesThemed },
15484
- iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },
15485
- onClick: () => setShowDialpad(true),
15486
- 'data-ui-id': 'call-with-chat-composite-dial-phone-number-button'
15487
- });
15479
+ // only show the dialpad option when alternateCallerId is set
15480
+ if (alternateCallerId) {
15481
+ menuProps.items.push({
15482
+ key: 'DialpadKey',
15483
+ text: strings.openDialpadButtonLabel,
15484
+ itemProps: { styles: copyLinkButtonStylesThemed },
15485
+ iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },
15486
+ onClick: () => setShowDialpad(true),
15487
+ 'data-ui-id': 'call-with-chat-composite-dial-phone-number-button'
15488
+ });
15489
+ }
15488
15490
  return menuProps;
15489
15491
  }, [
15490
15492
  strings.copyInviteLinkButtonLabel,
15491
15493
  strings.openDialpadButtonLabel,
15492
15494
  copyLinkButtonStylesThemed,
15493
15495
  inviteLink,
15494
- menuStyleThemed
15496
+ menuStyleThemed,
15497
+ alternateCallerId
15495
15498
  ]);
15496
15499
  const onDismissDialpad = () => {
15497
15500
  setShowDialpad(false);
@@ -15509,10 +15512,10 @@ const AddPeopleDropdown = (props) => {
15509
15512
  React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-with-chat-composite-add-people-button" })),
15510
15513
  addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-with-chat-composite-add-people-dropdown" },
15511
15514
  React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
15512
- React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad })));
15515
+ alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
15513
15516
  }
15514
15517
  return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
15515
- React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
15518
+ alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
15516
15519
  React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
15517
15520
  React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-with-chat-composite-add-people-button" })))));
15518
15521
  };
@@ -15533,11 +15536,11 @@ const AddPeopleButton = (props) => {
15533
15536
  React.useMemo(() => react.concatStyleSets(copyLinkButtonStyles, themedCopyLinkButtonStyles$1(mobileView, theme)), [mobileView, theme]);
15534
15537
  /* @conditional-compile-remove(PSTN-calls) */
15535
15538
  if (mobileView) {
15536
- return React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink });
15539
+ return (React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId }));
15537
15540
  }
15538
15541
  else {
15539
15542
  return (React__default['default'].createElement(react.Stack, { tokens: peoplePaneContainerTokens },
15540
- React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink }),
15543
+ React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink, onAddParticipant: props.onAddParticipant, alternateCallerId: props.alternateCallerId }),
15541
15544
  participantList));
15542
15545
  }
15543
15546
  };
@@ -15589,9 +15592,17 @@ const PeoplePaneContent = (props) => {
15589
15592
  if (props.mobileView) {
15590
15593
  return (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens },
15591
15594
  React__default['default'].createElement(react.Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
15592
- React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings })));
15595
+ React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings,
15596
+ /* @conditional-compile-remove(PSTN-calls) */
15597
+ onAddParticipant: props.onAddParticipant,
15598
+ /* @conditional-compile-remove(PSTN-calls) */
15599
+ alternateCallerId: props.alternateCallerId })));
15593
15600
  }
15594
- return (React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings }));
15601
+ return (React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings,
15602
+ /* @conditional-compile-remove(PSTN-calls) */
15603
+ onAddParticipant: props.onAddParticipant,
15604
+ /* @conditional-compile-remove(PSTN-calls) */
15605
+ alternateCallerId: props.alternateCallerId }));
15595
15606
  };
15596
15607
  /**
15597
15608
  * Create default contextual menu items for particant
@@ -15795,9 +15806,15 @@ const CallPane = (props) => {
15795
15806
  const removeParticipantFromCall = (participantId) => __awaiter$7(void 0, void 0, void 0, function* () {
15796
15807
  yield props.callAdapter.removeParticipant(participantId);
15797
15808
  });
15809
+ /* @conditional-compile-remove(PSTN-calls) */
15810
+ const addParticipantToCall = (participant, options) => __awaiter$7(void 0, void 0, void 0, function* () {
15811
+ yield props.callAdapter.addParticipant(participant, options);
15812
+ });
15798
15813
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
15799
15814
  const pipStyles = React.useMemo(() => getPipStyles(theme), [theme]);
15800
15815
  const dataUiId = props.activePane === 'people' ? 'call-composite-people-pane' : '';
15816
+ /* @conditional-compile-remove(PSTN-calls) */
15817
+ const alternateCallerId = useAdapter().getState().alternateCallerId;
15801
15818
  return (React__default['default'].createElement(react.Stack, { verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": dataUiId, tokens: props.mobileView ? {} : sidePaneTokens },
15802
15819
  header,
15803
15820
  React__default['default'].createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
@@ -15805,7 +15822,11 @@ const CallPane = (props) => {
15805
15822
  React__default['default'].createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
15806
15823
  React__default['default'].createElement(react.Stack, { styles: props.activePane === 'people' ? availableSpaceStyles : hiddenStyles },
15807
15824
  React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
15808
- React__default['default'].createElement(PeoplePaneContent, Object.assign({}, props, { onRemoveParticipant: removeParticipantFromCall, setDrawerMenuItems: setDrawerMenuItems, strings: strings }))))))),
15825
+ React__default['default'].createElement(PeoplePaneContent, Object.assign({}, props, { onRemoveParticipant: removeParticipantFromCall,
15826
+ /* @conditional-compile-remove(PSTN-calls) */
15827
+ onAddParticipant: addParticipantToCall, setDrawerMenuItems: setDrawerMenuItems, strings: strings,
15828
+ /* @conditional-compile-remove(PSTN-calls) */
15829
+ alternateCallerId: alternateCallerId }))))))),
15809
15830
  props.mobileView && (React__default['default'].createElement(ModalLocalAndRemotePIP, { callAdapter: props.callAdapter, modalLayerHostId: props.modalLayerHostId, hidden: hidden, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition })),
15810
15831
  drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
15811
15832
  React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
@@ -18133,7 +18154,9 @@ function callAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState)
18133
18154
  call: callWithChatAdapterState.call,
18134
18155
  devices: callWithChatAdapterState.devices,
18135
18156
  isTeamsCall: callWithChatAdapterState.isTeamsCall,
18136
- latestErrors: callWithChatAdapterState.latestCallErrors
18157
+ latestErrors: callWithChatAdapterState.latestCallErrors,
18158
+ /* @conditional-compile-remove(PSTN-calls) */
18159
+ alternateCallerId: callWithChatAdapterState.alternateCallerId
18137
18160
  };
18138
18161
  }
18139
18162
 
@@ -18406,6 +18429,8 @@ const CallWithChatPane = (props) => {
18406
18429
  const paneStyles = hidden ? hiddenStyles : props.mobileView ? availableSpaceStyles : sidePaneStyles;
18407
18430
  const callWithChatStrings = useCallWithChatCompositeStrings();
18408
18431
  const theme = useTheme();
18432
+ /* @conditional-compile-remove(PSTN-calls) */
18433
+ const alternateCallerId = props.callAdapter.getState().alternateCallerId;
18409
18434
  const header = props.activePane === 'none' ? null : props.mobileView ? (React__default['default'].createElement(TabHeader, Object.assign({}, props, { strings: callWithChatStrings, activeTab: props.activePane }))) : (React__default['default'].createElement(SidePaneHeader, Object.assign({}, props, { strings: callWithChatStrings, headingText: props.activePane === 'chat'
18410
18435
  ? callWithChatStrings.chatPaneTitle
18411
18436
  : props.activePane === 'people'
@@ -18426,8 +18451,16 @@ const CallWithChatPane = (props) => {
18426
18451
  yield props.callAdapter.removeParticipant(participantId);
18427
18452
  yield props.chatAdapter.removeParticipant(participantId);
18428
18453
  });
18454
+ /* @conditional-compile-remove(PSTN-calls) */
18455
+ const addParticipantToCall = (participant, options) => __awaiter$1(void 0, void 0, void 0, function* () {
18456
+ yield props.callAdapter.addParticipant(participant, options);
18457
+ });
18429
18458
  const peopleContent = (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
18430
- React__default['default'].createElement(PeoplePaneContent, Object.assign({}, props, { onRemoveParticipant: removeParticipantFromCallWithChat, setDrawerMenuItems: setDrawerMenuItems, strings: callWithChatStrings }))));
18459
+ React__default['default'].createElement(PeoplePaneContent, Object.assign({}, props, { onRemoveParticipant: removeParticipantFromCallWithChat, setDrawerMenuItems: setDrawerMenuItems, strings: callWithChatStrings,
18460
+ /* @conditional-compile-remove(PSTN-calls) */
18461
+ onAddParticipant: addParticipantToCall,
18462
+ /* @conditional-compile-remove(PSTN-calls) */
18463
+ alternateCallerId: alternateCallerId }))));
18431
18464
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId, props.rtl);
18432
18465
  const pipStyles = React.useMemo(() => getPipStyles(theme), [theme]);
18433
18466
  const dataUiId = props.activePane === 'chat'
@@ -18615,7 +18648,9 @@ function callWithChatAdapterStateFromBackingStates(callAdapter, chatAdapter) {
18615
18648
  latestCallErrors: callAdapterState.latestErrors,
18616
18649
  latestChatErrors: chatAdapterState.latestErrors,
18617
18650
  /* @conditional-compile-remove(file-sharing) */
18618
- fileUploads: chatAdapterState.fileUploads
18651
+ fileUploads: chatAdapterState.fileUploads,
18652
+ /* @conditional-compile-remove(PSTN-calls) */
18653
+ alternateCallerId: callAdapterState.alternateCallerId
18619
18654
  };
18620
18655
  }
18621
18656
  /**