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

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 (133) hide show
  1. package/dist/communication-react.d.ts +200 -20
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js → ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js} +14 -15
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNwd6bE2.js → RichTextSendBoxWrapper-OHSjE5aJ.js} +2 -3
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNwd6bE2.js.map → RichTextSendBoxWrapper-OHSjE5aJ.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DdAkrosV.js → index-Dl3wPPJe.js} +386 -218
  7. package/dist/dist-cjs/communication-react/index-Dl3wPPJe.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 -0
  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 +25 -0
  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/RichTextEditor.d.ts +1 -1
  94. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +3 -3
  95. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  96. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +1 -1
  97. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +2 -2
  98. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  99. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +13 -11
  100. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +14 -14
  101. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +15 -15
  103. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  104. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
  105. package/dist/dist-esm/react-components/src/components/index.js +3 -0
  106. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
  108. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +1 -1
  109. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -3
  110. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +11 -11
  111. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  112. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.d.ts +2 -2
  113. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js +6 -2
  114. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  115. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +5 -2
  116. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +3 -3
  117. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  118. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +7 -9
  119. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  120. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +36 -33
  121. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  122. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +9 -8
  123. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  124. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +4 -10
  125. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +7 -23
  126. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  127. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +2 -2
  128. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  129. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +3 -3
  130. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  131. package/package.json +1 -2
  132. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js.map +0 -1
  133. 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-202407260014';
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) */
@@ -6867,9 +6884,17 @@ class CopyPastePlugin {
6867
6884
  }
6868
6885
  dispose() { }
6869
6886
  onPluginEvent(event) {
6887
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
6888
+ // If onInsertInlineImage is not provided, we should remove the image tags before calling the onPaste callback
6889
+ if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && !this.onInsertInlineImage) {
6890
+ removeImageTags({ content: event.fragment });
6891
+ }
6870
6892
  handleBeforePasteEvent(event, /* @conditional-compile-remove(rich-text-editor-image-upload) */ this.onPaste);
6871
6893
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
6872
- handleInlineImage(event, this.onUploadInlineImage);
6894
+ // We should handle the onInsertInlineImage after the onPaste callback in case Contosos want to modify the image tags, especially the src attribute.
6895
+ if (this.onInsertInlineImage) {
6896
+ handleInlineImage(event, this.onInsertInlineImage);
6897
+ }
6873
6898
  if (this.editor !== null && !this.editor.isDisposed()) {
6874
6899
  // scroll the editor to the correct position after pasting content
6875
6900
  scrollToBottomAfterContentPaste(event);
@@ -6894,18 +6919,18 @@ const handleBeforePasteEvent = (event,
6894
6919
  * @internal
6895
6920
  * Exported only for unit testing
6896
6921
  */
6897
- const handleInlineImage = (event, onUploadInlineImage) => {
6898
- if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onUploadInlineImage) {
6922
+ const handleInlineImage = (event, onInsertInlineImage) => {
6923
+ if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onInsertInlineImage) {
6899
6924
  event.fragment.querySelectorAll('img').forEach((image) => {
6900
6925
  const clipboardImage = event.clipboardData.image;
6901
6926
  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.
6927
+ // If the image src is an external url, call the onInsertInlineImage callback with the url.
6903
6928
  let imageUrl = image.src;
6904
6929
  if (image.src.startsWith('data:image/')) {
6905
6930
  const blobImage = _base64ToBlob(image.src);
6906
6931
  imageUrl = URL.createObjectURL(blobImage);
6907
6932
  }
6908
- onUploadInlineImage(imageUrl, fileName);
6933
+ onInsertInlineImage(imageUrl, fileName);
6909
6934
  image.src = imageUrl;
6910
6935
  image.alt = image.alt || 'image';
6911
6936
  });
@@ -7712,7 +7737,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7712
7737
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7713
7738
  onPaste,
7714
7739
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7715
- onUploadInlineImage } = props;
7740
+ onInsertInlineImage } = props;
7716
7741
  const editor = React.useRef(null);
7717
7742
  const editorDiv = React.useRef(null);
7718
7743
  const theme = useTheme();
@@ -7792,8 +7817,8 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7792
7817
  }, [onChange, onContentModelUpdate, updatePlugin]);
7793
7818
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7794
7819
  React.useEffect(() => {
7795
- copyPastePlugin.onUploadInlineImage = onUploadInlineImage;
7796
- }, [copyPastePlugin, onUploadInlineImage]);
7820
+ copyPastePlugin.onInsertInlineImage = onInsertInlineImage;
7821
+ }, [copyPastePlugin, onInsertInlineImage]);
7797
7822
  const keyboardInputPlugin = React.useMemo(() => {
7798
7823
  return new KeyboardInputPlugin();
7799
7824
  }, []);
@@ -8003,7 +8028,7 @@ const RichTextInputBoxComponent = (props) => {
8003
8028
  /* @conditional-compile-remove(file-sharing-acs) */
8004
8029
  hasAttachments, richTextEditorStyleProps, isHorizontalLayoutDisabled = false, autoFocus, onTyping,
8005
8030
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8006
- onUploadInlineImage } = props;
8031
+ onInsertInlineImage } = props;
8007
8032
  const theme = useTheme();
8008
8033
  // undefined is used to indicate that the rich text editor toolbar state wasn't changed yet
8009
8034
  const [showRichTextEditorFormatting, setShowRichTextEditorFormatting] = React.useState(undefined);
@@ -8078,7 +8103,7 @@ const RichTextInputBoxComponent = (props) => {
8078
8103
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8079
8104
  onPaste: props.onPaste,
8080
8105
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8081
- onUploadInlineImage: onUploadInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8106
+ onInsertInlineImage: onInsertInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8082
8107
  onRenderAttachmentUploads && onRenderAttachmentUploads()),
8083
8108
  actionButtons)));
8084
8109
  };
@@ -8174,9 +8199,9 @@ const RichTextSendBox = (props) => {
8174
8199
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8175
8200
  onPaste,
8176
8201
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8177
- onUploadInlineImage,
8202
+ onInsertInlineImage,
8178
8203
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8179
- imageUploadsInProgress,
8204
+ inlineImages,
8180
8205
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8181
8206
  onCancelInlineImageUpload } = props;
8182
8207
  const theme = useTheme();
