@azure/communication-react 1.19.0-alpha-202407240016 → 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 (141) hide show
  1. package/dist/communication-react.d.ts +245 -22
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DeQxSr_Z.js → ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js} +22 -18
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-B-YGfNz1.js → RichTextSendBoxWrapper-OHSjE5aJ.js} +2 -3
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-B-YGfNz1.js.map → RichTextSendBoxWrapper-OHSjE5aJ.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DCOkbnBI.js → index-Dl3wPPJe.js} +483 -240
  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 +4 -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 +22 -15
  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 +8 -7
  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 +17 -11
  100. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +35 -17
  101. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +12 -3
  103. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  104. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts +22 -0
  105. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +58 -6
  106. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +15 -15
  108. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  109. package/dist/dist-esm/react-components/src/components/index.d.ts +3 -0
  110. package/dist/dist-esm/react-components/src/components/index.js +3 -0
  111. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  112. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
  113. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +1 -1
  114. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -3
  115. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +11 -11
  116. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  117. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.d.ts +2 -2
  118. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js +6 -2
  119. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  120. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +13 -6
  121. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +3 -3
  122. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +7 -9
  124. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  125. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +36 -33
  126. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  127. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +16 -9
  128. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  129. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +5 -10
  130. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +17 -33
  131. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  132. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +16 -0
  133. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  134. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +2 -2
  135. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +3 -3
  137. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  138. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +5 -1
  139. package/package.json +2 -3
  140. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-DeQxSr_Z.js.map +0 -1
  141. package/dist/dist-cjs/communication-react/index-DCOkbnBI.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-202407240016';
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:"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:"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:"Uploading... Please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line"};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.
@@ -5171,11 +5188,33 @@ const InputBoxButton = (props) => {
5171
5188
 
5172
5189
  // Copyright (c) Microsoft Corporation.
5173
5190
  // Licensed under the MIT License.
5191
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5192
+ /**
5193
+ * @beta
5194
+ * Error bar type for {@link SendBoxErrorBarError}
5195
+ */
5196
+ exports.SendBoxErrorBarType = void 0;
5197
+ (function (SendBoxErrorBarType) {
5198
+ /** Info styled MessageBar */
5199
+ SendBoxErrorBarType[SendBoxErrorBarType["info"] = 0] = "info";
5200
+ /** Error styled MessageBar */
5201
+ SendBoxErrorBarType[SendBoxErrorBarType["error"] = 1] = "error";
5202
+ /** Blocked styled MessageBar */
5203
+ SendBoxErrorBarType[SendBoxErrorBarType["blocked"] = 2] = "blocked";
5204
+ /** SevereWarning styled MessageBar */
5205
+ SendBoxErrorBarType[SendBoxErrorBarType["severeWarning"] = 3] = "severeWarning";
5206
+ /** Success styled MessageBar */
5207
+ SendBoxErrorBarType[SendBoxErrorBarType["success"] = 4] = "success";
5208
+ /** Warning styled MessageBar */
5209
+ SendBoxErrorBarType[SendBoxErrorBarType["warning"] = 5] = "warning";
5210
+ })(exports.SendBoxErrorBarType || (exports.SendBoxErrorBarType = {}));
5174
5211
  /**
5175
5212
  * @private
5176
5213
  */
5177
5214
  const SendBoxErrorBar = (props) => {
5178
5215
  const { error, dismissAfterMs, onDismiss } = props;
5216
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5217
+ const strings = useLocale$1().strings.errorBar;
5179
5218
  const [errorMessage, setErrorMessage] = React.useState(error === null || error === void 0 ? void 0 : error.message);
5180
5219
  // Using `any` because `NodeJS.Timeout` here will cause `declaration error` with jest.
5181
5220
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -5194,12 +5233,36 @@ const SendBoxErrorBar = (props) => {
5194
5233
  timeoutRef.current && clearTimeout(timeoutRef.current);
5195
5234
  };
5196
5235
  }, [dismissAfterMs, onDismiss, error]);
5236
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5237
+ const messageBarType = React.useMemo(() => {
5238
+ switch (error === null || error === void 0 ? void 0 : error.errorBarType) {
5239
+ case exports.SendBoxErrorBarType.info:
5240
+ return react.MessageBarType.info;
5241
+ case exports.SendBoxErrorBarType.error:
5242
+ return react.MessageBarType.error;
5243
+ case exports.SendBoxErrorBarType.blocked:
5244
+ return react.MessageBarType.blocked;
5245
+ case exports.SendBoxErrorBarType.severeWarning:
5246
+ return react.MessageBarType.severeWarning;
5247
+ case exports.SendBoxErrorBarType.success:
5248
+ return react.MessageBarType.success;
5249
+ case exports.SendBoxErrorBarType.warning:
5250
+ default:
5251
+ return react.MessageBarType.warning;
5252
+ }
5253
+ }, [error]);
5197
5254
  if (errorMessage) {
5198
- return (React.createElement(react.MessageBar, { role: "alert", "aria-label": errorMessage, "data-testid": 'send-box-message-bar', messageBarType: react.MessageBarType.warning, styles: {
5199
- iconContainer: {
5200
- display: 'none'
5201
- }
5202
- } }, errorMessage));
5255
+ return (React.createElement(react.MessageBar, { role: "alert", "aria-label": errorMessage, "data-testid": 'send-box-message-bar',
5256
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5257
+ messageBarType: messageBarType,
5258
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5259
+ isMultiline: true,
5260
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5261
+ key: (error === null || error === void 0 ? void 0 : error.errorBarType) || exports.SendBoxErrorBarType.warning,
5262
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5263
+ onDismiss: onDismiss,
5264
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
5265
+ dismissButtonAriaLabel: strings.dismissButtonAriaLabel }, errorMessage));
5203
5266
  }
