@azure/communication-react 1.19.0-alpha-202407250014 → 1.19.0-alpha-202407270014

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 (150) hide show
  1. package/dist/communication-react.d.ts +203 -23
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js → ChatMessageComponentAsRichTextEditBox-BueeC-ud.js} +14 -15
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-BueeC-ud.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNwd6bE2.js → RichTextSendBoxWrapper-Br441vhG.js} +2 -3
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNwd6bE2.js.map → RichTextSendBoxWrapper-Br441vhG.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DdAkrosV.js → index-DznlW8XT.js} +411 -246
  7. package/dist/dist-cjs/communication-react/index-DznlW8XT.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +2 -2
  9. package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -0
  10. package/dist/dist-esm/acs-ui-common/src/index.js +2 -0
  11. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/removeImageTags.d.ts +7 -0
  13. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js +18 -0
  14. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js.map +1 -0
  15. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +14 -1
  18. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +16 -0
  19. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +2 -0
  21. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +17 -0
  22. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  23. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.d.ts +2 -0
  24. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +17 -0
  25. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  26. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +3 -1
  27. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +13 -1
  28. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.d.ts +16 -0
  30. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.js +33 -0
  31. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.js.map +1 -0
  32. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +2 -0
  33. package/dist/dist-esm/calling-component-bindings/src/index.js +1 -0
  34. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +6 -1
  36. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +12 -0
  37. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  38. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.d.ts +2 -7
  39. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  40. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +2 -2
  41. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +1 -2
  42. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  43. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +62 -3
  44. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  45. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -1
  46. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +6 -1
  47. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  48. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +4 -3
  49. package/dist/dist-esm/calling-stateful-client/src/Converter.js +26 -3
  50. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  51. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +3 -1
  52. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  53. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.d.ts +1 -2
  54. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  55. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +2 -2
  56. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  57. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +2 -1
  58. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  59. package/dist/dist-esm/calling-stateful-client/src/index.d.ts +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  61. package/dist/dist-esm/communication-react/src/index.d.ts +3 -2
  62. package/dist/dist-esm/communication-react/src/index.js +1 -1
  63. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  64. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +2 -2
  65. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  66. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +2 -2
  67. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +2 -2
  69. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +12 -12
  70. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +2 -2
  72. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +2 -2
  73. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +6 -6
  75. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +2 -2
  77. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  78. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.d.ts +27 -1
  79. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.js +73 -36
  80. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.js.map +1 -1
  81. package/dist/dist-esm/react-components/src/components/IncomingCallStack.d.ts +76 -0
  82. package/dist/dist-esm/react-components/src/components/IncomingCallStack.js +23 -0
  83. package/dist/dist-esm/react-components/src/components/IncomingCallStack.js.map +1 -0
  84. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +0 -5
  85. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +3 -23
  86. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  87. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +6 -5
  88. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -3
  89. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  90. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +2 -2
  91. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +15 -5
  92. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -1
  93. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.d.ts +1 -1
  94. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js.map +1 -1
  95. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  96. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +6 -4
  97. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  98. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +1 -1
  99. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +2 -2
  100. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  101. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +13 -11
  102. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +14 -14
  103. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  104. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +3 -0
  105. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
  106. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +15 -15
  107. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  108. package/dist/dist-esm/react-components/src/components/VideoGallery.js +9 -6
  109. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  110. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
  111. package/dist/dist-esm/react-components/src/components/index.js +3 -0
  112. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  113. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
  114. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +1 -1
  115. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -3
  116. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +14 -11
  117. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  118. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.d.ts +2 -2
  119. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js +6 -2
  120. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  121. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +5 -2
  122. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -2
  124. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +1 -6
  125. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  126. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +3 -3
  127. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  128. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +7 -9
  129. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  130. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +36 -33
  131. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  132. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +6 -4
  133. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  134. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -2
  135. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -7
  137. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -8
  138. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  139. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +9 -8
  140. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  141. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +4 -10
  142. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +7 -23
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  144. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +2 -2
  145. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  146. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +3 -3
  147. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  148. package/package.json +2 -3
  149. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js.map +0 -1
  150. package/dist/dist-cjs/communication-react/index-DdAkrosV.js.map +0 -1
@@ -29,7 +29,6 @@ var reactHooks = require('@fluentui/react-hooks');
29
29
  var reactUseDraggableScroll = require('react-use-draggable-scroll');
30
30
  var reactWindowProvider = require('@fluentui/react-window-provider');
31
31
  var copy = require('copy-to-clipboard');
32
- var libphonenumberJs = require('libphonenumber-js');
33
32
  var reselect = require('reselect');
34
33
  var communicationCalling = require('@azure/communication-calling');
35
34
  var communicationCallingEffects = require('@azure/communication-calling-effects');
@@ -190,7 +189,7 @@ function getDefaultExportFromCjs (x) {
190
189
  // Copyright (c) Microsoft Corporation.
191
190
  // Licensed under the MIT License.
192
191
  // GENERATED FILE. DO NOT EDIT MANUALLY.
193
- var telemetryVersion = '1.19.0-alpha-202407250014';
192
+ var telemetryVersion = '1.19.0-alpha-202407270014';
194
193
 
195
194
 
196
195
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -383,6 +382,24 @@ const _base64ToBlob = (dataURI) => {
383
382
  return new Blob([arrayBuffer]);
384
383
  };
385
384
 
385
+ // Copyright (c) Microsoft Corporation.
386
+ // Licensed under the MIT License.
387
+ /**
388
+ * @internal
389
+ */
390
+ const removeImageTags = (event) => {
391
+ event.content.querySelectorAll('img').forEach((image) => {
392
+ // If the image is the only child of its parent, remove all the parents of this img element.
393
+ let parentNode = image.parentElement;
394
+ let currentNode = image;
395
+ while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
396
+ currentNode = parentNode;
397
+ parentNode = parentNode.parentElement;
398
+ }
399
+ currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
400
+ });
401
+ };
402
+
386
403
  // Copyright (c) Microsoft Corporation.
387
404
  // Licensed under the MIT License.
388
405
  /**
@@ -1956,7 +1973,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
1956
1973
  wordBreak: 'break-word'
1957
1974
  });
1958
1975
 
1959
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",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",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",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",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={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:"{status} {author} said {message}",messageContentMineAriaText:"{status} 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:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$k={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:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",teamsMeetingCallNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack$k={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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 verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var meetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var IncomingCallNotification$l={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"Incoming call",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notificationStack:notificationStack$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,meetingConferencePhoneInfo:meetingConferencePhoneInfo$k,IncomingCallNotification:IncomingCallNotification$l};
1976
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",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",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",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",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={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:"{status} {author} said {message}",messageContentMineAriaText:"{status} 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:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$k={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:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",teamsMeetingCallNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack$k={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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 verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var meetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var IncomingCallNotification$l={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"{callerName} is calling",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject",incomingCallNotificationAcceptButtonLabel:"Accept",incomingCallNotificationRejectButtonLabel:"Decline",incomingCallNotificationAccceptWithVideoButtonLabel:"Accept with Video"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notificationStack:notificationStack$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,meetingConferencePhoneInfo:meetingConferencePhoneInfo$k,IncomingCallNotification:IncomingCallNotification$l};
1960
1977
 
1961
1978
  // Copyright (c) Microsoft Corporation.
1962
1979
  // Licensed under the MIT License.
@@ -5604,14 +5621,14 @@ const isAttachmentUploadCompleted = (attachmentsWithProgress) => {
5604
5621
  * @internal
5605
5622
  */
5606
5623
  // Before sending the image, we need to add the image id we get back after uploading the images to the message content.