@@ -8208,7 +8233,7 @@ const RichTextSendBox = (props) => {
8208
8233
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8209
8234
  cancelInlineImageUpload$1({
8210
8235
  imageSrcArray,
8211
- imageUploadsInProgress,
8236
+ inlineImages,
8212
8237
  messageId: undefined,
8213
8238
  editBoxOnCancelInlineImageUpload: undefined,
8214
8239
  sendBoxOnCancelInlineImageUpload: onCancelInlineImageUpload
@@ -8217,7 +8242,7 @@ const RichTextSendBox = (props) => {
8217
8242
  }, [
8218
8243
  setContent,
8219
8244
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ onCancelInlineImageUpload,
8220
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadsInProgress
8245
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ inlineImages
8221
8246
  ]);
8222
8247
  const hasContent = React.useMemo(() => {
8223
8248
  var _a;
@@ -8234,7 +8259,7 @@ const RichTextSendBox = (props) => {
8234
8259
  /* @conditional-compile-remove(file-sharing-acs) */
8235
8260
  setAttachmentUploadsPendingError(undefined);
8236
8261
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8237
- const hasIncompleteImageUploads = hasIncompleteAttachmentUploads(imageUploadsInProgress);
8262
+ const hasIncompleteImageUploads = hasIncompleteAttachmentUploads(inlineImages);
8238
8263
  /* @conditional-compile-remove(file-sharing-acs) */
8239
8264
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8240
8265
  if (
@@ -8258,7 +8283,7 @@ const RichTextSendBox = (props) => {
8258
8283
  // Message can be empty if there is a valid attachment upload
8259
8284
  if (hasContent ||
8260
8285
  /* @conditional-compile-remove(file-sharing-acs) */ isAttachmentUploadCompleted(attachments) ||
8261
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(imageUploadsInProgress)) {
8286
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(inlineImages)) {
8262
8287
  const sendMessage = (content) => {
8263
8288
  var _a, _b;
8264
8289
  onSendMessage(content,
@@ -8274,8 +8299,8 @@ const RichTextSendBox = (props) => {
8274
8299
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.focus();
8275
8300
  };
8276
8301
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8277
- if (isAttachmentUploadCompleted(imageUploadsInProgress)) {
8278
- insertImagesToContentString(contentValue, imageUploadsInProgress, (content) => {
8302
+ if (isAttachmentUploadCompleted(inlineImages)) {
8303
+ insertImagesToContentString(contentValue, inlineImages, (content) => {
8279
8304
  sendMessage(content);
8280
8305
  });
8281
8306
  return;
@@ -8288,7 +8313,7 @@ const RichTextSendBox = (props) => {
8288
8313
  /* @conditional-compile-remove(file-sharing-acs) */
8289
8314
  attachments,
8290
8315
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8291
- imageUploadsInProgress,
8316
+ inlineImages,
8292
8317
  contentValue,
8293
8318
  hasContent,
8294
8319
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -8306,7 +8331,7 @@ const RichTextSendBox = (props) => {
8306
8331
  /* @conditional-compile-remove(file-sharing-acs) */
8307
8332
  !!((_a = attachments === null || attachments === void 0 ? void 0 : attachments.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error) ||
8308
8333
  /* @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));
8334
+ !!((_b = inlineImages === null || inlineImages === void 0 ? void 0 : inlineImages.filter((image) => image.error).pop()) === null || _b === void 0 ? void 0 : _b.error));
8310
8335
  }, [
8311
8336
  /* @conditional-compile-remove(file-sharing-acs) */
8312
8337
  attachments,
@@ -8315,7 +8340,7 @@ const RichTextSendBox = (props) => {
8315
8340
  attachmentUploadsPendingError,
8316
8341
  systemMessage,
8317
8342
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8318
- imageUploadsInProgress
8343
+ inlineImages
8319
8344
  ]);
8320
8345
  const onRenderSendIcon = React.useCallback((isHover) => {
8321
8346
  return (React.createElement(react.Icon, { iconName: isHover && hasContent ? 'SendBoxSendHovered' : 'SendBoxSend', className: sendIconStyle({
@@ -8333,7 +8358,7 @@ const RichTextSendBox = (props) => {
8333
8358
  /* @conditional-compile-remove(file-sharing-acs) */
8334
8359
  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
8360
  /* @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;
8361
+ 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
8362
  /* @conditional-compile-remove(file-sharing-acs) */
8338
8363
  const errorMessage = uploadErrorMessage || /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadErrorMessage;
8339
8364
  return {
@@ -8358,7 +8383,7 @@ const RichTextSendBox = (props) => {
8358
8383
  /* @conditional-compile-remove(file-sharing-acs) */
8359
8384
  attachmentUploadsPendingError,
8360
8385
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8361
- imageUploadsInProgress,
8386
+ inlineImages,
8362
8387
  systemMessage
8363
8388
  ]);
8364
8389
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -8410,7 +8435,7 @@ const RichTextSendBox = (props) => {
8410
8435
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8411
8436
  onPaste: onPaste,
8412
8437
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8413
- onUploadInlineImage: onUploadInlineImage })));
8438
+ onInsertInlineImage: onInsertInlineImage })));
8414
8439
  };
8415
8440
 
8416
8441
  // Copyright (c) Microsoft Corporation.
@@ -10421,7 +10446,7 @@ class _ErrorBoundary extends React.Component {
10421
10446
  // Copyright (c) Microsoft Corporation.
10422
10447
  // Licensed under the MIT License.
10423
10448
  /* @conditional-compile-remove(rich-text-editor) */
10424
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js'); }));
10449
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js'); }));
10425
10450
  /**
10426
10451
  * @private
10427
10452
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -10429,7 +10454,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
10429
10454
  *
10430
10455
  * @conditional-compile-remove(rich-text-editor)
10431
10456
  */
10432
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D4Pf_JpT.js'); });
10457
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js'); });
10433
10458
  /**
10434
10459
  * @private
10435
10460
  */
@@ -10529,9 +10554,9 @@ const ChatMyMessageComponent = (props) => {
10529
10554
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10530
10555
  onPaste: props.onPaste,
10531
10556
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10532
- onUploadInlineImage: props.onUploadInlineImage,
10557
+ onInsertInlineImage: props.onInsertInlineImage,
10533
10558
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10534
- imageUploadsInProgress: props.imageUploadsInProgress,
10559
+ inlineImages: props.inlineImages,
10535
10560
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10536
10561
  onCancelInlineImageUpload: props.onCancelInlineImageUpload }));
10537
10562
  }
@@ -10569,11 +10594,11 @@ const FluentChatMyMessageComponent = (props) => {
10569
10594
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10570
10595
  onPaste,
10571
10596
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10572
- imageUploadsInProgress,
10597
+ inlineImages,
10573
10598
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10574
10599
  onCancelInlineImageUpload,
10575
10600
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10576
- onUploadInlineImage } = props;
10601
+ onInsertInlineImage } = props;
10577
10602
  const chatMessageRenderStyles = useChatMessageRenderStyles();
10578
10603
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
10579
10604
  const onRenderAttachmentDownloadsMemo = React.useMemo(() => {
@@ -10605,9 +10630,9 @@ const FluentChatMyMessageComponent = (props) => {
10605
10630
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10606
10631
  onCancelInlineImageUpload: onCancelInlineImageUpload,
10607
10632
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10608
- onUploadInlineImage: onUploadInlineImage,
10633
+ onInsertInlineImage: onInsertInlineImage,
10609
10634
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10610
- imageUploadsInProgress: imageUploadsInProgress })));
10635
+ inlineImages: inlineImages })));
10611
10636
  }
10612
10637
  return React.createElement(React.Fragment, null);
10613
10638
  }, [
@@ -10635,9 +10660,9 @@ const FluentChatMyMessageComponent = (props) => {
10635
10660
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10636
10661
  onCancelInlineImageUpload,
10637
10662
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10638
- onUploadInlineImage,
10663
+ onInsertInlineImage,
10639
10664
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10640
- imageUploadsInProgress
10665
+ inlineImages
10641
10666
  ]);
10642
10667
  const messageRenderer = React.useCallback((messageProps) => {
10643
10668
  return onRenderMessage === undefined
@@ -11461,10 +11486,10 @@ const MessageThreadWrapper = (props) => {
11461
11486
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11462
11487
  onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste,
11463
11488
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11464
- onUploadInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onUploadInlineImage,
11489
+ onInsertInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onInsertInlineImage,
11465
11490
  /* @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]),
11491
+ inlineImages: (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesInlineImages) &&
11492
+ (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesInlineImages[message.message.messageId]),
11468
11493
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11469
11494
  onCancelInlineImageUpload: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onCancelInlineImageUpload })));
11470
11495
  }))))));
@@ -12681,6 +12706,21 @@ const useVideoTileContextualMenuProps = (props) => {
12681
12706
  }, [(_a = props.participant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode]);
12682
12707
  const contextualMenuProps = React.useMemo(() => {
12683
12708
  const items = [];
12709
+ /* @conditional-compile-remove(soft-mute) */
12710
+ if (onMuteParticipant && (strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel)) {
12711
+ items.push({
12712
+ key: 'mute',
12713
+ text: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12714
+ iconProps: {
12715
+ iconName: 'ContextualMenuMicMutedIcon',
12716
+ styles: { root: { lineHeight: 0 } }
12717
+ },
12718
+ onClick: () => onMuteParticipant(participant.userId),
12719
+ 'data-ui-id': 'video-tile-mute-participant',
12720
+ ariaLabel: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12721
+ disabled: participant.isMuted
12722
+ });
12723
+ }
12684
12724
  if (isPinned !== undefined) {
12685
12725
  if (isPinned && onUnpinParticipant && (strings === null || strings === void 0 ? void 0 : strings.unpinParticipantForMe)) {
12686
12726
  let unpinActionString = undefined;
@@ -12767,21 +12807,6 @@ const useVideoTileContextualMenuProps = (props) => {
12767
12807
  });
12768
12808
  }
12769
12809
  }
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
12810
  if (scalingMode) {
12786
12811
  if (scalingMode === 'Crop' && (strings === null || strings === void 0 ? void 0 : strings.fitRemoteParticipantToFrame)) {
12787
12812
  items.push({
@@ -18173,13 +18198,17 @@ const iconButtonStyles$1 = (theme) => {
18173
18198
  // Copyright (c) Microsoft Corporation.
18174
18199
  // Licensed under the MIT License.
18175
18200
  /**
18176
- * @private
18201
+ * @internal
18177
18202
  */
18178
- const formatPhoneNumber$1 = (phoneNumber) => {
18203
+ const _formatPhoneNumber = (phoneNumber, enchant) => {
18179
18204
  // if input value is falsy eg if the user deletes the input, then just return
18180
18205
  if (!phoneNumber) {
18181
18206
  return phoneNumber;
18182
18207
  }
18208
+ // Only enchant North American phone numbers that begin with country code (1)
18209
+ if (enchant && phoneNumber[0] === '1' && phoneNumber.length === 11) {
18210
+ phoneNumber = `+${phoneNumber}`;
18211
+ }
18183
18212
  // if phone number starts with 1, format like 1 (xxx)xxx-xxxx.
18184
18213
  // if phone number starts with +, we format like +x (xxx)xxx-xxxx.
18185
18214
  // For now we are only supporting NA phone number formatting with country code +x
@@ -18434,7 +18463,7 @@ const DialpadContainer = (props) => {
18434
18463
  setText(modifiedInput);
18435
18464
  };
18436
18465
  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),
18466
+ 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
18467
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18439
18468
  onChange: (e) => {
18440
18469
  setText(e.target.value);
@@ -18933,7 +18962,7 @@ const unsupportedOperatingSystemStringsTrampoline = (locale) => {
18933
18962
  /**
18934
18963
  * @private
18935
18964
  */
18936
- const dismissButtonStyle = (theme) => ({
18965
+ const dismissButtonStyle$1 = (theme) => ({
18937
18966
  root: {
18938
18967
  padding: '0.375rem 1.25rem',
18939
18968
  width: '3.75rem',
@@ -19002,7 +19031,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
19002
19031
  ' ',
19003
19032
  onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
19004
19033
  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: () => {
19034
+ 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
19035
  setDismissedErrors(dismissError(dismissedErrors, error));
19007
19036
  }, ariaLabel: strings.dismissButtonAriaLabel }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
19008
19037
  })));
@@ -19729,7 +19758,7 @@ const MeetingConferencePhoneInfoModal = (props) => {
19729
19758
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalDialIn)))),
19730
19759
  React.createElement(react.Stack.Item, { className: phoneInfoStep$1 }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
19731
19760
  React.createElement(react.Text, { className: phoneInfoTextStyle$1 },
19732
- formatPhoneNumber(phoneNumber.phoneNumber),
19761
+ _formatPhoneNumber(phoneNumber.phoneNumber, true),
19733
19762
  ' ',
19734
19763
  phoneNumber.isTollFree
19735
19764
  ? strings.meetingConferencePhoneInfoModalTollFree
@@ -19756,25 +19785,6 @@ const MeetingConferencePhoneInfoModal = (props) => {
19756
19785
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalWait)))))))));
19757
19786
  };
19758
19787
  /* @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
19788
  /**
19779
19789
  * @internal
19780
19790
  * format phone number link
@@ -19789,7 +19799,7 @@ const formatPhoneNumberLink = (phoneNumber) => {
19789
19799
  */
19790
19800
  const formatPhoneNumberInfo = (phoneNumber, strings) => {
19791
19801
  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()) || '');
19802
+ return ((templateText === null || templateText === void 0 ? void 0 : templateText.replace('{country}', phoneNumber.country || '').replace('{city}', phoneNumber.city || '').trim()) || '');
19793
19803
  };
19794
19804
  /* @conditional-compile-remove(teams-meeting-conference) */
19795
19805
  /**
@@ -19956,36 +19966,63 @@ const NotificationStack = (props) => {
19956
19966
  * @beta
19957
19967
  */
19958
19968
  const IncomingCallNotification$k = (props) => {
19959
- const { callerName, alertText, avatarImage, onAcceptWithAudio, onAcceptWithVideo, onReject, personaSize, styles } = props;
19969
+ var _a, _b, _c, _d, _e, _f, _g;
19970
+ const { callerName, alertText, avatarImage, onAcceptWithAudio,
19971
+ /* @conditional-compile-remove(one-to-n-calling) */
19972
+ onAcceptWithVideo, onReject, onDismiss, personaSize, styles, strings,
19973
+ /* @conditional-compile-remove(one-to-n-calling) */
19974
+ acceptOptions } = props;
19960
19975
  const theme = react.useTheme();
19961
19976
  /* @conditional-compile-remove(one-to-n-calling) */
19962
19977
  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' },
19978
+ /* @conditional-compile-remove(one-to-n-calling) */
19979
+ const formattedMessageString = localeStrings.incomingCallNotificationPlaceholderAlert && callerName
19980
+ ? _formatString(localeStrings.incomingCallNotificationPlaceholderAlert, { callerName: callerName })
19981
+ : callerName;
19982
+ /* @conditional-compile-remove(one-to-n-calling) */
19983
+ const acceptManuOptions = acceptOptions.showAcceptWithVideo
19984
+ ? {
19985
+ items: [
19986
+ {
19987
+ key: 'audio',
19988
+ text:
19989
+ /* @conditional-compile-remove(one-to-n-calling) */ (_a = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAcceptButtonLabel) !== null && _a !== void 0 ? _a : localeStrings.incomingCallNotificationAcceptButtonLabel,
19990
+ onClick: () => onAcceptWithAudio()
19991
+ },
19992
+ {
19993
+ key: 'video',
19994
+ text:
19995
+ /* @conditional-compile-remove(one-to-n-calling) */ (_b = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAccceptWithVideoButtonLabel) !== null && _b !== void 0 ? _b : localeStrings.incomingCallNotificationAccceptWithVideoButtonLabel,
19996
+ onClick: () => onAcceptWithVideo()
19997
+ }
19998
+ ]
19999
+ }
20000
+ : undefined;
20001
+ 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) },
20002
+ React.createElement(react.Stack, { horizontal: true, verticalAlign: "center", tokens: { childrenGap: personaSize ? '0.5rem' : '0rem' } },
20003
+ React.createElement(react.Stack, { horizontalAlign: "start", styles: (styles === null || styles === void 0 ? void 0 : styles.avatarContainer) ? styles.avatarContainer : incomingCallToastAvatarContainerStyle },
20004
+ React.createElement(react.Persona, { imageUrl: avatarImage, text: callerName, size: react.PersonaSize.size24, coinSize: personaSize, hidePersonaDetails: true, "aria-label": callerName })),
20005
+ React.createElement(react.Stack, { grow: true, horizontalAlign: "center", style: { alignItems: 'flex-start', fontFamily: 'Segoe UI' } },
20006
+ React.createElement(react.Stack, { style: { fontSize: '0.75rem' } },
20007
+ 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 :
20008
+ /* @conditional-compile-remove(one-to-n-calling) */ formattedMessageString))),
20009
+ React.createElement(react.IconButton, { iconProps: { iconName: 'cancel' }, onClick: onDismiss, styles: dismissButtonStyle(theme) })),
20010
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: 'center', tokens: { childrenGap: '0.5rem' } },
20011
+ 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
20012
  /* @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' },
20013
+ ariaLabel: (_d = strings === null || strings === void 0 ? void 0 : strings.incomingCallNoticicationAcceptWithAudioAriaLabel) !== null && _d !== void 0 ? _d : localeStrings.incomingCallNoticicationAcceptWithAudioAriaLabel,
19978
20014
  /* @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' },
20015
+ menuProps: acceptManuOptions },
20016
+ /* @conditional-compile-remove(one-to-n-calling) */ (_e = strings === null || strings === void 0 ? void 0 : strings.incomingCallNotificationAcceptButtonLabel) !== null && _e !== void 0 ? _e : localeStrings.incomingCallNotificationAcceptButtonLabel),
20017
+ 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
20018
  /* @conditional-compile-remove(one-to-n-calling) */