5204
5267
  else {
5205
5268
  return React.createElement(React.Fragment, null);
@@ -5558,14 +5621,14 @@ const isAttachmentUploadCompleted = (attachmentsWithProgress) => {
5558
5621
  * @internal
5559
5622
  */
5560
5623
  // Before sending the image, we need to add the image id we get back after uploading the images to the message content.
5561
- 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* () {
5562
5625
  if (message === '') {
5563
5626
  return message;
5564
5627
  }
5565
5628
  const document = new DOMParser().parseFromString(message !== null && message !== void 0 ? message : '', 'text/html');
5566
5629
  const imagesPromise = Array.from(document.querySelectorAll('img')).map((img) => {
5567
5630
  return new Promise((resolve, rejects) => {
5568
- 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));
5569
5632
  // The message might content images that comes with the message before editing, those images are not in the uploadInlineImages array.
5570
5633
  // This function should only modify the message content for images in the uploadInlineImages array.
5571
5634
  if (!uploadInlineImage) {
@@ -5639,12 +5702,12 @@ hasCompletedAttachmentUploads, hasError, disabled }) => {
5639
5702
  * @internal
5640
5703
  */
5641
5704
  const cancelInlineImageUpload$1 = (props) => {
5642
- const { imageSrcArray, imageUploadsInProgress, messageId, editBoxOnCancelInlineImageUpload, sendBoxOnCancelInlineImageUpload } = props;
5643
- if (imageSrcArray && imageUploadsInProgress && (imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.length) > 0) {
5644
- imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.map((uploadImage) => {
5645
- if (uploadImage.url && !(imageSrcArray === null || imageSrcArray === void 0 ? void 0 : imageSrcArray.includes(uploadImage.url))) {
5646
- sendBoxOnCancelInlineImageUpload && sendBoxOnCancelInlineImageUpload(uploadImage.id);
5647
- 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 || '');
5648
5711
  }
5649
5712
  });
5650
5713
  }
@@ -5670,11 +5733,11 @@ const toAttachmentMetadata = (attachmentsWithProgress) => {
5670
5733
  /**
5671
5734
  * @internal
5672
5735
  */
5673
- const insertImagesToContentString = (content, imageUploadsInProgress, onCompleted) => __awaiter$O(void 0, void 0, void 0, function* () {
5674
- 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) {
5675
5738
  onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(content);
5676
5739
  }
5677
- const newContent = yield addUploadedImagesToMessage(content, imageUploadsInProgress !== null && imageUploadsInProgress !== void 0 ? imageUploadsInProgress : []);
5740
+ const newContent = yield addUploadedImagesToMessage(content, inlineImages !== null && inlineImages !== void 0 ? inlineImages : []);
5678
5741
  onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(newContent);
5679
5742
  });
5680
5743
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
@@ -6821,9 +6884,17 @@ class CopyPastePlugin {
6821
6884
  }
6822
6885
  dispose() { }
6823
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
+ }
6824
6892
  handleBeforePasteEvent(event, /* @conditional-compile-remove(rich-text-editor-image-upload) */ this.onPaste);
6825
6893
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
6826
- 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
+ }
6827
6898
  if (this.editor !== null && !this.editor.isDisposed()) {
6828
6899
  // scroll the editor to the correct position after pasting content
6829
6900
  scrollToBottomAfterContentPaste(event);
@@ -6848,18 +6919,18 @@ const handleBeforePasteEvent = (event,
6848
6919
  * @internal
6849
6920
  * Exported only for unit testing
6850
6921
  */
6851
- const handleInlineImage = (event, onUploadInlineImage) => {
6852
- if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onUploadInlineImage) {
6922
+ const handleInlineImage = (event, onInsertInlineImage) => {
6923
+ if (event.eventType === PluginEventType.BeforePaste && event.pasteType === 'normal' && onInsertInlineImage) {
6853
6924
  event.fragment.querySelectorAll('img').forEach((image) => {
6854
6925
  const clipboardImage = event.clipboardData.image;
6855
6926
  const fileName = (clipboardImage === null || clipboardImage === void 0 ? void 0 : clipboardImage.name) || (clipboardImage === null || clipboardImage === void 0 ? void 0 : clipboardImage.type.replace('/', '.')) || 'image.png';
6856
- // 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.
6857
6928
  let imageUrl = image.src;
6858
6929
  if (image.src.startsWith('data:image/')) {
6859
6930
  const blobImage = _base64ToBlob(image.src);
6860
6931
  imageUrl = URL.createObjectURL(blobImage);
6861
6932
  }
6862
- onUploadInlineImage(imageUrl, fileName);
6933
+ onInsertInlineImage(imageUrl, fileName);
6863
6934
  image.src = imageUrl;
6864
6935
  image.alt = image.alt || 'image';
6865
6936
  });
@@ -7666,7 +7737,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7666
7737
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7667
7738
  onPaste,
7668
7739
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7669
- onUploadInlineImage } = props;
7740
+ onInsertInlineImage } = props;
7670
7741
  const editor = React.useRef(null);
7671
7742
  const editorDiv = React.useRef(null);
7672
7743
  const theme = useTheme();
@@ -7746,8 +7817,8 @@ const RichTextEditor = React.forwardRef((props, ref) => {
7746
7817
  }, [onChange, onContentModelUpdate, updatePlugin]);
7747
7818
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7748
7819
  React.useEffect(() => {
7749
- copyPastePlugin.onUploadInlineImage = onUploadInlineImage;
7750
- }, [copyPastePlugin, onUploadInlineImage]);
7820
+ copyPastePlugin.onInsertInlineImage = onInsertInlineImage;
7821
+ }, [copyPastePlugin, onInsertInlineImage]);
7751
7822
  const keyboardInputPlugin = React.useMemo(() => {
7752
7823
  return new KeyboardInputPlugin();
7753
7824
  }, []);
@@ -7957,7 +8028,7 @@ const RichTextInputBoxComponent = (props) => {
7957
8028
  /* @conditional-compile-remove(file-sharing-acs) */
7958
8029
  hasAttachments, richTextEditorStyleProps, isHorizontalLayoutDisabled = false, autoFocus, onTyping,
7959
8030
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
7960
- onUploadInlineImage } = props;
8031
+ onInsertInlineImage } = props;
7961
8032
  const theme = useTheme();
7962
8033
  // undefined is used to indicate that the rich text editor toolbar state wasn't changed yet
7963
8034
  const [showRichTextEditorFormatting, setShowRichTextEditorFormatting] = React.useState(undefined);
@@ -8032,7 +8103,7 @@ const RichTextInputBoxComponent = (props) => {
8032
8103
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8033
8104
  onPaste: props.onPaste,
8034
8105
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8035
- onUploadInlineImage: onUploadInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8106
+ onInsertInlineImage: onInsertInlineImage })), /* @conditional-compile-remove(file-sharing-acs) */
8036
8107
  onRenderAttachmentUploads && onRenderAttachmentUploads()),
8037
8108
  actionButtons)));
8038
8109
  };
@@ -8093,11 +8164,20 @@ const RichTextSendBoxErrors = (props) => {
8093
8164
  const onDismiss = React.useCallback(() => {
8094
8165
  if (systemMessage && !isMessageEmpty$1(systemMessage)) {
8095
8166
  setSendBoxError({ message: systemMessage, timestamp: Date.now() });
8167
+ return;
8096
8168
  }
8169
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8170
+ setSendBoxError(undefined);
8097
8171
  }, [systemMessage]);
8098
- return (React.createElement(SendBoxErrorBar, { error: sendBoxError, dismissAfterMs:
8172
+ const dismissAfterMs = React.useMemo(() => {
8173
+ const delayInMs = 10 * 1000;
8099
8174
  // don't dismiss the system message
8100
- systemMessage !== undefined && (sendBoxError === null || sendBoxError === void 0 ? void 0 : sendBoxError.message) !== systemMessage ? 10 * 1000 : undefined, onDismiss: onDismiss }));
8175
+ if (systemMessage) {
8176
+ return (sendBoxError === null || sendBoxError === void 0 ? void 0 : sendBoxError.message) !== systemMessage ? delayInMs : undefined;
8177
+ }
8178
+ return delayInMs;
8179
+ }, [sendBoxError === null || sendBoxError === void 0 ? void 0 : sendBoxError.message, systemMessage]);
8180
+ return React.createElement(SendBoxErrorBar, { error: sendBoxError, dismissAfterMs: dismissAfterMs, onDismiss: onDismiss });
8101
8181
  };