5607
- const addUploadedImagesToMessage = (message, uploadInlineImages) => __awaiter$O(void 0, void 0, void 0, function* () {
5624
+ const addUploadedImagesToMessage = (message, inlineImages) => __awaiter$O(void 0, void 0, void 0, function* () {
5608
5625
  if (message === '') {
5609
5626
  return message;
5610
5627
  }
5611
5628
  const document = new DOMParser().parseFromString(message !== null && message !== void 0 ? message : '', 'text/html');
5612
5629
  const imagesPromise = Array.from(document.querySelectorAll('img')).map((img) => {
5613
5630
  return new Promise((resolve, rejects) => {
5614
- const uploadInlineImage = uploadInlineImages.find((imageUpload) => !imageUpload.error && (imageUpload.url === img.src || imageUpload.id === img.id));
5631
+ const uploadInlineImage = inlineImages.find((inlineImage) => !inlineImage.error && (inlineImage.url === img.src || inlineImage.id === img.id));
5615
5632
  // The message might content images that comes with the message before editing, those images are not in the uploadInlineImages array.
5616
5633
  // This function should only modify the message content for images in the uploadInlineImages array.
5617
5634
  if (!uploadInlineImage) {
@@ -5685,12 +5702,12 @@ hasCompletedAttachmentUploads, hasError, disabled }) => {
5685
5702
  * @internal
5686
5703
  */
5687
5704
  const cancelInlineImageUpload$1 = (props) => {
5688
- const { imageSrcArray, imageUploadsInProgress, messageId, editBoxOnCancelInlineImageUpload, sendBoxOnCancelInlineImageUpload } = props;
5689
- if (imageSrcArray && imageUploadsInProgress && (imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.length) > 0) {
5690
- imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.map((uploadImage) => {
5691
- if (uploadImage.url && !(imageSrcArray === null || imageSrcArray === void 0 ? void 0 : imageSrcArray.includes(uploadImage.url))) {
5692
- sendBoxOnCancelInlineImageUpload && sendBoxOnCancelInlineImageUpload(uploadImage.id);
5693
- editBoxOnCancelInlineImageUpload && editBoxOnCancelInlineImageUpload(uploadImage.id, messageId || '');
5705
+ const { imageSrcArray, inlineImages, messageId, editBoxOnCancelInlineImageUpload, sendBoxOnCancelInlineImageUpload } = props;
5706
+ if (imageSrcArray && inlineImages && (inlineImages === null || inlineImages === void 0 ? void 0 : inlineImages.length) > 0) {
5707
+ inlineImages === null || inlineImages === void 0 ? void 0 : inlineImages.map((inlineImage) => {
5708
+ if (inlineImage.url && !(imageSrcArray === null || imageSrcArray === void 0 ? void 0 : imageSrcArray.includes(inlineImage.url))) {
5709
+ sendBoxOnCancelInlineImageUpload && sendBoxOnCancelInlineImageUpload(inlineImage.id);
5710
+ editBoxOnCancelInlineImageUpload && editBoxOnCancelInlineImageUpload(inlineImage.id, messageId || '');
5694
5711
  }
5695
5712
  });
5696
5713
  }
@@ -5716,11 +5733,11 @@ const toAttachmentMetadata = (attachmentsWithProgress) => {
5716
5733
  /**
5717
5734
  * @internal
5718
5735
  */
5719
- const insertImagesToContentString = (content, imageUploadsInProgress, onCompleted) => __awaiter$O(void 0, void 0, void 0, function* () {
5720
- if (!imageUploadsInProgress || imageUploadsInProgress.length <= 0) {
5736
+ const insertImagesToContentString = (content, inlineImages, onCompleted) => __awaiter$O(void 0, void 0, void 0, function* () {
5737
+ if (!inlineImages || inlineImages.length <= 0) {
5721
5738
  onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(content);
5722
5739
  }
5723
- const newContent = yield addUploadedImagesToMessage(content, imageUploadsInProgress !== null && imageUploadsInProgress !== void 0 ? imageUploadsInProgress : []);
5740
+ const newContent = yield addUploadedImagesToMessage(content, inlineImages !== null && inlineImages !== void 0 ? inlineImages : []);
5724
5741
  onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(newContent);
5725
5742
  });
5726
5743
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
@@ -5740,7 +5757,10 @@ const removeBrokenImageContentAndClearImageSizeStyles = (content) => {
5740
5757
  img.removeAttribute('data-ui-id');
5741
5758
  }
5742
5759
  // Clear maxWidth and maxHeight styles that are set by roosterJS.
5760
+ // Clear width and height styles as the width and height is set in attributes
5743
5761
  // This is so that they can be set in messageThread styles without using the important flag.
5762
+ img.style.width = '';
5763
+ img.style.height = '';
5744
5764
  img.style.maxWidth = '';
5745
5765
  img.style.maxHeight = '';
5746
5766
  });
@@ -6867,9 +6887,17 @@ class CopyPastePlugin {
6867
6887
  }
6868
6888
  dispose() { }
6869
6889
  onPluginEvent(event) {
6890
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
6891
+ // If onInsertInlineImage is not provided, we should remove the image tags before calling the onPaste callback
6892
+ if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && !this.onInsertInlineImage) {
6893
+ removeImageTags({ content: event.fragment });
6894
+ }
6870
6895
  handleBeforePasteEvent(event, /* @conditional-compile-remove(rich-text-editor-image-upload) */ this.onPaste);
6871
6896
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
6872
- handleInlineImage(event, this.onUploadInlineImage);
6897
+ // We should handle the onInsertInlineImage after the onPaste callback in case Contosos want to modify the image tags, especially the src attribute.
6898
+ if (this.onInsertInlineImage) {
6899
+ handleInlineImage(event, this.onInsertInlineImage);
6900
+ }
6873
6901
  if (this.editor !== null && !this.editor.isDisposed()) {
6874
6902
  // scroll the editor to the correct position after pasting content
6875
6903
  scrollToBottomAfterContentPaste(event);
@@ -6894,18 +6922,18 @@ const handleBeforePasteEvent = (event,
6894
6922
  * @internal
6895
6923
  * Exported only for unit testing
6896
6924
  */
6897
- const handleInlineImage = (event, onUploadInlineImage) => {
6898
- if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onUploadInlineImage) {
6925
+ const handleInlineImage = (event, onInsertInlineImage) => {
6926
+ if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onInsertInlineImage) {
6899
6927
  event.fragment.querySelectorAll('img').forEach((image) => {
6900
6928
  const clipboardImage = event.clipboardData.image;
6901
6929
  const fileName = (clipboardImage === null || clipboardImage === void 0 ? void 0 : clipboardImage.name) || (clipboardImage === null || clipboardImage === void 0 ? void 0 : clipboardImage.type.replace('/', '.')) || 'image.png';
6902
- // If the image src is an external url, call the onUploadInlineImage callback with the url.
6930
+ // If the image src is an external url, call the onInsertInlineImage callback with the url.
6903
6931
  let imageUrl = image.src;
6904
6932
  if (image.src.startsWith('data:image/')) {
6905
6933
  const blobImage = _base64ToBlob(image.src);
6906
6934
  imageUrl = URL.createObjectURL(blobImage);
6907
6935
  }
6908
- onUploadInlineImage(imageUrl, fileName);
6936
+ onInsertInlineImage(imageUrl, fileName);
6909
6937
  image.src = imageUrl;
6910
6938
  image.alt = image.alt || 'image';
6911
6939
  });
@@ -7318,6 +7346,9 @@ const RichTextToolbar = (props) => {
7318
7346
  React.useEffect(() => {
7319
7347
  // update the format state on editor events
7320
7348
  plugin.onFormatChanged = setFormatState;
7349
+ // plugin editor ready event may happen before onFormatChanged is set
7350
+ // call update format function to ensure the format state is set
7351
+ plugin.updateFormat();
7321
7352
  }, [plugin]);
7322
7353
  const boldButton = React.useMemo(() => {
7323
7354
  return getCommandBarItem({
@@ -7712,7 +7743,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7712
7743
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7713
7744
  onPaste,
7714
7745
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7715
- onUploadInlineImage } = props;
7746
+ onInsertInlineImage } = props;
7716
7747
  const editor = React.useRef(null);
7717
7748
  const editorDiv = React.useRef(null);
7718
7749
  const theme = useTheme();
@@ -7792,8 +7823,8 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7792
7823
  }, [onChange, onContentModelUpdate, updatePlugin]);
7793
7824
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7794
7825
  React.useEffect(() => {
7795
- copyPastePlugin.onUploadInlineImage = onUploadInlineImage;
7796
- }, [copyPastePlugin, onUploadInlineImage]);
7826
+ copyPastePlugin.onInsertInlineImage = onInsertInlineImage;
7827
+ }, [copyPastePlugin, onInsertInlineImage]);
7797
7828
  const keyboardInputPlugin = React.useMemo(() => {
7798
7829
  return new KeyboardInputPlugin();
7799
7830
  }, []);
@@ -7951,7 +7982,9 @@ const createEditorInitialModel = (initialContent, contentModel) => {
7951
7982
  }
7952
7983
  };
7953
7984
  const setSelectionAfterLastSegment = (model, block) => {
7954
- const marker = roosterjsContentModelDom.createSelectionMarker();
7985
+ //selection marker should have the same format as the last segment if any
7986
+ const format = block.segments.length > 0 ? block.segments[block.segments.length - 1].format : undefined;
7987
+ const marker = roosterjsContentModelDom.createSelectionMarker(format);
7955
7988
  block.segments.push(marker);
7956
7989
  roosterjsContentModelDom.setSelection(model, marker);
7957
7990
  };
@@ -8003,7 +8036,7 @@ const RichTextInputBoxComponent = (props) => {
8003
8036
  /* @conditional-compile-remove(file-sharing-acs) */
8004
8037
  hasAttachments, richTextEditorStyleProps, isHorizontalLayoutDisabled = false, autoFocus, onTyping,
8005
8038
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8006
- onUploadInlineImage } = props;
8039
+ onInsertInlineImage } = props;
8007
8040
  const theme = useTheme();
8008
8041
  // undefined is used to indicate that the rich text editor toolbar state wasn't changed yet
8009
8042
  const [showRichTextEditorFormatting, setShowRichTextEditorFormatting] = React.useState(undefined);
@@ -8078,7 +8111,7 @@ const RichTextInputBoxComponent = (props) => {
8078
8111
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8079
8112
  onPaste: props.onPaste,
8080
8113
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8081
- onUploadInlineImage: onUploadInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8114
+ onInsertInlineImage: onInsertInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8082
8115
  onRenderAttachmentUploads && onRenderAttachmentUploads()),
8083
8116
  actionButtons)));
8084
8117
  };
@@ -8174,9 +8207,9 @@ const RichTextSendBox = (props) => {
8174
8207
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8175
8208
  onPaste,
8176
8209
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8177
- onUploadInlineImage,
8210
+ onInsertInlineImage,
8178
8211
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8179
- imageUploadsInProgress,
8212
+ inlineImages,
8180
8213
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8181
8214
  onCancelInlineImageUpload } = props;
8182
8215
  const theme = useTheme();
@@ -8208,7 +8241,7 @@ const RichTextSendBox = (props) => {
8208
8241
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8209
8242
  cancelInlineImageUpload$1({
8210
8243
  imageSrcArray,
8211
- imageUploadsInProgress,
8244
+ inlineImages,
8212
8245
  messageId: undefined,
8213
8246
  editBoxOnCancelInlineImageUpload: undefined,
8214
8247
  sendBoxOnCancelInlineImageUpload: onCancelInlineImageUpload
@@ -8217,7 +8250,7 @@ const RichTextSendBox = (props) => {
8217
8250
  }, [
8218
8251
  setContent,
8219
8252
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ onCancelInlineImageUpload,
8220
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadsInProgress
8253
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ inlineImages
8221
8254
  ]);
8222
8255
  const hasContent = React.useMemo(() => {
8223
8256
  var _a;
@@ -8234,7 +8267,7 @@ const RichTextSendBox = (props) => {
8234
8267
  /* @conditional-compile-remove(file-sharing-acs) */
8235
8268
  setAttachmentUploadsPendingError(undefined);
8236
8269
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8237
- const hasIncompleteImageUploads = hasIncompleteAttachmentUploads(imageUploadsInProgress);
8270
+ const hasIncompleteImageUploads = hasIncompleteAttachmentUploads(inlineImages);
8238
8271
  /* @conditional-compile-remove(file-sharing-acs) */
8239
8272
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8240
8273
  if (
@@ -8258,7 +8291,7 @@ const RichTextSendBox = (props) => {
8258
8291
  // Message can be empty if there is a valid attachment upload
8259
8292
  if (hasContent ||
8260
8293
  /* @conditional-compile-remove(file-sharing-acs) */ isAttachmentUploadCompleted(attachments) ||
8261
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(imageUploadsInProgress)) {
8294
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(inlineImages)) {
8262
8295
  const sendMessage = (content) => {
8263
8296
  var _a, _b;
8264
8297
  onSendMessage(content,
@@ -8274,8 +8307,8 @@ const RichTextSendBox = (props) => {
8274
8307
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.focus();
8275
8308
  };
8276
8309
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8277
- if (isAttachmentUploadCompleted(imageUploadsInProgress)) {
8278
- insertImagesToContentString(contentValue, imageUploadsInProgress, (content) => {
8310
+ if (isAttachmentUploadCompleted(inlineImages)) {
8311
+ insertImagesToContentString(contentValue, inlineImages, (content) => {
8279
8312
  sendMessage(content);
8280
8313
  });
8281
8314
  return;
@@ -8288,7 +8321,7 @@ const RichTextSendBox = (props) => {
8288
8321
  /* @conditional-compile-remove(file-sharing-acs) */
8289
8322
  attachments,
8290
8323
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8291
- imageUploadsInProgress,
8324
+ inlineImages,
8292
8325
  contentValue,
8293
8326
  hasContent,
8294
8327
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -8306,7 +8339,7 @@ const RichTextSendBox = (props) => {
8306
8339
  /* @conditional-compile-remove(file-sharing-acs) */
8307
8340
  !!((_a = attachments === null || attachments === void 0 ? void 0 : attachments.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error) ||
8308
8341
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8309
- !!((_b = imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.filter((image) => image.error).pop()) === null || _b === void 0 ? void 0 : _b.error));
8342
+ !!((_b = inlineImages === null || inlineImages === void 0 ? void 0 : inlineImages.filter((image) => image.error).pop()) === null || _b === void 0 ? void 0 : _b.error));
8310
8343
  }, [
8311
8344
  /* @conditional-compile-remove(file-sharing-acs) */
8312
8345
  attachments,
@@ -8315,7 +8348,7 @@ const RichTextSendBox = (props) => {
8315
8348
  attachmentUploadsPendingError,
8316
8349
  systemMessage,
8317
8350
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8318
- imageUploadsInProgress
8351
+ inlineImages
8319
8352
  ]);
8320
8353
  const onRenderSendIcon = React.useCallback((isHover) => {
8321
8354
  return (React.createElement(react.Icon, { iconName: isHover && hasContent ? 'SendBoxSendHovered' : 'SendBoxSend', className: sendIconStyle({
@@ -8333,7 +8366,7 @@ const RichTextSendBox = (props) => {
8333
8366
  /* @conditional-compile-remove(file-sharing-acs) */
8334
8367
  const uploadErrorMessage = (_b = (_a = attachments === null || attachments === void 0 ? void 0 : attachments.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.message;
8335
8368
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8336
- const imageUploadErrorMessage = (_d = (_c = imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.filter((image) => image.error).pop()) === null || _c === void 0 ? void 0 : _c.error) === null || _d === void 0 ? void 0 : _d.message;
8369
+ const imageUploadErrorMessage = (_d = (_c = inlineImages === null || inlineImages === void 0 ? void 0 : inlineImages.filter((image) => image.error).pop()) === null || _c === void 0 ? void 0 : _c.error) === null || _d === void 0 ? void 0 : _d.message;
8337
8370
  /* @conditional-compile-remove(file-sharing-acs) */
8338
8371
  const errorMessage = uploadErrorMessage || /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadErrorMessage;
8339
8372
  return {
@@ -8358,7 +8391,7 @@ const RichTextSendBox = (props) => {
8358
8391
  /* @conditional-compile-remove(file-sharing-acs) */
8359
8392
  attachmentUploadsPendingError,
8360
8393
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8361
- imageUploadsInProgress,
8394
+ inlineImages,
8362
8395
  systemMessage
8363
8396
  ]);
8364
8397
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -8410,7 +8443,7 @@ const RichTextSendBox = (props) => {
8410
8443
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8411
8444
  onPaste: onPaste,
8412
8445
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8413
- onUploadInlineImage: onUploadInlineImage })));
8446
+ onInsertInlineImage: onInsertInlineImage })));
8414
8447
  };
8415
8448
 
8416
8449
  // Copyright (c) Microsoft Corporation.
@@ -10421,7 +10454,7 @@ class _ErrorBoundary extends React.Component {
10421
10454
  // Copyright (c) Microsoft Corporation.
10422
10455
  // Licensed under the MIT License.
10423
10456
  /* @conditional-compile-remove(rich-text-editor) */
10424
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js'); }));
10457
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BueeC-ud.js'); }));
10425
10458
  /**
10426
10459
  * @private
10427
10460
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -10429,7 +10462,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
10429
10462
  *
10430
10463
  * @conditional-compile-remove(rich-text-editor)
10431
10464
  */
10432
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js'); });
10465
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BueeC-ud.js'); });
10433
10466
  /**
10434
10467
  * @private
10435
10468
  */
@@ -10529,9 +10562,9 @@ const ChatMyMessageComponent = (props) => {
10529
10562
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10530
10563
  onPaste: props.onPaste,
10531
10564
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10532
- onUploadInlineImage: props.onUploadInlineImage,
10565
+ onInsertInlineImage: props.onInsertInlineImage,
10533
10566
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10534
- imageUploadsInProgress: props.imageUploadsInProgress,
10567
+ inlineImages: props.inlineImages,
10535
10568
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10536
10569
  onCancelInlineImageUpload: props.onCancelInlineImageUpload }));
10537
10570
  }
@@ -10569,11 +10602,11 @@ const FluentChatMyMessageComponent = (props) => {
10569
10602
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10570
10603
  onPaste,
10571
10604
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10572
- imageUploadsInProgress,
10605
+ inlineImages,
10573
10606
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10574
10607
  onCancelInlineImageUpload,
10575
10608
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10576
- onUploadInlineImage } = props;
10609
+ onInsertInlineImage } = props;
10577
10610
  const chatMessageRenderStyles = useChatMessageRenderStyles();
10578
10611
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
10579
10612
  const onRenderAttachmentDownloadsMemo = React.useMemo(() => {
@@ -10605,9 +10638,9 @@ const FluentChatMyMessageComponent = (props) => {
10605
10638
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10606
10639
  onCancelInlineImageUpload: onCancelInlineImageUpload,
10607
10640
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10608
- onUploadInlineImage: onUploadInlineImage,
10641
+ onInsertInlineImage: onInsertInlineImage,
10609
10642
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10610
- imageUploadsInProgress: imageUploadsInProgress })));
10643
+ inlineImages: inlineImages })));
10611
10644
  }
10612
10645
  return React.createElement(React.Fragment, null);
10613
10646
  }, [
@@ -10635,9 +10668,9 @@ const FluentChatMyMessageComponent = (props) => {
10635
10668
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10636
10669
  onCancelInlineImageUpload,
10637
10670
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10638
- onUploadInlineImage,
10671
+ onInsertInlineImage,
10639
10672
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10640
- imageUploadsInProgress
10673
+ inlineImages
10641
10674
  ]);
10642
10675
  const messageRenderer = React.useCallback((messageProps) => {
10643
10676
  return onRenderMessage === undefined
@@ -11461,10 +11494,10 @@ const MessageThreadWrapper = (props) => {
11461
11494
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11462
11495
  onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste,
11463
11496
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11464
- onUploadInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onUploadInlineImage,
11497
+ onInsertInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onInsertInlineImage,
11465
11498
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11466
- imageUploadsInProgress: (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesImageUploadsInProgress) &&
11467
- (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesImageUploadsInProgress[message.message.messageId]),
11499
+ inlineImages: (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesInlineImages) &&
11500
+ (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesInlineImages[message.message.messageId]),
11468
11501
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11469
11502
  onCancelInlineImageUpload: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onCancelInlineImageUpload })));
11470
11503
  }))))));
@@ -12681,6 +12714,21 @@ const useVideoTileContextualMenuProps = (props) => {
12681
12714
  }, [(_a = props.participant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode]);
12682
12715
  const contextualMenuProps = React.useMemo(() => {
12683
12716
  const items = [];
12717
+ /* @conditional-compile-remove(soft-mute) */
12718
+ if (onMuteParticipant && (strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel)) {
12719
+ items.push({
12720
+ key: 'mute',
12721
+ text: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12722
+ iconProps: {
12723
+ iconName: 'ContextualMenuMicMutedIcon',
12724
+ styles: { root: { lineHeight: 0 } }
12725
+ },
12726
+ onClick: () => onMuteParticipant(participant.userId),
12727
+ 'data-ui-id': 'video-tile-mute-participant',
12728
+ ariaLabel: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12729
+ disabled: participant.isMuted
12730
+ });
12731
+ }
12684
12732
  if (isPinned !== undefined) {
12685
12733
  if (isPinned && onUnpinParticipant && (strings === null || strings === void 0 ? void 0 : strings.unpinParticipantForMe)) {
12686
12734
  let unpinActionString = undefined;
@@ -12767,21 +12815,6 @@ const useVideoTileContextualMenuProps = (props) => {
12767
12815
  });
12768
12816
  }
12769
12817
  }
12770
- /* @conditional-compile-remove(soft-mute) */
12771
- if (onMuteParticipant && (strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel)) {
12772
- items.push({
12773
- key: 'mute',
12774
- text: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12775
- iconProps: {
12776
- iconName: 'ContextualMenuMicMutedIcon',
12777
- styles: { root: { lineHeight: 0 } }
12778
- },
12779
- onClick: () => onMuteParticipant(participant.userId),
12780
- 'data-ui-id': 'video-tile-mute-participant',
12781
- ariaLabel: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12782
- disabled: participant.isMuted
12783
- });
12784
- }
12785
12818
  if (scalingMode) {
12786
12819
  if (scalingMode === 'Crop' && (strings === null || strings === void 0 ? void 0 : strings.fitRemoteParticipantToFrame)) {
12787
12820
  items.push({
@@ -16458,7 +16491,7 @@ const MAX_PINNED_REMOTE_VIDEO_TILES$1 = 4;
16458
16491
  * @public
16459
16492
  */
16460
16493
  const VideoGallery = (props) => {
16461
- var _a, _b, _c, _d;
16494
+ var _a, _b, _c;
16462
16495
  const { localParticipant, remoteParticipants = [], localVideoViewOptions, remoteVideoViewOptions, dominantSpeakers, onRenderLocalVideoTile, onRenderRemoteVideoTile, onCreateLocalStreamView, onDisposeLocalStreamView, onCreateRemoteStreamView, onDisposeRemoteScreenShareStreamView, onDisposeRemoteVideoStreamView, styles, layout, onRenderAvatar, showMuteIndicator, maxRemoteVideoStreams = DEFAULT_MAX_REMOTE_VIDEO_STREAMS, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, onPinParticipant: onPinParticipantHandler, onUnpinParticipant: onUnpinParticipantHandler, remoteVideoTileMenu = DEFAULT_REMOTE_VIDEO_TILE_MENU_OPTIONS, overflowGalleryPosition = 'horizontalBottom', localVideoTileSize = 'followDeviceOrientation', spotlightedParticipants, onStartLocalSpotlight, onStartRemoteSpotlight, onStopLocalSpotlight, onStopRemoteSpotlight, maxParticipantsToSpotlight, reactionResources, videoTilesOptions,
16463
16496
  /* @conditional-compile-remove(soft-mute) */
16464
16497
  onMuteParticipant } = props;
@@ -16494,7 +16527,10 @@ const VideoGallery = (props) => {
16494
16527
  });
16495
16528
  }, [props.pinnedParticipants, props.remoteParticipants]);
16496
16529
  // Use pinnedParticipants from props but if it is not defined use the maintained state of pinned participants
16497
- const pinnedParticipants = (_a = props.pinnedParticipants) !== null && _a !== void 0 ? _a : pinnedParticipantsState;
16530
+ const pinnedParticipants = React.useMemo(() => {
16531
+ var _a;
16532
+ return (_a = props.pinnedParticipants) !== null && _a !== void 0 ? _a : pinnedParticipantsState.filter((pinnedParticipantId) => remoteParticipants.find((remoteParticipant) => remoteParticipant.userId === pinnedParticipantId));
16533
+ }, [props.pinnedParticipants, pinnedParticipantsState, remoteParticipants]);
16498
16534
  const showLocalVideoTileLabel = !((localTileNotInGrid && isNarrow) || localVideoTileSize === '9:16') || layout === 'default';
16499
16535
  /**
16500
16536
  * Utility function for memoized rendering of LocalParticipant.
@@ -16548,11 +16584,11 @@ const VideoGallery = (props) => {
16548
16584
  if (pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1) {
16549
16585
  return;
16550
16586
  }
16551
- if (!pinnedParticipantsState.includes(userId)) {
16552
- setPinnedParticipantsState(pinnedParticipantsState.concat(userId));
16587
+ if (!pinnedParticipants.includes(userId)) {
16588
+ setPinnedParticipantsState(pinnedParticipants.concat(userId));
16553
16589
  }
16554
16590
  onPinParticipantHandler === null || onPinParticipantHandler === void 0 ? void 0 : onPinParticipantHandler(userId);
16555
- }, [pinnedParticipants.length, pinnedParticipantsState, setPinnedParticipantsState, onPinParticipantHandler]);
16591
+ }, [pinnedParticipants, setPinnedParticipantsState, onPinParticipantHandler]);
16556
16592
  const onUnpinParticipant = React.useCallback((userId) => {
16557
16593
  setPinnedParticipantsState(pinnedParticipantsState.filter((p) => p !== userId));
16558
16594
  onUnpinParticipantHandler === null || onUnpinParticipantHandler === void 0 ? void 0 : onUnpinParticipantHandler(userId);
@@ -16626,7 +16662,7 @@ const VideoGallery = (props) => {
16626
16662
  ]);
16627
16663
  const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
16628
16664
  const localScreenShareStreamComponent = React.createElement(LocalScreenShare, { localParticipant: localParticipant });
16629
- const remoteScreenShareComponent = screenShareParticipant && (React.createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_b = screenShareParticipant.screenShareStream) === null || _b === void 0 ? void 0 : _b.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteScreenShareStreamView, isReceiving: (_c = screenShareParticipant.screenShareStream) === null || _c === void 0 ? void 0 : _c.isReceiving, participantVideoScalingMode: selectedScalingModeState[screenShareParticipant.userId], localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, isPPTLive: !((_d = screenShareParticipant.screenShareStream) === null || _d === void 0 ? void 0 : _d.id) })));
16665
+ const remoteScreenShareComponent = screenShareParticipant && (React.createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_a = screenShareParticipant.screenShareStream) === null || _a === void 0 ? void 0 : _a.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteScreenShareStreamView, isReceiving: (_b = screenShareParticipant.screenShareStream) === null || _b === void 0 ? void 0 : _b.isReceiving, participantVideoScalingMode: selectedScalingModeState[screenShareParticipant.userId], localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, isPPTLive: !((_c = screenShareParticipant.screenShareStream) === null || _c === void 0 ? void 0 : _c.id) })));
16630
16666
  const screenShareComponent = remoteScreenShareComponent
16631
16667
  ? remoteScreenShareComponent
16632
16668
  : localParticipant.isScreenSharingOn
@@ -18173,13 +18209,17 @@ const iconButtonStyles$1 = (theme) => {
18173
18209
  // Copyright (c) Microsoft Corporation.
18174
18210
  // Licensed under the MIT License.
18175
18211
  /**
18176
- * @private
18212
+ * @internal
18177
18213
  */
18178
- const formatPhoneNumber$1 = (phoneNumber) => {
18214
+ const _formatPhoneNumber = (phoneNumber, enchant) => {
18179
18215
  // if input value is falsy eg if the user deletes the input, then just return
18180
18216
  if (!phoneNumber) {
18181
18217
  return phoneNumber;
18182
18218
  }
18219
+ // Only enchant North American phone numbers that begin with country code (1)
18220
+ if (enchant && phoneNumber[0] === '1' && phoneNumber.length === 11) {
18221
+ phoneNumber = `+${phoneNumber}`;
18222
+ }
18183
18223
  // if phone number starts with 1, format like 1 (xxx)xxx-xxxx.
18184
18224
  // if phone number starts with +, we format like +x (xxx)xxx-xxxx.
18185
18225
  // For now we are only supporting NA phone number formatting with country code +x
@@ -18434,7 +18474,7 @@ const DialpadContainer = (props) => {
18434
18474
  setText(modifiedInput);
18435
18475
  };
18436
18476
  return (React.createElement(react.Stack, { className: react.mergeStyles(containerStyles$4(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer", "data-ui-id": "dialpadContainer", horizontalAlign: 'center' },
18437
- dialpadMode === 'dialer' && (React.createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme, plainTextValue !== ''), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: textFieldValue ? textFieldValue : formatPhoneNumber$1(plainTextValue),
18477
+ dialpadMode === 'dialer' && (React.createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme, plainTextValue !== ''), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: textFieldValue ? textFieldValue : _formatPhoneNumber(plainTextValue),
18438
18478
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18439
18479
  onChange: (e) => {
18440
18480
  setText(e.target.value);
@@ -18933,7 +18973,7 @@ const unsupportedOperatingSystemStringsTrampoline = (locale) => {
18933
18973
  /**
18934
18974
  * @private
18935
18975
  */
18936
- const dismissButtonStyle = (theme) => ({
18976
+ const dismissButtonStyle$1 = (theme) => ({
18937
18977
  root: {
18938
18978
  padding: '0.375rem 1.25rem',
18939
18979
  width: '3.75rem',
@@ -19002,7 +19042,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
19002
19042
  ' ',
19003
19043
  onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
19004
19044
  React.createElement("span", null, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
19005
- return (React.createElement(react.MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: error.type, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(react.MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle(theme), onClick: () => {
19045
+ return (React.createElement(react.MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: error.type, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(react.MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle$1(theme), onClick: () => {
19006
19046
  setDismissedErrors(dismissError(dismissedErrors, error));
19007
19047
  }, ariaLabel: strings.dismissButtonAriaLabel }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
19008
19048
  })));
@@ -19729,7 +19769,7 @@ const MeetingConferencePhoneInfoModal = (props) => {
19729
19769
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalDialIn)))),
19730
19770
  React.createElement(react.Stack.Item, { className: phoneInfoStep$1 }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
19731
19771
  React.createElement(react.Text, { className: phoneInfoTextStyle$1 },
19732
- formatPhoneNumber(phoneNumber.phoneNumber),
19772
+ _formatPhoneNumber(phoneNumber.phoneNumber, true),
19733
19773
  ' ',
19734
19774
  phoneNumber.isTollFree
19735
19775
  ? strings.meetingConferencePhoneInfoModalTollFree
@@ -19756,25 +19796,6 @@ const MeetingConferencePhoneInfoModal = (props) => {
19756
19796
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalWait)))))))));
19757
19797
  };
19758
19798
  /* @conditional-compile-remove(teams-meeting-conference) */
19759
- /**
19760
- * @internal
19761
- * format phone number
19762
- */
19763
- const formatPhoneNumber = (phoneNumber) => {
19764
- var _a;
19765
- if (!phoneNumber) {
19766
- return '';
19767
- }
19768
- let enchantedPhoneNumber = phoneNumber;
19769
- if (!phoneNumber.startsWith('+')) {
19770
- enchantedPhoneNumber = `+${phoneNumber}`;
19771
- }
19772
- if (libphonenumberJs.isPossiblePhoneNumber(enchantedPhoneNumber)) {
19773
- return ((_a = libphonenumberJs.parsePhoneNumber(enchantedPhoneNumber)) === null || _a === void 0 ? void 0 : _a.formatInternational()) || enchantedPhoneNumber;
19774
- }
19775
- return phoneNumber;
19776
- };
19777
- /* @conditional-compile-remove(teams-meeting-conference) */
19778
19799
  /**
19779
19800
  * @internal
19780
19801
  * format phone number link
@@ -19789,7 +19810,7 @@ const formatPhoneNumberLink = (phoneNumber) => {
19789
19810
  */
19790
19811
  const formatPhoneNumberInfo = (phoneNumber, strings) => {
19791
19812
  const templateText = phoneNumber.country && phoneNumber.city ? strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTollGeoData : '';
19792
- return ((templateText === null || templateText === void 0 ? void 0 : templateText.replace('{phoneNumber}', formatPhoneNumber(phoneNumber.phoneNumber)).replace('{country}', phoneNumber.country || '').replace('{city}', phoneNumber.city || '').trim()) || '');
19813
+ return ((templateText === null || templateText === void 0 ? void 0 : templateText.replace('{country}', phoneNumber.country || '').replace('{city}', phoneNumber.city || '').trim()) || '');
19793
19814
  };
19794
19815
  /* @conditional-compile-remove(teams-meeting-conference) */
19795
19816
  /**
@@ -19956,36 +19977,63 @@ const NotificationStack = (props) => {
19956
19977
  * @beta
19957
19978
  */
19958
19979
  const IncomingCallNotification$k = (props) => {
19959
- const { callerName, alertText, avatarImage, onAcceptWithAudio, onAcceptWithVideo, onReject, personaSize, styles } = props;
19980
+ var _a, _b, _c, _d, _e, _f, _g;
19981
+ const { callerName, alertText, avatarImage, onAcceptWithAudio,
19982
+ /* @conditional-compile-remove(one-to-n-calling) */
19983
+ onAcceptWithVideo, onReject, onDismiss, personaSize, styles, strings,
19984
+ /* @conditional-compile-remove(one-to-n-calling) */
19985
+ acceptOptions } = props;
19960
19986
  const theme = react.useTheme();
19961
19987
  /* @conditional-compile-remove(one-to-n-calling) */
19962
19988
  const localeStrings = useLocale$1().strings.IncomingCallNotification;
19963
- return (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.5rem' }, verticalAlign: "center", styles: (styles === null || styles === void 0 ? void 0 : styles.root) ? styles.root : incomingCallToastStyle(theme) },
19964
- React.createElement(react.Stack, { horizontalAlign: "start", styles: (styles === null || styles === void 0 ? void 0 : styles.avatarContainer) ? styles.avatarContainer : incomingCallToastAvatarContainerStyle },
19965
- React.createElement(react.Persona, { imageUrl: avatarImage, text: callerName, size: react.PersonaSize.size40, coinSize: personaSize, hidePersonaDetails: true, "aria-label": callerName })),
19966
- React.createElement(react.Stack, { grow: 1, horizontalAlign: "center", style: { alignItems: 'flex-start', fontFamily: 'Segoe UI' } },
19967
- React.createElement(react.Stack, { style: { fontSize: '0.875rem' } },
19968
- React.createElement(react.Text, null, callerName !== null && callerName !== void 0 ? callerName :
19969
- /* @conditional-compile-remove(one-to-n-calling) */ localeStrings.incomingCallNotificationPlaceholderId)),
19970
- React.createElement(react.Stack, { style: { fontSize: '0.75rem' } },
19971
- React.createElement(react.Text, null, alertText !== null && alertText !== void 0 ? alertText :
19972
- /* @conditional-compile-remove(one-to-n-calling) */ localeStrings.incomingCallNotificationPlaceholderAlert))),
19973
- React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: 10 } },
19974
- React.createElement(react.IconButton, { styles: (styles === null || styles === void 0 ? void 0 : styles.rejectButton) ? styles.rejectButton : incomingCallRejectButtonStyle(theme), onClick: () => onReject(), iconProps: { iconName: 'IncomingCallNotificationRejectIcon' },
19989
+ /* @conditional-compile-remove(one-to-n-calling) */
19990
+ const formattedMessageString = localeStrings.incomingCallNotificationPlaceholderAlert && callerName
19991
+ ? _formatString(localeStrings.incomingCallNotificationPlaceholderAlert, { callerName: callerName })
19992
+ : callerName;
19993
+ /* @conditional-compile-remove(one-to-n-calling) */
19994
+ const acceptManuOptions = acceptOptions.showAcceptWithVideo
19995
+ ? {
19996
+ items: [
19997
+ {
19998
+ key: 'audio',
19999
+ text:
20000
+ /* @conditional-compile-remove(one-to-n-calling) */ (_a = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAcceptButtonLabel) !== null && _a !== void 0 ? _a : localeStrings.incomingCallNotificationAcceptButtonLabel,
20001
+ onClick: () => onAcceptWithAudio()
20002
+ },
20003
+ {
20004
+ key: 'video',
20005
+ text:
20006
+ /* @conditional-compile-remove(one-to-n-calling) */ (_b = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAccceptWithVideoButtonLabel) !== null && _b !== void 0 ? _b : localeStrings.incomingCallNotificationAccceptWithVideoButtonLabel,
20007
+ onClick: () => onAcceptWithVideo()
20008
+ }
20009
+ ]
20010
+ }
20011
+ : undefined;
20012
+ return (React.createElement(react.Stack, { tokens: { childrenGap: '0.5rem' }, verticalAlign: "center", styles: (styles === null || styles === void 0 ? void 0 : styles.root) ? styles.root : incomingCallToastStyle(theme) },
20013
+ React.createElement(react.Stack, { horizontal: true, verticalAlign: "center", tokens: { childrenGap: personaSize ? '0.5rem' : '0rem' } },
20014
+ React.createElement(react.Stack, { horizontalAlign: "start", styles: (styles === null || styles === void 0 ? void 0 : styles.avatarContainer) ? styles.avatarContainer : incomingCallToastAvatarContainerStyle },
20015
+ React.createElement(react.Persona, { imageUrl: avatarImage, text: callerName, size: react.PersonaSize.size24, coinSize: personaSize, hidePersonaDetails: true, "aria-label": callerName })),
20016
+ React.createElement(react.Stack, { grow: true, horizontalAlign: "center", style: { alignItems: 'flex-start', fontFamily: 'Segoe UI' } },
20017
+ React.createElement(react.Stack, { style: { fontSize: '0.75rem' } },
20018
+ React.createElement(react.Text, null, (_c = alertText !== null && alertText !== void 0 ? alertText : strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationPlaceholderAlert) !== null && _c !== void 0 ? _c :
20019
+ /* @conditional-compile-remove(one-to-n-calling) */ formattedMessageString))),
20020
+ React.createElement(react.IconButton, { iconProps: { iconName: 'cancel' }, onClick: onDismiss, styles: dismissButtonStyle(theme) })),
20021
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: 'center', tokens: { childrenGap: '0.5rem' } },
20022
+ React.createElement(react.PrimaryButton, { styles: (styles === null || styles === void 0 ? void 0 : styles.acceptButton) ? styles.acceptButton : incomingCallAcceptButtonStyle(theme), onClick: () => onAcceptWithAudio(), iconProps: { iconName: 'IncomingCallNotificationAcceptIcon', style: { lineHeight: '1rem' } },
19975
20023
  /* @conditional-compile-remove(one-to-n-calling) */
19976
- ariaLabel: localeStrings.incomingCallNoticicationRejectAriaLabel }),
19977
- React.createElement(react.IconButton, { styles: (styles === null || styles === void 0 ? void 0 : styles.acceptButton) ? styles.acceptButton : incomingCallAcceptButtonStyle(theme), onClick: () => onAcceptWithVideo(), iconProps: { iconName: 'IncomingCallNotificationAcceptWithVideoIcon' },
20024
+ ariaLabel: (_d = strings === null || strings === void 0 ? void 0 : strings.incomingCallNoticicationAcceptWithAudioAriaLabel) !== null && _d !== void 0 ? _d : localeStrings.incomingCallNoticicationAcceptWithAudioAriaLabel,
19978
20025
  /* @conditional-compile-remove(one-to-n-calling) */
19979
- ariaLabel: localeStrings.incomingCallNoticicationAcceptWithVideoAriaLabel }),
19980
- React.createElement(react.IconButton, { styles: (styles === null || styles === void 0 ? void 0 : styles.acceptButton) ? styles.acceptButton : incomingCallAcceptButtonStyle(theme), onClick: () => onAcceptWithAudio(), iconProps: { iconName: 'IncomingCallNotificationAcceptIcon' },
20026
+ menuProps: acceptManuOptions },
20027
+ /* @conditional-compile-remove(one-to-n-calling) */ (_e = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAcceptButtonLabel) !== null && _e !== void 0 ? _e : localeStrings.incomingCallNotificationAcceptButtonLabel),
20028
+ React.createElement(react.DefaultButton, { styles: (styles === null || styles === void 0 ? void 0 : styles.rejectButton) ? styles.rejectButton : incomingCallRejectButtonStyle(theme), onClick: () => onReject(), label: 'Decline', iconProps: { iconName: 'IncomingCallNotificationRejectIcon' },
19981
20029
  /* @conditional-compile-remove(one-to-n-calling) */
19982
- ariaLabel: localeStrings.incomingCallNoticicationAcceptWithAudioAriaLabel }))));
20030
+ ariaLabel: (_f = strings === null || strings === void 0 ? void 0 : strings.incomingCallNoticicationRejectAriaLabel) !== null && _f !== void 0 ? _f : localeStrings.incomingCallNoticicationRejectAriaLabel },
20031
+ /* @conditional-compile-remove(one-to-n-calling) */ (_g = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationRejectButtonLabel) !== null && _g !== void 0 ? _g : localeStrings.incomingCallNotificationRejectButtonLabel))));
19983
20032
  };
19984
20033
  const incomingCallToastStyle = (theme) => {
19985
20034
  return {
19986
20035
  root: {
19987
- minWidth: '20rem',
19988
- maxWidth: '40rem',
20036
+ width: '20rem',
19989
20037
  background: theme.palette.white,
19990
20038
  opacity: 0.95,
19991
20039
  borderRadius: '0.5rem',
@@ -19999,39 +20047,68 @@ const incomingCallToastAvatarContainerStyle = {
19999
20047
  marginRight: '0.5rem'
20000
20048
  }
20001
20049
  };
20050
+ const dismissButtonStyle = (theme) => {
20051
+ return {
20052
+ root: {
20053
+ color: theme.palette.neutralPrimary,
20054
+ width: '1rem',
20055
+ height: '1rem'
20056
+ },
20057
+ rootHovered: {
20058
+ color: theme.palette.neutralDark
20059
+ }
20060
+ };
20061
+ };
20002
20062
  const incomingCallAcceptButtonStyle = (theme) => {
20003
20063
  return {
20004
20064
  root: {
20005
- backgroundColor: theme.palette.greenDark,
20006
20065
  color: theme.palette.white,
20007
- borderRadius: '2rem',
20008
- minWidth: '2rem',
20009
- width: '2rem',
20010
- border: 'none'
20066
+ border: 'none',
20067
+ borderRadius: theme.effects.roundedCorner4,
20068
+ width: '100%',
20069
+ maxWidth: '8.875rem'
20011
20070
  },
20012
20071
  rootHovered: {
20013
- backgroundColor: theme.palette.green,
20014
20072
  color: theme.palette.white
20073
+ },
20074
+ icon: {
20075
+ height: '1.25rem'
20015
20076
  }
20016
20077
  };
20017
20078
  };
20018
20079
  const incomingCallRejectButtonStyle = (theme) => {
20019
20080
  return {
20020
20081
  root: {
20021
- backgroundColor: theme.palette.redDark,
20022
- color: theme.palette.white,
20023
- borderRadius: '2rem',
20024
- minWidth: '2rem',
20025
- width: '2rem',
20026
- border: 'none'
20082
+ borderRadius: theme.effects.roundedCorner4,
20083
+ maxWidth: '8.875rem',
20084
+ width: '100%'
20027
20085
  },
20028
- rootHovered: {
20029
- backgroundColor: theme.palette.red,
20030
- color: theme.palette.white
20086
+ icon: {
20087
+ height: '1.25rem'
20031
20088
  }
20032
20089
  };
20033
20090
  };
20034
20091
 
20092
+ // Copyright (c) Microsoft Corporation.
20093
+ // Licensed under the MIT License.
20094
+ /* @conditional-compile-remove(one-to-n-calling) */
20095
+ /**
20096
+ * Wrapper to manage multiple incoming calls
20097
+ * @param props - {@link IncomingCallManagerProps}
20098
+ * @returns
20099
+ * @beta
20100
+ */
20101
+ const IncomingCallStack = (props) => {
20102
+ /* @conditional-compile-remove(one-to-n-calling) */
20103
+ const { activeIncomingCalls, removedIncomingCalls, onAcceptCall, onRejectCall, styles, strings } = props;
20104
+ return (React.createElement(react.Stack, { tokens: { childrenGap: '0.25rem' } },
20105
+ /* @conditional-compile-remove(one-to-n-calling) */ activeIncomingCalls
20106
+ .filter((incomingCall) => !removedIncomingCalls.some((call) => call.id === incomingCall.id))
20107
+ .map((incomingCall) => {
20108
+ return (React.createElement(IncomingCallNotification$k, { key: incomingCall.id, callerName: incomingCall.callerInfo.displayName, onAcceptWithAudio: () => onAcceptCall(incomingCall.id), onAcceptWithVideo: () => onAcceptCall(incomingCall.id, true), onReject: () => onRejectCall(incomingCall.id), onDismiss: () => onRejectCall(incomingCall.id), styles: styles, strings: strings, acceptOptions: { showAcceptWithVideo: incomingCall.videoAvailable } }));
20109
+ })));
20110
+ };
20111
+
20035
20112
  // Copyright (c) Microsoft Corporation.
20036
20113
  // Licensed under the MIT License.
20037
20114
  /**
@@ -22623,7 +22700,7 @@ const AttachmentDownloadErrorBar = (props) => {
22623
22700
  /**
22624
22701
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
22625
22702
  */
22626
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BNwd6bE2.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
22703
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-Br441vhG.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
22627
22704
  /**
22628
22705
  * @private
22629
22706
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -22631,7 +22708,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
22631
22708
  *
22632
22709
  /* @conditional-compile-remove(rich-text-editor-composite-support)
22633
22710
  */
22634
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BNwd6bE2.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22711
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-Br441vhG.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22635
22712
  /**
22636
22713
  * @private
22637
22714
  */
@@ -22639,7 +22716,7 @@ const SendBoxPicker = (props) => {
22639
22716
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22640
22717
  const { richTextEditorOptions } = props;
22641
22718
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22642
- const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } = richTextEditorOptions || {};
22719
+ const { onPaste, onInsertInlineImage, inlineImages, onCancelInlineImageUpload } = richTextEditorOptions || {};
22643
22720
  const sendBoxProps = usePropsFor$2(SendBox);
22644
22721
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22645
22722
  const isRichTextEditorEnabled = React.useMemo(() => {
@@ -22654,9 +22731,9 @@ const SendBoxPicker = (props) => {
22654
22731
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22655
22732
  onPaste: onPaste,
22656
22733
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22657
- onUploadInlineImage: onUploadInlineImage,
22734
+ onInsertInlineImage: onInsertInlineImage,
22658
22735
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22659
- imageUploadsInProgress: imageUploadsInProgress,
22736
+ inlineImages: inlineImages,
22660
22737
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22661
22738
  onCancelInlineImageUpload: onCancelInlineImageUpload })))));
22662
22739
  }
@@ -22709,41 +22786,25 @@ const getInlineImageData = (image) => __awaiter$E(void 0, void 0, void 0, functi
22709
22786
  /**
22710
22787
  * @internal
22711
22788
  */
22712
- const removeImageTags = (event) => {
22713
- event.content.querySelectorAll('img').forEach((image) => {
22714
- // If the image is the only child of its parent, remove all the parents of this img element.
22715
- let parentNode = image.parentElement;
22716
- let currentNode = image;
22717
- while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
22718
- currentNode = parentNode;
22719
- parentNode = parentNode.parentElement;
22720
- }
22721
- currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
22722
- });
22723
- };
22724
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
22725
- /**
22726
- * @internal
22727
- */
22728
- const getEditBoxMessagesImageUploadsInProgress = (editBoxInlineImageUploads) => {
22789
+ const getEditBoxMessagesInlineImages = (editBoxInlineImageUploads) => {
22729
22790
  if (!editBoxInlineImageUploads) {
22730
22791
  return;
22731
22792
  }
22732
22793
  const messageIds = Object.keys(editBoxInlineImageUploads || {});
22733
- const messagesImageUploadsInProgress = {};
22794
+ const messagesInlineImages = {};
22734
22795
  messageIds.map((messageId) => {
22735
22796
  const messageUploads = editBoxInlineImageUploads[messageId].map((upload) => {
22736
22797
  return upload.metadata;
22737
22798
  });
22738
- messagesImageUploadsInProgress[messageId] = messageUploads;
22799
+ messagesInlineImages[messageId] = messageUploads;
22739
22800
  });
22740
- return messagesImageUploadsInProgress;
22801
+ return messagesInlineImages;
22741
22802
  };
22742
22803
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22743
22804
  /**
22744
22805
  * @internal
22745
22806
  */
22746
- const getSendBoxImageUploadsInProgress = (sendBoxInlineImageUploads) => {
22807
+ const getSendBoxInlineImages = (sendBoxInlineImageUploads) => {
22747
22808
  var _a;
22748
22809
  if (!sendBoxInlineImageUploads) {
22749
22810
  return;
@@ -22828,7 +22889,7 @@ const generateUploadTask = (image, fileName, messageId, inlineImageUploadActionH
22828
22889
  /**
22829
22890
  * @internal
22830
22891
  */
22831
- const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22892
+ const onInsertInlineImageForEditBox = (image, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22832
22893
  const uploadTask = yield generateUploadTask(image, fileName, messageId, handleEditBoxInlineImageUploadAction);
22833
22894
  if (!uploadTask) {
22834
22895
  return;
@@ -22844,7 +22905,7 @@ const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, hand
22844
22905
  /**
22845
22906
  * @internal
22846
22907
  */
22847
- const onUploadInlineImageForSendBox = (image, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22908
+ const onInsertInlineImageForSendBox = (image, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22848
22909
  const uploadTask = yield generateUploadTask(image, fileName, SEND_BOX_UPLOADS_KEY_VALUE, handleSendBoxInlineImageUploadAction);
22849
22910
  if (!uploadTask) {
22850
22911
  return;
@@ -23302,11 +23363,11 @@ const ChatScreen = (props) => {
23302
23363
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23303
23364
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23304
23365
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23305
- onUploadInlineImage: (imageUrl, imageFileName, messageId) => {
23306
- onUploadInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction, localeStrings.chat);
23366
+ onInsertInlineImage: (imageUrl, imageFileName, messageId) => {
23367
+ onInsertInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction, localeStrings.chat);
23307
23368
  },
23308
23369
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23309
- messagesImageUploadsInProgress: getEditBoxMessagesImageUploadsInProgress(editBoxInlineImageUploads),
23370
+ messagesInlineImages: getEditBoxMessagesInlineImages(editBoxInlineImageUploads),
23310
23371
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23311
23372
  onCancelInlineImageUpload: (imageId, messageId) => {
23312
23373
  onCancelInlineImageUploadHandlerForEditBox(imageId, messageId, editBoxInlineImageUploads, adapter, handleEditBoxInlineImageUploadAction);
@@ -23323,12 +23384,11 @@ const ChatScreen = (props) => {
23323
23384
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23324
23385
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23325
23386
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23326
- onUploadInlineImage: (imageUrl, imageFileName) => {
23327
- onUploadInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction, localeStrings.chat);
23387
+ onInsertInlineImage: (imageUrl, imageFileName) => {
23388
+ onInsertInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction, localeStrings.chat);
23328
23389
  },
23329
- // onUploadInlineImageForSendBox,
23330
23390
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23331
- imageUploadsInProgress: getSendBoxImageUploadsInProgress(sendBoxInlineImageUploads),
23391
+ inlineImages: getSendBoxInlineImages(sendBoxInlineImageUploads),
23332
23392
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23333
23393
  onCancelInlineImageUpload: (imageId) => {
23334
23394
  onCancelInlineImageUploadHandlerForSendBox(imageId, sendBoxInlineImageUploads, adapter, handleSendBoxInlineImageUploadAction);
@@ -23588,6 +23648,22 @@ const getMeetingConferencePhones = (state, props) => {
23588
23648
  var _a, _b;
23589
23649
  return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.meetingConference) === null || _b === void 0 ? void 0 : _b.conferencePhones;
23590
23650
  };
23651
+ /**
23652
+ * selector for retrieving the incoming calls from state
23653
+ * @returns the incoming calls in the call client state
23654
+ * @private
23655
+ */
23656
+ const getIncomingCalls = (state) => {
23657
+ return Object.values(state.incomingCalls);
23658
+ };
23659
+ /**
23660
+ * selector for retrieving the incoming calls that have been removed from state
23661
+ * @returns the incoming calls that have been removed
23662
+ * @private
23663
+ */
23664
+ const getRemovedIncomingCalls = (state) => {
23665
+ return Object.values(state.incomingCallsEnded);
23666
+ };
23591
23667
 
23592
23668
  // Copyright (c) Microsoft Corporation.
23593
23669
  // Licensed under the MIT License.
@@ -23695,6 +23771,17 @@ const maskDisplayNameWithRole = (displayName, localUserRole, participantRole, is
23695
23771
  }
23696
23772
  return maskedDisplayName;
23697
23773
  };
23774
+ /**
23775
+ * Helper to create a local video stream from the selected camera.
23776
+ * @private
23777
+ */
23778
+ const createLocalVideoStream = (callClient) => __awaiter$C(void 0, void 0, void 0, function* () {
23779
+ const camera = yield (callClient === null || callClient === void 0 ? void 0 : callClient.getState().deviceManager.selectedCamera);
23780
+ if (camera) {
23781
+ return new communicationCalling.LocalVideoStream(camera);
23782
+ }
23783
+ return undefined;
23784
+ });
23698
23785
 
23699
23786
  // Copyright (c) Microsoft Corporation.
23700
23787
  // Licensed under the MIT License.
@@ -24320,6 +24407,21 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
24320
24407
  }), onRemoveParticipant: (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
24321
24408
  const participant = _toCommunicationIdentifier(userId);
24322
24409
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
24410
+ }),
24411
+ /* @conditional-compile-remove(one-to-n-calling) */
24412
+ onAcceptCall: (incomingCallId, useVideo) => __awaiter$A(void 0, void 0, void 0, function* () {
24413
+ const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
24414
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24415
+ if (incomingCall) {
24416
+ yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
24417
+ }
24418
+ }),
24419
+ /* @conditional-compile-remove(one-to-n-calling) */
24420
+ onRejectCall: (incomingCallId) => __awaiter$A(void 0, void 0, void 0, function* () {
24421
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24422
+ if (incomingCall) {
24423
+ yield incomingCall.reject();
24424
+ }
24323
24425
  }) });
24324
24426
  });
24325
24427
 
@@ -24382,6 +24484,21 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
24382
24484
  }
24383
24485
  /* @conditional-compile-remove(teams-identity-support) */
24384
24486
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
24487
+ }),
24488
+ /* @conditional-compile-remove(one-to-n-calling) */
24489
+ onAcceptCall: (incomingCallId, useVideo) => __awaiter$z(void 0, void 0, void 0, function* () {
24490
+ const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
24491
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24492
+ if (incomingCall) {
24493
+ yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
24494
+ }
24495
+ }),
24496
+ /* @conditional-compile-remove(one-to-n-calling) */
24497
+ onRejectCall: (incomingCallId) => __awaiter$z(void 0, void 0, void 0, function* () {
24498
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24499
+ if (incomingCall) {
24500
+ yield incomingCall.reject();
24501
+ }
24385
24502
  }) });
24386
24503
  });
24387
24504
 
@@ -24548,6 +24665,36 @@ const appendActiveErrorIfDefined$1 = (activeErrorMessages, latestErrors, target,
24548
24665
  });
24549
24666
  };
24550
24667
 
24668
+ // Copyright (c) Microsoft Corporation.
24669
+ // Licensed under the MIT License.
24670
+ /**
24671
+ * Select the active and removed incoming calls from the stateful client for the IncomingCallNotificationStackComponent.
24672
+ * @beta
24673
+ */
24674
+ const incomingCallStackSelector = reselect.createSelector([getIncomingCalls, getRemovedIncomingCalls, getDeviceManager$1], (incomingCalls, removedIncomingCalls, deviceManager) => {
24675
+ // Convert incoming call state to active incoming call
24676
+ const componentIncomingCalls = incomingCalls.map((incomingCall) => {
24677
+ return Object.assign(Object.assign({}, incomingCall), { callerInfo: {
24678
+ displayName: incomingCall.callerInfo.displayName || 'Unknown Caller'
24679
+ }, videoAvailable: (incomingCall.callerInfo.identifier && communicationCommon.isPhoneNumberIdentifier(incomingCall.callerInfo.identifier)) ||
24680
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.cameras.length) === 0
24681
+ ? false
24682
+ : true });
24683
+ });
24684
+ const componentRemovedIncomingCalls = removedIncomingCalls.map((incomingCall) => {
24685
+ return Object.assign(Object.assign({}, incomingCall), { callerInfo: {
24686
+ displayName: incomingCall.callerInfo.displayName || 'Unknown Caller'
24687
+ }, videoAvailable: (incomingCall.callerInfo.identifier && communicationCommon.isPhoneNumberIdentifier(incomingCall.callerInfo.identifier)) ||
24688
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.cameras.length) === 0
24689
+ ? false
24690
+ : true });
24691
+ });
24692
+ return {
24693
+ activeIncomingCalls: componentIncomingCalls,
24694
+ removedIncomingCalls: componentRemovedIncomingCalls
24695
+ };
24696
+ });
24697
+
24551
24698
  // Copyright (c) Microsoft Corporation.
24552
24699
  // Licensed under the MIT License.
24553
24700
  /**
@@ -24716,7 +24863,9 @@ class ProxyDeviceManager {
24716
24863
  });
24717
24864
  this.audioDevicesUpdated = () => __awaiter$y(this, void 0, void 0, function* () {
24718
24865
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
24719
- this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24866
+ if (this._deviceManager.isSpeakerSelectionAvailable) {
24867
+ this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24868
+ }
24720
24869
  });
24721
24870
  this.selectedMicrophoneChanged = () => {
24722
24871
  this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);
@@ -25014,7 +25163,6 @@ function convertSdkCallToDeclarativeCall(call) {
25014
25163
  },
25015
25164
  /* @conditional-compile-remove(hide-attendee-name) */
25016
25165
  hideAttendeeNames,
25017
- /* @conditional-compile-remove(meeting-id) */
25018
25166
  info: callInfo,
25019
25167
  /* @conditional-compile-remove(teams-meeting-conference) */
25020
25168
  meetingConference: { conferencePhones: [] }
@@ -25024,12 +25172,27 @@ function convertSdkCallToDeclarativeCall(call) {
25024
25172
  * @private
25025
25173
  */
25026
25174
  function convertSdkIncomingCallToDeclarativeIncomingCall(call) {
25027
- return {
25028
- id: call.id,
25029
- callerInfo: call.callerInfo,
25030
- startTime: new Date(),
25031
- endTime: undefined
25032
- };
25175
+ /* @conditional-compile-remove(one-to-n-calling) */
25176
+ if (_isTeamsIncomingCall(call)) {
25177
+ const newInfo = Object.assign(Object.assign({}, call.info), { kind: call.kind });
25178
+ return {
25179
+ id: call.id,
25180
+ info: newInfo,
25181
+ callerInfo: call.callerInfo,
25182
+ startTime: new Date(),
25183
+ endTime: undefined
25184
+ };
25185
+ }
25186
+ else {
25187
+ const newInfo = Object.assign(Object.assign({}, call.info), { kind: call.kind });
25188
+ return {
25189
+ id: call.id,
25190
+ info: newInfo,
25191
+ callerInfo: call.callerInfo,
25192
+ startTime: new Date(),
25193
+ endTime: undefined
25194
+ };
25195
+ }
25033
25196
  }
25034
25197
  /**
25035
25198
  * @private
@@ -25312,7 +25475,6 @@ let CallContext$2 = class CallContext {
25312
25475
  // We don't update the startTime and endTime if we are updating an existing active call
25313
25476
  existingCall.captionsFeature.currentSpokenLanguage = call.captionsFeature.currentSpokenLanguage;
25314
25477
  existingCall.captionsFeature.currentCaptionLanguage = call.captionsFeature.currentCaptionLanguage;
25315
- /* @conditional-compile-remove(meeting-id) */
25316
25478
  existingCall.info = call.info;
25317
25479
  /* @conditional-compile-remove(teams-meeting-conference) */
25318
25480
  existingCall.meetingConference = call.meetingConference;
@@ -25321,6 +25483,12 @@ let CallContext$2 = class CallContext {
25321
25483
  draft.calls[latestCallId] = call;
25322
25484
  }
25323
25485
  });
25486
+ /**
25487
+ * Remove the incoming call that matches the call if there is one
25488
+ */
25489
+ if (this._state.incomingCalls[call.id]) {
25490
+ this.removeIncomingCall(call.id);
25491
+ }
25324
25492
  }
25325
25493
  removeCall(callId) {
25326
25494
  this.modifyState((draft) => {
@@ -27871,12 +28039,11 @@ class ProxyCallAgentCommon {
27871
28039
  }
27872
28040
  if (_isTeamsIncomingCall(incomingCall)) {
27873
28041
  this._incomingCalls.set(incomingCall.id, teamsIncomingCallDeclaratify(incomingCall, this._context));
27874
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27875
28042
  }
27876
28043
  else {
27877
28044
  this._incomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
27878
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27879
28045
  }
28046
+ this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27880
28047
  };
27881
28048
  this.addCall = (call) => {
27882
28049
  var _a;
@@ -29691,6 +29858,10 @@ const getSelector = (component) => {
29691
29858
  if (component === NotificationStack) {
29692
29859
  return findConditionalCompiledSelector(component);
29693
29860
  }
29861
+ /* @conditional-compile-remove(one-to-n-calling) */
29862
+ if (component === IncomingCallStack) {
29863
+ return findConditionalCompiledSelector(component);
29864
+ }
29694
29865
  return findSelector(component);
29695
29866
  };
29696
29867
  const findSelector = (component) => {
@@ -29724,7 +29895,7 @@ const findSelector = (component) => {
29724
29895
  }
29725
29896
  return undefined;
29726
29897
  };
29727
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(notifications) */
29898
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(notifications) */ /* @conditional-compile-remove(one-to-n-calling) */
29728
29899
  const findConditionalCompiledSelector = (component) => {
29729
29900
  switch (component) {
29730
29901
  /* @conditional-compile-remove(PSTN-calls) */
@@ -29735,6 +29906,10 @@ const findConditionalCompiledSelector = (component) => {
29735
29906
  case NotificationStack:
29736
29907
  /* @conditional-compile-remove(notifications) */
29737
29908
  return notificationStackSelector;
29909
+ /* @conditional-compile-remove(one-to-n-calling) */
29910
+ case IncomingCallStack:
29911
+ /* @conditional-compile-remove(one-to-n-calling) */
29912
+ return incomingCallStackSelector;
29738
29913
  }
29739
29914
  };
29740
29915
 
@@ -29897,7 +30072,6 @@ const ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;
29897
30072
  const REMOTE_PSTN_USER_HUNG_UP = 560000;
29898
30073
  const REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];
29899
30074
  const CALL_REJECTED_CODE$1 = 603;
29900
- /* @conditional-compile-remove(meeting-id) */
29901
30075
  const INVALID_MEETING_IDENTIFIER = 5751;
29902
30076
  /** @private */
29903
30077
  const ROOM_NOT_FOUND_SUB_CODE = 5732;
@@ -30091,7 +30265,6 @@ const getEndedCallPageProps = (locale, endedCall) => {
30091
30265
  }
30092
30266
  break;
30093
30267
  }
30094
- /* @conditional-compile-remove(meeting-id) */
30095
30268
  switch ((_f = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _f === void 0 ? void 0 : _f.subCode) {
30096
30269
  case INVALID_MEETING_IDENTIFIER:
30097
30270
  if (locale.strings.call.callRejectedTitle) {
@@ -33595,25 +33768,23 @@ const SidePane = (props) => {
33595
33768
  closePane
33596
33769
  ]);
33597
33770
  const HeaderToRender = props.mobileView && (overrideSidePaneId === 'chat' || (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? LegacyHeader : Header();
33598
- const ContentRender = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? undefined : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.contentRenderer;
33599
- const OverrideContentRender = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
33771
+ const ContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? undefined : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.contentRenderer;
33772
+ const OverrideContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
33600
33773
  ? overrideSidePane.renderer.contentRenderer
33601
33774
  : undefined;
33602
- if (!ContentRender && !OverrideContentRender) {
33775
+ if (!ContentRenderer && !OverrideContentRenderer) {
33603
33776
  return React.createElement(EmptyElement, null);
33604
33777
  }
33605
33778
  return (React.createElement(react.Stack, { verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView ? {} : sidePaneTokens },
33606
33779
  HeaderToRender,
33607
33780
  React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
33608
33781
  React.createElement(react.Stack, { verticalFill: true, styles: scrollableContainer },
33609
- ContentRender && (React.createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
33610
- React.createElement(react.Stack, { styles: containerContextStyles },
33611
- React.createElement(ContentRender, null)))),
33612
- OverrideContentRender && (React.createElement(react.Stack.Item, { verticalFill: true, styles: !(overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) && (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
33782
+ ContentRenderer && (React.createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
33783
+ React.createElement(react.Stack, { styles: containerContextStyles }, ContentRenderer === null || ContentRenderer === void 0 ? void 0 : ContentRenderer()))),
33784
+ OverrideContentRenderer && (React.createElement(react.Stack.Item, { verticalFill: true, styles: !(overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) && (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
33613
33785
  ? hiddenStyles
33614
33786
  : scrollableContainerContents },
33615
- React.createElement(react.Stack, { styles: containerContextStyles },
33616
- React.createElement(OverrideContentRender, null))))))));
33787
+ React.createElement(react.Stack, { styles: containerContextStyles }, OverrideContentRenderer === null || OverrideContentRenderer === void 0 ? void 0 : OverrideContentRenderer())))))));
33617
33788
  };
33618
33789
  // eslint-disable-next-line @typescript-eslint/no-empty-function
33619
33790
  const noop = () => { };
@@ -34211,17 +34382,6 @@ const usePeoplePane = (props) => {
34211
34382
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
34212
34383
  const sidePaneHeaderMenuProps = React.useMemo(() => {
34213
34384
  const menuItems = [];
34214
- if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
34215
- menuItems.push({
34216
- key: 'stopAllSpotlightKey',
34217
- text: localeStrings.stopAllSpotlightMenuLabel,
34218
- iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },
34219
- onClick: () => {
34220
- onStopAllSpotlight();
34221
- },
34222
- ariaLabel: localeStrings.stopAllSpotlightMenuLabel
34223
- });
34224
- }
34225
34385
  /* @conditional-compile-remove(soft-mute) */
34226
34386
  if (onMuteAllRemoteParticipants && remoteParticipants) {
34227
34387
  let isAllMuted = true;
@@ -34248,6 +34408,17 @@ const usePeoplePane = (props) => {
34248
34408
  disabled: isAllMuted
34249
34409
  });
34250
34410
  }
34411
+ if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
34412
+ menuItems.push({
34413
+ key: 'stopAllSpotlightKey',
34414
+ text: localeStrings.stopAllSpotlightMenuLabel,
34415
+ iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },
34416
+ onClick: () => {
34417
+ onStopAllSpotlight();
34418
+ },
34419
+ ariaLabel: localeStrings.stopAllSpotlightMenuLabel
34420
+ });
34421
+ }
34251
34422
  return {
34252
34423
  items: menuItems
34253
34424
  };
@@ -34257,17 +34428,35 @@ const usePeoplePane = (props) => {
34257
34428
  localeStrings.stopAllSpotlightMenuLabel,
34258
34429
  /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,
34259
34430
  /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,
34260
- /* @conditional-compile-remove(soft-mute) */ remoteParticipants,
34261
- /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt
34431
+ /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
34432
+ /* @conditional-compile-remove(soft-mute) */ remoteParticipants
34262
34433
  ]);
34263
34434
  const onRenderHeader = React.useCallback(() => (React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false })), [mobileView, closePane, localeStrings]);