19982
- ariaLabel: localeStrings.incomingCallNoticicationAcceptWithAudioAriaLabel }))));
20019
+ ariaLabel: (_f = strings === null || strings === void 0 ? void 0 : strings.incomingCallNoticicationRejectAriaLabel) !== null && _f !== void 0 ? _f : localeStrings.incomingCallNoticicationRejectAriaLabel },
20020
+ /* @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
20021
  };
19984
20022
  const incomingCallToastStyle = (theme) => {
19985
20023
  return {
19986
20024
  root: {
19987
- minWidth: '20rem',
19988
- maxWidth: '40rem',
20025
+ width: '20rem',
19989
20026
  background: theme.palette.white,
19990
20027
  opacity: 0.95,
19991
20028
  borderRadius: '0.5rem',
@@ -19999,39 +20036,68 @@ const incomingCallToastAvatarContainerStyle = {
19999
20036
  marginRight: '0.5rem'
20000
20037
  }
20001
20038
  };
20039
+ const dismissButtonStyle = (theme) => {
20040
+ return {
20041
+ root: {
20042
+ color: theme.palette.neutralPrimary,
20043
+ width: '1rem',
20044
+ height: '1rem'
20045
+ },
20046
+ rootHovered: {
20047
+ color: theme.palette.neutralDark
20048
+ }
20049
+ };
20050
+ };
20002
20051
  const incomingCallAcceptButtonStyle = (theme) => {
20003
20052
  return {
20004
20053
  root: {
20005
- backgroundColor: theme.palette.greenDark,
20006
20054
  color: theme.palette.white,
20007
- borderRadius: '2rem',
20008
- minWidth: '2rem',
20009
- width: '2rem',
20010
- border: 'none'
20055
+ border: 'none',
20056
+ borderRadius: theme.effects.roundedCorner4,
20057
+ width: '100%',
20058
+ maxWidth: '8.875rem'
20011
20059
  },
20012
20060
  rootHovered: {
20013
- backgroundColor: theme.palette.green,
20014
20061
  color: theme.palette.white
20062
+ },
20063
+ icon: {
20064
+ height: '1.25rem'
20015
20065
  }
20016
20066
  };
20017
20067
  };
20018
20068
  const incomingCallRejectButtonStyle = (theme) => {
20019
20069
  return {
20020
20070
  root: {
20021
- backgroundColor: theme.palette.redDark,
20022
- color: theme.palette.white,
20023
- borderRadius: '2rem',
20024
- minWidth: '2rem',
20025
- width: '2rem',
20026
- border: 'none'
20071
+ borderRadius: theme.effects.roundedCorner4,
20072
+ maxWidth: '8.875rem',
20073
+ width: '100%'
20027
20074
  },
20028
- rootHovered: {
20029
- backgroundColor: theme.palette.red,
20030
- color: theme.palette.white
20075
+ icon: {
20076
+ height: '1.25rem'
20031
20077
  }
20032
20078
  };
20033
20079
  };
20034
20080
 
20081
+ // Copyright (c) Microsoft Corporation.
20082
+ // Licensed under the MIT License.
20083
+ /* @conditional-compile-remove(one-to-n-calling) */
20084
+ /**
20085
+ * Wrapper to manage multiple incoming calls
20086
+ * @param props - {@link IncomingCallManagerProps}
20087
+ * @returns
20088
+ * @beta
20089
+ */
20090
+ const IncomingCallStack = (props) => {
20091
+ /* @conditional-compile-remove(one-to-n-calling) */
20092
+ const { activeIncomingCalls, removedIncomingCalls, onAcceptCall, onRejectCall, styles, strings } = props;
20093
+ return (React.createElement(react.Stack, { tokens: { childrenGap: '0.25rem' } },
20094
+ /* @conditional-compile-remove(one-to-n-calling) */ activeIncomingCalls
20095
+ .filter((incomingCall) => !removedIncomingCalls.some((call) => call.id === incomingCall.id))
20096
+ .map((incomingCall) => {
20097
+ 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 } }));
20098
+ })));
20099
+ };
20100
+
20035
20101
  // Copyright (c) Microsoft Corporation.