8102
8182
  const isMessageEmpty$1 = (message) => {
8103
8183
  return message.trim().length === 0;
@@ -8119,9 +8199,9 @@ const RichTextSendBox = (props) => {
8119
8199
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8120
8200
  onPaste,
8121
8201
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8122
- onUploadInlineImage,
8202
+ onInsertInlineImage,
8123
8203
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8124
- imageUploadsInProgress,
8204
+ inlineImages,
8125
8205
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8126
8206
  onCancelInlineImageUpload } = props;
8127
8207
  const theme = useTheme();
@@ -8153,7 +8233,7 @@ const RichTextSendBox = (props) => {
8153
8233
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8154
8234
  cancelInlineImageUpload$1({
8155
8235
  imageSrcArray,
8156
- imageUploadsInProgress,
8236
+ inlineImages,
8157
8237
  messageId: undefined,
8158
8238
  editBoxOnCancelInlineImageUpload: undefined,
8159
8239
  sendBoxOnCancelInlineImageUpload: onCancelInlineImageUpload
@@ -8162,7 +8242,7 @@ const RichTextSendBox = (props) => {
8162
8242
  }, [
8163
8243
  setContent,
8164
8244
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ onCancelInlineImageUpload,
8165
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadsInProgress
8245
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ inlineImages
8166
8246
  ]);
8167
8247
  const hasContent = React.useMemo(() => {
8168
8248
  var _a;
@@ -8178,19 +8258,32 @@ const RichTextSendBox = (props) => {
8178
8258
  // Don't send message until all attachments have been uploaded successfully
8179
8259
  /* @conditional-compile-remove(file-sharing-acs) */
8180
8260
  setAttachmentUploadsPendingError(undefined);
8261
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8262
+ const hasIncompleteImageUploads = hasIncompleteAttachmentUploads(inlineImages);
8181
8263
  /* @conditional-compile-remove(file-sharing-acs) */
8182
8264
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8183
8265
  if (
8184
8266
  /* @conditional-compile-remove(file-sharing-acs) */ hasIncompleteAttachmentUploads(attachments) ||
8185
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ hasIncompleteAttachmentUploads(imageUploadsInProgress)) {
8186
- setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
8267
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ hasIncompleteImageUploads) {
8268
+ /* @conditional-compile-remove(file-sharing-acs) */
8269
+ let errorMessage = strings.attachmentUploadsPendingError;
8270
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8271
+ if (hasIncompleteImageUploads) {
8272
+ errorMessage = strings.imageUploadsPendingError || '';
8273
+ }
8274
+ setAttachmentUploadsPendingError({
8275
+ message: errorMessage,
8276
+ timestamp: Date.now(),
8277
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8278
+ errorBarType: exports.SendBoxErrorBarType.info
8279
+ });
8187
8280
  return;
8188
8281
  }
8189
8282
  // we don't want to send empty messages including spaces, newlines, tabs
8190
8283
  // Message can be empty if there is a valid attachment upload
8191
8284
  if (hasContent ||
8192
8285
  /* @conditional-compile-remove(file-sharing-acs) */ isAttachmentUploadCompleted(attachments) ||
8193
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(imageUploadsInProgress)) {
8286
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(inlineImages)) {
8194
8287
  const sendMessage = (content) => {
8195
8288
  var _a, _b;
8196
8289
  onSendMessage(content,
@@ -8206,8 +8299,8 @@ const RichTextSendBox = (props) => {
8206
8299
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.focus();
8207
8300
  };
8208
8301
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8209
- if (isAttachmentUploadCompleted(imageUploadsInProgress)) {
8210
- insertImagesToContentString(contentValue, imageUploadsInProgress, (content) => {
8302
+ if (isAttachmentUploadCompleted(inlineImages)) {
8303
+ insertImagesToContentString(contentValue, inlineImages, (content) => {
8211
8304
  sendMessage(content);
8212
8305
  });
8213
8306
  return;
@@ -8220,12 +8313,13 @@ const RichTextSendBox = (props) => {
8220
8313
  /* @conditional-compile-remove(file-sharing-acs) */
8221
8314
  attachments,
8222
8315
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8223
- imageUploadsInProgress,
8316
+ inlineImages,
8224
8317
  contentValue,
8225
8318
  hasContent,
8226
8319
  /* @conditional-compile-remove(file-sharing-acs) */
8227
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
8228
8320
  strings.attachmentUploadsPendingError,
8321
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8322
+ strings.imageUploadsPendingError,
8229
8323
  onSendMessage
8230
8324
  ]);
8231
8325
  const hasErrorMessage = React.useMemo(() => {
@@ -8237,7 +8331,7 @@ const RichTextSendBox = (props) => {
8237
8331
  /* @conditional-compile-remove(file-sharing-acs) */
8238
8332
  !!((_a = attachments === null || attachments === void 0 ? void 0 : attachments.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error) ||
8239
8333
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8240
- !!((_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));
8241
8335
  }, [
8242
8336
  /* @conditional-compile-remove(file-sharing-acs) */
8243
8337
  attachments,
@@ -8246,7 +8340,7 @@ const RichTextSendBox = (props) => {
8246
8340
  attachmentUploadsPendingError,
8247
8341
  systemMessage,
8248
8342
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8249
- imageUploadsInProgress
8343
+ inlineImages
8250
8344
  ]);
8251
8345
  const onRenderSendIcon = React.useCallback((isHover) => {
8252
8346
  return (React.createElement(react.Icon, { iconName: isHover && hasContent ? 'SendBoxSendHovered' : 'SendBoxSend', className: sendIconStyle({
@@ -8264,7 +8358,7 @@ const RichTextSendBox = (props) => {
8264
8358
  /* @conditional-compile-remove(file-sharing-acs) */
8265
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;
8266
8360
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8267
- 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;
8268
8362
  /* @conditional-compile-remove(file-sharing-acs) */
8269
8363
  const errorMessage = uploadErrorMessage || /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadErrorMessage;
8270
8364
  return {
@@ -8274,7 +8368,9 @@ const RichTextSendBox = (props) => {
8274
8368
  attachmentProgressError: errorMessage
8275
8369
  ? {
8276
8370
  message: errorMessage,
8277
- timestamp: Date.now()
8371
+ timestamp: Date.now(),
8372
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
8373
+ errorBarType: exports.SendBoxErrorBarType.error
8278
8374
  }
8279
8375
  : undefined,
8280
8376
  systemMessage: systemMessage,
@@ -8287,7 +8383,7 @@ const RichTextSendBox = (props) => {
8287
8383
  /* @conditional-compile-remove(file-sharing-acs) */
8288
8384
  attachmentUploadsPendingError,
8289
8385
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8290
- imageUploadsInProgress,
8386
+ inlineImages,
8291
8387
  systemMessage
8292
8388
  ]);
8293
8389
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -8339,7 +8435,7 @@ const RichTextSendBox = (props) => {
8339
8435
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8340
8436
  onPaste: onPaste,
8341
8437
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
8342
- onUploadInlineImage: onUploadInlineImage })));
8438
+ onInsertInlineImage: onInsertInlineImage })));
8343
8439
  };
8344
8440
 
8345
8441
  // Copyright (c) Microsoft Corporation.
@@ -10350,7 +10446,7 @@ class _ErrorBoundary extends React.Component {
10350
10446
  // Copyright (c) Microsoft Corporation.
10351
10447
  // Licensed under the MIT License.
10352
10448
  /* @conditional-compile-remove(rich-text-editor) */
10353
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DeQxSr_Z.js'); }));
10449
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js'); }));
10354
10450
  /**
10355
10451
  * @private
10356
10452
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -10358,7 +10454,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
10358
10454
  *
10359
10455
  * @conditional-compile-remove(rich-text-editor)
10360
10456
  */
10361
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DeQxSr_Z.js'); });
10457
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CWwHwLsl.js'); });
10362
10458
  /**
10363
10459
  * @private
10364
10460
  */
@@ -10458,9 +10554,9 @@ const ChatMyMessageComponent = (props) => {
10458
10554
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10459
10555
  onPaste: props.onPaste,
10460
10556
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10461
- onUploadInlineImage: props.onUploadInlineImage,
10557
+ onInsertInlineImage: props.onInsertInlineImage,
10462
10558
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10463
- imageUploadsInProgress: props.imageUploadsInProgress,
10559
+ inlineImages: props.inlineImages,
10464
10560
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10465
10561
  onCancelInlineImageUpload: props.onCancelInlineImageUpload }));
10466
10562
  }
@@ -10498,11 +10594,11 @@ const FluentChatMyMessageComponent = (props) => {
10498
10594
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10499
10595
  onPaste,
10500
10596
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10501
- imageUploadsInProgress,
10597
+ inlineImages,
10502
10598
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10503
10599
  onCancelInlineImageUpload,
10504
10600
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10505
- onUploadInlineImage } = props;
10601
+ onInsertInlineImage } = props;
10506
10602
  const chatMessageRenderStyles = useChatMessageRenderStyles();
10507
10603
  /* @conditional-compile-remove(file-sharing-teams-interop) @conditional-compile-remove(file-sharing-acs) */
10508
10604
  const onRenderAttachmentDownloadsMemo = React.useMemo(() => {
@@ -10534,9 +10630,9 @@ const FluentChatMyMessageComponent = (props) => {
10534
10630
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10535
10631
  onCancelInlineImageUpload: onCancelInlineImageUpload,
10536
10632
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10537
- onUploadInlineImage: onUploadInlineImage,
10633
+ onInsertInlineImage: onInsertInlineImage,
10538
10634
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10539
- imageUploadsInProgress: imageUploadsInProgress })));
10635
+ inlineImages: inlineImages })));
10540
10636
  }
10541
10637
  return React.createElement(React.Fragment, null);
10542
10638
  }, [
@@ -10564,9 +10660,9 @@ const FluentChatMyMessageComponent = (props) => {
10564
10660
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10565
10661
  onCancelInlineImageUpload,
10566
10662
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10567
- onUploadInlineImage,
10663
+ onInsertInlineImage,
10568
10664
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10569
- imageUploadsInProgress
10665
+ inlineImages
10570
10666
  ]);
10571
10667
  const messageRenderer = React.useCallback((messageProps) => {
10572
10668
  return onRenderMessage === undefined
@@ -11390,10 +11486,10 @@ const MessageThreadWrapper = (props) => {
11390
11486
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11391
11487
  onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste,
11392
11488
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11393
- onUploadInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onUploadInlineImage,
11489
+ onInsertInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onInsertInlineImage,
11394
11490
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11395
- imageUploadsInProgress: (richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.messagesImageUploadsInProgress) &&
11396
- (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]),
11397
11493
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
11398
11494
  onCancelInlineImageUpload: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onCancelInlineImageUpload })));
11399
11495
  }))))));