34264
34435
  const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
34265
- var _a;
34266
34436
  let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participantId);
34267
- const _defaultMenuItems = defaultMenuItems !== null && defaultMenuItems !== void 0 ? defaultMenuItems : [];
34437
+ const _defaultMenuItems = [];
34268
34438
  const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.includes(participantId);
34269
34439
  const isMe = myUserId === participantId;
34270
34440
  isPinned = isSpotlighted ? false : isPinned;
34441
+ /* @conditional-compile-remove(soft-mute) */
34442
+ if (onMuteParticipant && !isMe && remoteParticipants && remoteParticipants[participantId]) {
34443
+ const participant = remoteParticipants[participantId];
34444
+ const isMuted = participant.isMuted;
34445
+ _defaultMenuItems.push({
34446
+ key: 'mute',
34447
+ text: 'Mute',
34448
+ iconProps: {
34449
+ iconName: 'ContextualMenuMicMutedIcon',
34450
+ styles: { root: { lineHeight: 0 } }
34451
+ },
34452
+ onClick: () => {
34453
+ onMuteParticipant(participantId);
34454
+ },
34455
+ 'data-ui-id': 'participant-item-mute-participant',
34456
+ ariaLabel: 'Mute',
34457
+ disabled: isMuted
34458
+ });
34459
+ }
34271
34460
  if (isSpotlighted) {
34272
34461
  const stopSpotlightMenuText = isMe
34273
34462
  ? localeStrings.stopSpotlightOnSelfMenuLabel
@@ -34323,24 +34512,6 @@ const usePeoplePane = (props) => {
34323
34512
  });