20036
20102
  // Licensed under the MIT License.
20037
20103
  /**
@@ -22623,7 +22689,7 @@ const AttachmentDownloadErrorBar = (props) => {
22623
22689
  /**
22624
22690
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
22625
22691
  */
22626
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BNwd6bE2.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
22692
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-OHSjE5aJ.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
22627
22693
  /**
22628
22694
  * @private
22629
22695
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -22631,7 +22697,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
22631
22697
  *
22632
22698
  /* @conditional-compile-remove(rich-text-editor-composite-support)
22633
22699
  */
22634
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BNwd6bE2.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22700
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-OHSjE5aJ.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22635
22701
  /**
22636
22702
  * @private
22637
22703
  */
@@ -22639,7 +22705,7 @@ const SendBoxPicker = (props) => {
22639
22705
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22640
22706
  const { richTextEditorOptions } = props;
22641
22707
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22642
- const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } = richTextEditorOptions || {};
22708
+ const { onPaste, onInsertInlineImage, inlineImages, onCancelInlineImageUpload } = richTextEditorOptions || {};
22643
22709
  const sendBoxProps = usePropsFor$2(SendBox);
22644
22710
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22645
22711
  const isRichTextEditorEnabled = React.useMemo(() => {
@@ -22654,9 +22720,9 @@ const SendBoxPicker = (props) => {
22654
22720
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22655
22721
  onPaste: onPaste,
22656
22722
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22657
- onUploadInlineImage: onUploadInlineImage,
22723
+ onInsertInlineImage: onInsertInlineImage,
22658
22724
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22659
- imageUploadsInProgress: imageUploadsInProgress,
22725
+ inlineImages: inlineImages,
22660
22726
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22661
22727
  onCancelInlineImageUpload: onCancelInlineImageUpload })))));