@@ -12610,6 +12706,21 @@ const useVideoTileContextualMenuProps = (props) => {
12610
12706
  }, [(_a = props.participant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode]);
12611
12707
  const contextualMenuProps = React.useMemo(() => {
12612
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
+ }
12613
12724
  if (isPinned !== undefined) {
12614
12725
  if (isPinned && onUnpinParticipant && (strings === null || strings === void 0 ? void 0 : strings.unpinParticipantForMe)) {
12615
12726
  let unpinActionString = undefined;
@@ -12696,21 +12807,6 @@ const useVideoTileContextualMenuProps = (props) => {
12696
12807
  });
12697
12808
  }
12698
12809
  }
12699
- /* @conditional-compile-remove(soft-mute) */
12700
- if (onMuteParticipant && (strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel)) {
12701
- items.push({
12702
- key: 'mute',
12703
- text: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12704
- iconProps: {
12705
- iconName: 'ContextualMenuMicMutedIcon',
12706
- styles: { root: { lineHeight: 0 } }
12707
- },
12708
- onClick: () => onMuteParticipant(participant.userId),
12709
- 'data-ui-id': 'video-tile-mute-participant',
12710
- ariaLabel: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
12711
- disabled: participant.isMuted
12712
- });
12713
- }
12714
12810
  if (scalingMode) {
12715
12811
  if (scalingMode === 'Crop' && (strings === null || strings === void 0 ? void 0 : strings.fitRemoteParticipantToFrame)) {
12716
12812
  items.push({
@@ -18102,13 +18198,17 @@ const iconButtonStyles$1 = (theme) => {
18102
18198
  // Copyright (c) Microsoft Corporation.
18103
18199
  // Licensed under the MIT License.
18104
18200
  /**
18105
- * @private
18201
+ * @internal
18106
18202
  */
18107
- const formatPhoneNumber$1 = (phoneNumber) => {
18203
+ const _formatPhoneNumber = (phoneNumber, enchant) => {
18108
18204
  // if input value is falsy eg if the user deletes the input, then just return
18109
18205
  if (!phoneNumber) {
18110
18206
  return phoneNumber;
18111
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
+ }
18112
18212
  // if phone number starts with 1, format like 1 (xxx)xxx-xxxx.
18113
18213
  // if phone number starts with +, we format like +x (xxx)xxx-xxxx.
18114
18214
  // For now we are only supporting NA phone number formatting with country code +x
@@ -18363,7 +18463,7 @@ const DialpadContainer = (props) => {
18363
18463
  setText(modifiedInput);
18364
18464
  };
18365
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' },
18366
- 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),
18367
18467
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18368
18468
  onChange: (e) => {
18369
18469
  setText(e.target.value);
@@ -18862,7 +18962,7 @@ const unsupportedOperatingSystemStringsTrampoline = (locale) => {
18862
18962
  /**
18863
18963
  * @private
18864
18964
  */
18865
- const dismissButtonStyle = (theme) => ({
18965
+ const dismissButtonStyle$1 = (theme) => ({
18866
18966
  root: {
18867
18967
  padding: '0.375rem 1.25rem',
18868
18968
  width: '3.75rem',
@@ -18931,7 +19031,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
18931
19031
  ' ',
18932
19032
  onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
18933
19033
  React.createElement("span", null, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
18934
- 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: () => {
18935
19035
  setDismissedErrors(dismissError(dismissedErrors, error));
18936
19036
  }, ariaLabel: strings.dismissButtonAriaLabel }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
18937
19037
  })));
@@ -19658,7 +19758,7 @@ const MeetingConferencePhoneInfoModal = (props) => {
19658
19758
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalDialIn)))),
19659
19759
  React.createElement(react.Stack.Item, { className: phoneInfoStep$1 }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
19660
19760
  React.createElement(react.Text, { className: phoneInfoTextStyle$1 },
19661
- formatPhoneNumber(phoneNumber.phoneNumber),
19761
+ _formatPhoneNumber(phoneNumber.phoneNumber, true),
19662
19762
  ' ',
19663
19763
  phoneNumber.isTollFree
19664
19764
  ? strings.meetingConferencePhoneInfoModalTollFree
@@ -19685,25 +19785,6 @@ const MeetingConferencePhoneInfoModal = (props) => {
19685
19785
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalWait)))))))));
19686
19786
  };
19687
19787
  /* @conditional-compile-remove(teams-meeting-conference) */
19688
- /**
19689
- * @internal
19690
- * format phone number
19691
- */
19692
- const formatPhoneNumber = (phoneNumber) => {
19693
- var _a;
19694
- if (!phoneNumber) {
19695
- return '';
19696
- }
19697
- let enchantedPhoneNumber = phoneNumber;
19698
- if (!phoneNumber.startsWith('+')) {
19699
- enchantedPhoneNumber = `+${phoneNumber}`;
19700
- }
19701
- if (libphonenumberJs.isPossiblePhoneNumber(enchantedPhoneNumber)) {
19702
- return ((_a = libphonenumberJs.parsePhoneNumber(enchantedPhoneNumber)) === null || _a === void 0 ? void 0 : _a.formatInternational()) || enchantedPhoneNumber;
19703
- }
19704
- return phoneNumber;
19705
- };
19706
- /* @conditional-compile-remove(teams-meeting-conference) */
19707
19788
  /**
19708
19789
  * @internal
19709
19790
  * format phone number link
@@ -19718,7 +19799,7 @@ const formatPhoneNumberLink = (phoneNumber) => {
19718
19799
  */