34324
34513
  }
34325
34514
  }
34326
- /* @conditional-compile-remove(soft-mute) */
34327
- if (onMuteParticipant && !isMe) {
34328
- const isMuted = remoteParticipants && ((_a = remoteParticipants[participantId]) === null || _a === void 0 ? void 0 : _a.isMuted);
34329
- _defaultMenuItems.push({
34330
- key: 'mute',
34331
- text: 'Mute',
34332
- iconProps: {
34333
- iconName: 'ContextualMenuMicMutedIcon',
34334
- styles: { root: { lineHeight: 0 } }
34335
- },
34336
- onClick: () => {
34337
- onMuteParticipant(participantId);
34338
- },
34339
- 'data-ui-id': 'participant-item-mute-participant',
34340
- ariaLabel: 'Mute',
34341
- disabled: isMuted
34342
- });
34343
- }
34344
34515
  if (!isMe && isPinned !== undefined) {
34345
34516
  if (isPinned && onUnpinParticipant && (localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.unpinParticipantMenuLabel)) {
34346
34517
  _defaultMenuItems.push({
@@ -34376,6 +34547,9 @@ const usePeoplePane = (props) => {
34376
34547
  });
34377
34548
  }
34378
34549
  }
34550
+ if (defaultMenuItems) {
34551
+ _defaultMenuItems.push(...defaultMenuItems);
34552
+ }
34379
34553
  return onFetchParticipantMenuItems
34380
34554
  ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)
