@azure/communication-react 1.16.0-alpha-202404190012 → 1.16.0-alpha-202404200012

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 (180) hide show
  1. package/dist/communication-react.d.ts +145 -82
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-WGqg2woK.js → ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js} +3 -3
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-WGqg2woK.js.map → ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{index-oaEwmItW.js → index-C2GfkUGz.js} +255 -365
  5. package/dist/dist-cjs/communication-react/index-C2GfkUGz.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/index.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -7
  10. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +5 -32
  12. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +0 -8
  14. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/index.js +0 -1
  16. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  17. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +22 -24
  19. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +0 -2
  21. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  22. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +0 -4
  23. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  24. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.d.ts +0 -1
  25. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js +0 -1
  26. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  27. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -2
  28. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  30. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -1
  31. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  32. package/dist/dist-esm/communication-react/src/index.d.ts +2 -2
  33. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  34. package/dist/dist-esm/react-components/src/components/AttachmentCard.d.ts +2 -2
  35. package/dist/dist-esm/react-components/src/components/AttachmentCard.js +2 -2
  36. package/dist/dist-esm/react-components/src/components/AttachmentCard.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.d.ts +3 -4
  38. package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js +2 -2
  39. package/dist/dist-esm/react-components/src/components/AttachmentUploadCards.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +4 -4
  41. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +1 -1
  43. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +1 -1
  45. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +1 -1
  47. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/components/LocalVideoTile.d.ts +1 -0
  49. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -2
  50. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
  52. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +1 -1
  53. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  54. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +11 -4
  55. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +4 -4
  57. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +20 -13
  58. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +1 -1
  60. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +4 -4
  61. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +4 -4
  63. package/dist/dist-esm/react-components/src/components/SendBox.js +20 -14
  64. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +1 -1
  66. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +6 -6
  67. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +0 -4
  69. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  70. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +15 -0
  71. package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -5
  72. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  73. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +5 -0
  74. package/dist/dist-esm/react-components/src/components/VideoTile.js +7 -5
  75. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -2
  77. package/dist/dist-esm/react-components/src/components/index.js +0 -4
  78. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  79. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +1 -1
  80. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +4 -1
  81. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  82. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +0 -4
  83. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +0 -7
  84. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  85. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -3
  86. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +6 -6
  87. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  88. package/dist/dist-esm/react-components/src/index.js +0 -1
  89. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  90. package/dist/dist-esm/react-components/src/theming/icons.js +0 -6
  91. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  92. package/dist/dist-esm/react-components/src/theming/themes.d.ts +1 -0
  93. package/dist/dist-esm/react-components/src/theming/themes.js +4 -2
  94. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  95. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +48 -24
  96. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +5 -0
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +4 -19
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.d.ts +4 -4
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  106. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +5 -23
  107. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  108. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +2 -0
  109. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +4 -3
  110. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  111. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -4
  112. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  113. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +2 -1
  114. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +1 -1
  116. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  117. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -7
  118. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  119. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  120. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +5 -3
  121. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +20 -18
  122. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +17 -11
  124. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  125. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -4
  126. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  127. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -3
  128. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +5 -1
  129. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  130. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +4 -4
  131. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -2
  132. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  133. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -7
  134. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  135. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.d.ts +14 -13
  136. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js +30 -21
  137. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js.map +1 -1
  138. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +5 -3
  139. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +26 -2
  140. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  141. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +10 -5
  142. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.d.ts +2 -2
  144. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  145. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +10 -10
  146. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +7 -7
  147. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
  148. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +1 -1
  149. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
  150. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +1 -1
  151. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  152. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +2 -2
  153. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  154. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/attachmentUploadsSelector.d.ts +5 -5
  155. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +2 -2
  156. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +1 -1
  157. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  158. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +2 -27
  159. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  160. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +0 -20
  161. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  162. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +0 -13
  163. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  164. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +4 -15
  165. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  166. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +1 -17
  167. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  168. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js +0 -9
  169. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js.map +1 -1
  170. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +0 -23
  171. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  172. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +0 -3
  173. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  174. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js +0 -9
  175. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js.map +1 -1
  176. package/package.json +3 -3
  177. package/dist/dist-cjs/communication-react/index-oaEwmItW.js.map +0 -1
  178. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.d.ts +0 -6
  179. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +0 -11
  180. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +0 -1
@@ -176,7 +176,7 @@ function getDefaultExportFromCjs (x) {
176
176
  // Copyright (c) Microsoft Corporation.
177
177
  // Licensed under the MIT License.
178
178
  // GENERATED FILE. DO NOT EDIT MANUALLY.
179
- var telemetryVersion = '1.16.0-alpha-202404190012';
179
+ var telemetryVersion = '1.16.0-alpha-202404200012';
180
180
 
181
181
 
182
182
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -484,43 +484,36 @@ const getParticipantCount = (state, props) => {
484
484
  /* @conditional-compile-remove(total-participant-count) */
485
485
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.totalParticipantCount;
486
486
  };
487
- /* @conditional-compile-remove(close-captions) */
488
487
  /** @private */
489
488
  const getCaptions = (state, props) => {
490
489
  var _a;
491
490
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.captions;
492
491
  };
493
- /* @conditional-compile-remove(close-captions) */
494
492
  /** @private */
495
493
  const getCaptionsStatus$1 = (state, props) => {
496
494
  var _a;
497
495
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;
498
496
  };
499
- /* @conditional-compile-remove(close-captions) */
500
497
  /** @private */
501
498
  const getStartCaptionsInProgress = (state, props) => {
502
499
  var _a;
503
500
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.startCaptionsInProgress;
504
501
  };
505
- /* @conditional-compile-remove(close-captions) */
506
502
  /** @private */
507
503
  const getCurrentCaptionLanguage = (state, props) => {
508
504
  var _a;
509
505
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.currentCaptionLanguage;
510
506
  };
511
- /* @conditional-compile-remove(close-captions) */
512
507
  /** @private */
513
508
  const getCurrentSpokenLanguage = (state, props) => {
514
509
  var _a;
515
510
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.currentSpokenLanguage;
516
511
  };
517
- /* @conditional-compile-remove(close-captions) */
518
512
  /** @private */
519
513
  const getSupportedCaptionLanguages = (state, props) => {
520
514
  var _a;
521
515
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.supportedCaptionLanguages;
522
516
  };
523
- /* @conditional-compile-remove(close-captions) */
524
517
  /** @private */
525
518
  const getSupportedSpokenLanguages = (state, props) => {
526
519
  var _a;
@@ -1101,22 +1094,18 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1101
1094
  return (createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundReplacementConfig)));
1102
1095
  }
1103
1096
  });
1104
- /* @conditional-compile-remove(close-captions) */
1105
1097
  const onStartCaptions = (options) => __awaiter$R(void 0, void 0, void 0, function* () {
1106
1098
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1107
1099
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.startCaptions(options));
1108
1100
  });
1109
- /* @conditional-compile-remove(close-captions) */
1110
1101
  const onStopCaptions = () => __awaiter$R(void 0, void 0, void 0, function* () {
1111
1102
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1112
1103
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.stopCaptions());
1113
1104
  });
1114
- /* @conditional-compile-remove(close-captions) */
1115
1105
  const onSetSpokenLanguage = (language) => __awaiter$R(void 0, void 0, void 0, function* () {
1116
1106
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1117
1107
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.setSpokenLanguage(language));
1118
1108
  });