22662
22728
  }
@@ -22709,41 +22775,25 @@ const getInlineImageData = (image) => __awaiter$E(void 0, void 0, void 0, functi
22709
22775
  /**
22710
22776
  * @internal
22711
22777
  */
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) => {
22778
+ const getEditBoxMessagesInlineImages = (editBoxInlineImageUploads) => {
22729
22779
  if (!editBoxInlineImageUploads) {
22730
22780
  return;
22731
22781
  }
22732
22782
  const messageIds = Object.keys(editBoxInlineImageUploads || {});
22733
- const messagesImageUploadsInProgress = {};
22783
+ const messagesInlineImages = {};
22734
22784
  messageIds.map((messageId) => {
22735
22785
  const messageUploads = editBoxInlineImageUploads[messageId].map((upload) => {
22736
22786
  return upload.metadata;
22737
22787
  });
22738
- messagesImageUploadsInProgress[messageId] = messageUploads;
22788
+ messagesInlineImages[messageId] = messageUploads;
22739
22789
  });
22740
- return messagesImageUploadsInProgress;
22790
+ return messagesInlineImages;
22741
22791
  };
22742
22792
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22743
22793
  /**
22744
22794
  * @internal
22745
22795
  */
22746
- const getSendBoxImageUploadsInProgress = (sendBoxInlineImageUploads) => {
22796
+ const getSendBoxInlineImages = (sendBoxInlineImageUploads) => {
22747
22797
  var _a;
22748
22798
  if (!sendBoxInlineImageUploads) {
22749
22799
  return;
@@ -22828,7 +22878,7 @@ const generateUploadTask = (image, fileName, messageId, inlineImageUploadActionH
22828
22878
  /**
22829
22879
  * @internal
22830
22880
  */
22831
- const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22881
+ const onInsertInlineImageForEditBox = (image, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22832
22882
  const uploadTask = yield generateUploadTask(image, fileName, messageId, handleEditBoxInlineImageUploadAction);
22833
22883
  if (!uploadTask) {
22834
22884
  return;
@@ -22844,7 +22894,7 @@ const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, hand
22844
22894
  /**
22845
22895
  * @internal
22846
22896
  */
22847
- const onUploadInlineImageForSendBox = (image, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22897
+ const onInsertInlineImageForSendBox = (image, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$E(void 0, void 0, void 0, function* () {
22848
22898
  const uploadTask = yield generateUploadTask(image, fileName, SEND_BOX_UPLOADS_KEY_VALUE, handleSendBoxInlineImageUploadAction);
22849
22899
  if (!uploadTask) {
22850
22900
  return;
@@ -23302,11 +23352,11 @@ const ChatScreen = (props) => {
23302
23352
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23303
23353
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23304
23354
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23305
- onUploadInlineImage: (imageUrl, imageFileName, messageId) => {
23306
- onUploadInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction, localeStrings.chat);
23355
+ onInsertInlineImage: (imageUrl, imageFileName, messageId) => {
23356
+ onInsertInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction, localeStrings.chat);
23307
23357
  },
23308
23358
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23309
- messagesImageUploadsInProgress: getEditBoxMessagesImageUploadsInProgress(editBoxInlineImageUploads),
23359
+ messagesInlineImages: getEditBoxMessagesInlineImages(editBoxInlineImageUploads),
23310
23360
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23311
23361
  onCancelInlineImageUpload: (imageId, messageId) => {
23312
23362
  onCancelInlineImageUploadHandlerForEditBox(imageId, messageId, editBoxInlineImageUploads, adapter, handleEditBoxInlineImageUploadAction);
@@ -23323,12 +23373,11 @@ const ChatScreen = (props) => {
23323
23373
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23324
23374
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23325
23375
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23326
- onUploadInlineImage: (imageUrl, imageFileName) => {
23327
- onUploadInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction, localeStrings.chat);
23376
+ onInsertInlineImage: (imageUrl, imageFileName) => {
23377
+ onInsertInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction, localeStrings.chat);
23328
23378
  },
23329
- // onUploadInlineImageForSendBox,
23330
23379
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23331
- imageUploadsInProgress: getSendBoxImageUploadsInProgress(sendBoxInlineImageUploads),
23380
+ inlineImages: getSendBoxInlineImages(sendBoxInlineImageUploads),
23332
23381
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23333
23382
  onCancelInlineImageUpload: (imageId) => {
23334
23383
  onCancelInlineImageUploadHandlerForSendBox(imageId, sendBoxInlineImageUploads, adapter, handleSendBoxInlineImageUploadAction);
@@ -23588,6 +23637,22 @@ const getMeetingConferencePhones = (state, props) => {
23588
23637
  var _a, _b;
23589
23638
  return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.meetingConference) === null || _b === void 0 ? void 0 : _b.conferencePhones;
23590
23639
  };
23640
+ /**
23641
+ * selector for retrieving the incoming calls from state
23642
+ * @returns the incoming calls in the call client state
23643
+ * @private
23644
+ */
23645
+ const getIncomingCalls = (state) => {
23646
+ return Object.values(state.incomingCalls);
23647
+ };
23648
+ /**
23649
+ * selector for retrieving the incoming calls that have been removed from state
23650
+ * @returns the incoming calls that have been removed
23651
+ * @private
23652
+ */
23653
+ const getRemovedIncomingCalls = (state) => {
23654
+ return Object.values(state.incomingCallsEnded);
23655
+ };
23591
23656
 
23592
23657
  // Copyright (c) Microsoft Corporation.
23593
23658
  // Licensed under the MIT License.
@@ -23695,6 +23760,17 @@ const maskDisplayNameWithRole = (displayName, localUserRole, participantRole, is
23695
23760
  }
23696
23761
  return maskedDisplayName;
23697
23762
  };
23763
+ /**
23764
+ * Helper to create a local video stream from the selected camera.
23765
+ * @private
23766
+ */
23767
+ const createLocalVideoStream = (callClient) => __awaiter$C(void 0, void 0, void 0, function* () {
23768
+ const camera = yield (callClient === null || callClient === void 0 ? void 0 : callClient.getState().deviceManager.selectedCamera);
23769
+ if (camera) {
23770
+ return new communicationCalling.LocalVideoStream(camera);
23771
+ }
23772
+ return undefined;
23773
+ });
23698
23774
 
23699
23775
  // Copyright (c) Microsoft Corporation.
23700
23776
  // Licensed under the MIT License.
@@ -24320,6 +24396,21 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
24320
24396
  }), onRemoveParticipant: (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
24321
24397
  const participant = _toCommunicationIdentifier(userId);
24322
24398
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
24399
+ }),
24400
+ /* @conditional-compile-remove(one-to-n-calling) */
24401
+ onAcceptCall: (incomingCallId, useVideo) => __awaiter$A(void 0, void 0, void 0, function* () {
24402
+ const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
24403
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24404
+ if (incomingCall) {
24405
+ yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
24406
+ }
24407
+ }),
24408
+ /* @conditional-compile-remove(one-to-n-calling) */
24409
+ onRejectCall: (incomingCallId) => __awaiter$A(void 0, void 0, void 0, function* () {
24410
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24411
+ if (incomingCall) {
24412
+ yield incomingCall.reject();
24413
+ }
24323
24414
  }) });
24324
24415
  });
24325
24416
 
@@ -24382,6 +24473,21 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
24382
24473
  }
24383
24474
  /* @conditional-compile-remove(teams-identity-support) */
24384
24475
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
24476
+ }),
24477
+ /* @conditional-compile-remove(one-to-n-calling) */
24478
+ onAcceptCall: (incomingCallId, useVideo) => __awaiter$z(void 0, void 0, void 0, function* () {
24479
+ const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
24480
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24481
+ if (incomingCall) {
24482
+ yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
24483
+ }
24484
+ }),
24485
+ /* @conditional-compile-remove(one-to-n-calling) */
24486
+ onRejectCall: (incomingCallId) => __awaiter$z(void 0, void 0, void 0, function* () {
24487
+ const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
24488
+ if (incomingCall) {
24489
+ yield incomingCall.reject();
24490
+ }
24385
24491
  }) });