19719
19800
  const formatPhoneNumberInfo = (phoneNumber, strings) => {
19720
19801
  const templateText = phoneNumber.country && phoneNumber.city ? strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTollGeoData : '';
19721
- 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()) || '');
19722
19803
  };
19723
19804
  /* @conditional-compile-remove(teams-meeting-conference) */
19724
19805
  /**
@@ -19885,36 +19966,63 @@ const NotificationStack = (props) => {
19885
19966
  * @beta
19886
19967
  */
19887
19968
  const IncomingCallNotification$k = (props) => {
19888
- 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;
19889
19975
  const theme = react.useTheme();
19890
19976
  /* @conditional-compile-remove(one-to-n-calling) */
19891
19977
  const localeStrings = useLocale$1().strings.IncomingCallNotification;
19892
- 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) },
19893
- React.createElement(react.Stack, { horizontalAlign: "start", styles: (styles === null || styles === void 0 ? void 0 : styles.avatarContainer) ? styles.avatarContainer : incomingCallToastAvatarContainerStyle },
19894
- React.createElement(react.Persona, { imageUrl: avatarImage, text: callerName, size: react.PersonaSize.size40, coinSize: personaSize, hidePersonaDetails: true, "aria-label": callerName })),
19895
- React.createElement(react.Stack, { grow: 1, horizontalAlign: "center", style: { alignItems: 'flex-start', fontFamily: 'Segoe UI' } },
19896
- React.createElement(react.Stack, { style: { fontSize: '0.875rem' } },
19897
- React.createElement(react.Text, null, callerName !== null && callerName !== void 0 ? callerName :
19898
- /* @conditional-compile-remove(one-to-n-calling) */ localeStrings.incomingCallNotificationPlaceholderId)),
19899
- React.createElement(react.Stack, { style: { fontSize: '0.75rem' } },
19900
- React.createElement(react.Text, null, alertText !== null && alertText !== void 0 ? alertText :
19901
- /* @conditional-compile-remove(one-to-n-calling) */ localeStrings.incomingCallNotificationPlaceholderAlert))),
19902
- React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: 10 } },
19903
- 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' } },
19904
20012
  /* @conditional-compile-remove(one-to-n-calling) */
19905
- ariaLabel: localeStrings.incomingCallNoticicationRejectAriaLabel }),
19906
- 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,
19907
20014
  /* @conditional-compile-remove(one-to-n-calling) */
19908
- ariaLabel: localeStrings.incomingCallNoticicationAcceptWithVideoAriaLabel }),
19909
- 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' },
19910
20018
  /* @conditional-compile-remove(one-to-n-calling) */
19911
- 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))));
19912
20021
  };
19913
20022
  const incomingCallToastStyle = (theme) => {
19914
20023
  return {
19915
20024
  root: {
19916
- minWidth: '20rem',
19917
- maxWidth: '40rem',
20025
+ width: '20rem',
19918
20026
  background: theme.palette.white,
19919
20027
  opacity: 0.95,
19920
20028
  borderRadius: '0.5rem',
@@ -19928,39 +20036,68 @@ const incomingCallToastAvatarContainerStyle = {
19928
20036
  marginRight: '0.5rem'
19929
20037
  }
19930
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
+ };
19931
20051
  const incomingCallAcceptButtonStyle = (theme) => {
19932
20052
  return {
19933
20053
  root: {
19934
- backgroundColor: theme.palette.greenDark,
19935
20054
  color: theme.palette.white,
19936
- borderRadius: '2rem',
19937
- minWidth: '2rem',
19938
- width: '2rem',
19939
- border: 'none'
20055
+ border: 'none',
20056
+ borderRadius: theme.effects.roundedCorner4,
20057
+ width: '100%',
20058
+ maxWidth: '8.875rem'
19940
20059
  },
19941
20060
  rootHovered: {
19942
- backgroundColor: theme.palette.green,
19943
20061
  color: theme.palette.white
20062
+ },
20063
+ icon: {
20064
+ height: '1.25rem'
19944
20065
  }
19945
20066
  };
19946
20067
  };
19947
20068
  const incomingCallRejectButtonStyle = (theme) => {
19948
20069
  return {
19949
20070
  root: {
19950
- backgroundColor: theme.palette.redDark,
19951
- color: theme.palette.white,
19952
- borderRadius: '2rem',
19953
- minWidth: '2rem',
19954
- width: '2rem',
19955
- border: 'none'
20071
+ borderRadius: theme.effects.roundedCorner4,
20072
+ maxWidth: '8.875rem',
20073
+ width: '100%'
19956
20074
  },
19957
- rootHovered: {
19958
- backgroundColor: theme.palette.red,
19959
- color: theme.palette.white
20075
+ icon: {
20076
+ height: '1.25rem'
19960
20077
  }
19961
20078
  };
19962
20079
  };
19963
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
+
19964
20101
  // Copyright (c) Microsoft Corporation.
19965
20102
  // Licensed under the MIT License.
19966
20103
  /**
@@ -21598,7 +21735,7 @@ const isChatError = (e) => {
21598
21735
  return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
21599
21736
  };
21600
21737
 
21601
- var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
21738
+ var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment",uploadImageDataNotProvided:"Image data is not provided.",uploadImageIsTooLarge:"Image is too large. Choose one that's less than {maxImageSize} MB.",uploadImageExtensionIsNotAllowed:"Uploading .{imageExtension} image is not allowed.",uploadImageFailed:"Unable to upload image. Please try again later."};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
21602
21739
 
21603
21740
  // Copyright (c) Microsoft Corporation.
21604
21741
  // Licensed under the MIT License.
@@ -22552,7 +22689,7 @@ const AttachmentDownloadErrorBar = (props) => {
22552
22689
  /**
22553
22690
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
22554
22691
  */
22555
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B-YGfNz1.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 })));
22556
22693
  /**
22557
22694
  * @private
22558
22695
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -22560,7 +22697,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
22560
22697
  *
22561
22698
  /* @conditional-compile-remove(rich-text-editor-composite-support)
22562
22699
  */
22563
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B-YGfNz1.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22700
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-OHSjE5aJ.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
22564
22701
  /**
22565
22702
  * @private
22566
22703
  */
@@ -22568,7 +22705,7 @@ const SendBoxPicker = (props) => {
22568
22705
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22569
22706
  const { richTextEditorOptions } = props;
22570
22707
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22571
- const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } = richTextEditorOptions || {};
22708
+ const { onPaste, onInsertInlineImage, inlineImages, onCancelInlineImageUpload } = richTextEditorOptions || {};
22572
22709
  const sendBoxProps = usePropsFor$2(SendBox);
22573
22710
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
22574
22711
  const isRichTextEditorEnabled = React.useMemo(() => {
@@ -22583,9 +22720,9 @@ const SendBoxPicker = (props) => {
22583
22720
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22584
22721
  onPaste: onPaste,
22585
22722
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22586
- onUploadInlineImage: onUploadInlineImage,
22723
+ onInsertInlineImage: onInsertInlineImage,
22587
22724
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22588
- imageUploadsInProgress: imageUploadsInProgress,
22725
+ inlineImages: inlineImages,
22589
22726
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22590
22727
  onCancelInlineImageUpload: onCancelInlineImageUpload })))));
22591
22728
  }