1119
- /* @conditional-compile-remove(close-captions) */
1120
1109
  const onSetCaptionLanguage = (language) => __awaiter$R(void 0, void 0, void 0, function* () {
1121
1110
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1122
1111
  yield captionsFeature.setCaptionLanguage(language);
@@ -1198,13 +1187,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1198
1187
  onRemoveVideoBackgroundEffects,
1199
1188
  onBlurVideoBackground,
1200
1189
  onReplaceVideoBackground,
1201
- /* @conditional-compile-remove(close-captions) */
1202
1190
  onStartCaptions,
1203
- /* @conditional-compile-remove(close-captions) */
1204
1191
  onStopCaptions,
1205
- /* @conditional-compile-remove(close-captions) */
1206
1192
  onSetCaptionLanguage,
1207
- /* @conditional-compile-remove(close-captions) */
1208
1193
  onSetSpokenLanguage,
1209
1194
  /* @conditional-compile-remove(end-of-call-survey) */
1210
1195
  onSubmitSurvey,
@@ -1332,8 +1317,6 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
1332
1317
 
1333
1318
  // Copyright (c) Microsoft Corporation.
1334
1319
  // Licensed under the MIT License.
1335
- /* @conditional-compile-remove(close-captions) */
1336
- /* @conditional-compile-remove(close-captions) */
1337
1320
  /**
1338
1321
  * Selector for {@link StartCaptionsButton} component.
1339
1322
  *
@@ -1346,7 +1329,6 @@ const _startCaptionsButtonSelector = reselect__namespace.createSelector([getCapt
1346
1329
  currentSpokenLanguage: currentSpokenLanguage !== null && currentSpokenLanguage !== void 0 ? currentSpokenLanguage : 'en-us'
1347
1330
  };
1348
1331
  });
1349
- /* @conditional-compile-remove(close-captions) */
1350
1332
  /**
1351
1333
  * Selector for Changing caption language and spoken language
1352
1334
  *
@@ -1367,34 +1349,19 @@ const _captionSettingsSelector = reselect__namespace.createSelector([
1367
1349
  isCaptionsFeatureActive: isCaptionsFeatureActive !== null && isCaptionsFeatureActive !== void 0 ? isCaptionsFeatureActive : false
1368
1350
  };
1369
1351
  });
1370
- /* @conditional-compile-remove(close-captions) */
1371
1352
  /**
1372
1353
  * Selector for {@link CaptionsBanner} component.
1373
1354
  *
1374
1355
  * @internal
1375
1356
  */
1376
1357
  const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions, getCaptionsStatus$1, getStartCaptionsInProgress], (captions, isCaptionsFeatureActive, startCaptionsInProgress) => {
1377
- // Following Teams app logic, no matter how many 'Partial' captions come,
1378
- // we only pick first one according to start time, and all the other partial captions will be filtered out
1379
- // This will give customers a stable captions experience when others talking over the dominant speaker
1380
- // First turn all partial captions that are older than 5 seconds to final
1381
- captions === null || captions === void 0 ? void 0 : captions.filter((captions) => captions.resultType === 'Partial').forEach((c) => {
1382
- // if c is created more than 5 seconds ago, make it final
1383
- if (c.timestamp.getTime() + 5000 < Date.now()) {
1384
- // make it final
1385
- c.resultType = 'Final';
1386
- }
1387
- });
1388
- const captionsToRender = captions === null || captions === void 0 ? void 0 : captions.filter((captions) => captions.resultType === 'Final');
1389
- const firstPartialCaptions = captions === null || captions === void 0 ? void 0 : captions.filter((captions) => captions.resultType === 'Partial').sort(captionsComparator)[0];
1390
- firstPartialCaptions && (captionsToRender === null || captionsToRender === void 0 ? void 0 : captionsToRender.push(firstPartialCaptions));
1391
- const captionsInfo = captionsToRender === null || captionsToRender === void 0 ? void 0 : captionsToRender.map((c) => {
1392
- var _a, _b;
1358
+ const captionsInfo = captions === null || captions === void 0 ? void 0 : captions.map((c, index) => {
1359
+ var _a, _b, _c;
1393
1360
  const userId = getCaptionsSpeakerIdentifier(c);
1394
1361
  return {
1395
- id: c.timestamp.getTime() + userId + c.speaker.displayName,
1396
- displayName: (_a = c.speaker.displayName) !== null && _a !== void 0 ? _a : 'Unnamed Participant',
1397
- captionText: (_b = c.captionText) !== null && _b !== void 0 ? _b : '',
1362
+ id: (_a = c.speaker.displayName) !== null && _a !== void 0 ? _a : 'Unnamed Participant' + index,
1363
+ displayName: (_b = c.speaker.displayName) !== null && _b !== void 0 ? _b : 'Unnamed Participant',
1364
+ captionText: (_c = c.captionText) !== null && _c !== void 0 ? _c : '',
1398
1365
  userId
1399
1366
  };
1400
1367
  });
@@ -1404,12 +1371,6 @@ const _captionsBannerSelector = reselect__namespace.createSelector([getCaptions,
1404
1371
  startCaptionsInProgress: startCaptionsInProgress !== null && startCaptionsInProgress !== void 0 ? startCaptionsInProgress : false
1405
1372
  };
1406
1373
  });
1407
- /* @conditional-compile-remove(close-captions) */
1408
- const captionsComparator = (captionsA, captionsB) => {
1409
- return (captionsA.timestamp.getTime() - captionsB.timestamp.getTime() ||
1410
- getCaptionsSpeakerIdentifier(captionsA).localeCompare(getCaptionsSpeakerIdentifier(captionsB)));
1411
- };
1412
- /* @conditional-compile-remove(close-captions) */
1413
1374
  const getCaptionsSpeakerIdentifier = (captions) => {
1414
1375
  return captions.speaker.identifier ? toFlatCommunicationIdentifier(captions.speaker.identifier) : '';
1415
1376
  };
@@ -1862,7 +1823,6 @@ function convertSdkCallToDeclarativeCall(call) {
1862
1823
  startTime: new Date(),
1863
1824
  endTime: undefined,
1864
1825
  role: call.role,
1865
- /* @conditional-compile-remove(close-captions) */
1866
1826
  captionsFeature: {
1867
1827
  captions: [],
1868
1828
  supportedSpokenLanguages: [],
@@ -1908,7 +1868,6 @@ function convertFromSDKToDeclarativeVideoStreamRendererView(view) {
1908
1868
  target: view.target
1909
1869
  };
1910
1870
  }
1911
- /* @conditional-compile-remove(close-captions) */
1912
1871
  /**
1913
1872
  * @private
1914
1873
  */
@@ -2066,9 +2025,7 @@ let CallContext$2 = class CallContext {
2066
2025
  /* @conditional-compile-remove(total-participant-count) */
2067
2026
  existingCall.totalParticipantCount = call.totalParticipantCount;
2068
2027
  // We don't update the startTime and endTime if we are updating an existing active call
2069
- /* @conditional-compile-remove(close-captions) */
2070
2028
  existingCall.captionsFeature.currentSpokenLanguage = call.captionsFeature.currentSpokenLanguage;
2071
- /* @conditional-compile-remove(close-captions) */
2072
2029
  existingCall.captionsFeature.currentCaptionLanguage = call.captionsFeature.currentCaptionLanguage;
2073
2030
  /* @conditional-compile-remove(meeting-id) */
2074
2031
  existingCall.info = call.info;
@@ -2713,28 +2670,36 @@ let CallContext$2 = class CallContext {
2713
2670
  this._atomicId++;
2714
2671
  return id;
2715
2672
  }
2716
- /* @conditional-compile-remove(close-captions) */
2717
2673
  processNewCaption(captions, newCaption) {
2718
- // going through current captions to find the last caption said by the same speaker, remove that caption if it's partial and replace with the new caption
2719
- for (let index = captions.length - 1; index >= 0; index--) {
2720
- const currentCaption = captions[index];
2721
- if (currentCaption &&
2722
- currentCaption.resultType !== 'Final' &&
2723
- currentCaption.speaker.identifier &&
2724
- newCaption.speaker.identifier &&
2725
- toFlatCommunicationIdentifier(currentCaption.speaker.identifier) ===
2726
- toFlatCommunicationIdentifier(newCaption.speaker.identifier)) {
2727
- captions.splice(index, 1);
2728
- break;
2674
+ // time stamp when new caption comes in
2675
+ newCaption.timestamp = new Date();
2676
+ // if this is the first caption, push it in
2677
+ if (captions.length === 0) {
2678
+ captions.push(newCaption);
2679
+ }
2680
+ // if the last caption is final, then push the new one in
2681
+ else if (captions[captions.length - 1].resultType === 'Final') {
2682
+ captions.push(newCaption);
2683
+ }
2684
+ // if the last caption is Partial, then check if the speaker is the same as the new caption, if so, update the last caption
2685
+ else {
2686
+ if (toFlatCommunicationIdentifier(captions[captions.length - 1].speaker.identifier) === toFlatCommunicationIdentifier(newCaption.speaker.identifier)) {
2687
+ captions[captions.length - 1] = newCaption;
2688
+ }
2689
+ // if different speaker, ignore the interjector until the current speaker finishes
2690
+ // edge case: if we dont receive the final caption from the current speaker for 5 secs, we turn the current speaker caption to final and push in the new interjector
2691
+ else {
2692
+ if (Date.now() - captions[captions.length - 1].timestamp.getTime() > 5000) {
2693
+ captions[captions.length - 1].resultType = 'Final';
2694
+ captions.push(newCaption);
2695
+ }
2729
2696
  }
2730
2697
  }
2731
- captions.push(newCaption);
2732
2698
  // If the array length exceeds 50, remove the oldest caption
2733
2699
  if (captions.length > 50) {
2734
2700
  captions.shift();
2735
2701
  }
2736
2702
  }
2737
- /* @conditional-compile-remove(close-captions) */
2738
2703
  addTeamsCaption(callId, caption) {
2739
2704
  this.modifyState((draft) => {
2740
2705
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2766,7 +2731,6 @@ let CallContext$2 = class CallContext {
2766
2731
  }
2767
2732
  });
2768
2733
  }
2769
- /* @conditional-compile-remove(close-captions) */
2770
2734
  clearCaptions(callId) {
2771
2735
  this.modifyState((draft) => {
2772
2736
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2775,7 +2739,6 @@ let CallContext$2 = class CallContext {
2775
2739
  }
2776
2740
  });
2777
2741
  }
2778
- /* @conditional-compile-remove(close-captions) */
2779
2742
  setIsCaptionActive(callId, isCaptionsActive) {
2780
2743
  this.modifyState((draft) => {
2781
2744
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2784,7 +2747,6 @@ let CallContext$2 = class CallContext {
2784
2747
  }
2785
2748
  });
2786
2749
  }
2787
- /* @conditional-compile-remove(close-captions) */
2788
2750
  setStartCaptionsInProgress(callId, startCaptionsInProgress) {
2789
2751
  this.modifyState((draft) => {
2790
2752
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2793,7 +2755,6 @@ let CallContext$2 = class CallContext {
2793
2755
  }
2794
2756
  });
2795
2757
  }
2796
- /* @conditional-compile-remove(close-captions) */
2797
2758
  setSelectedSpokenLanguage(callId, spokenLanguage) {
2798
2759
  this.modifyState((draft) => {
2799
2760
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2802,7 +2763,6 @@ let CallContext$2 = class CallContext {
2802
2763
  }
2803
2764
  });
2804
2765
  }
2805
- /* @conditional-compile-remove(close-captions) */
2806
2766
  setSelectedCaptionLanguage(callId, captionLanguage) {
2807
2767
  this.modifyState((draft) => {
2808
2768
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2811,7 +2771,6 @@ let CallContext$2 = class CallContext {
2811
2771
  }
2812
2772
  });
2813
2773
  }
2814
- /* @conditional-compile-remove(close-captions) */
2815
2774
  setAvailableCaptionLanguages(callId, captionLanguages) {
2816
2775
  this.modifyState((draft) => {
2817
2776
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2820,7 +2779,6 @@ let CallContext$2 = class CallContext {
2820
2779
  }
2821
2780
  });
2822
2781
  }
2823
- /* @conditional-compile-remove(close-captions) */
2824
2782
  setAvailableSpokenLanguages(callId, spokenLanguages) {
2825
2783
  this.modifyState((draft) => {
2826
2784
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
@@ -2913,7 +2871,6 @@ function clearParticipantReactionState(callContext, callId, participantKey) {
2913
2871
 
2914
2872
  // Copyright (c) Microsoft Corporation.
2915
2873
  // Licensed under the MIT License.
2916
- /* @conditional-compile-remove(close-captions) */
2917
2874
  /**
2918
2875
  * @private
2919
2876
  */
@@ -4195,7 +4152,6 @@ class CallSubscriber {
4195
4152
  constructor(call, context, internalContext) {
4196
4153
  this.subscribe = () => {
4197
4154
  this._call.on('stateChanged', this.stateChanged);
4198
- /* @conditional-compile-remove(close-captions) */
4199
4155
  this._call.on('stateChanged', this.initCaptionSubscriber);
4200
4156
  /* @conditional-compile-remove(local-recording-notification) */
4201
4157
  this._call.on('stateChanged', this.initLocalRecordingNotificationSubscriber);
@@ -4221,7 +4177,6 @@ class CallSubscriber {
4221
4177
  this.unsubscribe = () => {
4222
4178
  var _a, _b, _c, _d;
4223
4179
  this._call.off('stateChanged', this.stateChanged);
4224
- /* @conditional-compile-remove(close-captions) */
4225
4180
  this._call.off('stateChanged', this.initCaptionSubscriber);
4226
4181
  /* @conditional-compile-remove(local-recording-notification) */
4227
4182
  this._call.off('stateChanged', this.initLocalRecordingNotificationSubscriber);
@@ -4262,7 +4217,6 @@ class CallSubscriber {
4262
4217
  this.stateChanged = () => {
4263
4218
  this._context.setCallState(this._callIdRef.callId, this._call.state);
4264
4219
  };
4265
- /* @conditional-compile-remove(close-captions) */
4266
4220
  this.initCaptionSubscriber = () => {
4267
4221
  // subscribe to captions here so that we don't call captions when call is not initialized
4268
4222
  if (this._call.state === 'Connected' && !this._CaptionsFeatureSubscriber) {
@@ -4734,7 +4688,6 @@ class ProxyCallCommon {
4734
4688
  case 'feature': {
4735
4689
  // these are mini version of Proxy object - if it grows too big, a real Proxy object should be used.
4736
4690
  return this._context.withErrorTeedToState((...args) => {
4737
- /* @conditional-compile-remove(close-captions) */
4738
4691
  if (args[0] === communicationCalling.Features.Captions) {
4739
4692
  const captionsFeature = target.feature(communicationCalling.Features.Captions).captions;
4740
4693
  let proxyFeature;
@@ -4765,7 +4718,6 @@ class ProxyCallCommon {
4765
4718
  }
4766
4719
  }
4767
4720
  }
4768
- /* @conditional-compile-remove(close-captions) */
4769
4721
  /**
4770
4722
  * @private
4771
4723
  */
@@ -6526,7 +6478,8 @@ const lightTheme = {
6526
6478
  callRedDark: '#8b2c3d',
6527
6479
  callRedDarker: '#772a38',
6528
6480
  iconWhite: '#ffffff',
6529
- raiseHandGold: '#eaa300'
6481
+ raiseHandGold: '#eaa300',
6482
+ videoTileLabelBackgroundLight: 'rgba(255,255,255,0.8)'
6530
6483
  },
6531
6484
  semanticColors: {
6532
6485
  errorText: '#a80000'
@@ -6568,7 +6521,8 @@ const darkTheme = {
6568
6521
  callRedDark: '#a42e43',
6569
6522
  callRedDarker: '#8b2c3d',
6570
6523
  iconWhite: '#ffffff',
6571
- raiseHandGold: '#eaa300'
6524
+ raiseHandGold: '#eaa300',
6525
+ videoTileLabelBackgroundLight: 'rgba(37,36,35,0.8)'
6572
6526
  },
6573
6527
  semanticColors: {
6574
6528
  errorText: '#f1707b'
@@ -6847,15 +6801,10 @@ const DEFAULT_COMPONENT_ICONS = {
6847
6801
  VerticalGalleryRightButton: React.createElement(GalleryRightButton, null),
6848
6802
  ControlButtonVideoEffectsOption: React.createElement(reactIcons.VideoBackgroundEffect20Regular, null),
6849
6803
  ConfigurationScreenVideoEffectsButton: React.createElement(reactIcons.VideoBackgroundEffect20Filled, null),
6850
- /* @conditional-compile-remove(close-captions) */
6851
6804
  CaptionsIcon: React.createElement(reactIcons.ClosedCaption20Regular, null),
6852
- /* @conditional-compile-remove(close-captions) */
6853
6805
  CaptionsOffIcon: React.createElement(reactIcons.ClosedCaptionOff20Regular, null),
6854
- /* @conditional-compile-remove(close-captions) */
6855
6806
  CaptionsSettingsIcon: React.createElement(reactIcons.Settings20Regular, null),
6856
- /* @conditional-compile-remove(close-captions) */
6857
6807
  ChangeSpokenLanguageIcon: React.createElement(reactIcons.PersonVoice20Regular, null),
6858
- /* @conditional-compile-remove(close-captions) */
6859
6808
  ChangeCaptionLanguageIcon: React.createElement(reactIcons.Translate20Regular, null),
6860
6809
  ContextMenuCameraIcon: React.createElement(reactIcons.Video20Regular, null),
6861
6810
  ContextMenuMicIcon: React.createElement(reactIcons.Mic20Regular, null),
@@ -8813,15 +8762,15 @@ const SendBoxErrorBar = (props) => {
8813
8762
  * @private
8814
8763
  */
8815
8764
  const SendBoxErrors = (props) => {
8816
- const { attachmentUploadError, attachmentUploadsPendingError } = props;
8765
+ const { attachmentProgressError, attachmentUploadsPendingError } = props;
8817
8766
  const errorToDisplay = React.useMemo(() => {
8818
- if (attachmentUploadError && attachmentUploadsPendingError) {
8819
- return attachmentUploadError.timestamp > attachmentUploadsPendingError.timestamp
8820
- ? attachmentUploadError
8767
+ if (attachmentProgressError && attachmentUploadsPendingError) {
8768
+ return attachmentProgressError.timestamp > attachmentUploadsPendingError.timestamp
8769
+ ? attachmentProgressError
8821
8770
  : attachmentUploadsPendingError;
8822
8771
  }
8823
- return attachmentUploadError || attachmentUploadsPendingError;
8824
- }, [attachmentUploadError, attachmentUploadsPendingError]);
8772
+ return attachmentProgressError || attachmentUploadsPendingError;
8773
+ }, [attachmentProgressError, attachmentUploadsPendingError]);
8825
8774
  return React.createElement(SendBoxErrorBar, { error: errorToDisplay, dismissAfterMs: 10 * 1000 });
8826
8775
  };
8827
8776
 
@@ -8884,8 +8833,8 @@ const _AttachmentCard = (props) => {
8884
8833
  const { attachment, menuActions, onActionHandlerFailed } = props;
8885
8834
  const attachmentCardStyles = useAttachmentCardStyles();
8886
8835
  const progress = React.useMemo(() => {
8887
- return attachment.progress;
8888
- }, [attachment.progress]);
8836
+ return 'progress' in attachment ? attachment.progress : undefined;
8837
+ }, [attachment]);
8889
8838
  const isUploadComplete = React.useMemo(() => {
8890
8839
  return progress !== undefined && progress > 0 && progress < 1;
8891
8840
  }, [progress]);
@@ -8987,7 +8936,7 @@ const actionIconStyle = { height: '1rem' };
8987
8936
  */
8988
8937
  const _AttachmentUploadCards = (props) => {
8989
8938
  var _a;
8990
- const attachments = props.activeAttachmentUploads;
8939
+ const attachments = props.attachmentsWithProgress;
8991
8940
  const localeStrings = useLocaleAttachmentCardStringsTrampoline();
8992
8941
  const removeAttachmentButtonString = React.useMemo(() => () => {
8993
8942
  var _a, _b;
@@ -8998,7 +8947,7 @@ const _AttachmentUploadCards = (props) => {
8998
8947
  }
8999
8948
  return (React.createElement(_AttachmentCardGroup, null, attachments &&
9000
8949
  attachments
9001
- .filter((attachment) => !attachment.uploadError)
8950
+ .filter((attachment) => !attachment.error)
9002
8951
  .map((attachment) => {
9003
8952
  var _a, _b;
9004
8953
  return (React.createElement(_AttachmentCard, { attachment: attachment, key: attachment.id, menuActions: [
@@ -9033,18 +8982,18 @@ const EMPTY_MESSAGE_REGEX = /^\s*$/;
9033
8982
  /**
9034
8983
  * @private
9035
8984
  */
9036
- const hasIncompleteAttachmentUploads = (activeAttachmentUploads) => {
9037
- return !!((activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.length) &&
9038
- !activeAttachmentUploads
9039
- .filter((attachmentUpload) => !attachmentUpload.uploadError)
8985
+ const hasIncompleteAttachmentUploads = (attachmentsWithProgress) => {
8986
+ return !!((attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.length) &&
8987
+ !attachmentsWithProgress
8988
+ .filter((attachmentUpload) => !attachmentUpload.error)
9040
8989
  .every((attachmentUpload) => attachmentUpload.progress === 1 && attachmentUpload.progress !== undefined));
9041
8990
  };
9042
8991
  /* @conditional-compile-remove(attachment-upload) */
9043
8992
  /**
9044
8993
  * @private
9045
8994
  */
9046
- const hasCompletedAttachmentUploads = (activeAttachmentUploads) => {
9047
- return !!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.find((attachment) => !attachment.uploadError));
8995
+ const hasCompletedAttachmentUploads = (attachmentsWithProgress) => {
8996
+ return !!(attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.find((attachment) => !attachment.error));
9048
8997
  };
9049
8998
  /**
9050
8999
  * @private
@@ -9436,7 +9385,7 @@ const SendBox = (props) => {
9436
9385
  /* @conditional-compile-remove(mention) */
9437
9386
  mentionLookupOptions,
9438
9387
  /* @conditional-compile-remove(attachment-upload) */
9439
- activeAttachmentUploads } = props;
9388
+ attachmentsWithProgress } = props;
9440
9389
  const theme = useTheme();
9441
9390
  const localeStrings = useLocale$1().strings.sendBox;
9442
9391
  const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
@@ -9456,7 +9405,7 @@ const SendBox = (props) => {
9456
9405
  /* @conditional-compile-remove(attachment-upload) */
9457
9406
  setAttachmentUploadsPendingError(undefined);
9458
9407
  /* @conditional-compile-remove(attachment-upload) */
9459
- if (hasIncompleteAttachmentUploads(activeAttachmentUploads)) {
9408
+ if (hasIncompleteAttachmentUploads(attachmentsWithProgress)) {
9460
9409
  setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
9461
9410
  return;
9462
9411
  }
@@ -9464,7 +9413,7 @@ const SendBox = (props) => {
9464
9413
  // we don't want to send empty messages including spaces, newlines, tabs
9465
9414
  // Message can be empty if there is a valid attachment upload
9466
9415
  if (sanitizeText(message).length > 0 ||
9467
- /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(activeAttachmentUploads)) {
9416
+ /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(attachmentsWithProgress)) {
9468
9417
  onSendMessage && onSendMessage(message);
9469
9418
  setTextValue('');
9470
9419
  }
@@ -9484,13 +9433,13 @@ const SendBox = (props) => {
9484
9433
  const mergedSendIconStyle = React.useMemo(() => sendIconStyle({
9485
9434
  theme,
9486
9435
  hasText: !!textValue,
9487
- /* @conditional-compile-remove(attachment-upload) */ hasAttachment: hasCompletedAttachmentUploads(activeAttachmentUploads),
9436
+ /* @conditional-compile-remove(attachment-upload) */ hasAttachment: hasCompletedAttachmentUploads(attachmentsWithProgress),
9488
9437
  hasErrorMessage: !!errorMessage,
9489
9438
  customSendIconStyle: styles === null || styles === void 0 ? void 0 : styles.sendMessageIcon
9490
9439
  }), [
9491
9440
  theme,
9492
9441
  textValue,
9493
- /* @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
9442
+ /* @conditional-compile-remove(attachment-upload) */ attachmentsWithProgress,
9494
9443
  errorMessage,
9495
9444
  styles === null || styles === void 0 ? void 0 : styles.sendMessageIcon
9496
9445
  ]);
@@ -9498,34 +9447,34 @@ const SendBox = (props) => {
9498
9447
  // Ensure that errors are cleared when there are no attachments in sendBox
9499
9448
  /* @conditional-compile-remove(attachment-upload) */
9500
9449
  React.useEffect(() => {
9501
- if (!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((upload) => !upload.uploadError).length)) {
9450
+ if (!(attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((upload) => !upload.error).length)) {
9502
9451
  setAttachmentUploadsPendingError(undefined);
9503
9452
  }
9504
- }, [activeAttachmentUploads]);
9453
+ }, [attachmentsWithProgress]);
9505
9454
  /* @conditional-compile-remove(attachment-upload) */
9506
9455
  const sendBoxErrorsProps = React.useMemo(() => {
9507
9456
  var _a;
9508
9457
  return {
9509
9458
  attachmentUploadsPendingError: attachmentUploadsPendingError,
9510
- attachmentUploadError: (_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError
9459
+ attachmentProgressError: (_a = attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error
9511
9460
  };
9512
- }, [activeAttachmentUploads, attachmentUploadsPendingError]);
9461
+ }, [attachmentsWithProgress, attachmentUploadsPendingError]);
9513
9462
  /* @conditional-compile-remove(attachment-upload) */
9514
9463
  const onRenderAttachmentUploads = React.useCallback(() => {
9515
9464
  var _a, _b, _c, _d, _e, _f, _g, _h;
9516
- if (!(activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((upload) => !upload.uploadError).length)) {
9465
+ if (!(attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((upload) => !upload.error).length)) {
9517
9466
  return null;
9518
9467
  }
9519
9468
  return props.onRenderAttachmentUploads ? (props.onRenderAttachmentUploads()) : (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
9520
9469
  React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
9521
- React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: activeAttachmentUploads, onCancelAttachmentUpload: props.onCancelAttachmentUpload, strings: {
9470
+ React.createElement(_AttachmentUploadCards, { attachmentsWithProgress: attachmentsWithProgress, onCancelAttachmentUpload: props.onCancelAttachmentUpload, strings: {
9522
9471
  removeAttachment: (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeAttachment) !== null && _b !== void 0 ? _b : localeStrings.removeAttachment,
9523
9472
  uploading: (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.uploading) !== null && _d !== void 0 ? _d : localeStrings.uploading,
9524
9473
  uploadCompleted: (_f = (_e = props.strings) === null || _e === void 0 ? void 0 : _e.uploadCompleted) !== null && _f !== void 0 ? _f : localeStrings.uploadCompleted,
9525
9474
  attachmentMoreMenu: (_h = (_g = props.strings) === null || _g === void 0 ? void 0 : _g.attachmentMoreMenu) !== null && _h !== void 0 ? _h : localeStrings.attachmentMoreMenu
9526
9475
  } }))));
9527
9476
  }, [
9528
- activeAttachmentUploads,
9477
+ attachmentsWithProgress,
9529
9478
  props,
9530
9479
  theme,
9531
9480
  localeStrings.removeAttachment,
@@ -9534,8 +9483,14 @@ const SendBox = (props) => {
9534
9483
  localeStrings.attachmentMoreMenu
9535
9484
  ]);
9536
9485
  return (React.createElement(react.Stack, { className: react.mergeStyles(sendBoxWrapperStyles, { overflow: 'visible' } // This is needed for the mention popup to be visible
9537
- ) }, /* @conditional-compile-remove(attachment-upload) */
9538
- React.createElement(SendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
9486
+ ) },
9487
+ /* @conditional-compile-remove(attachment-upload) */
9488
+ React.createElement(SendBoxErrors, { attachmentProgressError: sendBoxErrorsProps.attachmentProgressError
9489
+ ? {
9490
+ message: sendBoxErrorsProps.attachmentProgressError.message,
9491
+ timestamp: Date.now()
9492
+ }
9493
+ : undefined, attachmentUploadsPendingError: sendBoxErrorsProps.attachmentUploadsPendingError }),
9539
9494
  React.createElement(react.Stack, { className: borderAndBoxShadowStyle({
9540
9495
  theme,
9541
9496
  hasErrorMessage: !!errorMessage,
@@ -10628,10 +10583,17 @@ const RichTextEditor = React.forwardRef((props, ref) => {
10628
10583
  onKeyDown: props.onKeyDown, focusOnInit: autoFocus === 'sendBoxTextField' }))));
10629
10584
  });
10630
10585
  const focusAndUpdateContent = (editor, content) => {
10631
- // focus the editor to set correct selection position
10632
- editor.focus();
10633
- // set initial content
10586
+ // setting focus before setting content, works for Chrome and Edge but not Safari
10634
10587
  editor.setContent(content);
10588
+ // this is a recommended way (by RoosterJS team) to set focus at the end of the text
10589
+ // RoosterJS v9 has this issue fixed and this code can be removed
10590
+ editor.insertContent('<span id="focus-position-span"></span>', { position: roosterjsEditorTypesCompatible.CompatibleContentPosition.DomEnd });
10591
+ const elements = editor.queryElements('#focus-position-span');
10592
+ if (elements.length > 0) {
10593
+ const placeholder = editor.queryElements('#focus-position-span')[0];
10594
+ editor.select(placeholder, roosterjsEditorTypesCompatible.CompatiblePositionType.Before);
10595
+ placeholder.remove();
10596
+ }
10635
10597
  };
10636
10598
 
10637
10599
  // Copyright (c) Microsoft Corporation.
@@ -10744,7 +10706,7 @@ const RichTextInputBoxComponent = (props) => {
10744
10706
  const RichTextSendBoxErrors = (props) => {
10745
10707
  const {
10746
10708
  /* @conditional-compile-remove(attachment-upload) */
10747
- attachmentUploadError,
10709
+ attachmentProgressError,
10748
10710
  /* @conditional-compile-remove(attachment-upload) */
10749
10711
  attachmentUploadsPendingError, systemMessage, textTooLongMessage } = props;
10750
10712
  const [sendBoxError, setSendBoxError] = React.useState(undefined);
@@ -10775,8 +10737,8 @@ const RichTextSendBoxErrors = (props) => {
10775
10737
  errors.push(attachmentUploadsPendingError);
10776
10738
  }
10777
10739
  /* @conditional-compile-remove(attachment-upload) */
10778
- if (attachmentUploadError) {
10779
- errors.push(attachmentUploadError);
10740
+ if (attachmentProgressError) {
10741
+ errors.push(attachmentProgressError);
10780
10742
  }
10781
10743
  if (errors.length === 0) {
10782
10744
  return undefined;
@@ -10786,7 +10748,7 @@ const RichTextSendBoxErrors = (props) => {
10786
10748
  return sortedErrors[0];
10787
10749
  });
10788
10750
  }, [
10789
- /* @conditional-compile-remove(attachment-upload) */ attachmentUploadError,
10751
+ /* @conditional-compile-remove(attachment-upload) */ attachmentProgressError,
10790
10752
  /* @conditional-compile-remove(attachment-upload) */ attachmentUploadsPendingError
10791
10753
  ]);
10792
10754
  const onDismiss = React.useCallback(() => {
@@ -10812,7 +10774,7 @@ const isMessageEmpty$1 = (message) => {
10812
10774
  const RichTextSendBox = (props) => {
10813
10775
  const { disabled = false, systemMessage, autoFocus, onSendMessage, onTyping,
10814
10776
  /* @conditional-compile-remove(attachment-upload) */
10815
- activeAttachmentUploads,
10777
+ attachmentsWithProgress,
10816
10778
  /* @conditional-compile-remove(attachment-upload) */
10817
10779
  onCancelAttachmentUpload } = props;
10818
10780
  const theme = useTheme();
@@ -10846,7 +10808,7 @@ const RichTextSendBox = (props) => {
10846
10808
  /* @conditional-compile-remove(attachment-upload) */
10847
10809
  setAttachmentUploadsPendingError(undefined);
10848
10810
  /* @conditional-compile-remove(attachment-upload) */
10849
- if (hasIncompleteAttachmentUploads(activeAttachmentUploads)) {
10811
+ if (hasIncompleteAttachmentUploads(attachmentsWithProgress)) {
10850
10812
  setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
10851
10813
  return;
10852
10814
  }
@@ -10862,7 +10824,7 @@ const RichTextSendBox = (props) => {
10862
10824
  // we don't want to send empty messages including spaces, newlines, tabs
10863
10825
  // Message can be empty if there is a valid attachment upload
10864
10826
  if (hasContent ||
10865
- /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(activeAttachmentUploads)) {
10827
+ /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(attachmentsWithProgress)) {
10866
10828
  onSendMessage(message);
10867
10829
  setContentValue('');
10868
10830
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.setEmptyContent();
@@ -10874,7 +10836,7 @@ const RichTextSendBox = (props) => {
10874
10836
  disabled,
10875
10837
  onSendMessage,
10876
10838
  strings.placeholderText,
10877
- /* @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
10839
+ /* @conditional-compile-remove(attachment-upload) */ attachmentsWithProgress,
10878
10840
  /* @conditional-compile-remove(attachment-upload) */ strings.attachmentUploadsPendingError
10879
10841
  ]);
10880
10842
  const hasErrorMessage = React.useMemo(() => {
@@ -10884,10 +10846,10 @@ const RichTextSendBox = (props) => {
10884
10846
  /* @conditional-compile-remove(attachment-upload) */
10885
10847
  !!attachmentUploadsPendingError ||
10886
10848
  /* @conditional-compile-remove(attachment-upload) */
10887
- !!((_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError));
10849
+ !!((_a = attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error));
10888
10850
  }, [
10889
10851
  /* @conditional-compile-remove(attachment-upload) */
10890
- activeAttachmentUploads,
10852
+ attachmentsWithProgress,
10891
10853
  contentTooLongMessage,
10892
10854
  /* @conditional-compile-remove(attachment-upload) */
10893
10855
  attachmentUploadsPendingError,
@@ -10914,18 +10876,25 @@ const RichTextSendBox = (props) => {
10914
10876
  }) }));
10915
10877
  }, [contentValue, disabled, hasErrorMessage, strings.placeholderText, theme]);
10916
10878
  const sendBoxErrorsProps = React.useMemo(() => {
10917
- var _a;
10879
+ var _a, _b;
10880
+ /* @conditional-compile-remove(attachment-upload) */
10881
+ const uploadErrorMessage = (_b = (_a = attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((attachmentUpload) => attachmentUpload.error).pop()) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.message;
10918
10882
  return {
10919
10883
  /* @conditional-compile-remove(attachment-upload) */
10920
10884
  attachmentUploadsPendingError: attachmentUploadsPendingError,
10921
10885
  /* @conditional-compile-remove(attachment-upload) */
10922
- attachmentUploadError: (_a = activeAttachmentUploads === null || activeAttachmentUploads === void 0 ? void 0 : activeAttachmentUploads.filter((attachmentUpload) => attachmentUpload.uploadError).pop()) === null || _a === void 0 ? void 0 : _a.uploadError,
10886
+ attachmentProgressError: uploadErrorMessage
10887
+ ? {
10888
+ message: uploadErrorMessage,
10889
+ timestamp: Date.now()
10890
+ }
10891
+ : undefined,
10923
10892
  systemMessage: systemMessage,
10924
10893
  textTooLongMessage: contentTooLongMessage
10925
10894
  };
10926
10895
  }, [
10927
10896
  /* @conditional-compile-remove(attachment-upload) */
10928
- activeAttachmentUploads,
10897
+ attachmentsWithProgress,
10929
10898
  contentTooLongMessage,
10930
10899
  /* @conditional-compile-remove(attachment-upload) */
10931
10900
  attachmentUploadsPendingError,
@@ -10935,14 +10904,14 @@ const RichTextSendBox = (props) => {
10935
10904
  const onRenderAttachmentUploads = React.useCallback(() => {
10936
10905
  return (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
10937
10906
  React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
10938
- React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: activeAttachmentUploads, onCancelAttachmentUpload: onCancelAttachmentUpload, strings: {
10907
+ React.createElement(_AttachmentUploadCards, { attachmentsWithProgress: attachmentsWithProgress, onCancelAttachmentUpload: onCancelAttachmentUpload, strings: {
10939
10908
  removeAttachment: strings.removeAttachment,
10940
10909
  uploading: strings.uploading,
10941
10910
  uploadCompleted: strings.uploadCompleted,
10942
10911
  attachmentMoreMenu: strings.attachmentMoreMenu
10943
10912
  } }))));
10944
10913
  }, [
10945
- activeAttachmentUploads,
10914
+ attachmentsWithProgress,
10946
10915
  onCancelAttachmentUpload,
10947
10916
  strings.removeAttachment,
10948
10917
  strings.uploadCompleted,
@@ -10958,8 +10927,8 @@ const RichTextSendBox = (props) => {
10958
10927
  }, [localeStrings.sendButtonAriaLabel, onRenderSendIcon, sendMessageOnClick]);
10959
10928
  /* @conditional-compile-remove(attachment-upload) */
10960
10929
  const hasAttachmentUploads = React.useMemo(() => {
10961
- return (hasCompletedAttachmentUploads(activeAttachmentUploads) || hasIncompleteAttachmentUploads(activeAttachmentUploads));
10962
- }, [activeAttachmentUploads]);
10930
+ return (hasCompletedAttachmentUploads(attachmentsWithProgress) || hasIncompleteAttachmentUploads(attachmentsWithProgress));
10931
+ }, [attachmentsWithProgress]);
10963
10932
  return (React.createElement(react.Stack, null,
10964
10933
  React.createElement(RichTextSendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
10965
10934
  React.createElement(RichTextInputBoxComponent
@@ -11224,7 +11193,7 @@ const useChatMessageStyles = reactComponents.makeStyles({
11224
11193
  }, '& video': {
11225
11194
  maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element
11226
11195
  height: 'auto !important'
11227
- }, '& p': Object.assign({}, reactComponents.shorthands.marginBlock('0.125rem')), '& blockquote': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted, clear: 'left', minHeight: '2.25rem', width: 'fit-content', marginTop: '7px', marginRight: '0px', marginLeft: '0px', marginBottom: '7px', paddingTop: '7px', paddingRight: '15px', paddingLeft: '15px', paddingBottom: '7px' }, reactComponents.shorthands.border('solid')), reactComponents.shorthands.borderRadius('4px')), reactComponents.shorthands.borderWidth('1px')), reactComponents.shorthands.borderColor(reactComponents.tokens.colorNeutralStroke1Selected)), { borderLeftWidth: '4px' }), '& table': Object.assign(Object.assign({ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted }, reactComponents.shorthands.borderColor(reactComponents.tokens.colorNeutralStroke1Selected)), { borderCollapse: 'collapse', tableLayout: 'auto', width: '100%', '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) }) }) }),
11196
+ }, '& p': Object.assign({}, reactComponents.shorthands.marginBlock('0.125rem')), '& blockquote': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted, clear: 'left', minHeight: '2.25rem', width: 'fit-content', marginTop: '7px', marginRight: '0px', marginLeft: '0px', marginBottom: '7px', paddingTop: '7px', paddingRight: '15px', paddingLeft: '15px', paddingBottom: '7px' }, reactComponents.shorthands.border('solid')), reactComponents.shorthands.borderRadius('4px')), reactComponents.shorthands.borderWidth('1px')), reactComponents.shorthands.borderColor(reactComponents.tokens.colorNeutralStroke1Selected)), { borderLeftWidth: '4px' }) }),
11228
11197
  bodyWithPlaceholderImage: {
11229
11198
  '& img[src=""]': {
11230
11199
  display: 'block',
@@ -11260,6 +11229,9 @@ const useChatMessageStyles = reactComponents.makeStyles({
11260
11229
  * @private
11261
11230
  */
11262
11231
  const useChatMessageCommonStyles = reactComponents.makeStyles({
11232
+ body: {
11233
+ '& table': Object.assign(Object.assign({ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted }, reactComponents.shorthands.borderColor(reactComponents.tokens.colorNeutralStroke1Selected)), { borderCollapse: 'collapse', tableLayout: 'auto', width: '100%', '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) }) })
11234
+ },
11263
11235
  failed: {
11264
11236
  //TODO: can we reuse a theme color here?
11265
11237
  backgroundColor: 'rgba(168, 0, 0, 0.2)'
@@ -12636,7 +12608,7 @@ const MessageBubble$1 = (props) => {
12636
12608
  React.createElement("div", { key: props.message.messageId },
12637
12609
  React.createElement(reactChat.ChatMyMessage, { attached: attached, key: props.message.messageId, body: {
12638
12610
  // messageContainerStyle used in className and style prop as style prop can't handle CSS selectors
12639
- className: reactComponents.mergeClasses(chatMyMessageStyles.body, isBlockedMessage
12611
+ className: reactComponents.mergeClasses(chatMessageCommonStyles.body, chatMyMessageStyles.body, isBlockedMessage
12640
12612
  ? chatMessageCommonStyles.blocked
12641
12613
  : props.message.status === 'failed'
12642
12614
  ? chatMessageCommonStyles.failed
@@ -12737,7 +12709,7 @@ const ChatMessageComponentAsEditBox = (props) => {
12737
12709
  const onRenderAttachmentUploads = React.useCallback(() => {
12738
12710
  return (!!attachmentMetadata &&
12739
12711
  attachmentMetadata.length > 0 && (React.createElement("div", { style: { margin: '0.25rem' } },
12740
- React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: attachmentMetadata, onCancelAttachmentUpload: (attachmentId) => {
12712
+ React.createElement(_AttachmentUploadCards, { attachmentsWithProgress: attachmentMetadata, onCancelAttachmentUpload: (attachmentId) => {
12741
12713
  setAttachmentMetadata(attachmentMetadata === null || attachmentMetadata === void 0 ? void 0 : attachmentMetadata.filter((attachment) => attachment.id !== attachmentId));
12742
12714
  } }))));
12743
12715
  }, [attachmentMetadata]);
@@ -12813,7 +12785,7 @@ class ErrorBoundary extends React.Component {
12813
12785
  // Copyright (c) Microsoft Corporation.
12814
12786
  // Licensed under the MIT License.
12815
12787
  /* @conditional-compile-remove(rich-text-editor) */
12816
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-WGqg2woK.js'); }));
12788
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js'); }));
12817
12789
  /**
12818
12790
  * @private
12819
12791
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -12821,7 +12793,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
12821
12793
  *
12822
12794
  * @conditional-compile-remove(rich-text-editor)
12823
12795
  */
12824
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-WGqg2woK.js'); });
12796
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js'); });
12825
12797
  /**
12826
12798
  * @private
12827
12799
  */
@@ -13073,9 +13045,7 @@ const MessageBubble = (props) => {
13073
13045
  const isBlockedMessage = /* @conditional-compile-remove(data-loss-prevention) */ message.messageType === 'blocked';
13074
13046
  const chatMessageCommonStyles = useChatMessageCommonStyles();
13075
13047
  const chatMessageStyles = useChatMessageStyles();
13076
- const chatItemMessageContainerClassName = reactComponents.mergeClasses(
13077
- // messageContainerStyle used in className and style prop as style prop can't handle CSS selectors
13078
- chatMessageStyles.body,
13048
+ const chatItemMessageContainerClassName = reactComponents.mergeClasses(chatMessageCommonStyles.body, chatMessageStyles.body,
13079
13049
  // disable placeholder functionality for GA releases as it might confuse users
13080
13050
  chatMessageStyles.bodyWithPlaceholderImage, isBlockedMessage
13081
13051
  ? chatMessageCommonStyles.blocked
@@ -13083,7 +13053,9 @@ const MessageBubble = (props) => {
13083
13053
  ? chatMessageCommonStyles.failed
13084
13054
  : undefined, shouldOverlapAvatarAndMessage ? chatMessageStyles.avatarOverlap : chatMessageStyles.avatarNoOverlap, message.attached === 'top' || message.attached === false
13085
13055
  ? chatMessageStyles.bodyWithAvatar
13086
- : chatMessageStyles.bodyWithoutAvatar, react.mergeStyles(messageContainerStyle));
13056
+ : chatMessageStyles.bodyWithoutAvatar,
13057
+ // messageContainerStyle used in className and style prop as style prop can't handle CSS selectors
13058
+ react.mergeStyles(messageContainerStyle));
13087
13059
  const attached = message.attached === true ? 'center' : message.attached === 'bottom' ? 'bottom' : 'top';
13088
13060
  const chatMessage = (React.createElement(React.Fragment, null,
13089
13061
  React.createElement("div", { key: props.message.messageId },
@@ -15204,13 +15176,6 @@ const disabledVideoHint = react.mergeStyles({
15204
15176
  padding: '0.15rem',
15205
15177
  maxWidth: '100%'
15206
15178
  });
15207
- /**
15208
- * @private
15209
- */
15210
- const videoHint = react.mergeStyles(disabledVideoHint, {
15211
- // This will appear on top of the video stream, so no dependency on theme and explicitly use a translucent white
15212
- backgroundColor: 'rgba(255,255,255,0.8)'
15213
- });
15214
15179
  /**
15215
15180
  * @private
15216
15181
  */
@@ -15340,16 +15305,6 @@ const reactionRenderingStyle = (args) => {
15340
15305
  });
15341
15306
  };
15342
15307
 
15343
- // Copyright (c) Microsoft Corporation.
15344
- // Licensed under the MIT License.
15345
- /**
15346
- * @private
15347
- */
15348
- const getVideoTileOverrideColor = (isVideoRendered, theme, color) => {
15349
- // when video is being rendered, the info has a grey-ish background, so no use of theme
15350
- return { color: isVideoRendered ? react.DefaultPalette[color] : theme.palette[color] };
15351
- };
15352
-
15353
15308
  // Copyright (c) Microsoft Corporation.
15354
15309
  // Licensed under the MIT License.
15355
15310
  /**
@@ -15490,6 +15445,7 @@ const VideoTile = (props) => {
15490
15445
  const videoTileRef = React.useRef(null);
15491
15446
  const locale = useLocale$1();
15492
15447
  const theme = useTheme();
15448
+ const callingPalette = theme.callingPalette;
15493
15449
  const isVideoRendered = !!renderElement;
15494
15450
  const observer = React.useRef(new ResizeObserver((entries) => {
15495
15451
  const { width, height } = entries[0].contentRect;
@@ -15560,14 +15516,16 @@ const VideoTile = (props) => {
15560
15516
  styles: defaultPersonaStyles$1,
15561
15517
  hidePersonaDetails: true
15562
15518
  };
15563
- const videoHintWithBorderRadius = react.mergeStyles(videoHint, { borderRadius: theme.effects.roundedCorner4 });
15564
- const tileInfoStyle = React.useMemo(() => react.mergeStyles(isVideoRendered ? videoHintWithBorderRadius : disabledVideoHint, getVideoTileOverrideColor(isVideoRendered, theme, 'neutralPrimary'), styles === null || styles === void 0 ? void 0 : styles.displayNameContainer), [isVideoRendered, videoHintWithBorderRadius, theme, styles === null || styles === void 0 ? void 0 : styles.displayNameContainer]);
15519
+ const videoHintWithBorderRadius = react.mergeStyles(disabledVideoHint, {
15520
+ borderRadius: theme.effects.roundedCorner4,
15521
+ backgroundColor: callingPalette.videoTileLabelBackgroundLight
15522
+ });
15523
+ const tileInfoStyle = React.useMemo(() => react.mergeStyles(isVideoRendered || props.alwaysShowLabelBackground ? videoHintWithBorderRadius : disabledVideoHint, styles === null || styles === void 0 ? void 0 : styles.displayNameContainer), [isVideoRendered, videoHintWithBorderRadius, styles === null || styles === void 0 ? void 0 : styles.displayNameContainer, props.alwaysShowLabelBackground]);
15565
15524
  const ids = useIdentifiers();
15566
15525
  const canShowLabel = showLabel && (displayName || (showMuteIndicator && isMuted));
15567
15526
  const participantStateString = participantStateStringTrampoline(props, locale);
15568
15527
  const canShowContextMenuButton = isHovered || isFocused;
15569
15528
  let raisedHandBackgroundColor = '';
15570
- const callingPalette = theme.callingPalette;
15571
15529
  raisedHandBackgroundColor = callingPalette.raiseHandGold;
15572
15530
  return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
15573
15531
  background: theme.palette.neutralLighter,
@@ -16405,7 +16363,7 @@ const _RemoteVideoTile = React.memo((props) => {
16405
16363
  /* @conditional-compile-remove(hide-attendee-name) */
16406
16364
  displayName = formatDisplayName();
16407
16365
  return (React.createElement(react.Stack, { tabIndex: menuKind === 'drawer' ? 0 : undefined, onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined, style: remoteVideoTileWrapperStyle },
16408
- React.createElement(VideoTile, Object.assign({ key: userId, userId: userId, initialsName: (_b = remoteParticipant.displayName) !== null && _b !== void 0 ? _b : '', renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: remoteParticipant.isMuted, raisedHand: remoteParticipant.raisedHand, isSpeaking: remoteParticipant.isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: props.showLabel,
16366
+ React.createElement(VideoTile, Object.assign({ key: userId, userId: userId, initialsName: (_b = remoteParticipant.displayName) !== null && _b !== void 0 ? _b : '', renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: remoteParticipant.isMuted, raisedHand: remoteParticipant.raisedHand, isSpeaking: remoteParticipant.isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: props.showLabel, alwaysShowLabelBackground: props.alwaysShowLabelBackground,
16409
16367
  /* @conditional-compile-remove(one-to-n-calling) */
16410
16368
  /* @conditional-compile-remove(PSTN-calls) */
16411
16369
  participantState: participantState }, videoTileContextualMenuProps, { isPinned: props.isPinned, onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))),
@@ -16656,7 +16614,7 @@ const LocalVideoCameraCycleButton = (props) => {
16656
16614
  * @internal
16657
16615
  */
16658
16616
  const _LocalVideoTile = React.memo((props) => {
16659
- const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction,
16617
+ const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, alwaysShowLabelBackground, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction,
16660
16618
  /* @conditional-compile-remove(spotlight) */
16661
16619
  isSpotlighted,
16662
16620
  /* @conditional-compile-remove(spotlight) */
@@ -16758,7 +16716,7 @@ const _LocalVideoTile = React.memo((props) => {
16758
16716
  const reactionOverlay = reactionResources !== undefined ? (React.createElement(MeetingReactionOverlay, { overlayMode: "grid-tiles", reaction: reaction, reactionResources: reactionResources })) : undefined;
16759
16717
  return (React.createElement(react.Stack, { className: react.mergeStyles({ width: '100%', height: '100%' }),
16760
16718
  /* @conditional-compile-remove(spotlight) */ onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined },
16761
- React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== void 0 ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand,
16719
+ React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== void 0 ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand,
16762
16720
  /* @conditional-compile-remove(spotlight) */
16763
16721
  isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, {
16764
16722
  /* @conditional-compile-remove(spotlight) */
@@ -18800,7 +18758,7 @@ const VideoGallery = (props) => {
18800
18758
  /* @conditional-compile-remove(spotlight) */
18801
18759
  onStopRemoteSpotlight,
18802
18760
  /* @conditional-compile-remove(spotlight) */
18803
- maxParticipantsToSpotlight, reactionResources } = props;
18761
+ maxParticipantsToSpotlight, reactionResources, videoTilesOptions } = props;
18804
18762
  const ids = useIdentifiers();
18805
18763
  const theme = useTheme();
18806
18764
  const localeStrings = useLocale$1().strings.videoGallery;
@@ -18856,7 +18814,7 @@ const VideoGallery = (props) => {
18856
18814
  return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
18857
18815
  };
18858
18816
  return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key", tabIndex: 0, "aria-label": strings.localVideoMovementLabel, role: 'dialog' },
18859
- React.createElement(_LocalVideoTile, { userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction,
18817
+ React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === void 0 ? void 0 : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction,
18860
18818
  /* @conditional-compile-remove(spotlight) */
18861
18819
  spotlightedParticipantUserIds: spotlightedParticipants,
18862
18820
  /* @conditional-compile-remove(spotlight) */
@@ -18904,7 +18862,8 @@ const VideoGallery = (props) => {
18904
18862
  strings,
18905
18863
  /* @conditional-compile-remove(spotlight) */
18906
18864
  drawerMenuHostId,
18907
- reactionResources
18865
+ reactionResources,
18866
+ videoTilesOptions
18908
18867
  ]);
18909
18868
  const onPinParticipant = React.useCallback((userId) => {
18910
18869
  if (pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {
@@ -18953,7 +18912,7 @@ const VideoGallery = (props) => {
18953
18912
  }
18954
18913
  : remoteVideoViewOptions;
18955
18914
  };
18956
- return (React.createElement(_RemoteVideoTile, { streamId: remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.id, key: participant.userId, userId: participant.userId, remoteParticipant: participant, onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteVideoStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: createViewOptions(), onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator, strings: strings,
18915
+ return (React.createElement(_RemoteVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === void 0 ? void 0 : videoTilesOptions.alwaysShowLabelBackground, streamId: remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.id, key: participant.userId, userId: participant.userId, remoteParticipant: participant, onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteVideoStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: createViewOptions(), onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator, strings: strings,
18957
18916
  /* @conditional-compile-remove(PSTN-calls) */
18958
18917
  participantState: participant.state, menuKind: participant.userId === localParticipant.userId
18959
18918
  ? undefined
@@ -18992,7 +18951,8 @@ const VideoGallery = (props) => {
18992
18951
  /* @conditional-compile-remove(spotlight) */ onStartRemoteSpotlight,
18993
18952
  /* @conditional-compile-remove(spotlight) */ onStopRemoteSpotlight,
18994
18953
  /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
18995
- reactionResources
18954
+ reactionResources,
18955
+ videoTilesOptions
18996
18956
  ]);
18997
18957
  const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
18998
18958
  const localScreenShareStreamComponent = React.createElement(LocalScreenShare, { localParticipant: localParticipant });
@@ -25416,7 +25376,7 @@ class AttachmentUpload {
25416
25376
  constructor(data) {
25417
25377
  this._emitter = new EventEmitter.EventEmitter();
25418
25378
  this._emitter.setMaxListeners(_MAX_EVENT_LISTENERS);
25419
- this.id = nanoid.nanoid();
25379
+ this.taskId = nanoid.nanoid();
25420
25380
  if (data instanceof File) {
25421
25381
  this.file = data;
25422
25382
  }
@@ -25426,14 +25386,14 @@ class AttachmentUpload {
25426
25386
  const name = data === null || data === void 0 ? void 0 : data.name;
25427
25387
  this.name = name;
25428
25388
  }
25429
- notifyProgressChanged(value) {
25430
- this._emitter.emit('uploadProgressChange', this.id, value);
25389
+ notifyUploadProgressChanged(value) {
25390
+ this._emitter.emit('uploadProgressChange', this.taskId, value);
25431
25391
  }
25432
- notifyCompleted(metadata) {
25433
- this._emitter.emit('uploadComplete', this.id, metadata);
25392
+ notifyUploadCompleted(id, url) {
25393
+ this._emitter.emit('uploadComplete', this.taskId, id, url);
25434
25394
  }
25435
- notifyFailed(message) {
25436
- this._emitter.emit('uploadFail', this.id, message);
25395
+ notifyUploadFailed(message) {
25396
+ this._emitter.emit('uploadFail', this.taskId, message);
25437
25397
  }
25438
25398
  /**
25439
25399
  * Attachment upload event subscriber.
@@ -25631,7 +25591,7 @@ const AttachmentUploadButton = (props) => {
25631
25591
  } })));
25632
25592
  };
25633
25593
  const SendBoxAttachFileIconTrampoline = () => {
25634
- // @conditional-compile-remove(attachment-upload)
25594
+ /* @conditional-compile-remove(attachment-upload) */
25635
25595
  return React.createElement(ChatCompositeIcon, { iconName: "SendBoxAttachFile" });
25636
25596
  };
25637
25597
  /**
@@ -25665,27 +25625,27 @@ class AttachmentUploadContext {
25665
25625
  this.chatContext = chatContext;
25666
25626
  }
25667
25627
  getAttachmentUploads() {
25668
- return this.chatContext.getState().attachmentUploads;
25628
+ return this.chatContext.getState()._attachmentUploads;
25669
25629
  }
25670
25630
  addAttachmentUploads(attachmentUploads) {
25671
25631
  const attachmentUploadsMap = convertObservableAttachmentUploadToAttachmentUploadsUiState(attachmentUploads);
25672
25632
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25673
- draft.attachmentUploads = draft.attachmentUploads || {};
25674
- draft.attachmentUploads = Object.assign(Object.assign({}, draft.attachmentUploads), attachmentUploadsMap);
25633
+ draft._attachmentUploads = draft._attachmentUploads || {};
25634
+ draft._attachmentUploads = Object.assign(Object.assign({}, draft._attachmentUploads), attachmentUploadsMap);
25675
25635
  }));
25676
25636
  }
25677
25637
  clearUploads() {
25678
25638
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25679
- draft.attachmentUploads = {};
25639
+ draft._attachmentUploads = {};
25680
25640
  }));
25681
25641
  }
25682
25642
  updateAttachmentUpload(id, data) {
25683
25643
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25684
25644
  var _a, _b, _c, _d;
25685
- if ((_a = draft.attachmentUploads) === null || _a === void 0 ? void 0 : _a[id]) {
25686
- draft.attachmentUploads[(_b = data.id) !== null && _b !== void 0 ? _b : id] = Object.assign(Object.assign({}, (_c = draft.attachmentUploads) === null || _c === void 0 ? void 0 : _c[id]), data);
25645
+ if ((_a = draft._attachmentUploads) === null || _a === void 0 ? void 0 : _a[id]) {
25646
+ draft._attachmentUploads[(_b = data.id) !== null && _b !== void 0 ? _b : id] = Object.assign(Object.assign({}, (_c = draft._attachmentUploads) === null || _c === void 0 ? void 0 : _c[id]), data);
25687
25647
  if (data.id) {
25688
- (_d = draft.attachmentUploads) === null || _d === void 0 ? true : delete _d[id];
25648
+ (_d = draft._attachmentUploads) === null || _d === void 0 ? true : delete _d[id];
25689
25649
  }
25690
25650
  }
25691
25651
  }));
@@ -25694,10 +25654,10 @@ class AttachmentUploadContext {
25694
25654
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25695
25655
  ids.forEach((id) => {
25696
25656
  var _a;
25697
- const keys = Object.keys((_a = draft === null || draft === void 0 ? void 0 : draft.attachmentUploads) !== null && _a !== void 0 ? _a : []).filter((rawID) => { var _a; return ((_a = draft.attachmentUploads) === null || _a === void 0 ? void 0 : _a[rawID].id) === id; });
25657
+ const keys = Object.keys((_a = draft === null || draft === void 0 ? void 0 : draft._attachmentUploads) !== null && _a !== void 0 ? _a : []).filter((rawID) => { var _a; return ((_a = draft._attachmentUploads) === null || _a === void 0 ? void 0 : _a[rawID].id) === id; });
25698
25658
  keys.forEach((key) => {
25699
25659
  var _a;
25700
- (_a = draft.attachmentUploads) === null || _a === void 0 ? true : delete _a[key];
25660
+ (_a = draft._attachmentUploads) === null || _a === void 0 ? true : delete _a[key];
25701
25661
  });
25702
25662
  });
25703
25663
  }));
@@ -25713,16 +25673,16 @@ class AzureCommunicationAttachmentUploadAdapter {
25713
25673
  this.context = new AttachmentUploadContext(chatContext);
25714
25674
  }
25715
25675
  findAttachmentUpload(id) {
25716
- return this.attachmentUploads.find((attachmentUpload) => attachmentUpload.id === id);
25676
+ return this.attachmentUploads.find((attachmentUpload) => attachmentUpload.taskId === id);
25717
25677
  }
25718
25678
  deleteAttachmentUploads(ids) {
25719
- this.attachmentUploads = this.attachmentUploads.filter((attachmentUpload) => !ids.includes(attachmentUpload.id));
25679
+ this.attachmentUploads = this.attachmentUploads.filter((attachmentUpload) => !ids.includes(attachmentUpload.taskId));
25720
25680
  this.context.deleteAttachmentUploads(ids);
25721
25681
  }
25722
25682
  deleteErroneousAttachmentUploads() {
25723
25683
  const attachmentUploads = this.context.getAttachmentUploads() || {};
25724
25684
  const ids = Object.values(attachmentUploads)
25725
- .filter((item) => item.uploadError)
25685
+ .filter((item) => item.error)
25726
25686
  .map((item) => item.id);
25727
25687
  ids.forEach((id) => {
25728
25688
  const attachmentUpload = this.findAttachmentUpload(id);
@@ -25761,9 +25721,8 @@ class AzureCommunicationAttachmentUploadAdapter {
25761
25721
  }
25762
25722
  updateUploadStatusMessage(id, errorMessage) {
25763
25723
  this.context.updateAttachmentUpload(id, {
25764
- uploadError: {
25765
- message: errorMessage,
25766
- timestamp: Date.now()
25724
+ error: {
25725
+ message: errorMessage
25767
25726
  }
25768
25727
  });
25769
25728
  }
@@ -25776,20 +25735,30 @@ class AzureCommunicationAttachmentUploadAdapter {
25776
25735
  extension: metadata.extension
25777
25736
  });
25778
25737
  }
25738
+ setAttachmentMetadata(taskId, attachmentId, attachmentUrl) {
25739
+ const attachmentUpload = this.findAttachmentUpload(taskId);
25740
+ this.context.updateAttachmentUpload(taskId, {
25741
+ progress: 1,
25742
+ id: attachmentId,
25743
+ name: attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.name,
25744
+ url: attachmentUrl,
25745
+ extension: (attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.name.split('.').pop()) || ''
25746
+ });
25747
+ }
25779
25748
  subscribeAllEvents(attachmentUpload) {
25780
25749
  attachmentUpload.on('uploadProgressChange', this.updateUploadProgress.bind(this));
25781
- attachmentUpload.on('uploadComplete', this.updateUploadMetadata.bind(this));
25750
+ attachmentUpload.on('uploadComplete', this.setAttachmentMetadata.bind(this));
25782
25751
  attachmentUpload.on('uploadFail', this.updateUploadStatusMessage.bind(this));
25783
25752
  }
25784
25753
  unsubscribeAllEvents(attachmentUpload) {
25785
25754
  attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadProgressChange', this.updateUploadProgress.bind(this));
25786
- attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadComplete', this.updateUploadMetadata.bind(this));
25755
+ attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadComplete', this.setAttachmentMetadata.bind(this));
25787
25756
  attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadFail', this.updateUploadStatusMessage.bind(this));
25788
25757
  }
25789
25758
  }
25790
25759
  /* @conditional-compile-remove(attachment-upload) */
25791
25760
  /**
25792
- * @param attachmentUploadUiState {@link AttachmentUploadsUiState}
25761
+ * @param attachmentUploadUiState {@link _AttachmentUploadsUiState}
25793
25762
  * @private
25794
25763
  */
25795
25764
  const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) => {
@@ -25797,7 +25766,7 @@ const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) =>
25797
25766
  const attachmentMetadata = [];
25798
25767
  Object.keys(attachmentUploads).forEach((key) => {
25799
25768
  const attachment = attachmentUploads[key];
25800
- if (attachment && !attachment.uploadError) {
25769
+ if (attachment && !attachment.error) {
25801
25770
  attachmentMetadata.push({
25802
25771
  id: attachment.id,
25803
25772
  name: attachment.name,
@@ -25819,8 +25788,8 @@ const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) =>
25819
25788
  */
25820
25789
  const convertObservableAttachmentUploadToAttachmentUploadsUiState = (attachmentUploads) => {
25821
25790
  return attachmentUploads.reduce((map, attachmentUpload) => {
25822
- map[attachmentUpload.id] = {
25823
- id: attachmentUpload.id,
25791
+ map[attachmentUpload.taskId] = {
25792
+ id: attachmentUpload.taskId,
25824
25793
  name: attachmentUpload.name,
25825
25794
  progress: 0,
25826
25795
  extension: attachmentUpload.name.split('.').pop() || ''
@@ -25894,7 +25863,7 @@ class ChatContext {
25894
25863
  latestErrors: clientState.latestErrors
25895
25864
  };
25896
25865
  /* @conditional-compile-remove(attachment-upload) */
25897
- updatedState = Object.assign(Object.assign({}, updatedState), { attachmentUploads: this.state.attachmentUploads });
25866
+ updatedState = Object.assign(Object.assign({}, updatedState), { _attachmentUploads: this.state._attachmentUploads });
25898
25867
  this.setState(updatedState);
25899
25868
  }
25900
25869
  }
@@ -25929,6 +25898,8 @@ class AzureCommunicationChatAdapter {
25929
25898
  this.dispose = this.dispose.bind(this);
25930
25899
  this.fetchInitialData = this.fetchInitialData.bind(this);
25931
25900
  this.sendMessage = this.sendMessage.bind(this);
25901
+ /* @conditional-compile-remove(attachment-upload) */
25902
+ this.sendMessageWithAttachments = this.sendMessageWithAttachments.bind(this);
25932
25903
  this.sendReadReceipt = this.sendReadReceipt.bind(this);
25933
25904
  this.sendTypingIndicator = this.sendTypingIndicator.bind(this);
25934
25905
  this.updateMessage = this.updateMessage.bind(this);
@@ -26001,7 +25972,7 @@ class AzureCommunicationChatAdapter {
26001
25972
  return __awaiter$o(this, arguments, void 0, function* (content, options = {}) {
26002
25973
  yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
26003
25974
  /* @conditional-compile-remove(attachment-upload) */
26004
- options.metadata = Object.assign(Object.assign({}, options.metadata), convertAttachmentUploadsUiStateToMessageMetadata(this.context.getState().attachmentUploads));
25975
+ options.metadata = Object.assign(Object.assign({}, options.metadata), convertAttachmentUploadsUiStateToMessageMetadata(this.context.getState()._attachmentUploads));
26005
25976
  /* @conditional-compile-remove(attachment-upload) */
26006
25977
  /**
26007
25978
  * All the current uploads need to be clear from the state before a message has been sent.
@@ -26015,6 +25986,28 @@ class AzureCommunicationChatAdapter {
26015
25986
  }));
26016
25987
  });
26017
25988
  }
25989
+ /* @conditional-compile-remove(attachment-upload) */
25990
+ /** Send a chat message with attachments. */
25991
+ sendMessageWithAttachments(content, attachments) {
25992
+ return __awaiter$o(this, void 0, void 0, function* () {
25993
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
25994
+ const fileSharingMetadata = {
25995
+ fileSharingMetadata: JSON.stringify(attachments)
25996
+ };
25997
+ /**
25998
+ * All the current uploads need to be clear from the state before a message has been sent.
25999
+ * This ensures the following behavior:
26000
+ * 1. Attachment Upload cards are removed from sendbox at the same time text in sendbox is removed.
26001
+ * 2. any component rendering these attachment uploads doesn't continue to do so.
26002
+ * 3. Cleans the state for new attachment uploads with a fresh message.
26003
+ */
26004
+ this.attachmentUploadAdapter.clearUploads();
26005
+ yield this.handlers.onSendMessage(content, {
26006
+ metadata: fileSharingMetadata
26007
+ });
26008
+ }));
26009
+ });
26010
+ }
26018
26011
  sendReadReceipt(chatMessageId) {
26019
26012
  return __awaiter$o(this, void 0, void 0, function* () {
26020
26013
  yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
@@ -27062,7 +27055,7 @@ const useSelector$2 = (selector, selectorProps) => {
27062
27055
  */
27063
27056
  const getAttachmentUploads = (state) => {
27064
27057
  /* @conditional-compile-remove(attachment-upload) */
27065
- return state === null || state === void 0 ? void 0 : state.attachmentUploads;
27058
+ return state === null || state === void 0 ? void 0 : state._attachmentUploads;
27066
27059
  };
27067
27060
 
27068
27061
  // Copyright (c) Microsoft Corporation.
@@ -27162,9 +27155,9 @@ const ChatScreen = (props) => {
27162
27155
  return;
27163
27156
  }
27164
27157
  /* @conditional-compile-remove(attachment-upload) */
27165
- const attachmentUploads = adapter.registerActiveUploads(Array.from(files));
27158
+ const uploadTasks = adapter.registerActiveUploads(Array.from(files));
27166
27159
  /* @conditional-compile-remove(attachment-upload) */
27167
- (_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handler(attachmentUploads);
27160
+ (_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handleAttachmentSelection(uploadTasks);
27168
27161
  }, [adapter, attachmentOptions]);
27169
27162
  /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
27170
27163
  const onRenderAttachmentDownloads = React.useCallback((userId, message) => {
@@ -27263,18 +27256,18 @@ const ChatScreen = (props) => {
27263
27256
  }, [overlayImageItem === null || overlayImageItem === void 0 ? void 0 : overlayImageItem.attachmentId]);
27264
27257
  const AttachmentButton = React.useCallback(() => {
27265
27258
  var _a, _b, _c;
27266
- if (!((_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handler)) {
27259
+ if (!((_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handleAttachmentSelection)) {
27267
27260
  return null;
27268
27261
  }
27269
27262
  return (React.createElement(AttachmentUploadButtonWrapper, { supportedMediaTypes: (_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.supportedMediaTypes, disableMultipleUploads: (_c = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _c === void 0 ? void 0 : _c.disableMultipleUploads, onChange: attachmentUploadButtonOnChange }));
27270
27263
  }, [
27271
- (_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.handler,
27264
+ (_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.handleAttachmentSelection,
27272
27265
  (_c = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _c === void 0 ? void 0 : _c.supportedMediaTypes,
27273
27266
  (_d = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _d === void 0 ? void 0 : _d.disableMultipleUploads,
27274
27267
  attachmentUploadButtonOnChange
27275
27268
  ]);
27276
27269
  /* @conditional-compile-remove(attachment-upload) */
27277
- const activeAttachmentUploads = useSelector$2(attachmentUploadsSelector).attachments;
27270
+ const attachmentsWithProgress = useSelector$2(attachmentUploadsSelector).attachments;
27278
27271
  return (React.createElement(react.Stack, { className: chatContainer, grow: true },
27279
27272
  (options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
27280
27273
  React.createElement(react.Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
@@ -27295,9 +27288,13 @@ const ChatScreen = (props) => {
27295
27288
  React.createElement(react.Stack, { grow: true },
27296
27289
  React.createElement(SendBox, Object.assign({}, sendBoxProps, { autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus, styles: sendBoxStyles,
27297
27290
  /* @conditional-compile-remove(attachment-upload) */
27298
- activeAttachmentUploads: activeAttachmentUploads,
27291
+ attachmentsWithProgress: attachmentsWithProgress,
27299
27292
  /* @conditional-compile-remove(attachment-upload) */
27300
- onCancelAttachmentUpload: adapter.cancelUpload }))),
27293
+ onCancelAttachmentUpload: (id) => {
27294
+ var _a, _b, _c;
27295
+ (_a = adapter.cancelUpload) === null || _a === void 0 ? void 0 : _a.call(adapter, id);
27296
+ (_c = (_b = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _b === void 0 ? void 0 : _b.handleAttachmentRemoval) === null || _c === void 0 ? void 0 : _c.call(_b, id);
27297
+ } }))),
27301
27298
  formFactor !== 'mobile' && React.createElement(AttachmentButton, null)))),
27302
27299
  /* @conditional-compile-remove(chat-composite-participant-pane) */
27303
27300
  (options === null || options === void 0 ? void 0 : options.participantPane) === true && (React.createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, isMobile: formFactor === 'mobile' }))),
@@ -28103,19 +28100,15 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
28103
28100
  const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);
28104
28101
  return yield adapter.startVideoBackgroundEffect(replacementConfig);
28105
28102
  }),
28106
- /* @conditional-compile-remove(close-captions) */
28107
28103
  onStartCaptions: (options) => __awaiter$k(void 0, void 0, void 0, function* () {
28108
28104
  yield adapter.startCaptions(options);
28109
28105
  }),
28110
- /* @conditional-compile-remove(close-captions) */
28111
28106
  onStopCaptions: () => __awaiter$k(void 0, void 0, void 0, function* () {
28112
28107
  yield adapter.stopCaptions();
28113
28108
  }),
28114
- /* @conditional-compile-remove(close-captions) */
28115
28109
  onSetSpokenLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
28116
28110
  yield adapter.setSpokenLanguage(language);
28117
28111
  }),
28118
- /* @conditional-compile-remove(close-captions) */
28119
28112
  onSetCaptionLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
28120
28113
  yield adapter.setCaptionLanguage(language);
28121
28114
  }),
@@ -28164,13 +28157,9 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
28164
28157
  // Licensed under the MIT License.
28165
28158
  /** @private */
28166
28159
  const CaptionsSettingsModal = (props) => {
28167
- /* @conditional-compile-remove(close-captions) */
28168
28160
  const CaptionsSettingsModalProps = useAdaptedSelector(_captionSettingsSelector);
28169
- /* @conditional-compile-remove(close-captions) */
28170
28161
  const handlers = useHandlers();
28171
- /* @conditional-compile-remove(close-captions) */
28172
28162
  const strings = useLocale().strings.call;
28173
- /* @conditional-compile-remove(close-captions) */
28174
28163
  const modalStrings = {
28175
28164
  captionsSettingsModalTitle: strings.captionsSettingsModalTitle,
28176
28165
  captionsSettingsSpokenLanguageDropdownLabel: strings.captionsSettingsSpokenLanguageDropdownLabel,
@@ -28182,11 +28171,8 @@ const CaptionsSettingsModal = (props) => {
28182
28171
  captionsSettingsModalAriaLabel: strings.captionsSettingsModalAriaLabel,
28183
28172
  captionsSettingsCloseModalButtonAriaLabel: strings.captionsSettingsCloseModalButtonAriaLabel
28184
28173
  };
28185
- /* @conditional-compile-remove(close-captions) */
28186
28174
  const spokenLanguageStrings = strings.spokenLanguageStrings;
28187
- /* @conditional-compile-remove(close-captions) */
28188
28175
  const captionLanguageStrings = strings.captionLanguageStrings;
28189
- /* @conditional-compile-remove(close-captions) */
28190
28176
  return (React.createElement(_CaptionsSettingsModal, Object.assign({}, CaptionsSettingsModalProps, handlers, { strings: modalStrings, spokenLanguageStrings: spokenLanguageStrings, captionLanguageStrings: captionLanguageStrings, showModal: props.showCaptionsSettingsModal, onDismissCaptionsSettings: props.onDismissCaptionsSettings, changeCaptionLanguage: props.changeCaptionLanguage })));
28191
28177
  };
28192
28178
 
@@ -28313,26 +28299,19 @@ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments,
28313
28299
  * @private
28314
28300
  */
28315
28301
  const CaptionsBannerMoreButton = (props) => {
28316
- /* @conditional-compile-remove(close-captions) */
28317
28302
  const localeStrings = useLocale();
28318
- /* @conditional-compile-remove(close-captions) */
28319
28303
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
28320
- /* @conditional-compile-remove(close-captions) */
28321
28304
  const startCaptionsButtonHandlers = useHandlers();
28322
- /* @conditional-compile-remove(close-captions) */
28323
28305
  const moreButtonStrings = React.useMemo(() => ({
28324
28306
  label: localeStrings.strings.call.captionsBannerMoreButtonCallingLabel,
28325
28307
  tooltipOffContent: localeStrings.strings.call.captionsBannerMoreButtonTooltip
28326
28308
  }), [localeStrings]);
28327
- /* @conditional-compile-remove(close-captions) */
28328
28309
  const moreButtonContextualMenuItems = [];
28329
- /* @conditional-compile-remove(close-captions) */
28330
28310
  const startCaptions = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
28331
28311
  yield startCaptionsButtonHandlers.onStartCaptions({
28332
28312
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
28333
28313
  });
28334
28314
  }), [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);
28335
- /* @conditional-compile-remove(close-captions) */
28336
28315
  moreButtonContextualMenuItems.push({
28337
28316
  key: 'ToggleCaptionsKey',
28338
28317
  text: startCaptionsButtonProps.checked
@@ -28353,7 +28332,6 @@ const CaptionsBannerMoreButton = (props) => {
28353
28332
  styles: buttonFlyoutIncreasedSizeStyles
28354
28333
  }
28355
28334
  });
28356
- /* @conditional-compile-remove(close-captions) */
28357
28335
  if (props.onCaptionsSettingsClick) {
28358
28336
  moreButtonContextualMenuItems.push({
28359
28337
  key: 'openCaptionsSettingsKey',
@@ -28370,7 +28348,6 @@ const CaptionsBannerMoreButton = (props) => {
28370
28348
  disabled: !startCaptionsButtonProps.checked
28371
28349
  });
28372
28350
  }
28373
- /* @conditional-compile-remove(close-captions) */
28374
28351
  return (React.createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "captions-banner-more-button", strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: {
28375
28352
  items: moreButtonContextualMenuItems,
28376
28353
  calloutProps: {
@@ -28381,49 +28358,35 @@ const CaptionsBannerMoreButton = (props) => {
28381
28358
 
28382
28359
  // Copyright (c) Microsoft Corporation.
28383
28360
  // Licensed under the MIT License.
28384
- /* @conditional-compile-remove(close-captions) */
28385
28361
  const mobileViewBannerWidth = '90%';
28386
28362
  /** @private */
28387
28363
  const CaptionsBanner = (props) => {
28388
- /* @conditional-compile-remove(close-captions) */
28389
28364
  const captionsBannerProps = useAdaptedSelector(_captionsBannerSelector);
28390
- /* @conditional-compile-remove(close-captions) */
28391
28365
  const handlers = useHandlers();
28392
- /* @conditional-compile-remove(close-captions) */
28393
28366
  const [isCaptionsSettingsOpen, setIsCaptionsSettingsOpen] = React.useState(false);
28394
- /* @conditional-compile-remove(close-captions) */
28395
28367
  const onClickCaptionsSettings = () => {
28396
28368
  setIsCaptionsSettingsOpen(true);
28397
28369
  };
28398
- /* @conditional-compile-remove(close-captions) */
28399
28370
  const onDismissCaptionsSettings = () => {
28400
28371
  setIsCaptionsSettingsOpen(false);
28401
28372
  };
28402
- /* @conditional-compile-remove(close-captions) */
28403
28373
  const containerClassName = react.mergeStyles({
28404
28374
  position: 'relative'
28405
28375
  });
28406
- /* @conditional-compile-remove(close-captions) */
28407
28376
  const floatingChildClassName = react.mergeStyles({
28408
28377
  position: 'absolute',
28409
28378
  right: 0,
28410
28379
  top: 0
28411
28380
  });
28412
- /* @conditional-compile-remove(close-captions) */
28413
28381
  const strings = useLocale().strings.call;
28414
- /* @conditional-compile-remove(close-captions) */
28415
28382
  const captionsBannerStrings = {
28416
28383
  captionsBannerSpinnerText: strings.captionsBannerSpinnerText
28417
28384
  };
28418
- /* @conditional-compile-remove(close-captions) */
28419
28385
  const onRenderAvatar = React.useCallback((userId, options) => {
28420
28386
  return React.createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }));
28421
28387
  }, [props.onFetchAvatarPersonaData]);
28422
- /* @conditional-compile-remove(close-captions) */
28423
28388
  const { innerWidth: width } = window;
28424
- /* @conditional-compile-remove(close-captions) */
28425
28389
  const [windowWidth, setWindowWidth] = React.useState(width);
28426
- /* @conditional-compile-remove(close-captions) */
28427
28390
  React.useEffect(() => {
28428
28391
  function handleResize() {
28429
28392
  setWindowWidth(window.innerWidth);
@@ -28431,11 +28394,10 @@ const CaptionsBanner = (props) => {
28431
28394
  window.addEventListener('resize', handleResize);
28432
28395
  return () => window.removeEventListener('resize', handleResize);
28433
28396
  }, []);
28434
- /* @conditional-compile-remove(close-captions) */
28435
28397
  const desktopViewBannerWidth = windowWidth > 620 ? '35rem' : '80%';
28436
28398
  return (React.createElement(React.Fragment, null,
28437
- /* @conditional-compile-remove(close-captions) */ isCaptionsSettingsOpen && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: isCaptionsSettingsOpen, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.useTeamsCaptions })),
28438
- /* @conditional-compile-remove(close-captions) */ React.createElement("div", { className: containerClassName },
28399
+ isCaptionsSettingsOpen && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: isCaptionsSettingsOpen, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.useTeamsCaptions })),
28400
+ React.createElement("div", { className: containerClassName },
28439
28401
  React.createElement(react.Stack, { horizontalAlign: "center" },
28440
28402
  React.createElement(react.Stack.Item, { style: { width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth } },
28441
28403
  React.createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers, { onRenderAvatar: onRenderAvatar, formFactor: props.isMobile ? 'compact' : 'default', strings: captionsBannerStrings })))),
@@ -28727,13 +28689,11 @@ const getCaptionsKind = (state) => {
28727
28689
  var _a;
28728
28690
  return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.captionsKind;
28729
28691
  };
28730
- /* @conditional-compile-remove(close-captions) */
28731
28692
  /** @private */
28732
28693
  const getCaptionsStatus = (state) => {
28733
28694
  var _a;
28734
28695
  return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;
28735
28696
  };
28736
- /* @conditional-compile-remove(close-captions) */
28737
28697
  /**
28738
28698
  * @private
28739
28699
  */
@@ -29519,15 +29479,11 @@ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments,
29519
29479
  */
29520
29480
  const DesktopMoreButton = (props) => {
29521
29481
  var _a, _b, _c, _d, _e, _f, _g, _h;
29522
- /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29523
29482
  const localeStrings = useLocale();
29524
29483
  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
29525
29484
  const holdButtonProps = usePropsFor$1(HoldButton);
29526
- /* @conditional-compile-remove(close-captions) */
29527
29485
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
29528
- /* @conditional-compile-remove(close-captions) */
29529
29486
  const startCaptionsButtonHandlers = useHandlers();
29530
- /* @conditional-compile-remove(close-captions) */
29531
29487
  const startCaptions = React.useCallback(() => __awaiter$h(void 0, void 0, void 0, function* () {
29532
29488
  yield startCaptionsButtonHandlers.onStartCaptions({
29533
29489
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
@@ -29540,13 +29496,11 @@ const DesktopMoreButton = (props) => {
29540
29496
  const callees = useSelector$1(getTargetCallees);
29541
29497
  const allowDtmfDialer = showDtmfDialer(callees);
29542
29498
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_b = props.dtmfDialerPresent) !== null && _b !== void 0 ? _b : false);
29543
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29544
29499
  const moreButtonStrings = React.useMemo(() => ({
29545
29500
  label: localeStrings.strings.call.moreButtonCallingLabel,
29546
29501
  tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip
29547
29502
  }), [localeStrings]);
29548
29503
  const moreButtonContextualMenuItems = [];
29549
- /* @conditional-compile-remove(close-captions) */
29550
29504
  const menuSubIconStyleSet = {
29551
29505
  root: {
29552
29506
  height: 'unset',
@@ -29568,7 +29522,6 @@ const DesktopMoreButton = (props) => {
29568
29522
  disabled: props.disableButtonsForHoldScreen
29569
29523
  });
29570
29524
  // is captions feature is active
29571
- /* @conditional-compile-remove(close-captions) */
29572
29525
  if (props.isCaptionsSupported) {
29573
29526
  const captionsContextualMenuItems = [];
29574
29527
  moreButtonContextualMenuItems.push({
@@ -29823,9 +29776,7 @@ const DesktopMoreButton = (props) => {
29823
29776
  styles: buttonFlyoutIncreasedSizeStyles
29824
29777
  } }, element));
29825
29778
  });
29826
- return (React.createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "common-call-composite-more-button",
29827
- /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29828
- strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: {
29779
+ return (React.createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "common-call-composite-more-button", strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: {
29829
29780
  items: moreButtonContextualMenuItems,
29830
29781
  calloutProps: {
29831
29782
  preventDismissOnEvent: _preventDismissOnEvent
@@ -30061,7 +30012,6 @@ const CommonCallControlBar = (props) => {
30061
30012
  const [isOutOfSpace, setIsOutOfSpace] = React.useState(false);
30062
30013
  const callWithChatStrings = useCallWithChatCompositeStrings();
30063
30014
  const options = inferCommonCallControlOptions(props.mobileView, props.callControls);
30064
- /* @conditional-compile-remove(close-captions) */
30065
30015
  const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = React.useState(false);
30066
30016
  /* @conditional-compile-remove(end-call-options) */
30067
30017
  // If the hangup capability is not present, we default to true
@@ -30094,11 +30044,9 @@ const CommonCallControlBar = (props) => {
30094
30044
  React.useEffect(() => {
30095
30045
  setIsOutOfSpace(totalButtonsWidth > controlBarContainerWidth);
30096
30046
  }, [totalButtonsWidth, controlBarContainerWidth]);
30097
- /* @conditional-compile-remove(close-captions) */
30098
30047
  const openCaptionsSettingsModal = React.useCallback(() => {
30099
30048
  setShowCaptionsSettingsModal(true);
30100
30049
  }, []);
30101
- /* @conditional-compile-remove(close-captions) */
30102
30050
  const onDismissCaptionsSettings = React.useCallback(() => {
30103
30051
  setShowCaptionsSettingsModal(false);
30104
30052
  }, []);
@@ -30154,17 +30102,15 @@ const CommonCallControlBar = (props) => {
30154
30102
  const showExitSpotlightButton = (options === null || options === void 0 ? void 0 : options.exitSpotlightButton) !== false;
30155
30103
  const showCaptionsButton = props.isCaptionsSupported &&
30156
30104
  /* @conditional-compile-remove(acs-close-captions) */ isEnabled$1(options.captionsButton);
30157
- const showDesktopMoreButton =
30158
- /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.moreButton) &&
30105
+ const showDesktopMoreButton = isEnabled$1(options === null || options === void 0 ? void 0 : options.moreButton) &&
30159
30106
  (/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) ||
30160
- /* @conditional-compile-remove(close-captions) */ showCaptionsButton ||
30107
+ showCaptionsButton ||
30161
30108
  props.onUserSetGalleryLayout);
30162
30109
  const role = (_b = props.callAdapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;
30163
30110
  const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
30164
30111
  const reactionResources = props.callAdapter.getState().reactions;
30165
30112
  return (React.createElement("div", { ref: controlBarSizeRef },
30166
- React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
30167
- /* @conditional-compile-remove(close-captions) */ showCaptionsSettingsModal && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions }))),
30113
+ React.createElement(CallAdapterProvider, { adapter: props.callAdapter }, showCaptionsSettingsModal && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions }))),
30168
30114
  React.createElement(react.Stack, { horizontal: true, reversed: !props.mobileView && !isOutOfSpace, horizontalAlign: "space-between", className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles) },
30169
30115
  React.createElement(react.Stack.Item, { grow: true, className: react.mergeStyles(controlBarWrapperDesktopStyles) },
30170
30116
  React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
@@ -30204,11 +30150,7 @@ const CommonCallControlBar = (props) => {
30204
30150
  props.mobileView && (React.createElement(MoreButton, { "data-ui-id": "common-call-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage, disableTooltip: props.mobileView })),
30205
30151
  !props.mobileView && showDesktopMoreButton && (React.createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles,
30206
30152
  /*@conditional-compile-remove(PSTN-calls) */
30207
- onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls,
30208
- /* @conditional-compile-remove(close-captions) */
30209
- isCaptionsSupported: showCaptionsButton,
30210
- /* @conditional-compile-remove(close-captions) */
30211
- onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage })),
30153
+ onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls, isCaptionsSupported: showCaptionsButton, onCaptionsSettingsClick: openCaptionsSettingsModal, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayout, userSetGalleryLayout: props.userSetGalleryLayout, dtmfDialerPresent: props.dtmfDialerPresent, onSetDialpadPage: props.onSetDialpadPage })),
30212
30154
  React.createElement(EndCall, { displayType: "compact", mobileView: props.mobileView, styles: endCallButtonStyles,
30213
30155
  /* @conditional-compile-remove(end-call-options) */
30214
30156
  enableEndCallMenu: !isBoolean(props.callControls) &&
@@ -30405,13 +30347,10 @@ const captionSettingsDrawerStyles = (theme) => ({
30405
30347
  /** @private */
30406
30348
  const CaptionLanguageSettingsDrawer = (props) => {
30407
30349
  var _a;
30408
- /* @conditional-compile-remove(close-captions) */
30409
30350
  const theme = useTheme();
30410
- /* @conditional-compile-remove(close-captions) */
30411
30351
  const onDrawerItemClick = React.useCallback((languageCode) => {
30412
30352
  props.selectLanguage(languageCode);
30413
30353
  }, [props]);
30414
- /* @conditional-compile-remove(close-captions) */
30415
30354
  const drawerItems = React.useMemo(() => {
30416
30355
  var _a;
30417
30356
  return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map((languageCode) => ({
@@ -30425,7 +30364,6 @@ const CaptionLanguageSettingsDrawer = (props) => {
30425
30364
  const copy = [...drawerItems];
30426
30365
  return copy.sort((a, b) => (a.text && b.text && a.text > b.text ? 1 : -1));
30427
30366
  }, [drawerItems]);
30428
- /* @conditional-compile-remove(close-captions) */
30429
30367
  return (React.createElement(_DrawerMenu, { heading: (_a = props.strings) === null || _a === void 0 ? void 0 : _a.menuTitle, items: sortedDrawerItems !== null && sortedDrawerItems !== void 0 ? sortedDrawerItems : [], onLightDismiss: () => {
30430
30368
  props.setCurrentLanguage(props.currentLanguage);
30431
30369
  props.onLightDismiss();
@@ -30463,13 +30401,10 @@ const themedToggleButtonStyle = (theme, checked) => {
30463
30401
  /** @private */
30464
30402
  const SpokenLanguageSettingsDrawer = (props) => {
30465
30403
  var _a;
30466
- /* @conditional-compile-remove(close-captions) */
30467
30404
  const theme = useTheme();
30468
- /* @conditional-compile-remove(close-captions) */
30469
30405
  const onDrawerItemClick = React.useCallback((languageCode) => {
30470
30406
  props.selectLanguage(languageCode);
30471
30407
  }, [props]);
30472
- /* @conditional-compile-remove(close-captions) */
30473
30408
  const drawerItems = React.useMemo(() => {
30474
30409
  var _a;
30475
30410
  return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map((languageCode) => ({
@@ -30483,7 +30418,6 @@ const SpokenLanguageSettingsDrawer = (props) => {
30483
30418
  const copy = [...drawerItems];
30484
30419
  return copy.sort((a, b) => (a.text && b.text && a.text > b.text ? 1 : -1));
30485
30420
  }, [drawerItems]);
30486
- /* @conditional-compile-remove(close-captions) */
30487
30421
  return (React.createElement(_DrawerMenu, { heading: (_a = props.strings) === null || _a === void 0 ? void 0 : _a.menuTitle, items: sortedDrawerItems !== null && sortedDrawerItems !== void 0 ? sortedDrawerItems : [], onLightDismiss: () => {
30488
30422
  props.setCurrentLanguage(props.currentLanguage);
30489
30423
  props.onLightDismiss();
@@ -30511,7 +30445,6 @@ const inferCallWithChatControlOptions = (callWithChatControls) => {
30511
30445
  /** @private */
30512
30446
  const MoreDrawer = (props) => {
30513
30447
  var _a, _b, _c, _d, _e, _f, _g;
30514
- /* @conditional-compile-remove(close-captions) */
30515
30448
  const theme = react.useTheme();
30516
30449
  const callAdapter = useAdapter();
30517
30450
  const drawerMenuItems = [];
@@ -30725,27 +30658,17 @@ const MoreDrawer = (props) => {
30725
30658
  }
30726
30659
  });
30727
30660
  }
30728
- /* @conditional-compile-remove(close-captions) */
30729
30661
  //Captions drawer menu
30730
30662
  const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;
30731
- /* @conditional-compile-remove(close-captions) */
30732
30663
  //Captions drawer menu
30733
30664
  const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;
30734
- /* @conditional-compile-remove(close-captions) */
30735
30665
  const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);
30736
- /* @conditional-compile-remove(close-captions) */
30737
30666
  const startCaptionsButtonHandlers = useHandlers();
30738
- /* @conditional-compile-remove(close-captions) */
30739
30667
  const captionSettingsHandlers = useHandlers();
30740
- /* @conditional-compile-remove(close-captions) */
30741
30668
  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = React.useState(false);
30742
- /* @conditional-compile-remove(close-captions) */
30743
30669
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
30744
- /* @conditional-compile-remove(close-captions) */
30745
30670
  const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== void 0 ? _f : 'en-us');
30746
- /* @conditional-compile-remove(close-captions) */
30747
30671
  const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== void 0 ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
30748
- /* @conditional-compile-remove(close-captions) */
30749
30672
  const onToggleChange = React.useCallback(() => __awaiter$g(void 0, void 0, void 0, function* () {
30750
30673
  if (!captionSettingsProp.isCaptionsFeatureActive) {
30751
30674
  yield startCaptionsButtonHandlers.onStartCaptions({
@@ -30756,7 +30679,6 @@ const MoreDrawer = (props) => {
30756
30679
  startCaptionsButtonHandlers.onStopCaptions();
30757
30680
  }
30758
30681
  }), [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);
30759
- /* @conditional-compile-remove(close-captions) */
30760
30682
  if (showCaptionsButton) {
30761
30683
  const captionsDrawerItems = [];
30762
30684
  const spokenLanguageString = supportedSpokenLanguageStrings
@@ -30836,7 +30758,6 @@ const MoreDrawer = (props) => {
30836
30758
  customDrawerButtons['overflow'].forEach((element) => {
30837
30759
  drawerMenuItems.push(element);
30838
30760
  });
30839
- /* @conditional-compile-remove(close-captions) */
30840
30761
  return (React.createElement(React.Fragment, null,
30841
30762
  isSpokenLanguageDrawerOpen && showCaptionsButton && (React.createElement(SpokenLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentSpokenLanguage, setCurrentLanguage: captionSettingsHandlers.onSetSpokenLanguage, currentLanguage: currentSpokenLanguage, strings: { menuTitle: props.strings.spokenLanguageMenuTitle }, supportedLanguageStrings: supportedSpokenLanguageStrings })),
30842
30763
  isCaptionLanguageDrawerOpen && showCaptionsButton && (React.createElement(CaptionLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentCaptionLanguage, setCurrentLanguage: captionSettingsHandlers.onSetCaptionLanguage, currentLanguage: currentCaptionLanguage, strings: { menuTitle: props.strings.captionLanguageMenuTitle }, supportedLanguageStrings: supportedCaptionLanguageStrings })),
@@ -30869,11 +30790,8 @@ const PreparedMoreDrawer = (props) => {
30869
30790
  audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,
30870
30791
  microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,
30871
30792
  speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle,
30872
- /* @conditional-compile-remove(close-captions) */
30873
30793
  captionsMenuTitle: strings.moreDrawerCaptionsMenuTitle,
30874
- /* @conditional-compile-remove(close-captions) */
30875
30794
  spokenLanguageMenuTitle: strings.moreDrawerSpokenLanguageMenuTitle,
30876
- /* @conditional-compile-remove(close-captions) */
30877
30795
  captionLanguageMenuTitle: strings.moreDrawerCaptionLanguageMenuTitle,
30878
30796
  galleryOptionsMenuTitle: strings.moreDrawerGalleryOptionsMenuTitle
30879
30797
  }), [strings]);
@@ -32677,11 +32595,8 @@ const CallArrangement = (props) => {
32677
32595
  }
32678
32596
  /* @conditional-compile-remove(acs-close-captions) */
32679
32597
  const isTeamsCaptions = useSelector$1(getCaptionsKind) === 'TeamsCaptions';
32680
- /* @conditional-compile-remove(close-captions) */
32681
32598
  const useTeamsCaptions = useSelector$1(getIsTeamsCall) || /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;
32682
- /* @conditional-compile-remove(close-captions) */
32683
32599
  const hasJoinedCall = useSelector$1(getCallStatus) === 'Connected';
32684
- /* @conditional-compile-remove(close-captions) */
32685
32600
  const isCaptionsOn = useSelector$1(getCaptionsStatus);
32686
32601
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);
32687
32602
  const pipStyles = React.useMemo(() => getPipStyles(theme), [theme]);
@@ -32702,25 +32617,15 @@ const CallArrangement = (props) => {
32702
32617
  /* @conditional-compile-remove(one-to-n-calling) */
32703
32618
  onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby,
32704
32619
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
32705
- disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked,
32706
- /* @conditional-compile-remove(close-captions) */
32707
- isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32708
- /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall,
32709
- /* @conditional-compile-remove(close-captions) */
32710
- useTeamsCaptions: useTeamsCaptions,
32711
- /* @conditional-compile-remove(close-captions) */
32712
- isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef,
32620
+ disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32621
+ /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef,
32713
32622
  /* @conditional-compile-remove(spotlight) */
32714
32623
  onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined }))))),
32715
32624
  ((_j = props.callControlProps) === null || _j === void 0 ? void 0 : _j.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
32716
32625
  React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
32717
32626
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
32718
- disableButtonsForHoldScreen: isInLocalHold,
32719
- /* @conditional-compile-remove(close-captions) */
32720
- isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32721
- /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall,
32722
- /* @conditional-compile-remove(close-captions) */
32723
- useTeamsCaptions: useTeamsCaptions, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, reactionResources: adapter.getState().reactions }))),
32627
+ disableButtonsForHoldScreen: isInLocalHold, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32628
+ /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, reactionResources: adapter.getState().reactions }))),
32724
32629
  React.createElement(react.Stack, { horizontal: true, grow: true },
32725
32630
  React.createElement(react.Stack.Item, { style: callCompositeContainerCSS },
32726
32631
  React.createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true },
@@ -32735,10 +32640,7 @@ const CallArrangement = (props) => {
32735
32640
  React.createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] })))),
32736
32641
  canUnmute && !!props.mutedNotificationProps && (React.createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps)))),
32737
32642
  renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent(),
32738
- /* @conditional-compile-remove(close-captions) */
32739
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,
32740
- /* @conditional-compile-remove(close-captions) */
32741
- useTeamsCaptions: useTeamsCaptions }))))),
32643
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, useTeamsCaptions: useTeamsCaptions }))))),
32742
32644
  React.createElement(SidePane, { mobileView: props.mobileView, maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
32743
32645
  ? undefined
32744
32646
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
@@ -32802,7 +32704,7 @@ const MediaGallery = (props) => {
32802
32704
  const { pinnedParticipants = [], setPinnedParticipants,
32803
32705
  /* @conditional-compile-remove(spotlight) */ setIsPromptOpen,
32804
32706
  /* @conditional-compile-remove(spotlight) */ setPromptProps,
32805
- /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons } = props;
32707
+ /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons, videoTilesOptions } = props;
32806
32708
  const videoGalleryProps = usePropsFor$1(VideoGallery);
32807
32709
  const cameraSwitcherCameras = useSelector$1(localVideoCameraCycleButtonSelector);
32808
32710
  const cameraSwitcherCallback = useHandlers();
@@ -32870,7 +32772,7 @@ const MediaGallery = (props) => {
32870
32772
  const layoutBasedOnUserSelection = () => {
32871
32773
  return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;
32872
32774
  };
32873
- return (React.createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$2, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: layoutBasedOnUserSelection(), showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar, remoteVideoTileMenu: remoteVideoTileMenuOptions, overflowGalleryPosition: overflowGalleryPosition, localVideoTileSize: props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')
32775
+ return (React.createElement(VideoGallery, Object.assign({}, videoGalleryProps, { videoTilesOptions: videoTilesOptions, localVideoViewOptions: localVideoViewOptions$2, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: layoutBasedOnUserSelection(), showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar, remoteVideoTileMenu: remoteVideoTileMenuOptions, overflowGalleryPosition: overflowGalleryPosition, localVideoTileSize: props.localVideoTileOptions === false || userRole === 'Consumer' || (isRoomsCall && userRole === 'Unknown')
32874
32776
  ? 'hidden'
32875
32777
  : props.isMobile && containerAspectRatio < 1
32876
32778
  ? '9:16'
@@ -32909,7 +32811,8 @@ const MediaGallery = (props) => {
32909
32811
  /* @conditional-compile-remove(spotlight) */
32910
32812
  onStopRemoteSpotlightWithPrompt,
32911
32813
  /* @conditional-compile-remove(spotlight) */
32912
- hideSpotlightButtons
32814
+ hideSpotlightButtons,
32815
+ videoTilesOptions
32913
32816
  ]);
32914
32817
  return (React.createElement("div", { ref: containerRef, style: mediaGalleryContainerStyles },
32915
32818
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
@@ -33243,7 +33146,7 @@ const CallPage = (props) => {
33243
33146
  /* @conditional-compile-remove(spotlight) */
33244
33147
  setPromptProps: setPromptProps,
33245
33148
  /* @conditional-compile-remove(spotlight) */
33246
- hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons })));
33149
+ hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, videoTilesOptions: options === null || options === void 0 ? void 0 : options.videoTilesOptions })));
33247
33150
  }
33248
33151
  };
33249
33152
  return (React.createElement(React.Fragment, null,
@@ -36245,13 +36148,10 @@ class AzureCommunicationCallAdapter {
36245
36148
  this.sendDtmfTone.bind(this);
36246
36149
  /* @conditional-compile-remove(unsupported-browser) */
36247
36150
  this.allowUnsupportedBrowserVersion.bind(this);
36248
- /* @conditional-compile-remove(close-captions) */
36249
- {
36250
- this.startCaptions.bind(this);
36251
- this.stopCaptions.bind(this);
36252
- this.setSpokenLanguage.bind(this);
36253
- this.setCaptionLanguage.bind(this);
36254
- }
36151
+ this.startCaptions.bind(this);
36152
+ this.stopCaptions.bind(this);
36153
+ this.setSpokenLanguage.bind(this);
36154
+ this.setCaptionLanguage.bind(this);
36255
36155
  this.startVideoBackgroundEffect.bind(this);
36256
36156
  this.stopVideoBackgroundEffects.bind(this);
36257
36157
  this.updateBackgroundPickerImages.bind(this);
@@ -36694,25 +36594,21 @@ class AzureCommunicationCallAdapter {
36694
36594
  this.handlers.onSendDtmfTone(dtmfTone);
36695
36595
  });
36696
36596
  }
36697
- /* @conditional-compile-remove(close-captions) */
36698
36597
  startCaptions(options) {
36699
36598
  return __awaiter$5(this, void 0, void 0, function* () {
36700
36599
  this.handlers.onStartCaptions(options);
36701
36600
  });
36702
36601
  }
36703
- /* @conditional-compile-remove(close-captions) */
36704
36602
  stopCaptions() {
36705
36603
  return __awaiter$5(this, void 0, void 0, function* () {
36706
36604
  this.handlers.onStopCaptions();
36707
36605
  });
36708
36606
  }
36709
- /* @conditional-compile-remove(close-captions) */
36710
36607
  setCaptionLanguage(language) {
36711
36608
  return __awaiter$5(this, void 0, void 0, function* () {
36712
36609
  this.handlers.onSetCaptionLanguage(language);
36713
36610
  });
36714
36611
  }
36715
- /* @conditional-compile-remove(close-captions) */
36716
36612
  setSpokenLanguage(language) {
36717
36613
  return __awaiter$5(this, void 0, void 0, function* () {
36718
36614
  this.handlers.onSetSpokenLanguage(language);
@@ -36755,7 +36651,6 @@ class AzureCommunicationCallAdapter {
36755
36651
  on(event, listener) {
36756
36652
  this.emitter.on(event, listener);
36757
36653
  }
36758
- /* @conditional-compile-remove(close-captions) */
36759
36654
  subscribeToCaptionEvents() {
36760
36655
  var _a, _b;
36761
36656
  if (this.call && this.call.state === 'Connected') {
@@ -36778,7 +36673,6 @@ class AzureCommunicationCallAdapter {
36778
36673
  }
36779
36674
  }
36780
36675
  }
36781
- /* @conditional-compile-remove(close-captions) */
36782
36676
  unsubscribeFromCaptionEvents() {
36783
36677
  var _a, _b, _c;
36784
36678
  if (this.call && this.call.state === 'Connected') {
@@ -36811,7 +36705,6 @@ class AzureCommunicationCallAdapter {
36811
36705
  (_b = this.call) === null || _b === void 0 ? void 0 : _b.on('isMutedChanged', this.isMyMutedChanged.bind(this));
36812
36706
  (_c = this.call) === null || _c === void 0 ? void 0 : _c.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));
36813
36707
  (_d = this.call) === null || _d === void 0 ? void 0 : _d.on('idChanged', this.callIdChanged.bind(this));
36814
- /* @conditional-compile-remove(close-captions) */
36815
36708
  (_e = this.call) === null || _e === void 0 ? void 0 : _e.on('stateChanged', this.subscribeToCaptionEvents.bind(this));
36816
36709
  (_f = this.call) === null || _f === void 0 ? void 0 : _f.on('roleChanged', this.roleChanged.bind(this));
36817
36710
  (_g = this.call) === null || _g === void 0 ? void 0 : _g.feature(communicationCalling.Features.Transfer).on('transferAccepted', this.transferAccepted.bind(this));
@@ -36830,7 +36723,6 @@ class AzureCommunicationCallAdapter {
36830
36723
  (_c = this.call) === null || _c === void 0 ? void 0 : _c.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));
36831
36724
  (_d = this.call) === null || _d === void 0 ? void 0 : _d.off('idChanged', this.callIdChanged.bind(this));
36832
36725
  (_e = this.call) === null || _e === void 0 ? void 0 : _e.off('roleChanged', this.roleChanged.bind(this));
36833
- /* @conditional-compile-remove(close-captions) */
36834
36726
  this.unsubscribeFromCaptionEvents();
36835
36727
  if (this.callingSoundSubscriber) {
36836
36728
  this.callingSoundSubscriber.unsubscribeAll();
@@ -36856,7 +36748,6 @@ class AzureCommunicationCallAdapter {
36856
36748
  var _a;
36857
36749
  this.emitter.emit('isLocalScreenSharingActiveChanged', { isScreenSharingOn: (_a = this.call) === null || _a === void 0 ? void 0 : _a.isScreenSharingOn });
36858
36750
  }
36859
- /* @conditional-compile-remove(close-captions) */
36860
36751
  teamsCaptionsReceived(captionsInfo) {
36861
36752
  this.emitter.emit('captionsReceived', { captionsInfo });
36862
36753
  }
@@ -36864,7 +36755,6 @@ class AzureCommunicationCallAdapter {
36864
36755
  captionsReceived(captionsInfo) {
36865
36756
  this.emitter.emit('captionsReceived', { captionsInfo });
36866
36757
  }
36867
- /* @conditional-compile-remove(close-captions) */
36868
36758
  isCaptionsActiveChanged() {
36869
36759
  var _a;
36870
36760
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -36872,7 +36762,6 @@ class AzureCommunicationCallAdapter {
36872
36762
  isActive: captionsFeature.isCaptionsFeatureActive
36873
36763
  });
36874
36764
  }
36875
- /* @conditional-compile-remove(close-captions) */
36876
36765
  isSpokenLanguageChanged() {
36877
36766
  var _a;
36878
36767
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -36880,7 +36769,6 @@ class AzureCommunicationCallAdapter {
36880
36769
  activeSpokenLanguage: captionsFeature.activeSpokenLanguage
36881
36770
  });
36882
36771
  }
36883
- /* @conditional-compile-remove(close-captions) */
36884
36772
  isCaptionLanguageChanged() {
36885
36773
  var _a;
36886
36774
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -37451,25 +37339,21 @@ class CallWithChatBackedCallAdapter {
37451
37339
  allowUnsupportedBrowserVersion() {
37452
37340
  return this.callWithChatAdapter.allowUnsupportedBrowserVersion();
37453
37341
  }
37454
- /* @conditional-compile-remove(close-captions) */
37455
37342
  startCaptions(options) {
37456
37343
  return __awaiter$4(this, void 0, void 0, function* () {
37457
37344
  this.callWithChatAdapter.startCaptions(options);
37458
37345
  });
37459
37346
  }
37460
- /* @conditional-compile-remove(close-captions) */
37461
37347
  stopCaptions() {
37462
37348
  return __awaiter$4(this, void 0, void 0, function* () {
37463
37349
  this.callWithChatAdapter.stopCaptions();
37464
37350
  });
37465
37351
  }
37466
- /* @conditional-compile-remove(close-captions) */
37467
37352
  setCaptionLanguage(language) {
37468
37353
  return __awaiter$4(this, void 0, void 0, function* () {
37469
37354
  this.callWithChatAdapter.setCaptionLanguage(language);
37470
37355
  });
37471
37356
  }
37472
- /* @conditional-compile-remove(close-captions) */
37473
37357
  setSpokenLanguage(language) {
37474
37358
  return __awaiter$4(this, void 0, void 0, function* () {
37475
37359
  this.callWithChatAdapter.setSpokenLanguage(language);
@@ -37643,6 +37527,10 @@ class CallWithChatBackedChatAdapter {
37643
37527
  };
37644
37528
  this.callWithChatAdapter = callWithChatAdapter;
37645
37529
  }
37530
+ /* @conditional-compile-remove(attachment-upload) */
37531
+ sendMessageWithAttachments(content, attachments) {
37532
+ return this.callWithChatAdapter.sendMessageWithAttachments(content, attachments);
37533
+ }
37646
37534
  downloadResourceToCache(resourceDetails) {
37647
37535
  return __awaiter$3(this, void 0, void 0, function* () {
37648
37536
  this.callWithChatAdapter.downloadResourceToCache(resourceDetails);
@@ -37662,7 +37550,7 @@ function chatAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState)
37662
37550
  thread: callWithChatAdapterState.chat,
37663
37551
  latestErrors: callWithChatAdapterState.latestChatErrors,
37664
37552
  /* @conditional-compile-remove(attachment-upload) */
37665
- attachmentUploads: callWithChatAdapterState.attachmentUploads
37553
+ _attachmentUploads: callWithChatAdapterState._attachmentUploads
37666
37554
  };
37667
37555
  }
37668
37556
 
@@ -38074,7 +37962,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
38074
37962
  latestCallErrors: callAdapterState.latestErrors,
38075
37963
  latestChatErrors: {},
38076
37964
  /* @conditional-compile-remove(attachment-upload) */
38077
- attachmentUploads: {},
37965
+ _attachmentUploads: {},
38078
37966
  /* @conditional-compile-remove(PSTN-calls) */
38079
37967
  alternateCallerId: callAdapterState.alternateCallerId,
38080
37968
  /* @conditional-compile-remove(unsupported-browser) */
@@ -38094,7 +37982,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
38094
37982
  function mergeChatAdapterStateIntoCallWithChatAdapterState(existingCallWithChatAdapterState, chatAdapterState) {
38095
37983
  return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { chat: chatAdapterState.thread, latestChatErrors: chatAdapterState.latestErrors,
38096
37984
  /* @conditional-compile-remove(attachment-upload) */
38097
- attachmentUploads: chatAdapterState.attachmentUploads });
37985
+ _attachmentUploads: chatAdapterState._attachmentUploads });
38098
37986
  }
38099
37987
  /**
38100
37988
  * @private
@@ -38240,6 +38128,8 @@ class AzureCommunicationCallWithChatAdapter {
38240
38128
  this.disposeScreenShareStreamView.bind(this);
38241
38129
  this.fetchInitialData.bind(this);
38242
38130
  this.sendMessage.bind(this);
38131
+ /* @conditional-compile-remove(attachment-upload) */
38132
+ this.sendMessageWithAttachments.bind(this);
38243
38133
  this.sendReadReceipt.bind(this);
38244
38134
  this.sendTypingIndicator.bind(this);
38245
38135
  this.loadPreviousChatMessages.bind(this);
@@ -38272,12 +38162,10 @@ class AzureCommunicationCallWithChatAdapter {
38272
38162
  this.sendDtmfTone.bind(this);
38273
38163
  /* @conditional-compile-remove(unsupported-browser) */
38274
38164
  this.allowUnsupportedBrowserVersion.bind(this);
38275
- /* @conditional-compile-remove(close-captions) */ {
38276
- this.startCaptions.bind(this);
38277
- this.stopCaptions.bind(this);
38278
- this.setSpokenLanguage.bind(this);
38279
- this.setCaptionLanguage.bind(this);
38280
- }
38165
+ this.startCaptions.bind(this);
38166
+ this.stopCaptions.bind(this);
38167
+ this.setSpokenLanguage.bind(this);
38168
+ this.setCaptionLanguage.bind(this);
38281
38169
  this.startVideoBackgroundEffect.bind(this);
38282
38170
  this.stopVideoBackgroundEffects.bind(this);
38283
38171
  this.updateBackgroundPickerImages.bind(this);
@@ -38490,6 +38378,20 @@ class AzureCommunicationCallWithChatAdapter {
38490
38378
  });
38491
38379
  });
38492
38380
  }
38381
+ /* @conditional-compile-remove(attachment-upload) */
38382
+ /** Send a chat message with attachments. */
38383
+ sendMessageWithAttachments(content, attachments) {
38384
+ return __awaiter$2(this, void 0, void 0, function* () {
38385
+ return yield this.chatAdapterPromise.then((adapter) => {
38386
+ const fileSharingMetadata = {
38387
+ fileSharingMetadata: JSON.stringify(attachments)
38388
+ };
38389
+ return adapter.sendMessage(content, {
38390
+ metadata: fileSharingMetadata
38391
+ });
38392
+ });
38393
+ });
38394
+ }
38493
38395
  /** Send a chat read receipt. */
38494
38396
  sendReadReceipt(chatMessageId) {
38495
38397
  return __awaiter$2(this, void 0, void 0, function* () {
@@ -38575,25 +38477,21 @@ class AzureCommunicationCallWithChatAdapter {
38575
38477
  allowUnsupportedBrowserVersion() {
38576
38478
  return this.callAdapter.allowUnsupportedBrowserVersion();
38577
38479
  }
38578
- /* @conditional-compile-remove(close-captions) */
38579
38480
  startCaptions(options) {
38580
38481
  return __awaiter$2(this, void 0, void 0, function* () {
38581
38482
  yield this.callAdapter.startCaptions(options);
38582
38483
  });
38583
38484
  }
38584
- /* @conditional-compile-remove(close-captions) */
38585
38485
  stopCaptions() {
38586
38486
  return __awaiter$2(this, void 0, void 0, function* () {
38587
38487
  yield this.callAdapter.stopCaptions();
38588
38488
  });
38589
38489
  }
38590
- /* @conditional-compile-remove(close-captions) */
38591
38490
  setCaptionLanguage(language) {
38592
38491
  return __awaiter$2(this, void 0, void 0, function* () {
38593
38492
  yield this.callAdapter.setCaptionLanguage(language);
38594
38493
  });
38595
38494
  }
38596
- /* @conditional-compile-remove(close-captions) */
38597
38495
  setSpokenLanguage(language) {
38598
38496
  return __awaiter$2(this, void 0, void 0, function* () {
38599
38497
  yield this.callAdapter.setSpokenLanguage(language);
@@ -38672,19 +38570,15 @@ class AzureCommunicationCallWithChatAdapter {
38672
38570
  case 'selectedSpeakerChanged':
38673
38571
  this.callAdapter.on('selectedSpeakerChanged', listener);
38674
38572
  break;
38675
- /* @conditional-compile-remove(close-captions) */
38676
38573
  case 'captionsReceived':
38677
38574
  this.callAdapter.on('captionsReceived', listener);
38678
38575
  break;
38679
- /* @conditional-compile-remove(close-captions) */
38680
38576
  case 'isCaptionsActiveChanged':
38681
38577
  this.callAdapter.on('isCaptionsActiveChanged', listener);
38682
38578
  break;
38683
- /* @conditional-compile-remove(close-captions) */
38684
38579
  case 'isCaptionLanguageChanged':
38685
38580
  this.callAdapter.on('isCaptionLanguageChanged', listener);
38686
38581
  break;
38687
- /* @conditional-compile-remove(close-captions) */
38688
38582
  case 'isSpokenLanguageChanged':
38689
38583
  this.callAdapter.on('isSpokenLanguageChanged', listener);
38690
38584
  break;
@@ -38768,19 +38662,15 @@ class AzureCommunicationCallWithChatAdapter {
38768
38662
  case 'selectedSpeakerChanged':
38769
38663
  this.callAdapter.off('selectedSpeakerChanged', listener);
38770
38664
  break;
38771
- /* @conditional-compile-remove(close-captions) */
38772
38665
  case 'captionsReceived':
38773
38666
  this.callAdapter.off('captionsReceived', listener);
38774
38667
  break;
38775
- /* @conditional-compile-remove(close-captions) */
38776
38668
  case 'isCaptionsActiveChanged':
38777
38669
  this.callAdapter.off('isCaptionsActiveChanged', listener);
38778
38670
  break;
38779
- /* @conditional-compile-remove(close-captions) */
38780
38671
  case 'isCaptionLanguageChanged':
38781
38672
  this.callAdapter.off('isCaptionLanguageChanged', listener);
38782
38673
  break;
38783
- /* @conditional-compile-remove(close-captions) */
38784
38674
  case 'isSpokenLanguageChanged':
38785
38675
  this.callAdapter.off('isSpokenLanguageChanged', listener);
38786
38676
  break;
@@ -39652,4 +39542,4 @@ exports.useTeamsCall = useTeamsCall;
39652
39542
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
39653
39543
  exports.useTeamsCallAgent = useTeamsCallAgent;
39654
39544
  exports.useTheme = useTheme;
39655
- //# sourceMappingURL=index-oaEwmItW.js.map
39545
+ //# sourceMappingURL=index-C2GfkUGz.js.map