24386
24492
  });
24387
24493
 
@@ -24548,6 +24654,36 @@ const appendActiveErrorIfDefined$1 = (activeErrorMessages, latestErrors, target,
24548
24654
  });
24549
24655
  };
24550
24656
 
24657
+ // Copyright (c) Microsoft Corporation.
24658
+ // Licensed under the MIT License.
24659
+ /**
24660
+ * Select the active and removed incoming calls from the stateful client for the IncomingCallNotificationStackComponent.
24661
+ * @beta
24662
+ */
24663
+ const incomingCallStackSelector = reselect.createSelector([getIncomingCalls, getRemovedIncomingCalls, getDeviceManager$1], (incomingCalls, removedIncomingCalls, deviceManager) => {
24664
+ // Convert incoming call state to active incoming call
24665
+ const componentIncomingCalls = incomingCalls.map((incomingCall) => {
24666
+ return Object.assign(Object.assign({}, incomingCall), { callerInfo: {
24667
+ displayName: incomingCall.callerInfo.displayName || 'Unknown Caller'
24668
+ }, videoAvailable: (incomingCall.callerInfo.identifier && communicationCommon.isPhoneNumberIdentifier(incomingCall.callerInfo.identifier)) ||
24669
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.cameras.length) === 0
24670
+ ? false
24671
+ : true });
24672
+ });
24673
+ const componentRemovedIncomingCalls = removedIncomingCalls.map((incomingCall) => {
24674
+ return Object.assign(Object.assign({}, incomingCall), { callerInfo: {
24675
+ displayName: incomingCall.callerInfo.displayName || 'Unknown Caller'
24676
+ }, videoAvailable: (incomingCall.callerInfo.identifier && communicationCommon.isPhoneNumberIdentifier(incomingCall.callerInfo.identifier)) ||
24677
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.cameras.length) === 0
24678
+ ? false
24679
+ : true });
24680
+ });
24681
+ return {
24682
+ activeIncomingCalls: componentIncomingCalls,
24683
+ removedIncomingCalls: componentRemovedIncomingCalls
24684
+ };
24685
+ });
24686
+
24551
24687
  // Copyright (c) Microsoft Corporation.