34381
34555
  : _defaultMenuItems;
@@ -34565,7 +34739,7 @@ const MeetingPhoneInfoPaneContent = (props) => {
34565
34739
  React.createElement(react.Stack.Item, null,
34566
34740
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
34567
34741
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
34568
- React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, formatPhoneNumber(phoneNumber.phoneNumber)),
34742
+ React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, _formatPhoneNumber(phoneNumber.phoneNumber, true)),
34569
34743
  React.createElement(react.Text, { className: phoneInfoTextStyle },
34570
34744
  ' ',
34571
34745
  phoneNumber.isTollFree
@@ -35979,8 +36153,8 @@ const NetworkReconnectTile = (props) => {
35979
36153
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
35980
36154
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, meetingCoordinates.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
35981
36155
  React.createElement(react.Text, { className: phoneInfoTextStyle },
35982
- props.isMobile && (React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, formatPhoneNumber(phoneNumber.phoneNumber))),
35983
- !props.isMobile && (React.createElement(react.Text, { className: phoneInfoTextStyle }, formatPhoneNumber(phoneNumber.phoneNumber))),
36156
+ props.isMobile && (React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, _formatPhoneNumber(phoneNumber.phoneNumber, true))),
36157
+ !props.isMobile && (React.createElement(react.Text, { className: phoneInfoTextStyle }, _formatPhoneNumber(phoneNumber.phoneNumber, true))),
35984
36158
  ' ',
35985
36159
  phoneNumber.isTollFree
35986
36160
  ? localeStrings.meetingConferencePhoneInfoModalTollFree
@@ -36172,7 +36346,7 @@ const DtmfDialpadPage = (props) => {
36172
36346
  */
36173
36347
  const CallPage = (props) => {
36174
36348
  var _a, _b;
36175
- const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false,
36349
+ const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants = [], setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false,
36176
36350
  /* @conditional-compile-remove(notifications) */
36177
36351
  latestNotifications,
36178
36352
  /* @conditional-compile-remove(notifications) */
@@ -36191,6 +36365,7 @@ const CallPage = (props) => {
36191
36365
  const renderDtmfDialerFromStart = showDtmfDialer(callees, remoteParticipantsConnected);
36192
36366
  const [dtmfDialerPresent, setDtmfDialerPresent] = React.useState(renderDtmfDialerFromStart && disableAutoShowDtmfDialer);
36193
36367
  const strings = useLocale().strings.call;
36368
+ const pinnedParticipantsChecked = React.useMemo(() => pinnedParticipants.filter((pinnedParticipant) => remoteParticipantsConnected.find((remoteParticipant) => toFlatCommunicationIdentifier(remoteParticipant.identifier) === pinnedParticipant)), [pinnedParticipants, remoteParticipantsConnected]);
36194
36369
  // Reduce the controls shown when mobile view is enabled.
36195
36370
  const callControlOptions = mobileView ? reduceCallControlsForMobile(options === null || options === void 0 ? void 0 : options.callControls) : options === null || options === void 0 ? void 0 : options.callControls;
36196
36371
  const drawerMenuHostId = reactHooks.useId('drawerMenuHost');
@@ -36202,7 +36377,7 @@ const CallPage = (props) => {
36202
36377
  return (React.createElement(DtmfDialpadPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, compositeAudioContext: compositeAudioContext }));
36203
36378
  }
36204
36379
  else {
36205
- return (React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, localVideoTileOptions: options === null || options === void 0 ? void 0 : options.localVideoTile, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, userSetGalleryLayout: galleryLayout, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, videoTilesOptions: options === null || options === void 0 ? void 0 : options.videoTilesOptions })));
36380
+ return (React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, localVideoTileOptions: options === null || options === void 0 ? void 0 : options.localVideoTile, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, userSetGalleryLayout: galleryLayout, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, videoTilesOptions: options === null || options === void 0 ? void 0 : options.videoTilesOptions })));
36206
36381
  }