@@ -22638,41 +22775,25 @@ const getInlineImageData = (image) => __awaiter$E(void 0, void 0, void 0, functi
22638
22775
  /**
22639
22776
  * @internal
22640
22777
  */
22641
- const removeImageTags = (event) => {
22642
- event.content.querySelectorAll('img').forEach((image) => {
22643
- // If the image is the only child of its parent, remove all the parents of this img element.
22644
- let parentNode = image.parentElement;
22645
- let currentNode = image;
22646
- while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
22647
- currentNode = parentNode;
22648
- parentNode = parentNode.parentElement;
22649
- }
22650
- currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
22651
- });
22652
- };
22653
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
22654
- /**
22655
- * @internal
22656
- */
22657
- const getEditBoxMessagesImageUploadsInProgress = (editBoxInlineImageUploads) => {
22778
+ const getEditBoxMessagesInlineImages = (editBoxInlineImageUploads) => {
22658
22779
  if (!editBoxInlineImageUploads) {
22659
22780
  return;
22660
22781
  }
22661
22782
  const messageIds = Object.keys(editBoxInlineImageUploads || {});
22662
- const messagesImageUploadsInProgress = {};
22783
+ const messagesInlineImages = {};
22663
22784
  messageIds.map((messageId) => {
22664
22785
  const messageUploads = editBoxInlineImageUploads[messageId].map((upload) => {
22665
22786
  return upload.metadata;
22666
22787
  });
22667
- messagesImageUploadsInProgress[messageId] = messageUploads;
22788
+ messagesInlineImages[messageId] = messageUploads;
22668
22789
  });
22669
- return messagesImageUploadsInProgress;
22790
+ return messagesInlineImages;
22670
22791
  };
22671
22792
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22672
22793
  /**
22673
22794
  * @internal
22674
22795
  */
22675
- const getSendBoxImageUploadsInProgress = (sendBoxInlineImageUploads) => {
22796
+ const getSendBoxInlineImages = (sendBoxInlineImageUploads) => {
22676
22797
  var _a;
22677
22798
  if (!sendBoxInlineImageUploads) {
22678
22799
  return;
@@ -22680,32 +22801,32 @@ const getSendBoxImageUploadsInProgress = (sendBoxInlineImageUploads) => {
22680
22801
  return (_a = sendBoxInlineImageUploads[SEND_BOX_UPLOADS_KEY_VALUE]) === null || _a === void 0 ? void 0 : _a.map((upload) => upload.metadata);
22681
22802
  };
22682
22803
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22683
- const inlineImageUploadHandler = (uploadTasks, adapter) => __awaiter$E(void 0, void 0, void 0, function* () {
22684
- var _a, _b, _c, _d, _e;
22804
+ const inlineImageUploadHandler = (uploadTasks, adapter, strings) => __awaiter$E(void 0, void 0, void 0, function* () {
22805
+ var _a, _b, _c;
22685
22806
  for (const task of uploadTasks) {
22686
22807
  const uploadTask = task;
22687
22808
  const image = uploadTask.image;
22688
22809
  if (!image) {
22689
- uploadTask.notifyUploadFailed(`Image data for "${(_a = task.metadata) === null || _a === void 0 ? void 0 : _a.name}" is not provided.`);
22810
+ uploadTask.notifyUploadFailed(strings.uploadImageDataNotProvided);
22690
22811
  continue;
22691
22812
  }
22692
22813
  if (image && image.size > MAX_INLINE_IMAGE_UPLOAD_SIZE_MB * 1024 * 1024) {
22693
- uploadTask.notifyUploadFailed(`"${(_b = task.metadata) === null || _b === void 0 ? void 0 : _b.name}" is too big. Select a file under ${MAX_INLINE_IMAGE_UPLOAD_SIZE_MB}MB.`);
22814
+ uploadTask.notifyUploadFailed(strings.uploadImageIsTooLarge.replace('{maxImageSize}', `${MAX_INLINE_IMAGE_UPLOAD_SIZE_MB}`));
22694
22815
  continue;
22695
22816
  }
22696
22817
  const SUPPORTED_FILES = ['jpg', 'jpeg', 'png', 'gif', 'heic', 'webp'];
22697
- const imageExtension = (_d = (_c = task.metadata) === null || _c === void 0 ? void 0 : _c.name.split('.').pop()) !== null && _d !== void 0 ? _d : '';
22818
+ const imageExtension = (_b = (_a = task.metadata) === null || _a === void 0 ? void 0 : _a.name.split('.').pop()) !== null && _b !== void 0 ? _b : '';
22698
22819
  if (!SUPPORTED_FILES.includes(imageExtension)) {
22699
- uploadTask.notifyUploadFailed(`Uploading ".${imageExtension}" image is not allowed.`);
22820
+ uploadTask.notifyUploadFailed(strings.uploadImageExtensionIsNotAllowed.replace('{imageExtension}', imageExtension));
22700
22821
  continue;
22701
22822
  }
22702
22823
  try {
22703
- const response = yield adapter.uploadImage(image, (_e = task.metadata) === null || _e === void 0 ? void 0 : _e.name);
22824
+ const response = yield adapter.uploadImage(image, (_c = task.metadata) === null || _c === void 0 ? void 0 : _c.name);
22704
22825
  uploadTask.notifyUploadCompleted(response.id, task.metadata.url || '');
22705
22826
  }
22706
22827
  catch (error) {
22707
22828
  console.error(error);
22708
- uploadTask.notifyUploadFailed('Unable to upload inline image. Please try again later.');
22829
+ uploadTask.notifyUploadFailed(strings.uploadImageFailed);
22709
22830
  }
22710
22831
  }
22711
22832
  });
@@ -22757,7 +22878,7 @@ const generateUploadTask = (image, fileName, messageId, inlineImageUploadActionH
22757
22878
  /**
22758
22879
  * @internal
22759
22880
  */
22760
- const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction) => __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* () {
22761
22882
  const uploadTask = yield generateUploadTask(image, fileName, messageId, handleEditBoxInlineImageUploadAction);
22762
22883
  if (!uploadTask) {
22763
22884
  return;
@@ -22767,13 +22888,13 @@ const onUploadInlineImageForEditBox = (image, fileName, messageId, adapter, hand
22767
22888
  newUploads: [uploadTask],
22768
22889
  messageId
22769
22890
  });
22770
- inlineImageUploadHandler([uploadTask], adapter);
22891
+ inlineImageUploadHandler([uploadTask], adapter, chatCompositeStrings);
22771
22892
  });
22772
22893
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22773
22894
  /**
22774
22895
  * @internal
22775
22896
  */
22776
- const onUploadInlineImageForSendBox = (image, fileName, adapter, handleSendBoxInlineImageUploadAction) => __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* () {
22777
22898
  const uploadTask = yield generateUploadTask(image, fileName, SEND_BOX_UPLOADS_KEY_VALUE, handleSendBoxInlineImageUploadAction);
22778
22899
  if (!uploadTask) {
22779
22900
  return;
@@ -22783,7 +22904,7 @@ const onUploadInlineImageForSendBox = (image, fileName, adapter, handleSendBoxIn
22783
22904
  newUploads: [uploadTask],
22784
22905
  messageId: SEND_BOX_UPLOADS_KEY_VALUE
22785
22906
  });
22786
- inlineImageUploadHandler([uploadTask], adapter);
22907
+ inlineImageUploadHandler([uploadTask], adapter, chatCompositeStrings);
22787
22908
  });
22788
22909
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22789
22910
  /**
@@ -22907,6 +23028,8 @@ const ChatScreen = (props) => {
22907
23028
  const adapter = useAdapter$1();
22908
23029
  const theme = useTheme();
22909
23030
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23031
+ const localeStrings = useLocale().strings;
23032
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
22910
23033
  const [textOnlyChat, setTextOnlyChat] = React.useState(false);
22911
23034
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
22912
23035
  const [isACSChat, setIsACSChat] = React.useState(false);
@@ -23229,11 +23352,11 @@ const ChatScreen = (props) => {
23229
23352
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23230
23353
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23231
23354
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23232
- onUploadInlineImage: (imageUrl, imageFileName, messageId) => {
23233
- onUploadInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction);
23355
+ onInsertInlineImage: (imageUrl, imageFileName, messageId) => {
23356
+ onInsertInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction, localeStrings.chat);
23234
23357
  },
23235
23358
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23236
- messagesImageUploadsInProgress: getEditBoxMessagesImageUploadsInProgress(editBoxInlineImageUploads),
23359
+ messagesInlineImages: getEditBoxMessagesInlineImages(editBoxInlineImageUploads),
23237
23360
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23238
23361
  onCancelInlineImageUpload: (imageId, messageId) => {
23239
23362
  onCancelInlineImageUploadHandlerForEditBox(imageId, messageId, editBoxInlineImageUploads, adapter, handleEditBoxInlineImageUploadAction);
@@ -23242,19 +23365,19 @@ const ChatScreen = (props) => {
23242
23365
  options === null || options === void 0 ? void 0 : options.richTextEditor,
23243
23366
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,
23244
23367
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ editBoxInlineImageUploads,
23245
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ adapter
23368
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ adapter,
23369
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ localeStrings.chat
23246
23370
  ]);
23247
23371
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
23248
23372
  const richTextSendBoxOptions = React.useMemo(() => {
23249
23373
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
23250
23374
  ? Object.assign(Object.assign({}, richTextEditorOptions), {
23251
23375
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23252
- onUploadInlineImage: (imageUrl, imageFileName) => {
23253
- onUploadInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction);
23376
+ onInsertInlineImage: (imageUrl, imageFileName) => {
23377
+ onInsertInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction, localeStrings.chat);
23254
23378
  },
23255
- // onUploadInlineImageForSendBox,
23256
23379
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23257
- imageUploadsInProgress: getSendBoxImageUploadsInProgress(sendBoxInlineImageUploads),
23380
+ inlineImages: getSendBoxInlineImages(sendBoxInlineImageUploads),
23258
23381
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
23259
23382
  onCancelInlineImageUpload: (imageId) => {
23260
23383
  onCancelInlineImageUploadHandlerForSendBox(imageId, sendBoxInlineImageUploads, adapter, handleSendBoxInlineImageUploadAction);
@@ -23263,6 +23386,7 @@ const ChatScreen = (props) => {
23263
23386
  options === null || options === void 0 ? void 0 : options.richTextEditor,
23264
23387
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,
23265
23388
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ sendBoxInlineImageUploads,
23389
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ localeStrings.chat,
23266
23390
  adapter
23267
23391
  ]);
23268
23392
  return (React.createElement(react.Stack, { className: chatContainer, grow: true },
@@ -23513,6 +23637,22 @@ const getMeetingConferencePhones = (state, props) => {
23513
23637
  var _a, _b;
23514
23638
  return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.meetingConference) === null || _b === void 0 ? void 0 : _b.conferencePhones;
23515
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
+ };
23516
23656
 
23517
23657
  // Copyright (c) Microsoft Corporation.
23518
23658
  // Licensed under the MIT License.
@@ -23620,6 +23760,17 @@ const maskDisplayNameWithRole = (displayName, localUserRole, participantRole, is
23620
23760
  }
23621
23761
  return maskedDisplayName;
23622
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
+ });
23623
23774
 
23624
23775
  // Copyright (c) Microsoft Corporation.
23625
23776
  // Licensed under the MIT License.
@@ -24245,6 +24396,21 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
24245
24396
  }), onRemoveParticipant: (userId) => __awaiter$A(void 0, void 0, void 0, function* () {
24246
24397
  const participant = _toCommunicationIdentifier(userId);
24247
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
+ }
24248
24414
  }) });
24249
24415
  });
24250
24416
 
@@ -24307,6 +24473,21 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
24307
24473
  }
24308
24474
  /* @conditional-compile-remove(teams-identity-support) */
24309
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
+ }
24310
24491
  }) });