24552
24688
  // Licensed under the MIT License.
24553
24689
  /**
@@ -24716,7 +24852,9 @@ class ProxyDeviceManager {
24716
24852
  });
24717
24853
  this.audioDevicesUpdated = () => __awaiter$y(this, void 0, void 0, function* () {
24718
24854
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
24719
- this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24855
+ if (this._deviceManager.isSpeakerSelectionAvailable) {
24856
+ this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24857
+ }
24720
24858
  });
24721
24859
  this.selectedMicrophoneChanged = () => {
24722
24860
  this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);
@@ -25024,12 +25162,27 @@ function convertSdkCallToDeclarativeCall(call) {
25024
25162
  * @private
25025
25163
  */
25026
25164
  function convertSdkIncomingCallToDeclarativeIncomingCall(call) {
25027
- return {
25028
- id: call.id,
25029
- callerInfo: call.callerInfo,
25030
- startTime: new Date(),
25031
- endTime: undefined
25032
- };
25165
+ /* @conditional-compile-remove(one-to-n-calling) */
25166
+ if (_isTeamsIncomingCall(call)) {
25167
+ const newInfo = Object.assign(Object.assign({}, call.info), { kind: call.kind });
25168
+ return {
25169
+ id: call.id,
25170
+ info: newInfo,
25171
+ callerInfo: call.callerInfo,
25172
+ startTime: new Date(),
25173
+ endTime: undefined
25174
+ };
25175
+ }
25176
+ else {
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
+ }
25033
25186
  }
25034
25187
  /**
25035
25188
  * @private
@@ -25321,6 +25474,12 @@ let CallContext$2 = class CallContext {
25321
25474
  draft.calls[latestCallId] = call;
25322
25475
  }
25323
25476
  });
25477
+ /**
25478
+ * Remove the incoming call that matches the call if there is one
25479
+ */
25480
+ if (this._state.incomingCalls[call.id]) {
25481
+ this.removeIncomingCall(call.id);
25482
+ }
25324
25483
  }
25325
25484
  removeCall(callId) {
25326
25485
  this.modifyState((draft) => {
@@ -27871,12 +28030,11 @@ class ProxyCallAgentCommon {
27871
28030
  }
27872
28031
  if (_isTeamsIncomingCall(incomingCall)) {
27873
28032
  this._incomingCalls.set(incomingCall.id, teamsIncomingCallDeclaratify(incomingCall, this._context));
27874
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27875
28033
  }
27876
28034
  else {
27877
28035
  this._incomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
27878
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27879
28036
  }
28037
+ this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27880
28038
  };
27881
28039
  this.addCall = (call) => {
27882
28040
  var _a;
@@ -29691,6 +29849,10 @@ const getSelector = (component) => {
29691
29849
  if (component === NotificationStack) {
29692
29850
  return findConditionalCompiledSelector(component);
29693
29851
  }
29852
+ /* @conditional-compile-remove(one-to-n-calling) */
29853
+ if (component === IncomingCallStack) {
29854
+ return findConditionalCompiledSelector(component);
29855
+ }
29694
29856
  return findSelector(component);
29695
29857
  };
29696
29858
  const findSelector = (component) => {
@@ -29724,7 +29886,7 @@ const findSelector = (component) => {
29724
29886
  }
29725
29887
  return undefined;
29726
29888
  };
29727
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(notifications) */
29889
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(notifications) */ /* @conditional-compile-remove(one-to-n-calling) */
29728
29890
  const findConditionalCompiledSelector = (component) => {
29729
29891
  switch (component) {
29730
29892
  /* @conditional-compile-remove(PSTN-calls) */
@@ -29735,6 +29897,10 @@ const findConditionalCompiledSelector = (component) => {
29735
29897
  case NotificationStack:
29736
29898
  /* @conditional-compile-remove(notifications) */
29737
29899
  return notificationStackSelector;
29900
+ /* @conditional-compile-remove(one-to-n-calling) */
29901
+ case IncomingCallStack:
29902
+ /* @conditional-compile-remove(one-to-n-calling) */
29903
+ return incomingCallStackSelector;
29738
29904
  }
29739
29905
  };
29740
29906
 
@@ -33595,25 +33761,23 @@ const SidePane = (props) => {
33595
33761
  closePane
33596
33762
  ]);
33597
33763
  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)
33764
+ const ContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? undefined : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.contentRenderer;
33765
+ const OverrideContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
33600
33766
  ? overrideSidePane.renderer.contentRenderer
33601
33767
  : undefined;
33602
- if (!ContentRender && !OverrideContentRender) {
33768
+ if (!ContentRenderer && !OverrideContentRenderer) {
33603
33769
  return React.createElement(EmptyElement, null);
33604
33770
  }
33605
33771
  return (React.createElement(react.Stack, { verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView ? {} : sidePaneTokens },
33606
33772
  HeaderToRender,
33607
33773
  React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
33608
33774
  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)
33775
+ ContentRenderer && (React.createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
33776
+ React.createElement(react.Stack, { styles: containerContextStyles }, ContentRenderer === null || ContentRenderer === void 0 ? void 0 : ContentRenderer()))),
33777
+ 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
33778
  ? hiddenStyles
33614
33779
  : scrollableContainerContents },
33615
- React.createElement(react.Stack, { styles: containerContextStyles },
33616
- React.createElement(OverrideContentRender, null))))))));
33780
+ React.createElement(react.Stack, { styles: containerContextStyles }, OverrideContentRenderer === null || OverrideContentRenderer === void 0 ? void 0 : OverrideContentRenderer())))))));
33617
33781
  };