36207
36382
  };
36208
36383
  return (React.createElement(React.Fragment, null,
@@ -36218,7 +36393,7 @@ const CallPage = (props) => {
36218
36393
  /* @conditional-compile-remove(notifications) */
36219
36394
  latestNotifications: latestNotifications, onDismissError: props.onDismissError,
36220
36395
  /* @conditional-compile-remove(notifications) */
36221
- onDismissNotification: onDismissNotification, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
36396
+ onDismissNotification: onDismissNotification, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipantsChecked, setPinnedParticipants: setPinnedParticipants }),
36222
36397
  React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
36223
36398
  };
36224
36399
  /**
@@ -39172,9 +39347,7 @@ class AzureCommunicationCallAdapter {
39172
39347
  ? locatorOrTargetCalless
39173
39348
  : undefined;
39174
39349
  this.deviceManager = deviceManager;
39175
- const isTeamsMeeting = this.locator
39176
- ? 'meetingLink' in this.locator || /* @conditional-compile-remove(meeting-id) */ 'meetingId' in this.locator
39177
- : false;
39350
+ const isTeamsMeeting = this.locator ? 'meetingLink' in this.locator || 'meetingId' in this.locator : false;
39178
39351
  let isTeamsCall;
39179
39352
  (_a = this.targetCallees) === null || _a === void 0 ? void 0 : _a.forEach((callee) => {
39180
39353
  if (communicationCommon.isMicrosoftTeamsUserIdentifier(callee) || communicationCommon.isMicrosoftTeamsAppIdentifier(callee)) {
@@ -39410,7 +39583,6 @@ class AzureCommunicationCallAdapter {
39410
39583
  }
39411
39584
  _joinCall(audioOptions, videoOptions) {
39412
39585
  const isTeamsMeeting = this.locator ? 'meetingLink' in this.locator : false;
39413
- /* @conditional-compile-remove(meeting-id) */
39414
39586
  const isTeamsMeetingId = this.locator ? 'meetingId' in this.locator : false;
39415
39587
  const isRoomsCall = this.locator ? 'roomId' in this.locator : false;
39416
39588
  /* @conditional-compile-remove(teams-identity-support) */
@@ -39421,7 +39593,6 @@ class AzureCommunicationCallAdapter {
39421
39593
  videoOptions
39422
39594
  });
39423
39595
  }
39424
- /* @conditional-compile-remove(meeting-id) */
39425
39596
  if (isTeamsMeetingId) {
39426
39597
  return this.callAgent.join(this.locator, {
39427
39598
  audioOptions,
@@ -39436,7 +39607,6 @@ class AzureCommunicationCallAdapter {
39436
39607
  videoOptions
39437
39608
  });
39438
39609
  }
39439
- /* @conditional-compile-remove(meeting-id) */
39440
39610
  if (isTeamsMeetingId) {
39441
39611
  return this.callAgent.join(this.locator, {
39442
39612
  audioOptions,
@@ -41960,22 +42130,18 @@ class CallAndChatProvider {
41960
42130
  * @private
41961
42131
  */
41962
42132
  class TeamsMeetingLinkProvider {
41963
- constructor(locator,
41964
- /** @conditional-compile-remove(meeting-id) */ callAdapterPromise) {
42133
+ constructor(locator, callAdapterPromise) {
41965
42134
  this.locator = locator;
41966
- /** @conditional-compile-remove(meeting-id) */
41967
42135
  this.callAdapterPromise = callAdapterPromise;
41968
42136
  }
41969
42137
  isCallInfoRequired() {
41970
42138
  return true;
41971
42139
  }
41972
42140
  getChatThread() {
41973
- /** @conditional-compile-remove(meeting-id) */
41974
42141
  throw new Error('Chat thread ID should be retrieved from call.callInfo using method getChatThreadPromise');
41975
42142
  }
41976
42143
  getChatThreadPromise() {
41977
42144
  return __awaiter$4(this, void 0, void 0, function* () {
41978
- /** @conditional-compile-remove(meeting-id) */
41979
42145
  {
41980
42146
  // Wait for the call to be connected and get the chat thread ID from `call.callInfo`.
41981
42147
  const chatThreadPromise = new Promise((resolve) => {
@@ -41998,7 +42164,6 @@ class TeamsMeetingLinkProvider {
41998
42164
  });
41999
42165
  }
42000
42166
  }
42001
- /** @conditional-compile-remove(meeting-id) */
42002
42167
  /**
42003
42168
  * Arguments for use in {@link createAzureCommunicationCallWithChatAdapter} to join a Teams meeting using meeting id.
42004
42169
  *
@@ -42211,9 +42376,8 @@ const isTeamsMeetingLocator = (locator) => {
42211
42376
  };
42212
42377
  const _createChatThreadAdapterInner = (locator, adapter) => {
42213
42378
  if ('meetingLink' in locator) {
42214
- return new TeamsMeetingLinkProvider(locator, /** @conditional-compile-remove(meeting-id) */ adapter);
42379
+ return new TeamsMeetingLinkProvider(locator, adapter);
42215
42380
  }
42216
- /** @conditional-compile-remove(meeting-id) */
42217
42381
  if ('meetingId' in locator) {
42218
42382
  return new TeamsMeetingIdProvider(locator, adapter);
42219
42383
  }
@@ -42814,6 +42978,7 @@ exports.GridLayout = GridLayout;
42814
42978
  exports.HoldButton = HoldButton;
42815
42979
  exports.ImageOverlay = ImageOverlay;
42816
42980
  exports.IncomingCallNotification = IncomingCallNotification$k;
42981
+ exports.IncomingCallStack = IncomingCallStack;
42817
42982
  exports.InputBoxButton = InputBoxButton;
42818
42983
  exports.LocalizationProvider = LocalizationProvider$1;
42819
42984
  exports.MAXIMUM_LENGTH_OF_MESSAGE = MAXIMUM_LENGTH_OF_MESSAGE;
@@ -42902,4 +43067,4 @@ exports.useTeamsCall = useTeamsCall;
42902
43067
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
42903
43068
  exports.useTeamsCallAgent = useTeamsCallAgent;
42904
43069
  exports.useTheme = useTheme;
42905
- //# sourceMappingURL=index-DdAkrosV.js.map
43070
+ //# sourceMappingURL=index-DznlW8XT.js.map