24311
24492
  });
24312
24493
 
@@ -24473,6 +24654,36 @@ const appendActiveErrorIfDefined$1 = (activeErrorMessages, latestErrors, target,
24473
24654
  });
24474
24655
  };
24475
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
+
24476
24687
  // Copyright (c) Microsoft Corporation.
24477
24688
  // Licensed under the MIT License.
24478
24689
  /**
@@ -24641,7 +24852,9 @@ class ProxyDeviceManager {
24641
24852
  });
24642
24853
  this.audioDevicesUpdated = () => __awaiter$y(this, void 0, void 0, function* () {
24643
24854
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
24644
- this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24855
+ if (this._deviceManager.isSpeakerSelectionAvailable) {
24856
+ this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
24857
+ }
24645
24858
  });
24646
24859
  this.selectedMicrophoneChanged = () => {
24647
24860
  this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);
@@ -24949,12 +25162,27 @@ function convertSdkCallToDeclarativeCall(call) {
24949
25162
  * @private
24950
25163
  */
24951
25164
  function convertSdkIncomingCallToDeclarativeIncomingCall(call) {
24952
- return {
24953
- id: call.id,
24954
- callerInfo: call.callerInfo,
24955
- startTime: new Date(),
24956
- endTime: undefined
24957
- };
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
+ }
24958
25186
  }
24959
25187
  /**
24960
25188
  * @private
@@ -25246,6 +25474,12 @@ let CallContext$2 = class CallContext {
25246
25474
  draft.calls[latestCallId] = call;
25247
25475
  }
25248
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
+ }
25249
25483
  }
25250
25484
  removeCall(callId) {
25251
25485
  this.modifyState((draft) => {
@@ -27796,12 +28030,11 @@ class ProxyCallAgentCommon {
27796
28030
  }
27797
28031
  if (_isTeamsIncomingCall(incomingCall)) {
27798
28032
  this._incomingCalls.set(incomingCall.id, teamsIncomingCallDeclaratify(incomingCall, this._context));
27799
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27800
28033
  }
27801
28034
  else {
27802
28035
  this._incomingCalls.set(incomingCall.id, incomingCallDeclaratify(incomingCall, this._context));
27803
- this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27804
28036
  }
28037
+ this._context.setIncomingCall(convertSdkIncomingCallToDeclarativeIncomingCall(incomingCall));
27805
28038
  };
27806
28039
  this.addCall = (call) => {
27807
28040
  var _a;
@@ -29616,6 +29849,10 @@ const getSelector = (component) => {
29616
29849
  if (component === NotificationStack) {
29617
29850
  return findConditionalCompiledSelector(component);
29618
29851
  }
29852
+ /* @conditional-compile-remove(one-to-n-calling) */
29853
+ if (component === IncomingCallStack) {
29854
+ return findConditionalCompiledSelector(component);
29855
+ }
29619
29856
  return findSelector(component);
29620
29857
  };
29621
29858
  const findSelector = (component) => {
@@ -29649,7 +29886,7 @@ const findSelector = (component) => {
29649
29886
  }
29650
29887
  return undefined;
29651
29888
  };
