@azure/communication-react 1.16.0-alpha-202404191930 → 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 (168) hide show
  1. package/dist/communication-react.d.ts +141 -78
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-4y1CWxBv.js → ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js} +3 -3
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-4y1CWxBv.js.map → ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{index-B-wg-pZ5.js → index-C2GfkUGz.js} +236 -356
  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/MyMessageComponents/ChatMessageComponentAsEditBox.js +1 -1
  41. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +1 -1
  43. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/LocalVideoTile.d.ts +1 -0
  45. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -2
  46. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
  48. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +1 -1
  49. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +4 -4
  51. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +20 -13
  52. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +1 -1
  54. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +4 -4
  55. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +4 -4
  57. package/dist/dist-esm/react-components/src/components/SendBox.js +20 -14
  58. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +1 -1
  60. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +6 -6
  61. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +0 -4
  63. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  64. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +15 -0
  65. package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -5
  66. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  67. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +5 -0
  68. package/dist/dist-esm/react-components/src/components/VideoTile.js +7 -5
  69. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  70. package/dist/dist-esm/react-components/src/components/index.d.ts +2 -2
  71. package/dist/dist-esm/react-components/src/components/index.js +0 -4
  72. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  73. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +0 -4
  74. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +0 -7
  75. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +3 -3
  77. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +6 -6
  78. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  79. package/dist/dist-esm/react-components/src/index.js +0 -1
  80. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  81. package/dist/dist-esm/react-components/src/theming/icons.js +0 -6
  82. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  83. package/dist/dist-esm/react-components/src/theming/themes.d.ts +1 -0
  84. package/dist/dist-esm/react-components/src/theming/themes.js +4 -2
  85. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  86. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +48 -24
  87. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +5 -0
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +4 -19
  92. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  93. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +5 -23
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +2 -0
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +4 -3
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -4
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +1 -1
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -7
  106. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  108. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +5 -3
  109. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +20 -18
  110. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  111. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +17 -11
  112. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  113. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -4
  114. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -3
  116. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +5 -1
  117. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  118. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +4 -4
  119. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -2
  120. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  121. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -7
  122. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.d.ts +14 -13
  124. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js +30 -21
  125. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js.map +1 -1
  126. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +5 -3
  127. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +26 -2
  128. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  129. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +10 -5
  130. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  131. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.d.ts +2 -2
  132. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  133. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +10 -10
  134. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +7 -7
  135. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +1 -1
  137. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
  138. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +1 -1
  139. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  140. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +2 -2
  141. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  142. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/attachmentUploadsSelector.d.ts +5 -5
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +2 -2
  144. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +1 -1
  145. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  146. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +2 -27
  147. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  148. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +0 -20
  149. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  150. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +0 -13
  151. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  152. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +4 -15
  153. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  154. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +1 -17
  155. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  156. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js +0 -9
  157. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js.map +1 -1
  158. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +0 -23
  159. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  160. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +0 -3
  161. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  162. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js +0 -9
  163. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js.map +1 -1
  164. package/package.json +2 -2
  165. package/dist/dist-cjs/communication-react/index-B-wg-pZ5.js.map +0 -1
  166. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.d.ts +0 -6
  167. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +0 -11
  168. 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-202404191930';
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,
@@ -10751,7 +10706,7 @@ const RichTextInputBoxComponent = (props) => {
10751
10706
  const RichTextSendBoxErrors = (props) => {
10752
10707
  const {
10753
10708
  /* @conditional-compile-remove(attachment-upload) */
10754
- attachmentUploadError,
10709
+ attachmentProgressError,
10755
10710
  /* @conditional-compile-remove(attachment-upload) */
10756
10711
  attachmentUploadsPendingError, systemMessage, textTooLongMessage } = props;
10757
10712
  const [sendBoxError, setSendBoxError] = React.useState(undefined);
@@ -10782,8 +10737,8 @@ const RichTextSendBoxErrors = (props) => {
10782
10737
  errors.push(attachmentUploadsPendingError);
10783
10738
  }
10784
10739
  /* @conditional-compile-remove(attachment-upload) */
10785
- if (attachmentUploadError) {
10786
- errors.push(attachmentUploadError);
10740
+ if (attachmentProgressError) {
10741
+ errors.push(attachmentProgressError);
10787
10742
  }
10788
10743
  if (errors.length === 0) {
10789
10744
  return undefined;
@@ -10793,7 +10748,7 @@ const RichTextSendBoxErrors = (props) => {
10793
10748
  return sortedErrors[0];
10794
10749
  });
10795
10750
  }, [
10796
- /* @conditional-compile-remove(attachment-upload) */ attachmentUploadError,
10751
+ /* @conditional-compile-remove(attachment-upload) */ attachmentProgressError,
10797
10752
  /* @conditional-compile-remove(attachment-upload) */ attachmentUploadsPendingError
10798
10753
  ]);
10799
10754
  const onDismiss = React.useCallback(() => {
@@ -10819,7 +10774,7 @@ const isMessageEmpty$1 = (message) => {
10819
10774
  const RichTextSendBox = (props) => {
10820
10775
  const { disabled = false, systemMessage, autoFocus, onSendMessage, onTyping,
10821
10776
  /* @conditional-compile-remove(attachment-upload) */
10822
- activeAttachmentUploads,
10777
+ attachmentsWithProgress,
10823
10778
  /* @conditional-compile-remove(attachment-upload) */
10824
10779
  onCancelAttachmentUpload } = props;
10825
10780
  const theme = useTheme();
@@ -10853,7 +10808,7 @@ const RichTextSendBox = (props) => {
10853
10808
  /* @conditional-compile-remove(attachment-upload) */
10854
10809
  setAttachmentUploadsPendingError(undefined);
10855
10810
  /* @conditional-compile-remove(attachment-upload) */
10856
- if (hasIncompleteAttachmentUploads(activeAttachmentUploads)) {
10811
+ if (hasIncompleteAttachmentUploads(attachmentsWithProgress)) {
10857
10812
  setAttachmentUploadsPendingError({ message: strings.attachmentUploadsPendingError, timestamp: Date.now() });
10858
10813
  return;
10859
10814
  }
@@ -10869,7 +10824,7 @@ const RichTextSendBox = (props) => {
10869
10824
  // we don't want to send empty messages including spaces, newlines, tabs
10870
10825
  // Message can be empty if there is a valid attachment upload
10871
10826
  if (hasContent ||
10872
- /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(activeAttachmentUploads)) {
10827
+ /* @conditional-compile-remove(attachment-upload) */ hasCompletedAttachmentUploads(attachmentsWithProgress)) {
10873
10828
  onSendMessage(message);
10874
10829
  setContentValue('');
10875
10830
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.setEmptyContent();
@@ -10881,7 +10836,7 @@ const RichTextSendBox = (props) => {
10881
10836
  disabled,
10882
10837
  onSendMessage,
10883
10838
  strings.placeholderText,
10884
- /* @conditional-compile-remove(attachment-upload) */ activeAttachmentUploads,
10839
+ /* @conditional-compile-remove(attachment-upload) */ attachmentsWithProgress,
10885
10840
  /* @conditional-compile-remove(attachment-upload) */ strings.attachmentUploadsPendingError
10886
10841
  ]);
10887
10842
  const hasErrorMessage = React.useMemo(() => {
@@ -10891,10 +10846,10 @@ const RichTextSendBox = (props) => {
10891
10846
  /* @conditional-compile-remove(attachment-upload) */
10892
10847
  !!attachmentUploadsPendingError ||
10893
10848
  /* @conditional-compile-remove(attachment-upload) */
10894
- !!((_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));
10895
10850
  }, [
10896
10851
  /* @conditional-compile-remove(attachment-upload) */
10897
- activeAttachmentUploads,
10852
+ attachmentsWithProgress,
10898
10853
  contentTooLongMessage,
10899
10854
  /* @conditional-compile-remove(attachment-upload) */
10900
10855
  attachmentUploadsPendingError,
@@ -10921,18 +10876,25 @@ const RichTextSendBox = (props) => {
10921
10876
  }) }));
10922
10877
  }, [contentValue, disabled, hasErrorMessage, strings.placeholderText, theme]);
10923
10878
  const sendBoxErrorsProps = React.useMemo(() => {
10924
- 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;
10925
10882
  return {
10926
10883
  /* @conditional-compile-remove(attachment-upload) */
10927
10884
  attachmentUploadsPendingError: attachmentUploadsPendingError,
10928
10885
  /* @conditional-compile-remove(attachment-upload) */
10929
- 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,
10930
10892
  systemMessage: systemMessage,
10931
10893
  textTooLongMessage: contentTooLongMessage
10932
10894
  };
10933
10895
  }, [
10934
10896
  /* @conditional-compile-remove(attachment-upload) */
10935
- activeAttachmentUploads,
10897
+ attachmentsWithProgress,
10936
10898
  contentTooLongMessage,
10937
10899
  /* @conditional-compile-remove(attachment-upload) */
10938
10900
  attachmentUploadsPendingError,
@@ -10942,14 +10904,14 @@ const RichTextSendBox = (props) => {
10942
10904
  const onRenderAttachmentUploads = React.useCallback(() => {
10943
10905
  return (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
10944
10906
  React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
10945
- React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: activeAttachmentUploads, onCancelAttachmentUpload: onCancelAttachmentUpload, strings: {
10907
+ React.createElement(_AttachmentUploadCards, { attachmentsWithProgress: attachmentsWithProgress, onCancelAttachmentUpload: onCancelAttachmentUpload, strings: {
10946
10908
  removeAttachment: strings.removeAttachment,
10947
10909
  uploading: strings.uploading,
10948
10910
  uploadCompleted: strings.uploadCompleted,
10949
10911
  attachmentMoreMenu: strings.attachmentMoreMenu
10950
10912
  } }))));
10951
10913
  }, [
10952
- activeAttachmentUploads,
10914
+ attachmentsWithProgress,
10953
10915
  onCancelAttachmentUpload,
10954
10916
  strings.removeAttachment,
10955
10917
  strings.uploadCompleted,
@@ -10965,8 +10927,8 @@ const RichTextSendBox = (props) => {
10965
10927
  }, [localeStrings.sendButtonAriaLabel, onRenderSendIcon, sendMessageOnClick]);
10966
10928
  /* @conditional-compile-remove(attachment-upload) */
10967
10929
  const hasAttachmentUploads = React.useMemo(() => {
10968
- return (hasCompletedAttachmentUploads(activeAttachmentUploads) || hasIncompleteAttachmentUploads(activeAttachmentUploads));
10969
- }, [activeAttachmentUploads]);
10930
+ return (hasCompletedAttachmentUploads(attachmentsWithProgress) || hasIncompleteAttachmentUploads(attachmentsWithProgress));
10931
+ }, [attachmentsWithProgress]);
10970
10932
  return (React.createElement(react.Stack, null,
10971
10933
  React.createElement(RichTextSendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
10972
10934
  React.createElement(RichTextInputBoxComponent
@@ -12747,7 +12709,7 @@ const ChatMessageComponentAsEditBox = (props) => {
12747
12709
  const onRenderAttachmentUploads = React.useCallback(() => {
12748
12710
  return (!!attachmentMetadata &&
12749
12711
  attachmentMetadata.length > 0 && (React.createElement("div", { style: { margin: '0.25rem' } },
12750
- React.createElement(_AttachmentUploadCards, { activeAttachmentUploads: attachmentMetadata, onCancelAttachmentUpload: (attachmentId) => {
12712
+ React.createElement(_AttachmentUploadCards, { attachmentsWithProgress: attachmentMetadata, onCancelAttachmentUpload: (attachmentId) => {
12751
12713
  setAttachmentMetadata(attachmentMetadata === null || attachmentMetadata === void 0 ? void 0 : attachmentMetadata.filter((attachment) => attachment.id !== attachmentId));
12752
12714
  } }))));
12753
12715
  }, [attachmentMetadata]);
@@ -12823,7 +12785,7 @@ class ErrorBoundary extends React.Component {
12823
12785
  // Copyright (c) Microsoft Corporation.
12824
12786
  // Licensed under the MIT License.
12825
12787
  /* @conditional-compile-remove(rich-text-editor) */
12826
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-4y1CWxBv.js'); }));
12788
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js'); }));
12827
12789
  /**
12828
12790
  * @private
12829
12791
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -12831,7 +12793,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
12831
12793
  *
12832
12794
  * @conditional-compile-remove(rich-text-editor)
12833
12795
  */
12834
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-4y1CWxBv.js'); });
12796
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DpYUiI1l.js'); });
12835
12797
  /**
12836
12798
  * @private
12837
12799
  */
@@ -15214,13 +15176,6 @@ const disabledVideoHint = react.mergeStyles({
15214
15176
  padding: '0.15rem',
15215
15177
  maxWidth: '100%'
15216
15178
  });
15217
- /**
15218
- * @private
15219
- */
15220
- const videoHint = react.mergeStyles(disabledVideoHint, {
15221
- // This will appear on top of the video stream, so no dependency on theme and explicitly use a translucent white
15222
- backgroundColor: 'rgba(255,255,255,0.8)'
15223
- });
15224
15179
  /**
15225
15180
  * @private
15226
15181
  */
@@ -15350,16 +15305,6 @@ const reactionRenderingStyle = (args) => {
15350
15305
  });
15351
15306
  };
15352
15307
 
15353
- // Copyright (c) Microsoft Corporation.
15354
- // Licensed under the MIT License.
15355
- /**
15356
- * @private
15357
- */
15358
- const getVideoTileOverrideColor = (isVideoRendered, theme, color) => {
15359
- // when video is being rendered, the info has a grey-ish background, so no use of theme
15360
- return { color: isVideoRendered ? react.DefaultPalette[color] : theme.palette[color] };
15361
- };
15362
-
15363
15308
  // Copyright (c) Microsoft Corporation.
15364
15309
  // Licensed under the MIT License.
15365
15310
  /**
@@ -15500,6 +15445,7 @@ const VideoTile = (props) => {
15500
15445
  const videoTileRef = React.useRef(null);
15501
15446
  const locale = useLocale$1();
15502
15447
  const theme = useTheme();
15448
+ const callingPalette = theme.callingPalette;
15503
15449
  const isVideoRendered = !!renderElement;
15504
15450
  const observer = React.useRef(new ResizeObserver((entries) => {
15505
15451
  const { width, height } = entries[0].contentRect;
@@ -15570,14 +15516,16 @@ const VideoTile = (props) => {
15570
15516
  styles: defaultPersonaStyles$1,
15571
15517
  hidePersonaDetails: true
15572
15518
  };
15573
- const videoHintWithBorderRadius = react.mergeStyles(videoHint, { borderRadius: theme.effects.roundedCorner4 });
15574
- 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]);
15575
15524
  const ids = useIdentifiers();
15576
15525
  const canShowLabel = showLabel && (displayName || (showMuteIndicator && isMuted));
15577
15526
  const participantStateString = participantStateStringTrampoline(props, locale);
15578
15527
  const canShowContextMenuButton = isHovered || isFocused;
15579
15528
  let raisedHandBackgroundColor = '';
15580
- const callingPalette = theme.callingPalette;
15581
15529
  raisedHandBackgroundColor = callingPalette.raiseHandGold;
15582
15530
  return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
15583
15531
  background: theme.palette.neutralLighter,
@@ -16415,7 +16363,7 @@ const _RemoteVideoTile = React.memo((props) => {
16415
16363
  /* @conditional-compile-remove(hide-attendee-name) */
16416
16364
  displayName = formatDisplayName();
16417
16365
  return (React.createElement(react.Stack, { tabIndex: menuKind === 'drawer' ? 0 : undefined, onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined, style: remoteVideoTileWrapperStyle },
16418
- 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,
16419
16367
  /* @conditional-compile-remove(one-to-n-calling) */
16420
16368
  /* @conditional-compile-remove(PSTN-calls) */
16421
16369
  participantState: participantState }, videoTileContextualMenuProps, { isPinned: props.isPinned, onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))),
@@ -16666,7 +16614,7 @@ const LocalVideoCameraCycleButton = (props) => {
16666
16614
  * @internal
16667
16615
  */
16668
16616
  const _LocalVideoTile = React.memo((props) => {
16669
- 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,
16670
16618
  /* @conditional-compile-remove(spotlight) */
16671
16619
  isSpotlighted,
16672
16620
  /* @conditional-compile-remove(spotlight) */
@@ -16768,7 +16716,7 @@ const _LocalVideoTile = React.memo((props) => {
16768
16716
  const reactionOverlay = reactionResources !== undefined ? (React.createElement(MeetingReactionOverlay, { overlayMode: "grid-tiles", reaction: reaction, reactionResources: reactionResources })) : undefined;
16769
16717
  return (React.createElement(react.Stack, { className: react.mergeStyles({ width: '100%', height: '100%' }),
16770
16718
  /* @conditional-compile-remove(spotlight) */ onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined },
16771
- 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,
16772
16720
  /* @conditional-compile-remove(spotlight) */
16773
16721
  isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, {
16774
16722
  /* @conditional-compile-remove(spotlight) */
@@ -18810,7 +18758,7 @@ const VideoGallery = (props) => {
18810
18758
  /* @conditional-compile-remove(spotlight) */
18811
18759
  onStopRemoteSpotlight,
18812
18760
  /* @conditional-compile-remove(spotlight) */
18813
- maxParticipantsToSpotlight, reactionResources } = props;
18761
+ maxParticipantsToSpotlight, reactionResources, videoTilesOptions } = props;
18814
18762
  const ids = useIdentifiers();
18815
18763
  const theme = useTheme();
18816
18764
  const localeStrings = useLocale$1().strings.videoGallery;
@@ -18866,7 +18814,7 @@ const VideoGallery = (props) => {
18866
18814
  return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
18867
18815
  };
18868
18816
  return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key", tabIndex: 0, "aria-label": strings.localVideoMovementLabel, role: 'dialog' },
18869
- 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,
18870
18818
  /* @conditional-compile-remove(spotlight) */
18871
18819
  spotlightedParticipantUserIds: spotlightedParticipants,
18872
18820
  /* @conditional-compile-remove(spotlight) */
@@ -18914,7 +18862,8 @@ const VideoGallery = (props) => {
18914
18862
  strings,
18915
18863
  /* @conditional-compile-remove(spotlight) */
18916
18864
  drawerMenuHostId,
18917
- reactionResources
18865
+ reactionResources,
18866
+ videoTilesOptions
18918
18867
  ]);
18919
18868
  const onPinParticipant = React.useCallback((userId) => {
18920
18869
  if (pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {
@@ -18963,7 +18912,7 @@ const VideoGallery = (props) => {
18963
18912
  }
18964
18913
  : remoteVideoViewOptions;
18965
18914
  };
18966
- 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,
18967
18916
  /* @conditional-compile-remove(PSTN-calls) */
18968
18917
  participantState: participant.state, menuKind: participant.userId === localParticipant.userId
18969
18918
  ? undefined
@@ -19002,7 +18951,8 @@ const VideoGallery = (props) => {
19002
18951
  /* @conditional-compile-remove(spotlight) */ onStartRemoteSpotlight,
19003
18952
  /* @conditional-compile-remove(spotlight) */ onStopRemoteSpotlight,
19004
18953
  /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
19005
- reactionResources
18954
+ reactionResources,
18955
+ videoTilesOptions
19006
18956
  ]);
19007
18957
  const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
19008
18958
  const localScreenShareStreamComponent = React.createElement(LocalScreenShare, { localParticipant: localParticipant });
@@ -25426,7 +25376,7 @@ class AttachmentUpload {
25426
25376
  constructor(data) {
25427
25377
  this._emitter = new EventEmitter.EventEmitter();
25428
25378
  this._emitter.setMaxListeners(_MAX_EVENT_LISTENERS);
25429
- this.id = nanoid.nanoid();
25379
+ this.taskId = nanoid.nanoid();
25430
25380
  if (data instanceof File) {
25431
25381
  this.file = data;
25432
25382
  }
@@ -25436,14 +25386,14 @@ class AttachmentUpload {
25436
25386
  const name = data === null || data === void 0 ? void 0 : data.name;
25437
25387
  this.name = name;
25438
25388
  }
25439
- notifyProgressChanged(value) {
25440
- this._emitter.emit('uploadProgressChange', this.id, value);
25389
+ notifyUploadProgressChanged(value) {
25390
+ this._emitter.emit('uploadProgressChange', this.taskId, value);
25441
25391
  }
25442
- notifyCompleted(metadata) {
25443
- this._emitter.emit('uploadComplete', this.id, metadata);
25392
+ notifyUploadCompleted(id, url) {
25393
+ this._emitter.emit('uploadComplete', this.taskId, id, url);
25444
25394
  }
25445
- notifyFailed(message) {
25446
- this._emitter.emit('uploadFail', this.id, message);
25395
+ notifyUploadFailed(message) {
25396
+ this._emitter.emit('uploadFail', this.taskId, message);
25447
25397
  }
25448
25398
  /**
25449
25399
  * Attachment upload event subscriber.
@@ -25641,7 +25591,7 @@ const AttachmentUploadButton = (props) => {
25641
25591
  } })));
25642
25592
  };
25643
25593
  const SendBoxAttachFileIconTrampoline = () => {
25644
- // @conditional-compile-remove(attachment-upload)
25594
+ /* @conditional-compile-remove(attachment-upload) */
25645
25595
  return React.createElement(ChatCompositeIcon, { iconName: "SendBoxAttachFile" });
25646
25596
  };
25647
25597
  /**
@@ -25675,27 +25625,27 @@ class AttachmentUploadContext {
25675
25625
  this.chatContext = chatContext;
25676
25626
  }
25677
25627
  getAttachmentUploads() {
25678
- return this.chatContext.getState().attachmentUploads;
25628
+ return this.chatContext.getState()._attachmentUploads;
25679
25629
  }
25680
25630
  addAttachmentUploads(attachmentUploads) {
25681
25631
  const attachmentUploadsMap = convertObservableAttachmentUploadToAttachmentUploadsUiState(attachmentUploads);
25682
25632
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25683
- draft.attachmentUploads = draft.attachmentUploads || {};
25684
- draft.attachmentUploads = Object.assign(Object.assign({}, draft.attachmentUploads), attachmentUploadsMap);
25633
+ draft._attachmentUploads = draft._attachmentUploads || {};
25634
+ draft._attachmentUploads = Object.assign(Object.assign({}, draft._attachmentUploads), attachmentUploadsMap);
25685
25635
  }));
25686
25636
  }
25687
25637
  clearUploads() {
25688
25638
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25689
- draft.attachmentUploads = {};
25639
+ draft._attachmentUploads = {};
25690
25640
  }));
25691
25641
  }
25692
25642
  updateAttachmentUpload(id, data) {
25693
25643
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25694
25644
  var _a, _b, _c, _d;
25695
- if ((_a = draft.attachmentUploads) === null || _a === void 0 ? void 0 : _a[id]) {
25696
- 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);
25697
25647
  if (data.id) {
25698
- (_d = draft.attachmentUploads) === null || _d === void 0 ? true : delete _d[id];
25648
+ (_d = draft._attachmentUploads) === null || _d === void 0 ? true : delete _d[id];
25699
25649
  }
25700
25650
  }
25701
25651
  }));
@@ -25704,10 +25654,10 @@ class AttachmentUploadContext {
25704
25654
  this.chatContext.setState(immer.produce(this.chatContext.getState(), (draft) => {
25705
25655
  ids.forEach((id) => {
25706
25656
  var _a;
25707
- 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; });
25708
25658
  keys.forEach((key) => {
25709
25659
  var _a;
25710
- (_a = draft.attachmentUploads) === null || _a === void 0 ? true : delete _a[key];
25660
+ (_a = draft._attachmentUploads) === null || _a === void 0 ? true : delete _a[key];
25711
25661
  });
25712
25662
  });
25713
25663
  }));
@@ -25723,16 +25673,16 @@ class AzureCommunicationAttachmentUploadAdapter {
25723
25673
  this.context = new AttachmentUploadContext(chatContext);
25724
25674
  }
25725
25675
  findAttachmentUpload(id) {
25726
- return this.attachmentUploads.find((attachmentUpload) => attachmentUpload.id === id);
25676
+ return this.attachmentUploads.find((attachmentUpload) => attachmentUpload.taskId === id);
25727
25677
  }
25728
25678
  deleteAttachmentUploads(ids) {
25729
- this.attachmentUploads = this.attachmentUploads.filter((attachmentUpload) => !ids.includes(attachmentUpload.id));
25679
+ this.attachmentUploads = this.attachmentUploads.filter((attachmentUpload) => !ids.includes(attachmentUpload.taskId));
25730
25680
  this.context.deleteAttachmentUploads(ids);
25731
25681
  }
25732
25682
  deleteErroneousAttachmentUploads() {
25733
25683
  const attachmentUploads = this.context.getAttachmentUploads() || {};
25734
25684
  const ids = Object.values(attachmentUploads)
25735
- .filter((item) => item.uploadError)
25685
+ .filter((item) => item.error)
25736
25686
  .map((item) => item.id);
25737
25687
  ids.forEach((id) => {
25738
25688
  const attachmentUpload = this.findAttachmentUpload(id);
@@ -25771,9 +25721,8 @@ class AzureCommunicationAttachmentUploadAdapter {
25771
25721
  }
25772
25722
  updateUploadStatusMessage(id, errorMessage) {
25773
25723
  this.context.updateAttachmentUpload(id, {
25774
- uploadError: {
25775
- message: errorMessage,
25776
- timestamp: Date.now()
25724
+ error: {
25725
+ message: errorMessage
25777
25726
  }
25778
25727
  });
25779
25728
  }
@@ -25786,20 +25735,30 @@ class AzureCommunicationAttachmentUploadAdapter {
25786
25735
  extension: metadata.extension
25787
25736
  });
25788
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
+ }
25789
25748
  subscribeAllEvents(attachmentUpload) {
25790
25749
  attachmentUpload.on('uploadProgressChange', this.updateUploadProgress.bind(this));
25791
- attachmentUpload.on('uploadComplete', this.updateUploadMetadata.bind(this));
25750
+ attachmentUpload.on('uploadComplete', this.setAttachmentMetadata.bind(this));
25792
25751
  attachmentUpload.on('uploadFail', this.updateUploadStatusMessage.bind(this));
25793
25752
  }
25794
25753
  unsubscribeAllEvents(attachmentUpload) {
25795
25754
  attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadProgressChange', this.updateUploadProgress.bind(this));
25796
- 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));
25797
25756
  attachmentUpload === null || attachmentUpload === void 0 ? void 0 : attachmentUpload.off('uploadFail', this.updateUploadStatusMessage.bind(this));
25798
25757
  }
25799
25758
  }
25800
25759
  /* @conditional-compile-remove(attachment-upload) */
25801
25760
  /**
25802
- * @param attachmentUploadUiState {@link AttachmentUploadsUiState}
25761
+ * @param attachmentUploadUiState {@link _AttachmentUploadsUiState}
25803
25762
  * @private
25804
25763
  */
25805
25764
  const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) => {
@@ -25807,7 +25766,7 @@ const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) =>
25807
25766
  const attachmentMetadata = [];
25808
25767
  Object.keys(attachmentUploads).forEach((key) => {
25809
25768
  const attachment = attachmentUploads[key];
25810
- if (attachment && !attachment.uploadError) {
25769
+ if (attachment && !attachment.error) {
25811
25770
  attachmentMetadata.push({
25812
25771
  id: attachment.id,
25813
25772
  name: attachment.name,
@@ -25829,8 +25788,8 @@ const convertAttachmentUploadsUiStateToMessageMetadata = (attachmentUploads) =>
25829
25788
  */
25830
25789
  const convertObservableAttachmentUploadToAttachmentUploadsUiState = (attachmentUploads) => {
25831
25790
  return attachmentUploads.reduce((map, attachmentUpload) => {
25832
- map[attachmentUpload.id] = {
25833
- id: attachmentUpload.id,
25791
+ map[attachmentUpload.taskId] = {
25792
+ id: attachmentUpload.taskId,
25834
25793
  name: attachmentUpload.name,
25835
25794
  progress: 0,
25836
25795
  extension: attachmentUpload.name.split('.').pop() || ''
@@ -25904,7 +25863,7 @@ class ChatContext {
25904
25863
  latestErrors: clientState.latestErrors
25905
25864
  };
25906
25865
  /* @conditional-compile-remove(attachment-upload) */
25907
- updatedState = Object.assign(Object.assign({}, updatedState), { attachmentUploads: this.state.attachmentUploads });
25866
+ updatedState = Object.assign(Object.assign({}, updatedState), { _attachmentUploads: this.state._attachmentUploads });
25908
25867
  this.setState(updatedState);
25909
25868
  }
25910
25869
  }
@@ -25939,6 +25898,8 @@ class AzureCommunicationChatAdapter {
25939
25898
  this.dispose = this.dispose.bind(this);
25940
25899
  this.fetchInitialData = this.fetchInitialData.bind(this);
25941
25900
  this.sendMessage = this.sendMessage.bind(this);
25901
+ /* @conditional-compile-remove(attachment-upload) */
25902
+ this.sendMessageWithAttachments = this.sendMessageWithAttachments.bind(this);
25942
25903
  this.sendReadReceipt = this.sendReadReceipt.bind(this);
25943
25904
  this.sendTypingIndicator = this.sendTypingIndicator.bind(this);
25944
25905
  this.updateMessage = this.updateMessage.bind(this);
@@ -26011,7 +25972,7 @@ class AzureCommunicationChatAdapter {
26011
25972
  return __awaiter$o(this, arguments, void 0, function* (content, options = {}) {
26012
25973
  yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
26013
25974
  /* @conditional-compile-remove(attachment-upload) */
26014
- 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));
26015
25976
  /* @conditional-compile-remove(attachment-upload) */
26016
25977
  /**
26017
25978
  * All the current uploads need to be clear from the state before a message has been sent.
@@ -26025,6 +25986,28 @@ class AzureCommunicationChatAdapter {
26025
25986
  }));
26026
25987
  });
26027
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
+ }
26028
26011
  sendReadReceipt(chatMessageId) {
26029
26012
  return __awaiter$o(this, void 0, void 0, function* () {
26030
26013
  yield this.asyncTeeErrorToEventEmitter(() => __awaiter$o(this, void 0, void 0, function* () {
@@ -27072,7 +27055,7 @@ const useSelector$2 = (selector, selectorProps) => {
27072
27055
  */
27073
27056
  const getAttachmentUploads = (state) => {
27074
27057
  /* @conditional-compile-remove(attachment-upload) */
27075
- return state === null || state === void 0 ? void 0 : state.attachmentUploads;
27058
+ return state === null || state === void 0 ? void 0 : state._attachmentUploads;
27076
27059
  };
27077
27060
 
27078
27061
  // Copyright (c) Microsoft Corporation.
@@ -27172,9 +27155,9 @@ const ChatScreen = (props) => {
27172
27155
  return;
27173
27156
  }
27174
27157
  /* @conditional-compile-remove(attachment-upload) */
27175
- const attachmentUploads = adapter.registerActiveUploads(Array.from(files));
27158
+ const uploadTasks = adapter.registerActiveUploads(Array.from(files));
27176
27159
  /* @conditional-compile-remove(attachment-upload) */
27177
- (_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);
27178
27161
  }, [adapter, attachmentOptions]);
27179
27162
  /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
27180
27163
  const onRenderAttachmentDownloads = React.useCallback((userId, message) => {
@@ -27273,18 +27256,18 @@ const ChatScreen = (props) => {
27273
27256
  }, [overlayImageItem === null || overlayImageItem === void 0 ? void 0 : overlayImageItem.attachmentId]);
27274
27257
  const AttachmentButton = React.useCallback(() => {
27275
27258
  var _a, _b, _c;
27276
- 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)) {
27277
27260
  return null;
27278
27261
  }
27279
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 }));
27280
27263
  }, [
27281
- (_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,
27282
27265
  (_c = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _c === void 0 ? void 0 : _c.supportedMediaTypes,
27283
27266
  (_d = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _d === void 0 ? void 0 : _d.disableMultipleUploads,
27284
27267
  attachmentUploadButtonOnChange
27285
27268
  ]);
27286
27269
  /* @conditional-compile-remove(attachment-upload) */
27287
- const activeAttachmentUploads = useSelector$2(attachmentUploadsSelector).attachments;
27270
+ const attachmentsWithProgress = useSelector$2(attachmentUploadsSelector).attachments;
27288
27271
  return (React.createElement(react.Stack, { className: chatContainer, grow: true },
27289
27272
  (options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
27290
27273
  React.createElement(react.Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
@@ -27305,9 +27288,13 @@ const ChatScreen = (props) => {
27305
27288
  React.createElement(react.Stack, { grow: true },
27306
27289
  React.createElement(SendBox, Object.assign({}, sendBoxProps, { autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus, styles: sendBoxStyles,
27307
27290
  /* @conditional-compile-remove(attachment-upload) */
27308
- activeAttachmentUploads: activeAttachmentUploads,
27291
+ attachmentsWithProgress: attachmentsWithProgress,
27309
27292
  /* @conditional-compile-remove(attachment-upload) */
27310
- 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
+ } }))),
27311
27298
  formFactor !== 'mobile' && React.createElement(AttachmentButton, null)))),
27312
27299
  /* @conditional-compile-remove(chat-composite-participant-pane) */
27313
27300
  (options === null || options === void 0 ? void 0 : options.participantPane) === true && (React.createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, isMobile: formFactor === 'mobile' }))),
@@ -28113,19 +28100,15 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
28113
28100
  const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);
28114
28101
  return yield adapter.startVideoBackgroundEffect(replacementConfig);
28115
28102
  }),
28116
- /* @conditional-compile-remove(close-captions) */
28117
28103
  onStartCaptions: (options) => __awaiter$k(void 0, void 0, void 0, function* () {
28118
28104
  yield adapter.startCaptions(options);
28119
28105
  }),
28120
- /* @conditional-compile-remove(close-captions) */
28121
28106
  onStopCaptions: () => __awaiter$k(void 0, void 0, void 0, function* () {
28122
28107
  yield adapter.stopCaptions();
28123
28108
  }),
28124
- /* @conditional-compile-remove(close-captions) */
28125
28109
  onSetSpokenLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
28126
28110
  yield adapter.setSpokenLanguage(language);
28127
28111
  }),
28128
- /* @conditional-compile-remove(close-captions) */
28129
28112
  onSetCaptionLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
28130
28113
  yield adapter.setCaptionLanguage(language);
28131
28114
  }),
@@ -28174,13 +28157,9 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
28174
28157
  // Licensed under the MIT License.
28175
28158
  /** @private */
28176
28159
  const CaptionsSettingsModal = (props) => {
28177
- /* @conditional-compile-remove(close-captions) */
28178
28160
  const CaptionsSettingsModalProps = useAdaptedSelector(_captionSettingsSelector);
28179
- /* @conditional-compile-remove(close-captions) */
28180
28161
  const handlers = useHandlers();
28181
- /* @conditional-compile-remove(close-captions) */
28182
28162
  const strings = useLocale().strings.call;
28183
- /* @conditional-compile-remove(close-captions) */
28184
28163
  const modalStrings = {
28185
28164
  captionsSettingsModalTitle: strings.captionsSettingsModalTitle,
28186
28165
  captionsSettingsSpokenLanguageDropdownLabel: strings.captionsSettingsSpokenLanguageDropdownLabel,
@@ -28192,11 +28171,8 @@ const CaptionsSettingsModal = (props) => {
28192
28171
  captionsSettingsModalAriaLabel: strings.captionsSettingsModalAriaLabel,
28193
28172
  captionsSettingsCloseModalButtonAriaLabel: strings.captionsSettingsCloseModalButtonAriaLabel
28194
28173
  };
28195
- /* @conditional-compile-remove(close-captions) */
28196
28174
  const spokenLanguageStrings = strings.spokenLanguageStrings;
28197
- /* @conditional-compile-remove(close-captions) */
28198
28175
  const captionLanguageStrings = strings.captionLanguageStrings;
28199
- /* @conditional-compile-remove(close-captions) */
28200
28176
  return (React.createElement(_CaptionsSettingsModal, Object.assign({}, CaptionsSettingsModalProps, handlers, { strings: modalStrings, spokenLanguageStrings: spokenLanguageStrings, captionLanguageStrings: captionLanguageStrings, showModal: props.showCaptionsSettingsModal, onDismissCaptionsSettings: props.onDismissCaptionsSettings, changeCaptionLanguage: props.changeCaptionLanguage })));
28201
28177
  };
28202
28178
 
@@ -28323,26 +28299,19 @@ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments,
28323
28299
  * @private
28324
28300
  */
28325
28301
  const CaptionsBannerMoreButton = (props) => {
28326
- /* @conditional-compile-remove(close-captions) */
28327
28302
  const localeStrings = useLocale();
28328
- /* @conditional-compile-remove(close-captions) */
28329
28303
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
28330
- /* @conditional-compile-remove(close-captions) */
28331
28304
  const startCaptionsButtonHandlers = useHandlers();
28332
- /* @conditional-compile-remove(close-captions) */
28333
28305
  const moreButtonStrings = React.useMemo(() => ({
28334
28306
  label: localeStrings.strings.call.captionsBannerMoreButtonCallingLabel,
28335
28307
  tooltipOffContent: localeStrings.strings.call.captionsBannerMoreButtonTooltip
28336
28308
  }), [localeStrings]);
28337
- /* @conditional-compile-remove(close-captions) */
28338
28309
  const moreButtonContextualMenuItems = [];
28339
- /* @conditional-compile-remove(close-captions) */
28340
28310
  const startCaptions = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
28341
28311
  yield startCaptionsButtonHandlers.onStartCaptions({
28342
28312
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
28343
28313
  });
28344
28314
  }), [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);
28345
- /* @conditional-compile-remove(close-captions) */
28346
28315
  moreButtonContextualMenuItems.push({
28347
28316
  key: 'ToggleCaptionsKey',
28348
28317
  text: startCaptionsButtonProps.checked
@@ -28363,7 +28332,6 @@ const CaptionsBannerMoreButton = (props) => {
28363
28332
  styles: buttonFlyoutIncreasedSizeStyles
28364
28333
  }
28365
28334
  });
28366
- /* @conditional-compile-remove(close-captions) */
28367
28335
  if (props.onCaptionsSettingsClick) {
28368
28336
  moreButtonContextualMenuItems.push({
28369
28337
  key: 'openCaptionsSettingsKey',
@@ -28380,7 +28348,6 @@ const CaptionsBannerMoreButton = (props) => {
28380
28348
  disabled: !startCaptionsButtonProps.checked
28381
28349
  });
28382
28350
  }
28383
- /* @conditional-compile-remove(close-captions) */
28384
28351
  return (React.createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "captions-banner-more-button", strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: {
28385
28352
  items: moreButtonContextualMenuItems,
28386
28353
  calloutProps: {
@@ -28391,49 +28358,35 @@ const CaptionsBannerMoreButton = (props) => {
28391
28358
 
28392
28359
  // Copyright (c) Microsoft Corporation.
28393
28360
  // Licensed under the MIT License.
28394
- /* @conditional-compile-remove(close-captions) */
28395
28361
  const mobileViewBannerWidth = '90%';
28396
28362
  /** @private */
28397
28363
  const CaptionsBanner = (props) => {
28398
- /* @conditional-compile-remove(close-captions) */
28399
28364
  const captionsBannerProps = useAdaptedSelector(_captionsBannerSelector);
28400
- /* @conditional-compile-remove(close-captions) */
28401
28365
  const handlers = useHandlers();
28402
- /* @conditional-compile-remove(close-captions) */
28403
28366
  const [isCaptionsSettingsOpen, setIsCaptionsSettingsOpen] = React.useState(false);
28404
- /* @conditional-compile-remove(close-captions) */
28405
28367
  const onClickCaptionsSettings = () => {
28406
28368
  setIsCaptionsSettingsOpen(true);
28407
28369
  };
28408
- /* @conditional-compile-remove(close-captions) */
28409
28370
  const onDismissCaptionsSettings = () => {
28410
28371
  setIsCaptionsSettingsOpen(false);
28411
28372
  };
28412
- /* @conditional-compile-remove(close-captions) */
28413
28373
  const containerClassName = react.mergeStyles({
28414
28374
  position: 'relative'
28415
28375
  });
28416
- /* @conditional-compile-remove(close-captions) */
28417
28376
  const floatingChildClassName = react.mergeStyles({
28418
28377
  position: 'absolute',
28419
28378
  right: 0,
28420
28379
  top: 0
28421
28380
  });
28422
- /* @conditional-compile-remove(close-captions) */
28423
28381
  const strings = useLocale().strings.call;
28424
- /* @conditional-compile-remove(close-captions) */
28425
28382
  const captionsBannerStrings = {
28426
28383
  captionsBannerSpinnerText: strings.captionsBannerSpinnerText
28427
28384
  };
28428
- /* @conditional-compile-remove(close-captions) */
28429
28385
  const onRenderAvatar = React.useCallback((userId, options) => {
28430
28386
  return React.createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }));
28431
28387
  }, [props.onFetchAvatarPersonaData]);
28432
- /* @conditional-compile-remove(close-captions) */
28433
28388
  const { innerWidth: width } = window;
28434
- /* @conditional-compile-remove(close-captions) */
28435
28389
  const [windowWidth, setWindowWidth] = React.useState(width);
28436
- /* @conditional-compile-remove(close-captions) */
28437
28390
  React.useEffect(() => {
28438
28391
  function handleResize() {
28439
28392
  setWindowWidth(window.innerWidth);
@@ -28441,11 +28394,10 @@ const CaptionsBanner = (props) => {
28441
28394
  window.addEventListener('resize', handleResize);
28442
28395
  return () => window.removeEventListener('resize', handleResize);
28443
28396
  }, []);
28444
- /* @conditional-compile-remove(close-captions) */
28445
28397
  const desktopViewBannerWidth = windowWidth > 620 ? '35rem' : '80%';
28446
28398
  return (React.createElement(React.Fragment, null,
28447
- /* @conditional-compile-remove(close-captions) */ isCaptionsSettingsOpen && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: isCaptionsSettingsOpen, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.useTeamsCaptions })),
28448
- /* @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 },
28449
28401
  React.createElement(react.Stack, { horizontalAlign: "center" },
28450
28402
  React.createElement(react.Stack.Item, { style: { width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth } },
28451
28403
  React.createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers, { onRenderAvatar: onRenderAvatar, formFactor: props.isMobile ? 'compact' : 'default', strings: captionsBannerStrings })))),
@@ -28737,13 +28689,11 @@ const getCaptionsKind = (state) => {
28737
28689
  var _a;
28738
28690
  return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.captionsKind;
28739
28691
  };
28740
- /* @conditional-compile-remove(close-captions) */
28741
28692
  /** @private */
28742
28693
  const getCaptionsStatus = (state) => {
28743
28694
  var _a;
28744
28695
  return (_a = state.call) === null || _a === void 0 ? void 0 : _a.captionsFeature.isCaptionsFeatureActive;
28745
28696
  };
28746
- /* @conditional-compile-remove(close-captions) */
28747
28697
  /**
28748
28698
  * @private
28749
28699
  */
@@ -29529,15 +29479,11 @@ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments,
29529
29479
  */
29530
29480
  const DesktopMoreButton = (props) => {
29531
29481
  var _a, _b, _c, _d, _e, _f, _g, _h;
29532
- /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29533
29482
  const localeStrings = useLocale();
29534
29483
  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
29535
29484
  const holdButtonProps = usePropsFor$1(HoldButton);
29536
- /* @conditional-compile-remove(close-captions) */
29537
29485
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
29538
- /* @conditional-compile-remove(close-captions) */
29539
29486
  const startCaptionsButtonHandlers = useHandlers();
29540
- /* @conditional-compile-remove(close-captions) */
29541
29487
  const startCaptions = React.useCallback(() => __awaiter$h(void 0, void 0, void 0, function* () {
29542
29488
  yield startCaptionsButtonHandlers.onStartCaptions({
29543
29489
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
@@ -29550,13 +29496,11 @@ const DesktopMoreButton = (props) => {
29550
29496
  const callees = useSelector$1(getTargetCallees);
29551
29497
  const allowDtmfDialer = showDtmfDialer(callees);
29552
29498
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_b = props.dtmfDialerPresent) !== null && _b !== void 0 ? _b : false);
29553
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29554
29499
  const moreButtonStrings = React.useMemo(() => ({
29555
29500
  label: localeStrings.strings.call.moreButtonCallingLabel,
29556
29501
  tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip
29557
29502
  }), [localeStrings]);
29558
29503
  const moreButtonContextualMenuItems = [];
29559
- /* @conditional-compile-remove(close-captions) */
29560
29504
  const menuSubIconStyleSet = {
29561
29505
  root: {
29562
29506
  height: 'unset',
@@ -29578,7 +29522,6 @@ const DesktopMoreButton = (props) => {
29578
29522
  disabled: props.disableButtonsForHoldScreen
29579
29523
  });
29580
29524
  // is captions feature is active
29581
- /* @conditional-compile-remove(close-captions) */
29582
29525
  if (props.isCaptionsSupported) {
29583
29526
  const captionsContextualMenuItems = [];
29584
29527
  moreButtonContextualMenuItems.push({
@@ -29833,9 +29776,7 @@ const DesktopMoreButton = (props) => {
29833
29776
  styles: buttonFlyoutIncreasedSizeStyles
29834
29777
  } }, element));
29835
29778
  });
29836
- return (React.createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "common-call-composite-more-button",
29837
- /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
29838
- 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: {
29839
29780
  items: moreButtonContextualMenuItems,
29840
29781
  calloutProps: {
29841
29782
  preventDismissOnEvent: _preventDismissOnEvent
@@ -30071,7 +30012,6 @@ const CommonCallControlBar = (props) => {
30071
30012
  const [isOutOfSpace, setIsOutOfSpace] = React.useState(false);
30072
30013
  const callWithChatStrings = useCallWithChatCompositeStrings();
30073
30014
  const options = inferCommonCallControlOptions(props.mobileView, props.callControls);
30074
- /* @conditional-compile-remove(close-captions) */
30075
30015
  const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = React.useState(false);
30076
30016
  /* @conditional-compile-remove(end-call-options) */
30077
30017
  // If the hangup capability is not present, we default to true
@@ -30104,11 +30044,9 @@ const CommonCallControlBar = (props) => {
30104
30044
  React.useEffect(() => {
30105
30045
  setIsOutOfSpace(totalButtonsWidth > controlBarContainerWidth);
30106
30046
  }, [totalButtonsWidth, controlBarContainerWidth]);
30107
- /* @conditional-compile-remove(close-captions) */
30108
30047
  const openCaptionsSettingsModal = React.useCallback(() => {
30109
30048
  setShowCaptionsSettingsModal(true);
30110
30049
  }, []);
30111
- /* @conditional-compile-remove(close-captions) */
30112
30050
  const onDismissCaptionsSettings = React.useCallback(() => {
30113
30051
  setShowCaptionsSettingsModal(false);
30114
30052
  }, []);
@@ -30164,17 +30102,15 @@ const CommonCallControlBar = (props) => {
30164
30102
  const showExitSpotlightButton = (options === null || options === void 0 ? void 0 : options.exitSpotlightButton) !== false;
30165
30103
  const showCaptionsButton = props.isCaptionsSupported &&
30166
30104
  /* @conditional-compile-remove(acs-close-captions) */ isEnabled$1(options.captionsButton);
30167
- const showDesktopMoreButton =
30168
- /*@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) &&
30169
30106
  (/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) ||
30170
- /* @conditional-compile-remove(close-captions) */ showCaptionsButton ||
30107
+ showCaptionsButton ||
30171
30108
  props.onUserSetGalleryLayout);
30172
30109
  const role = (_b = props.callAdapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;
30173
30110
  const hideRaiseHandButtonInRoomsCall = props.callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
30174
30111
  const reactionResources = props.callAdapter.getState().reactions;
30175
30112
  return (React.createElement("div", { ref: controlBarSizeRef },
30176
- React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
30177
- /* @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 }))),
30178
30114
  React.createElement(react.Stack, { horizontal: true, reversed: !props.mobileView && !isOutOfSpace, horizontalAlign: "space-between", className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles) },
30179
30115
  React.createElement(react.Stack.Item, { grow: true, className: react.mergeStyles(controlBarWrapperDesktopStyles) },
30180
30116
  React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
@@ -30214,11 +30150,7 @@ const CommonCallControlBar = (props) => {
30214
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 })),
30215
30151
  !props.mobileView && showDesktopMoreButton && (React.createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles,
30216
30152
  /*@conditional-compile-remove(PSTN-calls) */
30217
- onClickShowDialpad: props.onClickShowDialpad, callControls: props.callControls,
30218
- /* @conditional-compile-remove(close-captions) */
30219
- isCaptionsSupported: showCaptionsButton,
30220
- /* @conditional-compile-remove(close-captions) */
30221
- 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 })),
30222
30154
  React.createElement(EndCall, { displayType: "compact", mobileView: props.mobileView, styles: endCallButtonStyles,
30223
30155
  /* @conditional-compile-remove(end-call-options) */
30224
30156
  enableEndCallMenu: !isBoolean(props.callControls) &&
@@ -30415,13 +30347,10 @@ const captionSettingsDrawerStyles = (theme) => ({
30415
30347
  /** @private */
30416
30348
  const CaptionLanguageSettingsDrawer = (props) => {
30417
30349
  var _a;
30418
- /* @conditional-compile-remove(close-captions) */
30419
30350
  const theme = useTheme();
30420
- /* @conditional-compile-remove(close-captions) */
30421
30351
  const onDrawerItemClick = React.useCallback((languageCode) => {
30422
30352
  props.selectLanguage(languageCode);
30423
30353
  }, [props]);
30424
- /* @conditional-compile-remove(close-captions) */
30425
30354
  const drawerItems = React.useMemo(() => {
30426
30355
  var _a;
30427
30356
  return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map((languageCode) => ({
@@ -30435,7 +30364,6 @@ const CaptionLanguageSettingsDrawer = (props) => {
30435
30364
  const copy = [...drawerItems];
30436
30365
  return copy.sort((a, b) => (a.text && b.text && a.text > b.text ? 1 : -1));
30437
30366
  }, [drawerItems]);
30438
- /* @conditional-compile-remove(close-captions) */
30439
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: () => {
30440
30368
  props.setCurrentLanguage(props.currentLanguage);
30441
30369
  props.onLightDismiss();
@@ -30473,13 +30401,10 @@ const themedToggleButtonStyle = (theme, checked) => {
30473
30401
  /** @private */
30474
30402
  const SpokenLanguageSettingsDrawer = (props) => {
30475
30403
  var _a;
30476
- /* @conditional-compile-remove(close-captions) */
30477
30404
  const theme = useTheme();
30478
- /* @conditional-compile-remove(close-captions) */
30479
30405
  const onDrawerItemClick = React.useCallback((languageCode) => {
30480
30406
  props.selectLanguage(languageCode);
30481
30407
  }, [props]);
30482
- /* @conditional-compile-remove(close-captions) */
30483
30408
  const drawerItems = React.useMemo(() => {
30484
30409
  var _a;
30485
30410
  return _getKeys((_a = props.supportedLanguageStrings) !== null && _a !== void 0 ? _a : []).map((languageCode) => ({
@@ -30493,7 +30418,6 @@ const SpokenLanguageSettingsDrawer = (props) => {
30493
30418
  const copy = [...drawerItems];
30494
30419
  return copy.sort((a, b) => (a.text && b.text && a.text > b.text ? 1 : -1));
30495
30420
  }, [drawerItems]);
30496
- /* @conditional-compile-remove(close-captions) */
30497
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: () => {
30498
30422
  props.setCurrentLanguage(props.currentLanguage);
30499
30423
  props.onLightDismiss();
@@ -30521,7 +30445,6 @@ const inferCallWithChatControlOptions = (callWithChatControls) => {
30521
30445
  /** @private */
30522
30446
  const MoreDrawer = (props) => {
30523
30447
  var _a, _b, _c, _d, _e, _f, _g;
30524
- /* @conditional-compile-remove(close-captions) */
30525
30448
  const theme = react.useTheme();
30526
30449
  const callAdapter = useAdapter();
30527
30450
  const drawerMenuItems = [];
@@ -30735,27 +30658,17 @@ const MoreDrawer = (props) => {
30735
30658
  }
30736
30659
  });
30737
30660
  }
30738
- /* @conditional-compile-remove(close-captions) */
30739
30661
  //Captions drawer menu
30740
30662
  const supportedSpokenLanguageStrings = useLocale().strings.call.spokenLanguageStrings;
30741
- /* @conditional-compile-remove(close-captions) */
30742
30663
  //Captions drawer menu
30743
30664
  const supportedCaptionLanguageStrings = useLocale().strings.call.captionLanguageStrings;
30744
- /* @conditional-compile-remove(close-captions) */
30745
30665
  const captionSettingsProp = useAdaptedSelector(_captionSettingsSelector);
30746
- /* @conditional-compile-remove(close-captions) */
30747
30666
  const startCaptionsButtonHandlers = useHandlers();
30748
- /* @conditional-compile-remove(close-captions) */
30749
30667
  const captionSettingsHandlers = useHandlers();
30750
- /* @conditional-compile-remove(close-captions) */
30751
30668
  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = React.useState(false);
30752
- /* @conditional-compile-remove(close-captions) */
30753
30669
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
30754
- /* @conditional-compile-remove(close-captions) */
30755
30670
  const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== void 0 ? _f : 'en-us');
30756
- /* @conditional-compile-remove(close-captions) */
30757
30671
  const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== void 0 ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
30758
- /* @conditional-compile-remove(close-captions) */
30759
30672
  const onToggleChange = React.useCallback(() => __awaiter$g(void 0, void 0, void 0, function* () {
30760
30673
  if (!captionSettingsProp.isCaptionsFeatureActive) {
30761
30674
  yield startCaptionsButtonHandlers.onStartCaptions({
@@ -30766,7 +30679,6 @@ const MoreDrawer = (props) => {
30766
30679
  startCaptionsButtonHandlers.onStopCaptions();
30767
30680
  }
30768
30681
  }), [captionSettingsProp.isCaptionsFeatureActive, startCaptionsButtonHandlers, currentSpokenLanguage]);
30769
- /* @conditional-compile-remove(close-captions) */
30770
30682
  if (showCaptionsButton) {
30771
30683
  const captionsDrawerItems = [];
30772
30684
  const spokenLanguageString = supportedSpokenLanguageStrings
@@ -30846,7 +30758,6 @@ const MoreDrawer = (props) => {
30846
30758
  customDrawerButtons['overflow'].forEach((element) => {
30847
30759
  drawerMenuItems.push(element);
30848
30760
  });
30849
- /* @conditional-compile-remove(close-captions) */
30850
30761
  return (React.createElement(React.Fragment, null,
30851
30762
  isSpokenLanguageDrawerOpen && showCaptionsButton && (React.createElement(SpokenLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentSpokenLanguage, setCurrentLanguage: captionSettingsHandlers.onSetSpokenLanguage, currentLanguage: currentSpokenLanguage, strings: { menuTitle: props.strings.spokenLanguageMenuTitle }, supportedLanguageStrings: supportedSpokenLanguageStrings })),
30852
30763
  isCaptionLanguageDrawerOpen && showCaptionsButton && (React.createElement(CaptionLanguageSettingsDrawer, { onLightDismiss: props.onLightDismiss, selectLanguage: setCurrentCaptionLanguage, setCurrentLanguage: captionSettingsHandlers.onSetCaptionLanguage, currentLanguage: currentCaptionLanguage, strings: { menuTitle: props.strings.captionLanguageMenuTitle }, supportedLanguageStrings: supportedCaptionLanguageStrings })),
@@ -30879,11 +30790,8 @@ const PreparedMoreDrawer = (props) => {
30879
30790
  audioDeviceMenuTitle: strings.moreDrawerAudioDeviceMenuTitle,
30880
30791
  microphoneMenuTitle: strings.moreDrawerMicrophoneMenuTitle,
30881
30792
  speakerMenuTitle: strings.moreDrawerSpeakerMenuTitle,
30882
- /* @conditional-compile-remove(close-captions) */
30883
30793
  captionsMenuTitle: strings.moreDrawerCaptionsMenuTitle,
30884
- /* @conditional-compile-remove(close-captions) */
30885
30794
  spokenLanguageMenuTitle: strings.moreDrawerSpokenLanguageMenuTitle,
30886
- /* @conditional-compile-remove(close-captions) */
30887
30795
  captionLanguageMenuTitle: strings.moreDrawerCaptionLanguageMenuTitle,
30888
30796
  galleryOptionsMenuTitle: strings.moreDrawerGalleryOptionsMenuTitle
30889
30797
  }), [strings]);
@@ -32687,11 +32595,8 @@ const CallArrangement = (props) => {
32687
32595
  }
32688
32596
  /* @conditional-compile-remove(acs-close-captions) */
32689
32597
  const isTeamsCaptions = useSelector$1(getCaptionsKind) === 'TeamsCaptions';
32690
- /* @conditional-compile-remove(close-captions) */
32691
32598
  const useTeamsCaptions = useSelector$1(getIsTeamsCall) || /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;
32692
- /* @conditional-compile-remove(close-captions) */
32693
32599
  const hasJoinedCall = useSelector$1(getCallStatus) === 'Connected';
32694
- /* @conditional-compile-remove(close-captions) */
32695
32600
  const isCaptionsOn = useSelector$1(getCaptionsStatus);
32696
32601
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);
32697
32602
  const pipStyles = React.useMemo(() => getPipStyles(theme), [theme]);
@@ -32712,25 +32617,15 @@ const CallArrangement = (props) => {
32712
32617
  /* @conditional-compile-remove(one-to-n-calling) */
32713
32618
  onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby,
32714
32619
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
32715
- disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked,
32716
- /* @conditional-compile-remove(close-captions) */
32717
- isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32718
- /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall,
32719
- /* @conditional-compile-remove(close-captions) */
32720
- useTeamsCaptions: useTeamsCaptions,
32721
- /* @conditional-compile-remove(close-captions) */
32722
- 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,
32723
32622
  /* @conditional-compile-remove(spotlight) */
32724
32623
  onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined }))))),
32725
32624
  ((_j = props.callControlProps) === null || _j === void 0 ? void 0 : _j.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
32726
32625
  React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
32727
32626
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
32728
- disableButtonsForHoldScreen: isInLocalHold,
32729
- /* @conditional-compile-remove(close-captions) */
32730
- isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
32731
- /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall,
32732
- /* @conditional-compile-remove(close-captions) */
32733
- 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 }))),
32734
32629
  React.createElement(react.Stack, { horizontal: true, grow: true },
32735
32630
  React.createElement(react.Stack.Item, { style: callCompositeContainerCSS },
32736
32631
  React.createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true },
@@ -32745,10 +32640,7 @@ const CallArrangement = (props) => {
32745
32640
  React.createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] })))),
32746
32641
  canUnmute && !!props.mutedNotificationProps && (React.createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps)))),
32747
32642
  renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent(),
32748
- /* @conditional-compile-remove(close-captions) */
32749
- /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,
32750
- /* @conditional-compile-remove(close-captions) */
32751
- 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 }))))),
32752
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)
32753
32645
  ? undefined
32754
32646
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
@@ -32812,7 +32704,7 @@ const MediaGallery = (props) => {
32812
32704
  const { pinnedParticipants = [], setPinnedParticipants,
32813
32705
  /* @conditional-compile-remove(spotlight) */ setIsPromptOpen,
32814
32706
  /* @conditional-compile-remove(spotlight) */ setPromptProps,
32815
- /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons } = props;
32707
+ /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons, videoTilesOptions } = props;
32816
32708
  const videoGalleryProps = usePropsFor$1(VideoGallery);
32817
32709
  const cameraSwitcherCameras = useSelector$1(localVideoCameraCycleButtonSelector);
32818
32710
  const cameraSwitcherCallback = useHandlers();
@@ -32880,7 +32772,7 @@ const MediaGallery = (props) => {
32880
32772
  const layoutBasedOnUserSelection = () => {
32881
32773
  return props.localVideoTileOptions ? layoutBasedOnTilePosition : props.userSetGalleryLayout;
32882
32774
  };
32883
- 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')
32884
32776
  ? 'hidden'
32885
32777
  : props.isMobile && containerAspectRatio < 1
32886
32778
  ? '9:16'
@@ -32919,7 +32811,8 @@ const MediaGallery = (props) => {
32919
32811
  /* @conditional-compile-remove(spotlight) */
32920
32812
  onStopRemoteSpotlightWithPrompt,
32921
32813
  /* @conditional-compile-remove(spotlight) */
32922
- hideSpotlightButtons
32814
+ hideSpotlightButtons,
32815
+ videoTilesOptions
32923
32816
  ]);
32924
32817
  return (React.createElement("div", { ref: containerRef, style: mediaGalleryContainerStyles },
32925
32818
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
@@ -33253,7 +33146,7 @@ const CallPage = (props) => {
33253
33146
  /* @conditional-compile-remove(spotlight) */
33254
33147
  setPromptProps: setPromptProps,
33255
33148
  /* @conditional-compile-remove(spotlight) */
33256
- 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 })));
33257
33150
  }
33258
33151
  };
33259
33152
  return (React.createElement(React.Fragment, null,
@@ -36255,13 +36148,10 @@ class AzureCommunicationCallAdapter {
36255
36148
  this.sendDtmfTone.bind(this);
36256
36149
  /* @conditional-compile-remove(unsupported-browser) */
36257
36150
  this.allowUnsupportedBrowserVersion.bind(this);
36258
- /* @conditional-compile-remove(close-captions) */
36259
- {
36260
- this.startCaptions.bind(this);
36261
- this.stopCaptions.bind(this);
36262
- this.setSpokenLanguage.bind(this);
36263
- this.setCaptionLanguage.bind(this);
36264
- }
36151
+ this.startCaptions.bind(this);
36152
+ this.stopCaptions.bind(this);
36153
+ this.setSpokenLanguage.bind(this);
36154
+ this.setCaptionLanguage.bind(this);
36265
36155
  this.startVideoBackgroundEffect.bind(this);
36266
36156
  this.stopVideoBackgroundEffects.bind(this);
36267
36157
  this.updateBackgroundPickerImages.bind(this);
@@ -36704,25 +36594,21 @@ class AzureCommunicationCallAdapter {
36704
36594
  this.handlers.onSendDtmfTone(dtmfTone);
36705
36595
  });
36706
36596
  }
36707
- /* @conditional-compile-remove(close-captions) */
36708
36597
  startCaptions(options) {
36709
36598
  return __awaiter$5(this, void 0, void 0, function* () {
36710
36599
  this.handlers.onStartCaptions(options);
36711
36600
  });
36712
36601
  }
36713
- /* @conditional-compile-remove(close-captions) */
36714
36602
  stopCaptions() {
36715
36603
  return __awaiter$5(this, void 0, void 0, function* () {
36716
36604
  this.handlers.onStopCaptions();
36717
36605
  });
36718
36606
  }
36719
- /* @conditional-compile-remove(close-captions) */
36720
36607
  setCaptionLanguage(language) {
36721
36608
  return __awaiter$5(this, void 0, void 0, function* () {
36722
36609
  this.handlers.onSetCaptionLanguage(language);
36723
36610
  });
36724
36611
  }
36725
- /* @conditional-compile-remove(close-captions) */
36726
36612
  setSpokenLanguage(language) {
36727
36613
  return __awaiter$5(this, void 0, void 0, function* () {
36728
36614
  this.handlers.onSetSpokenLanguage(language);
@@ -36765,7 +36651,6 @@ class AzureCommunicationCallAdapter {
36765
36651
  on(event, listener) {
36766
36652
  this.emitter.on(event, listener);
36767
36653
  }
36768
- /* @conditional-compile-remove(close-captions) */
36769
36654
  subscribeToCaptionEvents() {
36770
36655
  var _a, _b;
36771
36656
  if (this.call && this.call.state === 'Connected') {
@@ -36788,7 +36673,6 @@ class AzureCommunicationCallAdapter {
36788
36673
  }
36789
36674
  }
36790
36675
  }
36791
- /* @conditional-compile-remove(close-captions) */
36792
36676
  unsubscribeFromCaptionEvents() {
36793
36677
  var _a, _b, _c;
36794
36678
  if (this.call && this.call.state === 'Connected') {
@@ -36821,7 +36705,6 @@ class AzureCommunicationCallAdapter {
36821
36705
  (_b = this.call) === null || _b === void 0 ? void 0 : _b.on('isMutedChanged', this.isMyMutedChanged.bind(this));
36822
36706
  (_c = this.call) === null || _c === void 0 ? void 0 : _c.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));
36823
36707
  (_d = this.call) === null || _d === void 0 ? void 0 : _d.on('idChanged', this.callIdChanged.bind(this));
36824
- /* @conditional-compile-remove(close-captions) */
36825
36708
  (_e = this.call) === null || _e === void 0 ? void 0 : _e.on('stateChanged', this.subscribeToCaptionEvents.bind(this));
36826
36709
  (_f = this.call) === null || _f === void 0 ? void 0 : _f.on('roleChanged', this.roleChanged.bind(this));
36827
36710
  (_g = this.call) === null || _g === void 0 ? void 0 : _g.feature(communicationCalling.Features.Transfer).on('transferAccepted', this.transferAccepted.bind(this));
@@ -36840,7 +36723,6 @@ class AzureCommunicationCallAdapter {
36840
36723
  (_c = this.call) === null || _c === void 0 ? void 0 : _c.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged.bind(this));
36841
36724
  (_d = this.call) === null || _d === void 0 ? void 0 : _d.off('idChanged', this.callIdChanged.bind(this));
36842
36725
  (_e = this.call) === null || _e === void 0 ? void 0 : _e.off('roleChanged', this.roleChanged.bind(this));
36843
- /* @conditional-compile-remove(close-captions) */
36844
36726
  this.unsubscribeFromCaptionEvents();
36845
36727
  if (this.callingSoundSubscriber) {
36846
36728
  this.callingSoundSubscriber.unsubscribeAll();
@@ -36866,7 +36748,6 @@ class AzureCommunicationCallAdapter {
36866
36748
  var _a;
36867
36749
  this.emitter.emit('isLocalScreenSharingActiveChanged', { isScreenSharingOn: (_a = this.call) === null || _a === void 0 ? void 0 : _a.isScreenSharingOn });
36868
36750
  }
36869
- /* @conditional-compile-remove(close-captions) */
36870
36751
  teamsCaptionsReceived(captionsInfo) {
36871
36752
  this.emitter.emit('captionsReceived', { captionsInfo });
36872
36753
  }
@@ -36874,7 +36755,6 @@ class AzureCommunicationCallAdapter {
36874
36755
  captionsReceived(captionsInfo) {
36875
36756
  this.emitter.emit('captionsReceived', { captionsInfo });
36876
36757
  }
36877
- /* @conditional-compile-remove(close-captions) */
36878
36758
  isCaptionsActiveChanged() {
36879
36759
  var _a;
36880
36760
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -36882,7 +36762,6 @@ class AzureCommunicationCallAdapter {
36882
36762
  isActive: captionsFeature.isCaptionsFeatureActive
36883
36763
  });
36884
36764
  }
36885
- /* @conditional-compile-remove(close-captions) */
36886
36765
  isSpokenLanguageChanged() {
36887
36766
  var _a;
36888
36767
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -36890,7 +36769,6 @@ class AzureCommunicationCallAdapter {
36890
36769
  activeSpokenLanguage: captionsFeature.activeSpokenLanguage
36891
36770
  });
36892
36771
  }
36893
- /* @conditional-compile-remove(close-captions) */
36894
36772
  isCaptionLanguageChanged() {
36895
36773
  var _a;
36896
36774
  const captionsFeature = (_a = this.call) === null || _a === void 0 ? void 0 : _a.feature(communicationCalling.Features.Captions).captions;
@@ -37461,25 +37339,21 @@ class CallWithChatBackedCallAdapter {
37461
37339
  allowUnsupportedBrowserVersion() {
37462
37340
  return this.callWithChatAdapter.allowUnsupportedBrowserVersion();
37463
37341
  }
37464
- /* @conditional-compile-remove(close-captions) */
37465
37342
  startCaptions(options) {
37466
37343
  return __awaiter$4(this, void 0, void 0, function* () {
37467
37344
  this.callWithChatAdapter.startCaptions(options);
37468
37345
  });
37469
37346
  }
37470
- /* @conditional-compile-remove(close-captions) */
37471
37347
  stopCaptions() {
37472
37348
  return __awaiter$4(this, void 0, void 0, function* () {
37473
37349
  this.callWithChatAdapter.stopCaptions();
37474
37350
  });
37475
37351
  }
37476
- /* @conditional-compile-remove(close-captions) */
37477
37352
  setCaptionLanguage(language) {
37478
37353
  return __awaiter$4(this, void 0, void 0, function* () {
37479
37354
  this.callWithChatAdapter.setCaptionLanguage(language);
37480
37355
  });
37481
37356
  }
37482
- /* @conditional-compile-remove(close-captions) */
37483
37357
  setSpokenLanguage(language) {
37484
37358
  return __awaiter$4(this, void 0, void 0, function* () {
37485
37359
  this.callWithChatAdapter.setSpokenLanguage(language);
@@ -37653,6 +37527,10 @@ class CallWithChatBackedChatAdapter {
37653
37527
  };
37654
37528
  this.callWithChatAdapter = callWithChatAdapter;
37655
37529
  }
37530
+ /* @conditional-compile-remove(attachment-upload) */
37531
+ sendMessageWithAttachments(content, attachments) {
37532
+ return this.callWithChatAdapter.sendMessageWithAttachments(content, attachments);
37533
+ }
37656
37534
  downloadResourceToCache(resourceDetails) {
37657
37535
  return __awaiter$3(this, void 0, void 0, function* () {
37658
37536
  this.callWithChatAdapter.downloadResourceToCache(resourceDetails);
@@ -37672,7 +37550,7 @@ function chatAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState)
37672
37550
  thread: callWithChatAdapterState.chat,
37673
37551
  latestErrors: callWithChatAdapterState.latestChatErrors,
37674
37552
  /* @conditional-compile-remove(attachment-upload) */
37675
- attachmentUploads: callWithChatAdapterState.attachmentUploads
37553
+ _attachmentUploads: callWithChatAdapterState._attachmentUploads
37676
37554
  };
37677
37555
  }
37678
37556
 
@@ -38084,7 +37962,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
38084
37962
  latestCallErrors: callAdapterState.latestErrors,
38085
37963
  latestChatErrors: {},
38086
37964
  /* @conditional-compile-remove(attachment-upload) */
38087
- attachmentUploads: {},
37965
+ _attachmentUploads: {},
38088
37966
  /* @conditional-compile-remove(PSTN-calls) */
38089
37967
  alternateCallerId: callAdapterState.alternateCallerId,
38090
37968
  /* @conditional-compile-remove(unsupported-browser) */
@@ -38104,7 +37982,7 @@ function callWithChatAdapterStateFromBackingStates(callAdapter) {
38104
37982
  function mergeChatAdapterStateIntoCallWithChatAdapterState(existingCallWithChatAdapterState, chatAdapterState) {
38105
37983
  return Object.assign(Object.assign({}, existingCallWithChatAdapterState), { chat: chatAdapterState.thread, latestChatErrors: chatAdapterState.latestErrors,
38106
37984
  /* @conditional-compile-remove(attachment-upload) */
38107
- attachmentUploads: chatAdapterState.attachmentUploads });
37985
+ _attachmentUploads: chatAdapterState._attachmentUploads });
38108
37986
  }
38109
37987
  /**
38110
37988
  * @private
@@ -38250,6 +38128,8 @@ class AzureCommunicationCallWithChatAdapter {
38250
38128
  this.disposeScreenShareStreamView.bind(this);
38251
38129
  this.fetchInitialData.bind(this);
38252
38130
  this.sendMessage.bind(this);
38131
+ /* @conditional-compile-remove(attachment-upload) */
38132
+ this.sendMessageWithAttachments.bind(this);
38253
38133
  this.sendReadReceipt.bind(this);
38254
38134
  this.sendTypingIndicator.bind(this);
38255
38135
  this.loadPreviousChatMessages.bind(this);
@@ -38282,12 +38162,10 @@ class AzureCommunicationCallWithChatAdapter {
38282
38162
  this.sendDtmfTone.bind(this);
38283
38163
  /* @conditional-compile-remove(unsupported-browser) */
38284
38164
  this.allowUnsupportedBrowserVersion.bind(this);
38285
- /* @conditional-compile-remove(close-captions) */ {
38286
- this.startCaptions.bind(this);
38287
- this.stopCaptions.bind(this);
38288
- this.setSpokenLanguage.bind(this);
38289
- this.setCaptionLanguage.bind(this);
38290
- }
38165
+ this.startCaptions.bind(this);
38166
+ this.stopCaptions.bind(this);
38167
+ this.setSpokenLanguage.bind(this);
38168
+ this.setCaptionLanguage.bind(this);
38291
38169
  this.startVideoBackgroundEffect.bind(this);
38292
38170
  this.stopVideoBackgroundEffects.bind(this);
38293
38171
  this.updateBackgroundPickerImages.bind(this);
@@ -38500,6 +38378,20 @@ class AzureCommunicationCallWithChatAdapter {
38500
38378
  });
38501
38379
  });
38502
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
+ }
38503
38395
  /** Send a chat read receipt. */
38504
38396
  sendReadReceipt(chatMessageId) {
38505
38397
  return __awaiter$2(this, void 0, void 0, function* () {
@@ -38585,25 +38477,21 @@ class AzureCommunicationCallWithChatAdapter {
38585
38477
  allowUnsupportedBrowserVersion() {
38586
38478
  return this.callAdapter.allowUnsupportedBrowserVersion();
38587
38479
  }
38588
- /* @conditional-compile-remove(close-captions) */
38589
38480
  startCaptions(options) {
38590
38481
  return __awaiter$2(this, void 0, void 0, function* () {
38591
38482
  yield this.callAdapter.startCaptions(options);
38592
38483
  });
38593
38484
  }
38594
- /* @conditional-compile-remove(close-captions) */
38595
38485
  stopCaptions() {
38596
38486
  return __awaiter$2(this, void 0, void 0, function* () {
38597
38487
  yield this.callAdapter.stopCaptions();
38598
38488
  });
38599
38489
  }
38600
- /* @conditional-compile-remove(close-captions) */
38601
38490
  setCaptionLanguage(language) {
38602
38491
  return __awaiter$2(this, void 0, void 0, function* () {
38603
38492
  yield this.callAdapter.setCaptionLanguage(language);
38604
38493
  });
38605
38494
  }
38606
- /* @conditional-compile-remove(close-captions) */
38607
38495
  setSpokenLanguage(language) {
38608
38496
  return __awaiter$2(this, void 0, void 0, function* () {
38609
38497
  yield this.callAdapter.setSpokenLanguage(language);
@@ -38682,19 +38570,15 @@ class AzureCommunicationCallWithChatAdapter {
38682
38570
  case 'selectedSpeakerChanged':
38683
38571
  this.callAdapter.on('selectedSpeakerChanged', listener);
38684
38572
  break;
38685
- /* @conditional-compile-remove(close-captions) */
38686
38573
  case 'captionsReceived':
38687
38574
  this.callAdapter.on('captionsReceived', listener);
38688
38575
  break;
38689
- /* @conditional-compile-remove(close-captions) */
38690
38576
  case 'isCaptionsActiveChanged':
38691
38577
  this.callAdapter.on('isCaptionsActiveChanged', listener);
38692
38578
  break;
38693
- /* @conditional-compile-remove(close-captions) */
38694
38579
  case 'isCaptionLanguageChanged':
38695
38580
  this.callAdapter.on('isCaptionLanguageChanged', listener);
38696
38581
  break;
38697
- /* @conditional-compile-remove(close-captions) */
38698
38582
  case 'isSpokenLanguageChanged':
38699
38583
  this.callAdapter.on('isSpokenLanguageChanged', listener);
38700
38584
  break;
@@ -38778,19 +38662,15 @@ class AzureCommunicationCallWithChatAdapter {
38778
38662
  case 'selectedSpeakerChanged':
38779
38663
  this.callAdapter.off('selectedSpeakerChanged', listener);
38780
38664
  break;
38781
- /* @conditional-compile-remove(close-captions) */
38782
38665
  case 'captionsReceived':
38783
38666
  this.callAdapter.off('captionsReceived', listener);
38784
38667
  break;
38785
- /* @conditional-compile-remove(close-captions) */
38786
38668
  case 'isCaptionsActiveChanged':
38787
38669
  this.callAdapter.off('isCaptionsActiveChanged', listener);
38788
38670
  break;
38789
- /* @conditional-compile-remove(close-captions) */
38790
38671
  case 'isCaptionLanguageChanged':
38791
38672
  this.callAdapter.off('isCaptionLanguageChanged', listener);
38792
38673
  break;
38793
- /* @conditional-compile-remove(close-captions) */
38794
38674
  case 'isSpokenLanguageChanged':
38795
38675
  this.callAdapter.off('isSpokenLanguageChanged', listener);
38796
38676
  break;
@@ -39662,4 +39542,4 @@ exports.useTeamsCall = useTeamsCall;
39662
39542
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
39663
39543
  exports.useTeamsCallAgent = useTeamsCallAgent;
39664
39544
  exports.useTheme = useTheme;
39665
- //# sourceMappingURL=index-B-wg-pZ5.js.map
39545
+ //# sourceMappingURL=index-C2GfkUGz.js.map