33618
33782
  // eslint-disable-next-line @typescript-eslint/no-empty-function
33619
33783
  const noop = () => { };
@@ -34211,17 +34375,6 @@ const usePeoplePane = (props) => {
34211
34375
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
34212
34376
  const sidePaneHeaderMenuProps = React.useMemo(() => {
34213
34377
  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
34378
  /* @conditional-compile-remove(soft-mute) */
34226
34379
  if (onMuteAllRemoteParticipants && remoteParticipants) {
34227
34380
  let isAllMuted = true;
@@ -34248,6 +34401,17 @@ const usePeoplePane = (props) => {
34248
34401
  disabled: isAllMuted
34249
34402
  });
34250
34403
  }
34404
+ if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
34405
+ menuItems.push({
34406
+ key: 'stopAllSpotlightKey',
34407
+ text: localeStrings.stopAllSpotlightMenuLabel,
34408
+ iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },
34409
+ onClick: () => {
34410
+ onStopAllSpotlight();
34411
+ },
34412
+ ariaLabel: localeStrings.stopAllSpotlightMenuLabel
34413
+ });
34414
+ }
34251
34415
  return {
34252
34416
  items: menuItems
34253
34417
  };
@@ -34257,17 +34421,35 @@ const usePeoplePane = (props) => {
34257
34421
  localeStrings.stopAllSpotlightMenuLabel,
34258
34422
  /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,
34259
34423
  /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,
34260
- /* @conditional-compile-remove(soft-mute) */ remoteParticipants,
34261
- /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt
34424
+ /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
34425
+ /* @conditional-compile-remove(soft-mute) */ remoteParticipants
34262
34426
  ]);
34263
34427
  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
34428
  const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
34265
- var _a;
34266
34429
  let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participantId);
34267
- const _defaultMenuItems = defaultMenuItems !== null && defaultMenuItems !== void 0 ? defaultMenuItems : [];
34430
+ const _defaultMenuItems = [];
34268
34431
  const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.includes(participantId);
34269
34432
  const isMe = myUserId === participantId;
34270
34433
  isPinned = isSpotlighted ? false : isPinned;
34434
+ /* @conditional-compile-remove(soft-mute) */
34435
+ if (onMuteParticipant && !isMe && remoteParticipants && remoteParticipants[participantId]) {
34436
+ const participant = remoteParticipants[participantId];
34437
+ const isMuted = participant.isMuted;
34438
+ _defaultMenuItems.push({
34439
+ key: 'mute',
34440
+ text: 'Mute',
34441
+ iconProps: {
34442
+ iconName: 'ContextualMenuMicMutedIcon',
34443
+ styles: { root: { lineHeight: 0 } }
34444
+ },
34445
+ onClick: () => {
34446
+ onMuteParticipant(participantId);
34447
+ },
34448
+ 'data-ui-id': 'participant-item-mute-participant',
34449
+ ariaLabel: 'Mute',
34450
+ disabled: isMuted
34451
+ });
34452
+ }
34271
34453
  if (isSpotlighted) {
34272
34454
  const stopSpotlightMenuText = isMe
34273
34455
  ? localeStrings.stopSpotlightOnSelfMenuLabel
@@ -34323,24 +34505,6 @@ const usePeoplePane = (props) => {
34323
34505
  });
34324
34506
  }
34325
34507
  }
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
34508
  if (!isMe && isPinned !== undefined) {
34345
34509
  if (isPinned && onUnpinParticipant && (localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.unpinParticipantMenuLabel)) {
34346
34510
  _defaultMenuItems.push({
@@ -34376,6 +34540,9 @@ const usePeoplePane = (props) => {
34376
34540
  });
34377
34541
  }
34378
34542
  }
34543
+ if (defaultMenuItems) {
34544
+ _defaultMenuItems.push(...defaultMenuItems);
34545
+ }
34379
34546
  return onFetchParticipantMenuItems
34380
34547
  ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)
34381
34548
  : _defaultMenuItems;
@@ -34565,7 +34732,7 @@ const MeetingPhoneInfoPaneContent = (props) => {
34565
34732
  React.createElement(react.Stack.Item, null,
34566
34733
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
34567
34734
  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)),
34735
+ React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, _formatPhoneNumber(phoneNumber.phoneNumber, true)),
34569
34736
  React.createElement(react.Text, { className: phoneInfoTextStyle },
34570
34737
  ' ',
34571
34738
  phoneNumber.isTollFree
@@ -35979,8 +36146,8 @@ const NetworkReconnectTile = (props) => {
35979
36146
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
35980
36147
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, meetingCoordinates.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
35981
36148
  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))),
36149
+ props.isMobile && (React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, _formatPhoneNumber(phoneNumber.phoneNumber, true))),
36150
+ !props.isMobile && (React.createElement(react.Text, { className: phoneInfoTextStyle }, _formatPhoneNumber(phoneNumber.phoneNumber, true))),
35984
36151
  ' ',
35985
36152
  phoneNumber.isTollFree
35986
36153
  ? localeStrings.meetingConferencePhoneInfoModalTollFree
@@ -42814,6 +42981,7 @@ exports.GridLayout = GridLayout;
42814
42981
  exports.HoldButton = HoldButton;
42815
42982
  exports.ImageOverlay = ImageOverlay;
42816
42983
  exports.IncomingCallNotification = IncomingCallNotification$k;
42984
+ exports.IncomingCallStack = IncomingCallStack;
42817
42985
  exports.InputBoxButton = InputBoxButton;
42818
42986
  exports.LocalizationProvider = LocalizationProvider$1;
42819
42987
  exports.MAXIMUM_LENGTH_OF_MESSAGE = MAXIMUM_LENGTH_OF_MESSAGE;
@@ -42902,4 +43070,4 @@ exports.useTeamsCall = useTeamsCall;
42902
43070
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
42903
43071
  exports.useTeamsCallAgent = useTeamsCallAgent;
42904
43072
  exports.useTheme = useTheme;
42905
- //# sourceMappingURL=index-DdAkrosV.js.map
43073
+ //# sourceMappingURL=index-Dl3wPPJe.js.map