29652
- /* @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) */
29653
29890
  const findConditionalCompiledSelector = (component) => {
29654
29891
  switch (component) {
29655
29892
  /* @conditional-compile-remove(PSTN-calls) */
@@ -29660,6 +29897,10 @@ const findConditionalCompiledSelector = (component) => {
29660
29897
  case NotificationStack:
29661
29898
  /* @conditional-compile-remove(notifications) */
29662
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;
29663
29904
  }
29664
29905
  };
29665
29906
 
@@ -33520,25 +33761,23 @@ const SidePane = (props) => {
33520
33761
  closePane
33521
33762
  ]);
33522
33763
  const HeaderToRender = props.mobileView && (overrideSidePaneId === 'chat' || (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? LegacyHeader : Header();
33523
- const ContentRender = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? undefined : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.contentRenderer;
33524
- 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)
33525
33766
  ? overrideSidePane.renderer.contentRenderer
33526
33767
  : undefined;
33527
- if (!ContentRender && !OverrideContentRender) {
33768
+ if (!ContentRenderer && !OverrideContentRenderer) {
33528
33769
  return React.createElement(EmptyElement, null);
33529
33770
  }
33530
33771
  return (React.createElement(react.Stack, { verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView ? {} : sidePaneTokens },
33531
33772
  HeaderToRender,
33532
33773
  React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
33533
33774
  React.createElement(react.Stack, { verticalFill: true, styles: scrollableContainer },
33534
- ContentRender && (React.createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
33535
- React.createElement(react.Stack, { styles: containerContextStyles },
33536
- React.createElement(ContentRender, null)))),
33537
- 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)
33538
33778
  ? hiddenStyles
33539
33779
  : scrollableContainerContents },
33540
- React.createElement(react.Stack, { styles: containerContextStyles },
33541
- React.createElement(OverrideContentRender, null))))))));
33780
+ React.createElement(react.Stack, { styles: containerContextStyles }, OverrideContentRenderer === null || OverrideContentRenderer === void 0 ? void 0 : OverrideContentRenderer())))))));
33542
33781
  };
33543
33782
  // eslint-disable-next-line @typescript-eslint/no-empty-function
33544
33783
  const noop = () => { };
@@ -34136,17 +34375,6 @@ const usePeoplePane = (props) => {
34136
34375
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
34137
34376
  const sidePaneHeaderMenuProps = React.useMemo(() => {
34138
34377
  const menuItems = [];
34139
- if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
34140
- menuItems.push({
34141
- key: 'stopAllSpotlightKey',
34142
- text: localeStrings.stopAllSpotlightMenuLabel,
34143
- iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },
34144
- onClick: () => {
34145
- onStopAllSpotlight();
34146
- },
34147
- ariaLabel: localeStrings.stopAllSpotlightMenuLabel
34148
- });
34149
- }
34150
34378
  /* @conditional-compile-remove(soft-mute) */
34151
34379
  if (onMuteAllRemoteParticipants && remoteParticipants) {
34152
34380
  let isAllMuted = true;
@@ -34173,6 +34401,17 @@ const usePeoplePane = (props) => {
34173
34401
  disabled: isAllMuted
34174
34402
  });
34175
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
+ }
34176
34415
  return {
34177
34416
  items: menuItems
34178
34417
  };
@@ -34182,17 +34421,35 @@ const usePeoplePane = (props) => {
34182
34421
  localeStrings.stopAllSpotlightMenuLabel,
34183
34422
  /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,
34184
34423
  /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,
34185
- /* @conditional-compile-remove(soft-mute) */ remoteParticipants,
34186
- /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt
34424
+ /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
34425
+ /* @conditional-compile-remove(soft-mute) */ remoteParticipants
34187
34426
  ]);
34188
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]);
34189
34428
  const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
34190
- var _a;
34191
34429
  let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participantId);
34192
- const _defaultMenuItems = defaultMenuItems !== null && defaultMenuItems !== void 0 ? defaultMenuItems : [];
34430
+ const _defaultMenuItems = [];
34193
34431
  const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.includes(participantId);
34194
34432
  const isMe = myUserId === participantId;
34195
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
+ }
34196
34453
  if (isSpotlighted) {
34197
34454
  const stopSpotlightMenuText = isMe
34198
34455
  ? localeStrings.stopSpotlightOnSelfMenuLabel
@@ -34248,24 +34505,6 @@ const usePeoplePane = (props) => {
34248
34505
  });
34249
34506
  }
34250
34507
  }
34251
- /* @conditional-compile-remove(soft-mute) */
34252
- if (onMuteParticipant && !isMe) {
34253
- const isMuted = remoteParticipants && ((_a = remoteParticipants[participantId]) === null || _a === void 0 ? void 0 : _a.isMuted);
34254
- _defaultMenuItems.push({
34255
- key: 'mute',
34256
- text: 'Mute',
34257
- iconProps: {
34258
- iconName: 'ContextualMenuMicMutedIcon',
34259
- styles: { root: { lineHeight: 0 } }
34260
- },
34261
- onClick: () => {
34262
- onMuteParticipant(participantId);
34263
- },
34264
- 'data-ui-id': 'participant-item-mute-participant',
34265
- ariaLabel: 'Mute',
34266
- disabled: isMuted
34267
- });
34268
- }
34269
34508
  if (!isMe && isPinned !== undefined) {
34270
34509
  if (isPinned && onUnpinParticipant && (localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.unpinParticipantMenuLabel)) {
34271
34510
  _defaultMenuItems.push({
@@ -34301,6 +34540,9 @@ const usePeoplePane = (props) => {
34301
34540
  });
34302
34541
  }
34303
34542
  }
34543
+ if (defaultMenuItems) {
34544
+ _defaultMenuItems.push(...defaultMenuItems);
34545
+ }
34304
34546
  return onFetchParticipantMenuItems
34305
34547
  ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)
34306
34548
  : _defaultMenuItems;
@@ -34490,7 +34732,7 @@ const MeetingPhoneInfoPaneContent = (props) => {
34490
34732
  React.createElement(react.Stack.Item, null,
34491
34733
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
34492
34734
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
34493
- 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)),
34494
34736
  React.createElement(react.Text, { className: phoneInfoTextStyle },
34495
34737
  ' ',
34496
34738
  phoneNumber.isTollFree
@@ -35904,8 +36146,8 @@ const NetworkReconnectTile = (props) => {
35904
36146
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
35905
36147
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, meetingCoordinates.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
35906
36148
  React.createElement(react.Text, { className: phoneInfoTextStyle },
35907
- props.isMobile && (React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, formatPhoneNumber(phoneNumber.phoneNumber))),
35908
- !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))),
35909
36151
  ' ',
35910
36152
  phoneNumber.isTollFree
35911
36153
  ? localeStrings.meetingConferencePhoneInfoModalTollFree
@@ -42739,6 +42981,7 @@ exports.GridLayout = GridLayout;
42739
42981
  exports.HoldButton = HoldButton;
42740
42982
  exports.ImageOverlay = ImageOverlay;
42741
42983
  exports.IncomingCallNotification = IncomingCallNotification$k;
42984
+ exports.IncomingCallStack = IncomingCallStack;
42742
42985
  exports.InputBoxButton = InputBoxButton;
42743
42986
  exports.LocalizationProvider = LocalizationProvider$1;
42744
42987
  exports.MAXIMUM_LENGTH_OF_MESSAGE = MAXIMUM_LENGTH_OF_MESSAGE;
@@ -42827,4 +43070,4 @@ exports.useTeamsCall = useTeamsCall;
42827
43070
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
42828
43071
  exports.useTeamsCallAgent = useTeamsCallAgent;
42829
43072
  exports.useTheme = useTheme;
42830
- //# sourceMappingURL=index-DCOkbnBI.js.map
43073
+ //# sourceMappingURL=index-Dl3wPPJe.js.map