@azure/communication-react 1.7.1-alpha-202308310013 → 1.8.0-beta.1

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 (846) hide show
  1. package/dist/communication-react.d.ts +15 -270
  2. package/dist/dist-cjs/communication-react/index.js +3922 -5211
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/identifier.js +1 -4
  11. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  18. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +0 -5
  21. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -5
  22. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  23. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +9 -49
  24. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  25. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +5 -12
  26. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +55 -20
  28. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +41 -35
  30. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +2 -2
  32. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +2 -4
  35. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +6 -2
  37. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  39. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  40. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  41. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +11 -30
  44. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js +3 -6
  48. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  50. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  52. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +6 -9
  53. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +1 -3
  55. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  56. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +13 -30
  57. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  58. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +7 -35
  59. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  61. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +1 -1
  62. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  63. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +75 -65
  64. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  65. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +0 -20
  66. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -3
  68. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +9 -26
  69. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  70. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +8 -7
  71. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  72. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +85 -74
  73. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  75. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +0 -1
  77. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +3 -7
  78. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  79. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/Converter.js +10 -5
  81. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +57 -51
  83. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  84. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +16 -14
  85. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  87. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +15 -3
  88. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  89. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  90. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  91. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +3 -1
  92. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  93. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  94. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  95. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  97. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +67 -65
  98. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +31 -33
  100. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  101. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +11 -8
  102. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  103. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +1 -1
  104. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  105. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +8 -7
  106. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  108. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  109. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +3 -3
  110. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +7 -6
  112. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  113. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -1
  114. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  115. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  116. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js +4 -4
  117. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  118. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +3 -3
  119. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  120. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js +14 -13
  121. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  122. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  123. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +10 -3
  124. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  125. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  126. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  127. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  128. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  129. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +15 -33
  130. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  131. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  132. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js +1 -1
  133. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  134. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  135. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +7 -3
  136. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  137. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js +1 -3
  138. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  139. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  140. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -10
  141. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  142. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  143. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +9 -5
  144. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  145. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  146. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +10 -7
  147. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  148. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  149. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js +67 -57
  150. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  151. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +128 -114
  152. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  153. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +1 -3
  154. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  155. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  156. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  157. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  158. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  159. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  160. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  161. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  162. package/dist/dist-esm/communication-react/src/index.d.ts +0 -2
  163. package/dist/dist-esm/communication-react/src/index.js +0 -2
  164. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  165. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +6 -3
  167. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  170. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +10 -4
  171. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +1 -1
  173. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  174. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +1 -1
  175. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/CameraButton.js +19 -8
  178. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/Caption.js +2 -2
  180. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +9 -10
  182. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  183. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +20 -42
  184. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  185. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +8 -7
  186. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  187. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +17 -36
  188. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  189. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +0 -5
  190. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +7 -18
  191. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +35 -27
  193. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  194. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +0 -5
  195. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +35 -82
  196. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +0 -1
  198. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +28 -50
  199. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +18 -18
  202. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +4 -7
  204. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +2 -2
  206. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  207. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  208. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/components/ControlBar.js +14 -10
  211. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +4 -14
  213. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +14 -3
  215. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +10 -4
  217. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +31 -14
  219. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +8 -5
  221. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  222. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +6 -24
  223. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  224. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +20 -12
  225. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  226. package/dist/dist-esm/react-components/src/components/DevicesButton.js +27 -19
  227. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  228. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +44 -36
  229. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  230. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +4 -4
  231. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  232. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js +6 -2
  233. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  234. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +6 -6
  235. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  236. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +23 -11
  237. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  238. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +4 -6
  239. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  240. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/EndCallButton.js +7 -3
  242. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  243. package/dist/dist-esm/react-components/src/components/ErrorBar.js +5 -9
  244. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  245. package/dist/dist-esm/react-components/src/components/FileCard.js +3 -2
  246. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  247. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +1 -1
  248. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  249. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +16 -17
  250. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  251. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +7 -8
  252. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  253. package/dist/dist-esm/react-components/src/components/GridLayout.js +37 -37
  254. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  255. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
  256. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  257. package/dist/dist-esm/react-components/src/components/HoldButton.js +1 -1
  258. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  259. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +9 -7
  260. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +15 -8
  262. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js +5 -3
  264. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  265. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +10 -29
  266. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  267. package/dist/dist-esm/react-components/src/components/MentionPopover.js +11 -19
  268. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  269. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +36 -23
  270. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +1 -6
  272. package/dist/dist-esm/react-components/src/components/MessageThread.js +91 -165
  273. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  274. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +14 -17
  275. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  276. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +101 -94
  277. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  278. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +18 -15
  279. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  280. package/dist/dist-esm/react-components/src/components/ParticipantList.js +31 -44
  281. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  282. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +32 -46
  283. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  284. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js +3 -3
  285. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js +3 -3
  287. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js +12 -6
  289. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +15 -31
  291. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  292. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +2 -2
  293. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  294. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +2 -2
  295. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +14 -6
  297. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  298. package/dist/dist-esm/react-components/src/components/SendBox.js +19 -17
  299. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  300. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +2 -2
  301. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  302. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  303. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +4 -2
  304. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  305. package/dist/dist-esm/react-components/src/components/StreamMedia.js +3 -3
  306. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  307. package/dist/dist-esm/react-components/src/components/SystemMessage.js +4 -2
  308. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  309. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +32 -70
  310. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  311. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +46 -52
  312. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  313. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +10 -10
  314. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  315. package/dist/dist-esm/react-components/src/components/TypingIndicator.js +6 -9
  316. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  317. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +1 -1
  318. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  319. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +1 -1
  320. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  321. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +8 -4
  322. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  323. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +1 -1
  324. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  325. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +34 -19
  326. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  327. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +1 -3
  328. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  329. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +13 -9
  330. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  331. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +15 -13
  332. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +3 -6
  334. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  335. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +16 -40
  336. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  337. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +10 -10
  338. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  339. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +25 -66
  340. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  341. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  342. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +7 -7
  343. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  344. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +5 -16
  345. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  346. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +6 -8
  347. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  348. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +4 -2
  349. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  350. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +6 -1
  351. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  352. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +32 -7
  353. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  354. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +11 -2
  355. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  356. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  358. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  359. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -1
  360. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +3 -1
  361. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +11 -10
  363. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  364. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +28 -22
  365. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  366. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +5 -10
  367. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  368. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +32 -19
  369. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  370. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  371. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +0 -2
  372. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +25 -55
  373. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +2 -2
  375. package/dist/dist-esm/react-components/src/components/VideoGallery.js +37 -127
  376. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  377. package/dist/dist-esm/react-components/src/components/VideoTile.js +55 -34
  378. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  379. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js +2 -2
  380. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  381. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -3
  382. package/dist/dist-esm/react-components/src/components/index.js +0 -2
  383. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  385. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  386. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  387. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +12 -3
  388. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  389. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  390. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  391. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  392. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js +3 -1
  393. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  395. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  396. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  397. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +4 -1
  398. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +5 -0
  400. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +7 -4
  401. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
  402. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  403. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +8 -2
  404. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  405. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +1 -0
  406. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  407. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +10 -2
  409. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  410. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  411. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +3 -0
  412. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  413. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  414. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +1 -0
  415. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  417. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  418. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +1 -0
  419. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  420. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +17 -3
  421. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  422. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  423. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  424. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  425. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  426. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  427. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +7 -4
  428. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  429. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  430. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  431. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  432. package/dist/dist-esm/react-components/src/components/utils/responsive.js +2 -2
  433. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  434. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +1 -10
  435. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  436. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +3 -1
  437. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/components/utils.js +10 -13
  439. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  440. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +6 -8
  441. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  442. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  443. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  444. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  445. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  446. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -3
  447. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  448. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  449. package/dist/dist-esm/react-components/src/localization/locales/index.js +63 -21
  450. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  451. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +6 -3
  452. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  453. package/dist/dist-esm/react-components/src/theming/icons.js +26 -20
  454. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  455. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  456. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  457. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  458. package/dist/dist-esm/react-components/src/theming/themes.d.ts +3 -22
  459. package/dist/dist-esm/react-components/src/theming/themes.js +0 -16
  460. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  461. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  462. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  463. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  464. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  465. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  466. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  467. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  468. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  469. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  470. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  471. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  472. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +0 -10
  473. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +38 -58
  474. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  475. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +0 -29
  476. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  477. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -6
  478. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +68 -137
  479. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  480. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +0 -15
  481. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +1 -9
  482. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  483. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  484. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  485. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +3 -1
  486. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  487. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  488. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +1 -1
  489. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +5 -11
  490. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  491. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +0 -1
  492. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  493. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +0 -6
  494. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +28 -70
  495. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  496. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +54 -24
  497. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  498. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +141 -133
  499. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  500. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +7 -1
  501. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  502. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +1 -1
  503. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  504. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +7 -1
  505. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  506. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +4 -5
  507. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  508. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +4 -4
  509. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  510. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +2 -2
  511. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  512. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +23 -34
  513. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  514. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +23 -34
  515. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  516. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +34 -25
  517. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  518. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +0 -3
  519. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +35 -57
  520. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  521. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js +2 -2
  522. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  523. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +2 -2
  524. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  525. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +11 -29
  526. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  527. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  528. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +7 -3
  529. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  530. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +8 -13
  531. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  532. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +1 -1
  533. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  534. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +3 -14
  535. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  536. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +2 -6
  537. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +4 -7
  538. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  539. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +11 -19
  540. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  541. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +2 -5
  542. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  543. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +7 -19
  544. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  545. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +2 -5
  546. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  547. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -1
  548. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  549. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js +1 -1
  550. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  551. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -3
  552. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  553. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +8 -8
  554. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  555. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -10
  556. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  557. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  558. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js +1 -1
  559. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  560. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +0 -2
  561. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  562. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +0 -4
  563. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +5 -28
  564. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  565. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +0 -2
  566. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +28 -61
  567. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  568. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts +0 -2
  569. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +7 -13
  570. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  571. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +0 -2
  572. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +7 -15
  573. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  574. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  575. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  576. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +23 -23
  577. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  578. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +3 -3
  579. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  580. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +2 -2
  581. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  583. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +1 -2
  584. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  585. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +0 -5
  586. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +1 -9
  587. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  588. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +1 -1
  589. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  590. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +1 -1
  591. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  592. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +1 -1
  593. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js.map +1 -1
  594. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +2 -2
  595. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js +1 -1
  596. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  597. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +2 -2
  598. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +5 -7
  599. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  600. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +4 -4
  601. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +10 -10
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +1 -7
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +2 -2
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +4 -4
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +1 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +1 -1
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +5 -5
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +4 -4
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +2 -2
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js +1 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +5 -5
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +1 -1
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +6 -2
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  624. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +7 -2
  625. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  626. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  628. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +4 -1
  629. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  631. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +4 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +1 -0
  635. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  638. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +1 -0
  639. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +24 -6
  641. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +2 -2
  643. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +11 -9
  646. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js +2 -2
  648. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  649. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -2
  650. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +22 -35
  651. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  652. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  653. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +0 -10
  654. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +24 -67
  655. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  656. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js +1 -1
  657. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  658. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js +7 -9
  659. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  660. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +6 -3
  661. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  662. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  663. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  664. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +7 -42
  665. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  666. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  667. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  668. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  669. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +1 -1
  670. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  671. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  672. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  673. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js +1 -1
  674. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  675. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  676. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  677. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +2 -2
  678. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  679. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js +5 -3
  680. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  681. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +21 -106
  682. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  683. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +1 -1
  684. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  685. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js +5 -3
  686. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  687. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  688. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -2
  689. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +38 -39
  690. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  691. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +20 -15
  692. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  693. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -2
  694. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  695. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  696. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  697. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +6 -11
  698. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  699. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  700. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  701. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js +5 -3
  702. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  703. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +1 -3
  704. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  705. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  706. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +1 -1
  707. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  708. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  709. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  710. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +6 -6
  711. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +5 -3
  712. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  713. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +6 -2
  714. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  715. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +9 -9
  716. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  717. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +25 -23
  718. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  719. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  720. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +3 -8
  721. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  722. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +14 -5
  723. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  724. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +23 -9
  725. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  726. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  727. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +8 -6
  728. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  729. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +16 -12
  730. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  731. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +1 -1
  732. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  733. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js +5 -1
  734. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  735. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +0 -4
  736. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +35 -52
  737. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  738. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +25 -32
  739. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  740. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +0 -4
  741. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +47 -158
  742. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  743. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +1 -1
  744. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  745. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  746. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js +6 -4
  747. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js.map +1 -1
  748. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +87 -45
  749. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  750. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  751. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  752. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  753. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +1 -1
  754. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -1
  755. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +6 -4
  756. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  757. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  758. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  759. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +14 -11
  760. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  761. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +8 -19
  762. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  763. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +15 -7
  764. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  765. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  766. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +15 -7
  767. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  768. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +8 -10
  769. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  770. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +11 -16
  771. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  772. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  773. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  774. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +0 -25
  775. package/dist/dist-esm/react-composites/src/composites/common/icons.js +4 -26
  776. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  777. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  778. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  779. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  780. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  781. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +16 -5
  782. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  783. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +51 -12
  784. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  785. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +29 -6
  786. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  787. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +22 -4
  788. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  789. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  790. package/dist/dist-esm/react-composites/src/composites/common/utils.js +12 -17
  791. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  792. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  793. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js +2 -2
  794. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  795. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  796. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +43 -4
  797. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +43 -4
  798. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +47 -8
  799. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +43 -4
  800. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -15
  801. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +44 -5
  802. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +43 -4
  803. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +43 -4
  804. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +43 -4
  805. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  806. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +43 -4
  807. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +43 -4
  808. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +43 -4
  809. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +43 -4
  810. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +43 -4
  811. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +45 -6
  812. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +43 -4
  813. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +43 -4
  814. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +43 -4
  815. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +43 -4
  816. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +43 -4
  817. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +43 -4
  818. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  819. package/package.json +8 -8
  820. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.d.ts +0 -16
  821. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js +0 -24
  822. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +0 -1
  823. package/dist/dist-esm/react-components/src/components/ImageGallery.d.ts +0 -71
  824. package/dist/dist-esm/react-components/src/components/ImageGallery.js +0 -65
  825. package/dist/dist-esm/react-components/src/components/ImageGallery.js.map +0 -1
  826. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.d.ts +0 -21
  827. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js +0 -18
  828. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js.map +0 -1
  829. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.d.ts +0 -28
  830. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +0 -145
  831. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +0 -1
  832. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.d.ts +0 -72
  833. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +0 -213
  834. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +0 -1
  835. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.d.ts +0 -88
  836. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +0 -86
  837. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +0 -1
  838. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +0 -12
  839. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +0 -14
  840. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +0 -1
  841. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.d.ts +0 -9
  842. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js +0 -4
  843. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +0 -1
  844. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.d.ts +0 -33
  845. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +0 -99
  846. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +0 -1
@@ -33,7 +33,7 @@ export declare class AzureCommunicationChatAdapter implements ChatAdapter {
33
33
  private fileUploadAdapter;
34
34
  private handlers;
35
35
  private emitter;
36
- constructor(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, options?: {
36
+ constructor(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options?: {
37
37
  credential?: CommunicationTokenCredential;
38
38
  });
39
39
  private bindAllPublicMethods;
@@ -136,7 +136,7 @@ export declare const useAzureCommunicationChatAdapter: (args: Partial<AzureCommu
136
136
  *
137
137
  * @public
138
138
  */
139
- export declare function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, options?: {
139
+ export declare function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options?: {
140
140
  credential?: CommunicationTokenCredential;
141
141
  }): Promise<ChatAdapter>;
142
142
  //# sourceMappingURL=AzureCommunicationChatAdapter.d.ts.map
@@ -79,8 +79,7 @@ export class ChatContext {
79
79
  * @private
80
80
  */
81
81
  export class AzureCommunicationChatAdapter {
82
- constructor(chatClient, chatThreadClient,
83
- /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options) {
82
+ constructor(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options) {
84
83
  /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
85
84
  this.credential = undefined;
86
85
  this.emitter = new EventEmitter();
@@ -304,7 +303,9 @@ export class AzureCommunicationChatAdapter {
304
303
  const headers = new Headers();
305
304
  headers.append('Authorization', `Bearer ${token}`);
306
305
  try {
307
- return yield fetch(url, { headers });
306
+ return yield fetch(url, {
307
+ headers
308
+ });
308
309
  }
309
310
  catch (err) {
310
311
  const e = new Error();
@@ -317,7 +318,9 @@ export class AzureCommunicationChatAdapter {
317
318
  const attachmentUrl = options.attachmentUrls[0];
318
319
  const response = yield fetchWithAuthentication(attachmentUrl, accessToken);
319
320
  const blob = yield response.blob();
320
- return [{ blobUrl: URL.createObjectURL(blob) }];
321
+ return [{
322
+ blobUrl: URL.createObjectURL(blob)
323
+ }];
321
324
  });
322
325
  }
323
326
  messageReceivedListener(event) {
@@ -326,26 +329,41 @@ export class AzureCommunicationChatAdapter {
326
329
  return;
327
330
  }
328
331
  const message = convertEventToChatMessage(event);
329
- this.emitter.emit('messageReceived', { message });
332
+ this.emitter.emit('messageReceived', {
333
+ message
334
+ });
330
335
  const currentUserId = toFlatCommunicationIdentifier(this.chatClient.getState().userId);
331
336
  if ((message === null || message === void 0 ? void 0 : message.sender) && toFlatCommunicationIdentifier(message.sender) === currentUserId) {
332
- this.emitter.emit('messageSent', { message });
337
+ this.emitter.emit('messageSent', {
338
+ message
339
+ });
333
340
  }
334
341
  }
335
342
  messageReadListener({ chatMessageId, recipient }) {
336
343
  const message = this.getState().thread.chatMessages[chatMessageId];
337
344
  if (message) {
338
- this.emitter.emit('messageRead', { message, readBy: recipient });
345
+ this.emitter.emit('messageRead', {
346
+ message,
347
+ readBy: recipient
348
+ });
339
349
  }
340
350
  }
341
351
  participantsAddedListener({ addedBy, participantsAdded }) {
342
- this.emitter.emit('participantsAdded', { addedBy, participantsAdded });
352
+ this.emitter.emit('participantsAdded', {
353
+ addedBy,
354
+ participantsAdded
355
+ });
343
356
  }
344
357
  participantsRemovedListener({ removedBy, participantsRemoved }) {
345
- this.emitter.emit('participantsRemoved', { removedBy, participantsRemoved });
358
+ this.emitter.emit('participantsRemoved', {
359
+ removedBy,
360
+ participantsRemoved
361
+ });
346
362
  }
347
363
  chatThreadPropertiesUpdatedListener(event) {
348
- this.emitter.emit('topicChanged', { topic: event.properties.topic });
364
+ this.emitter.emit('topicChanged', {
365
+ topic: event.properties.topic
366
+ });
349
367
  }
350
368
  subscribeAllEvents() {
351
369
  this.chatClient.on('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));
@@ -389,7 +407,9 @@ const convertEventToChatMessage = (event) => {
389
407
  return {
390
408
  id: event.id,
391
409
  version: event.version,
392
- content: { message: event.message },
410
+ content: {
411
+ message: event.message
412
+ },
393
413
  type: convertEventType(event.type),
394
414
  sender: event.sender,
395
415
  senderDisplayName: event.senderDisplayName,
@@ -427,9 +447,10 @@ export const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, use
427
447
  const chatThreadClient = yield chatClient.getChatThreadClient(threadId);
428
448
  yield chatClient.startRealtimeNotifications();
429
449
  /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
430
- const options = { credential: credential };
431
- const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
432
- /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
450
+ const options = {
451
+ credential: credential
452
+ };
453
+ const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
433
454
  return adapter;
434
455
  });
435
456
  /**
@@ -446,26 +467,7 @@ export const createAzureCommunicationChatAdapter = ({ endpoint: endpointUrl, use
446
467
  *
447
468
  * @public
448
469
  */
449
- export const useAzureCommunicationChatAdapter = (
450
- /**
451
- * Arguments to be passed to {@link createAzureCommunicationChatAdapter}.
452
- *
453
- * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments
454
- * as they are created. The adapter is only created when all arguments are defined.
455
- */
456
- args,
457
- /**
458
- * Optional callback to modify the adapter once it is created.
459
- *
460
- * If set, must return the modified adapter.
461
- */
462
- afterCreate,
463
- /**
464
- * Optional callback called before the adapter is disposed.
465
- *
466
- * This is useful for clean up tasks, e.g., leaving any ongoing calls.
467
- */
468
- beforeDispose) => {
470
+ export const useAzureCommunicationChatAdapter = (args, afterCreate, beforeDispose) => {
469
471
  const { credential, displayName, endpoint, threadId, userId } = args;
470
472
  // State update needed to rerender the parent component when a new adapter is created.
471
473
  const [adapter, setAdapter] = useState(undefined);
@@ -536,12 +538,9 @@ beforeDispose) => {
536
538
  *
537
539
  * @public
538
540
  */
539
- export function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient,
540
- /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
541
- options) {
541
+ export function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options) {
542
542
  return __awaiter(this, void 0, void 0, function* () {
543
- return new AzureCommunicationChatAdapter(chatClient, chatThreadClient,
544
- /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
543
+ return new AzureCommunicationChatAdapter(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options);
545
544
  });
546
545
  }
547
546
  const isChatError = (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AzureCommunicationChatAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n createStatefulChatClient,\n ChatClientState,\n ChatError,\n StatefulChatClient\n} from '@internal/chat-stateful-client';\nimport { ChatHandlers, createDefaultChatHandlers } from '@internal/chat-component-bindings';\nimport { ChatMessage, ChatMessageType, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';\nimport type {\n ChatMessageReceivedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n ReadReceiptReceivedEvent\n} from '@azure/communication-chat';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport EventEmitter from 'events';\nimport {\n ChatAdapter,\n ChatAdapterState,\n MessageReadListener,\n MessageReceivedListener,\n ParticipantsAddedListener,\n ParticipantsRemovedListener,\n TopicChangedListener\n} from './ChatAdapter';\nimport { AdapterError } from '../../common/adapters';\n/* @conditional-compile-remove(file-sharing) */\nimport {\n FileUploadAdapter,\n AzureCommunicationFileUploadAdapter,\n convertFileUploadsUiStateToMessageMetadata\n} from './AzureCommunicationFileUploadAdapter';\nimport { useEffect, useRef, useState } from 'react';\nimport { _isValidIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentDownloadResult } from '@internal/react-components';\nimport { FileMetadata } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadManager } from '../file-sharing';\n\n/**\n * Context of Chat, which is a centralized context for all state updates\n * @private\n */\nexport class ChatContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: ChatAdapterState;\n private threadId: string;\n\n constructor(clientState: ChatClientState, threadId: string) {\n const thread = clientState.threads[threadId];\n this.threadId = threadId;\n if (!thread) {\n throw 'Cannot find threadId, please initialize thread before use!';\n }\n this.state = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n }\n\n public onStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n\n public offStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n\n public setState(state: ChatAdapterState): void {\n this.state = state;\n this.emitter.emit('stateChanged', this.state);\n }\n\n public getState(): ChatAdapterState {\n return this.state;\n }\n\n public setError(error: Error): void {\n this.setState({ ...this.state, error });\n }\n\n public updateClientState(clientState: ChatClientState): void {\n const thread = clientState.threads[this.threadId];\n if (!thread) {\n throw 'Cannot find threadId, please make sure thread state is still in Stateful ChatClient.';\n }\n\n let updatedState: ChatAdapterState = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n\n /* @conditional-compile-remove(file-sharing) */\n updatedState = { ...updatedState, fileUploads: this.state.fileUploads };\n\n this.setState(updatedState);\n }\n}\n\n/**\n * @private\n */\nexport class AzureCommunicationChatAdapter implements ChatAdapter {\n private chatClient: StatefulChatClient;\n private chatThreadClient: ChatThreadClient;\n private context: ChatContext;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n private credential?: CommunicationTokenCredential = undefined;\n /* @conditional-compile-remove(file-sharing) */\n private fileUploadAdapter: FileUploadAdapter;\n private handlers: ChatHandlers;\n private emitter: EventEmitter = new EventEmitter();\n\n constructor(\n chatClient: StatefulChatClient,\n chatThreadClient: ChatThreadClient,\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options?: {\n credential?: CommunicationTokenCredential;\n }\n ) {\n this.bindAllPublicMethods();\n this.chatClient = chatClient;\n this.chatThreadClient = chatThreadClient;\n this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId);\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (options && options.credential) {\n this.credential = options.credential;\n }\n /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n this.fileUploadAdapter = new AzureCommunicationFileUploadAdapter(this.context);\n\n const onStateChange = (clientState: ChatClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n chatClient.offStateChange(onStateChange);\n return;\n }\n this.context.updateClientState(clientState);\n };\n\n this.handlers = createDefaultChatHandlers(chatClient, chatThreadClient);\n\n this.chatClient.onStateChange(onStateChange);\n this.subscribeAllEvents();\n }\n\n private bindAllPublicMethods(): void {\n this.onStateChange = this.onStateChange.bind(this);\n this.offStateChange = this.offStateChange.bind(this);\n this.getState = this.getState.bind(this);\n this.dispose = this.dispose.bind(this);\n this.fetchInitialData = this.fetchInitialData.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.sendReadReceipt = this.sendReadReceipt.bind(this);\n this.sendTypingIndicator = this.sendTypingIndicator.bind(this);\n this.updateMessage = this.updateMessage.bind(this);\n this.deleteMessage = this.deleteMessage.bind(this);\n this.removeParticipant = this.removeParticipant.bind(this);\n this.setTopic = this.setTopic.bind(this);\n this.loadPreviousChatMessages = this.loadPreviousChatMessages.bind(this);\n this.on = this.on.bind(this);\n this.off = this.off.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.registerActiveFileUploads = this.registerActiveFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.registerCompletedFileUploads = this.registerCompletedFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.clearFileUploads = this.clearFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.cancelFileUpload = this.cancelFileUpload.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadProgress = this.updateFileUploadProgress.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n this.downloadAttachments = this.downloadAttachments.bind(this);\n }\n\n dispose(): void {\n this.unsubscribeAllEvents();\n }\n\n async fetchInitialData(): Promise<void> {\n // If get properties fails we dont want to try to get the participants after.\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.chatThreadClient.getProperties();\n // Fetch all participants who joined before the local user.\n for await (const _page of this.chatThreadClient.listParticipants().byPage({\n // Fetch 100 participants per page by default.\n maxPageSize: 100\n // eslint-disable-next-line curly\n }));\n });\n }\n\n getState(): ChatAdapterState {\n return this.context.getState();\n }\n\n onStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n\n offStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n\n async sendMessage(content: string, options: SendMessageOptions = {}): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n /* @conditional-compile-remove(file-sharing) */\n options.metadata = {\n ...options.metadata,\n ...convertFileUploadsUiStateToMessageMetadata(this.context.getState().fileUploads)\n };\n\n /* @conditional-compile-remove(file-sharing) */\n /**\n * All the current uploads need to be clear from the state before a message has been sent.\n * This ensures the following behavior:\n * 1. File Upload cards are removed from sendbox at the same time text in sendbox is removed.\n * 2. any component rendering these file uploads doesn't continue to do so.\n * 3. Cleans the state for new file uploads with a fresh message.\n */\n this.fileUploadAdapter.clearFileUploads();\n\n await this.handlers.onSendMessage(content, options);\n });\n }\n\n async sendReadReceipt(chatMessageId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onMessageSeen(chatMessageId);\n });\n }\n\n async sendTypingIndicator(): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onTyping();\n });\n }\n\n async removeParticipant(userId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onRemoveParticipant(userId);\n });\n }\n\n async setTopic(topicName: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.updateThreadTopicName(topicName);\n });\n }\n\n async loadPreviousChatMessages(messagesToLoad: number): Promise<boolean> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onLoadPreviousChatMessages(messagesToLoad);\n });\n }\n\n async updateMessage(\n messageId: string,\n content: string,\n metadata?: Record<string, string>,\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }\n ): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n /* @conditional-compile-remove(file-sharing) */\n return await this.handlers.onUpdateMessage(messageId, content, metadata, options);\n return await this.handlers.onUpdateMessage(messageId, content);\n });\n }\n\n async deleteMessage(messageId: string): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onDeleteMessage(messageId);\n });\n }\n\n /* @conditional-compile-remove(file-sharing) */\n registerActiveFileUploads(files: File[]): FileUploadManager[] {\n return this.fileUploadAdapter.registerActiveFileUploads(files);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n registerCompletedFileUploads(metadata: FileMetadata[]): FileUploadManager[] {\n return this.fileUploadAdapter.registerCompletedFileUploads(metadata);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n clearFileUploads(): void {\n this.fileUploadAdapter.clearFileUploads();\n }\n\n /* @conditional-compile-remove(file-sharing) */\n cancelFileUpload(id: string): void {\n this.fileUploadAdapter.cancelFileUpload(id);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadProgress(id: string, progress: number): void {\n this.fileUploadAdapter.updateFileUploadProgress(id, progress);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadErrorMessage(id: string, errorMessage: string): void {\n this.fileUploadAdapter.updateFileUploadErrorMessage(id, errorMessage);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadMetadata(id: string, metadata: FileMetadata): void {\n this.fileUploadAdapter.updateFileUploadMetadata(id, metadata);\n }\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n async downloadAttachments(options: { attachmentUrls: string[] }): Promise<AttachmentDownloadResult[]> {\n return this.asyncTeeErrorToEventEmitter(async () => {\n if (this.credential === undefined) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = new Error('AccessToken is null');\n throw e;\n }\n const accessToken = await this.credential.getToken();\n if (!accessToken) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = new Error('AccessToken is null');\n throw e;\n }\n\n return this.downloadAuthenticatedFile(accessToken.token, options);\n });\n }\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n private async downloadAuthenticatedFile(\n accessToken: string,\n options: { attachmentUrls: string[] }\n ): Promise<AttachmentDownloadResult[]> {\n async function fetchWithAuthentication(url: string, token: string): Promise<Response> {\n const headers = new Headers();\n headers.append('Authorization', `Bearer ${token}`);\n try {\n return await fetch(url, { headers });\n } catch (err) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = err;\n throw e;\n }\n }\n const attachmentUrl = options.attachmentUrls[0];\n const response = await fetchWithAuthentication(attachmentUrl, accessToken);\n const blob = await response.blob();\n return [{ blobUrl: URL.createObjectURL(blob) }];\n }\n\n private messageReceivedListener(event: ChatMessageReceivedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n\n if (!isCurrentChatAdapterThread) {\n return;\n }\n\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageReceived', { message });\n\n const currentUserId = toFlatCommunicationIdentifier(this.chatClient.getState().userId);\n if (message?.sender && toFlatCommunicationIdentifier(message.sender) === currentUserId) {\n this.emitter.emit('messageSent', { message });\n }\n }\n\n private messageReadListener({ chatMessageId, recipient }: ReadReceiptReceivedEvent): void {\n const message = this.getState().thread.chatMessages[chatMessageId];\n if (message) {\n this.emitter.emit('messageRead', { message, readBy: recipient });\n }\n }\n\n private participantsAddedListener({ addedBy, participantsAdded }: ParticipantsAddedEvent): void {\n this.emitter.emit('participantsAdded', { addedBy, participantsAdded });\n }\n\n private participantsRemovedListener({ removedBy, participantsRemoved }: ParticipantsRemovedEvent): void {\n this.emitter.emit('participantsRemoved', { removedBy, participantsRemoved });\n }\n\n private chatThreadPropertiesUpdatedListener(event: ChatThreadPropertiesUpdatedEvent): void {\n this.emitter.emit('topicChanged', { topic: event.properties.topic });\n }\n\n private subscribeAllEvents(): void {\n this.chatClient.on('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.on('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.on('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.on('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n\n private unsubscribeAllEvents(): void {\n this.chatClient.off('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.off('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.off('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.off('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n on(event: 'messageSent', listener: MessageReceivedListener): void;\n on(event: 'messageRead', listener: MessageReadListener): void;\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n off(event: 'messageSent', listener: MessageReceivedListener): void;\n off(event: 'messageRead', listener: MessageReadListener): void;\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n off(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isChatError(error as Error)) {\n this.emitter.emit('error', error as AdapterError);\n }\n throw error;\n }\n }\n}\n\nconst convertEventToChatMessage = (event: ChatMessageReceivedEvent): ChatMessage => {\n return {\n id: event.id,\n version: event.version,\n content: { message: event.message },\n type: convertEventType(event.type),\n sender: event.sender,\n senderDisplayName: event.senderDisplayName,\n sequenceId: '',\n createdOn: new Date(event.createdOn)\n };\n};\n\n// only text/html message type will be received from event\nconst convertEventType = (type: string): ChatMessageType => {\n const lowerCaseType = type.toLowerCase();\n if (lowerCaseType === 'richtext/html' || lowerCaseType === 'html') {\n return 'html';\n } else {\n return 'text';\n }\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n/**\n * Configuration options to include when creating AzureCommunicationChatAdapter.\n * @beta\n */\nexport type AzureCommunicationChatAdapterOptions = {\n credential?: CommunicationTokenCredential;\n};\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link ChatAdapter}.\n *\n * @public\n */\nexport type AzureCommunicationChatAdapterArgs = {\n endpoint: string;\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n threadId: string;\n};\n\n/**\n * Create a {@link ChatAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link ChatAdapter} provided by this library.\n *\n * @public\n */\nexport const createAzureCommunicationChatAdapter = async ({\n endpoint: endpointUrl,\n userId,\n displayName,\n credential,\n threadId\n}: AzureCommunicationChatAdapterArgs): Promise<ChatAdapter> => {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n\n const chatClient = createStatefulChatClient({\n userId,\n displayName,\n endpoint: endpointUrl,\n credential: credential\n });\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n const options = { credential: credential };\n const adapter = await createAzureCommunicationChatAdapterFromClient(\n chatClient,\n chatThreadClient,\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options\n );\n\n return adapter;\n};\n\n/**\n * A custom React hook to simplify the creation of {@link ChatAdapter}.\n *\n * Similar to {@link createAzureCommunicationChatAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationChatAdapter = (\n /**\n * Arguments to be passed to {@link createAzureCommunicationChatAdapter}.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n */\n args: Partial<AzureCommunicationChatAdapterArgs>,\n /**\n * Optional callback to modify the adapter once it is created.\n *\n * If set, must return the modified adapter.\n */\n afterCreate?: (adapter: ChatAdapter) => Promise<ChatAdapter>,\n /**\n * Optional callback called before the adapter is disposed.\n *\n * This is useful for clean up tasks, e.g., leaving any ongoing calls.\n */\n beforeDispose?: (adapter: ChatAdapter) => Promise<void>\n): ChatAdapter | undefined => {\n const { credential, displayName, endpoint, threadId, userId } = args;\n\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<ChatAdapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<ChatAdapter | undefined>(undefined);\n\n const afterCreateRef = useRef<((adapter: ChatAdapter) => Promise<ChatAdapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: ChatAdapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n\n useEffect(\n () => {\n if (!credential || !displayName || !endpoint || !threadId || !userId) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n\n let newAdapter = await createAzureCommunicationChatAdapter({\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n });\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]\n );\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n\n return adapter;\n};\n\n/**\n * Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulChatClient}.\n * Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.\n *\n * @public\n */\nexport async function createAzureCommunicationChatAdapterFromClient(\n chatClient: StatefulChatClient,\n chatThreadClient: ChatThreadClient,\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n options?: {\n credential?: CommunicationTokenCredential;\n }\n): Promise<ChatAdapter> {\n return new AzureCommunicationChatAdapter(\n chatClient,\n chatThreadClient,\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ options\n );\n}\n\nconst isChatError = (e: Error): e is ChatError => {\n return e['target'] !== undefined && e['innerError'] !== undefined;\n};\n\"../../../../../chat-stateful-client/src\"\"../../../../../chat-component-bindings/src\"\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"AzureCommunicationChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createStatefulChatClient, ChatClientState, ChatError, StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatHandlers, createDefaultChatHandlers } from '@internal/chat-component-bindings';\nimport { ChatMessage, ChatMessageType, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';\nimport type { ChatMessageReceivedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ReadReceiptReceivedEvent } from '@azure/communication-chat';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport EventEmitter from 'events';\nimport { ChatAdapter, ChatAdapterState, MessageReadListener, MessageReceivedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './ChatAdapter';\nimport { AdapterError } from '../../common/adapters';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadAdapter, AzureCommunicationFileUploadAdapter, convertFileUploadsUiStateToMessageMetadata } from './AzureCommunicationFileUploadAdapter';\nimport { useEffect, useRef, useState } from 'react';\nimport { _isValidIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentDownloadResult } from '@internal/react-components';\nimport { FileMetadata } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadManager } from '../file-sharing';\n\n/**\n * Context of Chat, which is a centralized context for all state updates\n * @private\n */\nexport class ChatContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: ChatAdapterState;\n private threadId: string;\n constructor(clientState: ChatClientState, threadId: string) {\n const thread = clientState.threads[threadId];\n this.threadId = threadId;\n if (!thread) {\n throw 'Cannot find threadId, please initialize thread before use!';\n }\n this.state = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n }\n public onStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n public setState(state: ChatAdapterState): void {\n this.state = state;\n this.emitter.emit('stateChanged', this.state);\n }\n public getState(): ChatAdapterState {\n return this.state;\n }\n public setError(error: Error): void {\n this.setState({\n ...this.state,\n error\n });\n }\n public updateClientState(clientState: ChatClientState): void {\n const thread = clientState.threads[this.threadId];\n if (!thread) {\n throw 'Cannot find threadId, please make sure thread state is still in Stateful ChatClient.';\n }\n let updatedState: ChatAdapterState = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n\n /* @conditional-compile-remove(file-sharing) */\n updatedState = {\n ...updatedState,\n fileUploads: this.state.fileUploads\n };\n this.setState(updatedState);\n }\n}\n\n/**\n * @private\n */\nexport class AzureCommunicationChatAdapter implements ChatAdapter {\n private chatClient: StatefulChatClient;\n private chatThreadClient: ChatThreadClient;\n private context: ChatContext;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n private credential?: CommunicationTokenCredential = undefined;\n /* @conditional-compile-remove(file-sharing) */\n private fileUploadAdapter: FileUploadAdapter;\n private handlers: ChatHandlers;\n private emitter: EventEmitter = new EventEmitter();\n constructor(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */options?: {\n credential?: CommunicationTokenCredential;\n }) {\n this.bindAllPublicMethods();\n this.chatClient = chatClient;\n this.chatThreadClient = chatThreadClient;\n this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId);\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (options && options.credential) {\n this.credential = options.credential;\n }\n /* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n this.fileUploadAdapter = new AzureCommunicationFileUploadAdapter(this.context);\n const onStateChange = (clientState: ChatClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n chatClient.offStateChange(onStateChange);\n return;\n }\n this.context.updateClientState(clientState);\n };\n this.handlers = createDefaultChatHandlers(chatClient, chatThreadClient);\n this.chatClient.onStateChange(onStateChange);\n this.subscribeAllEvents();\n }\n private bindAllPublicMethods(): void {\n this.onStateChange = this.onStateChange.bind(this);\n this.offStateChange = this.offStateChange.bind(this);\n this.getState = this.getState.bind(this);\n this.dispose = this.dispose.bind(this);\n this.fetchInitialData = this.fetchInitialData.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.sendReadReceipt = this.sendReadReceipt.bind(this);\n this.sendTypingIndicator = this.sendTypingIndicator.bind(this);\n this.updateMessage = this.updateMessage.bind(this);\n this.deleteMessage = this.deleteMessage.bind(this);\n this.removeParticipant = this.removeParticipant.bind(this);\n this.setTopic = this.setTopic.bind(this);\n this.loadPreviousChatMessages = this.loadPreviousChatMessages.bind(this);\n this.on = this.on.bind(this);\n this.off = this.off.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.registerActiveFileUploads = this.registerActiveFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.registerCompletedFileUploads = this.registerCompletedFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.clearFileUploads = this.clearFileUploads.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.cancelFileUpload = this.cancelFileUpload.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadProgress = this.updateFileUploadProgress.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);\n /* @conditional-compile-remove(file-sharing) */\n this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n this.downloadAttachments = this.downloadAttachments.bind(this);\n }\n dispose(): void {\n this.unsubscribeAllEvents();\n }\n async fetchInitialData(): Promise<void> {\n // If get properties fails we dont want to try to get the participants after.\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.chatThreadClient.getProperties();\n // Fetch all participants who joined before the local user.\n for await (const _page of this.chatThreadClient.listParticipants().byPage({\n // Fetch 100 participants per page by default.\n maxPageSize: 100\n // eslint-disable-next-line curly\n }));\n });\n }\n getState(): ChatAdapterState {\n return this.context.getState();\n }\n onStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n offStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n async sendMessage(content: string, options: SendMessageOptions = {}): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n /* @conditional-compile-remove(file-sharing) */\n options.metadata = {\n ...options.metadata,\n ...convertFileUploadsUiStateToMessageMetadata(this.context.getState().fileUploads)\n };\n\n /* @conditional-compile-remove(file-sharing) */\n /**\n * All the current uploads need to be clear from the state before a message has been sent.\n * This ensures the following behavior:\n * 1. File Upload cards are removed from sendbox at the same time text in sendbox is removed.\n * 2. any component rendering these file uploads doesn't continue to do so.\n * 3. Cleans the state for new file uploads with a fresh message.\n */\n this.fileUploadAdapter.clearFileUploads();\n await this.handlers.onSendMessage(content, options);\n });\n }\n async sendReadReceipt(chatMessageId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onMessageSeen(chatMessageId);\n });\n }\n async sendTypingIndicator(): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onTyping();\n });\n }\n async removeParticipant(userId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onRemoveParticipant(userId);\n });\n }\n async setTopic(topicName: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.updateThreadTopicName(topicName);\n });\n }\n async loadPreviousChatMessages(messagesToLoad: number): Promise<boolean> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onLoadPreviousChatMessages(messagesToLoad);\n });\n }\n async updateMessage(messageId: string, content: string, metadata?: Record<string, string>, options?: {\n attachedFilesMetadata?: FileMetadata[];\n }): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n /* @conditional-compile-remove(file-sharing) */\n return await this.handlers.onUpdateMessage(messageId, content, metadata, options);\n return await this.handlers.onUpdateMessage(messageId, content);\n });\n }\n async deleteMessage(messageId: string): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onDeleteMessage(messageId);\n });\n }\n\n /* @conditional-compile-remove(file-sharing) */\n registerActiveFileUploads(files: File[]): FileUploadManager[] {\n return this.fileUploadAdapter.registerActiveFileUploads(files);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n registerCompletedFileUploads(metadata: FileMetadata[]): FileUploadManager[] {\n return this.fileUploadAdapter.registerCompletedFileUploads(metadata);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n clearFileUploads(): void {\n this.fileUploadAdapter.clearFileUploads();\n }\n\n /* @conditional-compile-remove(file-sharing) */\n cancelFileUpload(id: string): void {\n this.fileUploadAdapter.cancelFileUpload(id);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadProgress(id: string, progress: number): void {\n this.fileUploadAdapter.updateFileUploadProgress(id, progress);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadErrorMessage(id: string, errorMessage: string): void {\n this.fileUploadAdapter.updateFileUploadErrorMessage(id, errorMessage);\n }\n\n /* @conditional-compile-remove(file-sharing) */\n updateFileUploadMetadata(id: string, metadata: FileMetadata): void {\n this.fileUploadAdapter.updateFileUploadMetadata(id, metadata);\n }\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n async downloadAttachments(options: {\n attachmentUrls: string[];\n }): Promise<AttachmentDownloadResult[]> {\n return this.asyncTeeErrorToEventEmitter(async () => {\n if (this.credential === undefined) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = new Error('AccessToken is null');\n throw e;\n }\n const accessToken = await this.credential.getToken();\n if (!accessToken) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = new Error('AccessToken is null');\n throw e;\n }\n return this.downloadAuthenticatedFile(accessToken.token, options);\n });\n }\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n private async downloadAuthenticatedFile(accessToken: string, options: {\n attachmentUrls: string[];\n }): Promise<AttachmentDownloadResult[]> {\n async function fetchWithAuthentication(url: string, token: string): Promise<Response> {\n const headers = new Headers();\n headers.append('Authorization', `Bearer ${token}`);\n try {\n return await fetch(url, {\n headers\n });\n } catch (err) {\n const e = new Error();\n e['target'] = 'ChatThreadClient.getMessage';\n e['innerError'] = err;\n throw e;\n }\n }\n const attachmentUrl = options.attachmentUrls[0];\n const response = await fetchWithAuthentication(attachmentUrl, accessToken);\n const blob = await response.blob();\n return [{\n blobUrl: URL.createObjectURL(blob)\n }];\n }\n private messageReceivedListener(event: ChatMessageReceivedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageReceived', {\n message\n });\n const currentUserId = toFlatCommunicationIdentifier(this.chatClient.getState().userId);\n if (message?.sender && toFlatCommunicationIdentifier(message.sender) === currentUserId) {\n this.emitter.emit('messageSent', {\n message\n });\n }\n }\n private messageReadListener({\n chatMessageId,\n recipient\n }: ReadReceiptReceivedEvent): void {\n const message = this.getState().thread.chatMessages[chatMessageId];\n if (message) {\n this.emitter.emit('messageRead', {\n message,\n readBy: recipient\n });\n }\n }\n private participantsAddedListener({\n addedBy,\n participantsAdded\n }: ParticipantsAddedEvent): void {\n this.emitter.emit('participantsAdded', {\n addedBy,\n participantsAdded\n });\n }\n private participantsRemovedListener({\n removedBy,\n participantsRemoved\n }: ParticipantsRemovedEvent): void {\n this.emitter.emit('participantsRemoved', {\n removedBy,\n participantsRemoved\n });\n }\n private chatThreadPropertiesUpdatedListener(event: ChatThreadPropertiesUpdatedEvent): void {\n this.emitter.emit('topicChanged', {\n topic: event.properties.topic\n });\n }\n private subscribeAllEvents(): void {\n this.chatClient.on('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.on('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.on('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.on('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n private unsubscribeAllEvents(): void {\n this.chatClient.off('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.off('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.off('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.off('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n on(event: 'messageSent', listener: MessageReceivedListener): void;\n on(event: 'messageRead', listener: MessageReadListener): void;\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n off(event: 'messageSent', listener: MessageReceivedListener): void;\n off(event: 'messageRead', listener: MessageReadListener): void;\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n off(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isChatError((error as Error))) {\n this.emitter.emit('error', (error as AdapterError));\n }\n throw error;\n }\n }\n}\nconst convertEventToChatMessage = (event: ChatMessageReceivedEvent): ChatMessage => {\n return {\n id: event.id,\n version: event.version,\n content: {\n message: event.message\n },\n type: convertEventType(event.type),\n sender: event.sender,\n senderDisplayName: event.senderDisplayName,\n sequenceId: '',\n createdOn: new Date(event.createdOn)\n };\n};\n\n// only text/html message type will be received from event\nconst convertEventType = (type: string): ChatMessageType => {\n const lowerCaseType = type.toLowerCase();\n if (lowerCaseType === 'richtext/html' || lowerCaseType === 'html') {\n return 'html';\n } else {\n return 'text';\n }\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n/**\n * Configuration options to include when creating AzureCommunicationChatAdapter.\n * @beta\n */\nexport type AzureCommunicationChatAdapterOptions = {\n credential?: CommunicationTokenCredential;\n};\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link ChatAdapter}.\n *\n * @public\n */\nexport type AzureCommunicationChatAdapterArgs = {\n endpoint: string;\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n threadId: string;\n};\n\n/**\n * Create a {@link ChatAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link ChatAdapter} provided by this library.\n *\n * @public\n */\nexport const createAzureCommunicationChatAdapter = async ({\n endpoint: endpointUrl,\n userId,\n displayName,\n credential,\n threadId\n}: AzureCommunicationChatAdapterArgs): Promise<ChatAdapter> => {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n const chatClient = createStatefulChatClient({\n userId,\n displayName,\n endpoint: endpointUrl,\n credential: credential\n });\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n const options = {\n credential: credential\n };\n const adapter = await createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */options);\n return adapter;\n};\n\n/**\n * A custom React hook to simplify the creation of {@link ChatAdapter}.\n *\n * Similar to {@link createAzureCommunicationChatAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationChatAdapter = (args: Partial<AzureCommunicationChatAdapterArgs>, afterCreate?: (adapter: ChatAdapter) => Promise<ChatAdapter>, beforeDispose?: (adapter: ChatAdapter) => Promise<void>): ChatAdapter | undefined => {\n const {\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n } = args;\n\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<ChatAdapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<ChatAdapter | undefined>(undefined);\n const afterCreateRef = useRef<((adapter: ChatAdapter) => Promise<ChatAdapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: ChatAdapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n useEffect(() => {\n if (!credential || !displayName || !endpoint || !threadId || !userId) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n let newAdapter = await createAzureCommunicationChatAdapter({\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n });\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]);\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n return adapter;\n};\n\n/**\n * Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulChatClient}.\n * Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.\n *\n * @public\n */\nexport async function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\noptions?: {\n credential?: CommunicationTokenCredential;\n}): Promise<ChatAdapter> {\n return new AzureCommunicationChatAdapter(chatClient, chatThreadClient, /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */options);\n}\nconst isChatError = (e: Error): e is ChatError => {\n return e['target'] !== undefined && e['innerError'] !== undefined;\n};\"../../../../../chat-stateful-client/src\"\"../../../../../chat-component-bindings/src\"\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
@@ -17,7 +17,7 @@ class FileUploadContext {
17
17
  }
18
18
  addFileUploads(fileUploads) {
19
19
  const fileUploadsMap = convertObservableFileUploadToFileUploadsUiState(fileUploads);
20
- this.chatContext.setState(produce(this.chatContext.getState(), (draft) => {
20
+ this.chatContext.setState(produce(this.chatContext.getState(), draft => {
21
21
  draft.fileUploads = draft.fileUploads || {};
22
22
  draft.fileUploads = Object.assign(Object.assign({}, draft.fileUploads), fileUploadsMap);
23
23
  }));
@@ -37,7 +37,7 @@ class FileUploadContext {
37
37
  }
38
38
  deleteFileUploads(ids) {
39
39
  this.chatContext.setState(produce(this.chatContext.getState(), (draft) => {
40
- ids.forEach((id) => {
40
+ ids.forEach(id => {
41
41
  var _a;
42
42
  (_a = draft === null || draft === void 0 ? void 0 : draft.fileUploads) === null || _a === void 0 ? true : delete _a[id];
43
43
  });
@@ -54,18 +54,16 @@ export class AzureCommunicationFileUploadAdapter {
54
54
  this.context = new FileUploadContext(chatContext);
55
55
  }
56
56
  findFileUpload(id) {
57
- return this.fileUploads.find((fileUpload) => fileUpload.id === id);
57
+ return this.fileUploads.find(fileUpload => fileUpload.id === id);
58
58
  }
59
59
  deleteFileUploads(ids) {
60
- this.fileUploads = this.fileUploads.filter((fileUpload) => !ids.includes(fileUpload.id));
60
+ this.fileUploads = this.fileUploads.filter(fileUpload => !ids.includes(fileUpload.id));
61
61
  this.context.deleteFileUploads(ids);
62
62
  }
63
63
  deleteErroneousFileUploads() {
64
64
  const fileUploads = this.context.getFileUploads() || {};
65
- const ids = Object.values(fileUploads)
66
- .filter((item) => item.error)
67
- .map((item) => item.id);
68
- ids.forEach((id) => {
65
+ const ids = Object.values(fileUploads).filter((item) => item.error).map((item) => item.id);
66
+ ids.forEach(id => {
69
67
  const fileUpload = this.findFileUpload(id);
70
68
  this.unsubscribeAllEvents(fileUpload);
71
69
  });
@@ -74,8 +72,8 @@ export class AzureCommunicationFileUploadAdapter {
74
72
  registerFileUploads(files) {
75
73
  this.deleteErroneousFileUploads();
76
74
  const fileUploads = [];
77
- files.forEach((file) => fileUploads.push(new FileUpload(file)));
78
- fileUploads.forEach((fileUpload) => this.subscribeAllEvents(fileUpload));
75
+ files.forEach(file => fileUploads.push(new FileUpload(file)));
76
+ fileUploads.forEach(fileUpload => this.subscribeAllEvents(fileUpload));
79
77
  this.fileUploads = this.fileUploads.concat(fileUploads);
80
78
  this.context.addFileUploads(fileUploads);
81
79
  return fileUploads;
@@ -88,7 +86,7 @@ export class AzureCommunicationFileUploadAdapter {
88
86
  }
89
87
  clearFileUploads() {
90
88
  this.context.clearFileUploads();
91
- this.fileUploads.forEach((fileUpload) => this.unsubscribeAllEvents(fileUpload));
89
+ this.fileUploads.forEach(fileUpload => this.unsubscribeAllEvents(fileUpload));
92
90
  this.fileUploads = [];
93
91
  }
94
92
  cancelFileUpload(id) {
@@ -98,7 +96,9 @@ export class AzureCommunicationFileUploadAdapter {
98
96
  this.deleteFileUploads([id]);
99
97
  }
100
98
  updateFileUploadProgress(id, progress) {
101
- this.context.updateFileUpload(id, { progress });
99
+ this.context.updateFileUpload(id, {
100
+ progress
101
+ });
102
102
  }
103
103
  updateFileUploadErrorMessage(id, errorMessage) {
104
104
  this.context.updateFileUpload(id, {
@@ -109,7 +109,10 @@ export class AzureCommunicationFileUploadAdapter {
109
109
  });
110
110
  }
111
111
  updateFileUploadMetadata(id, metadata) {
112
- this.context.updateFileUpload(id, { progress: 1, metadata });
112
+ this.context.updateFileUpload(id, {
113
+ progress: 1,
114
+ metadata
115
+ });
113
116
  }
114
117
  subscribeAllEvents(fileUpload) {
115
118
  fileUpload.on('uploadProgressChange', this.updateFileUploadProgress.bind(this));
@@ -130,14 +133,16 @@ export class AzureCommunicationFileUploadAdapter {
130
133
  export const convertFileUploadsUiStateToMessageMetadata = (fileUploads) => {
131
134
  const fileMetadata = [];
132
135
  if (fileUploads) {
133
- Object.keys(fileUploads).forEach((key) => {
136
+ Object.keys(fileUploads).forEach(key => {
134
137
  const file = fileUploads[key];
135
138
  if (!file.error && file.metadata) {
136
139
  fileMetadata.push(file.metadata);
137
140
  }
138
141
  });
139
142
  }
140
- return { fileSharingMetadata: JSON.stringify(fileMetadata) };
143
+ return {
144
+ fileSharingMetadata: JSON.stringify(fileMetadata)
145
+ };
141
146
  };
142
147
  /* @conditional-compile-remove(file-sharing) */
143
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AzureCommunicationFileUploadAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { FileMetadata } from '@internal/react-components';\nimport { FileUploadManager, FileUploadState } from '../file-sharing';\n/* @conditional-compile-remove(file-sharing) */\nimport produce from 'immer';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileSharingMetadata, FileUpload } from '../file-sharing';\n/* @conditional-compile-remove(file-sharing) */\nimport { ChatContext } from './AzureCommunicationChatAdapter';\n/* @conditional-compile-remove(file-sharing) */\nimport { ChatAdapterState } from './ChatAdapter';\n\n/**\n * A record containing {@link FileUploadState} mapped to unique ids.\n * @beta\n */\nexport type FileUploadsUiState = Record<string, FileUploadState>;\n\n/**\n * @beta\n */\nexport interface FileUploadAdapter {\n registerActiveFileUploads: (files: File[]) => FileUploadManager[];\n registerCompletedFileUploads: (metadata: FileMetadata[]) => FileUploadManager[];\n clearFileUploads: () => void;\n cancelFileUpload: (id: string) => void;\n updateFileUploadProgress: (id: string, progress: number) => void;\n updateFileUploadErrorMessage: (id: string, errorMessage: string) => void;\n updateFileUploadMetadata: (id: string, metadata: FileMetadata) => void;\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @internal\n */\nclass FileUploadContext {\n private chatContext: ChatContext;\n\n constructor(chatContext: ChatContext) {\n this.chatContext = chatContext;\n }\n\n public getFileUploads(): FileUploadsUiState | undefined {\n return this.chatContext.getState().fileUploads;\n }\n\n public addFileUploads(fileUploads: FileUpload[]): void {\n const fileUploadsMap = convertObservableFileUploadToFileUploadsUiState(fileUploads);\n this.chatContext.setState(\n produce(this.chatContext.getState(), (draft) => {\n draft.fileUploads = draft.fileUploads || {};\n draft.fileUploads = { ...draft.fileUploads, ...fileUploadsMap };\n })\n );\n }\n\n public clearFileUploads(): void {\n this.chatContext.setState(\n produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n draft.fileUploads = {};\n })\n );\n }\n\n public updateFileUpload(id: string, data: Partial<Pick<FileUploadState, 'progress' | 'metadata' | 'error'>>): void {\n this.chatContext.setState(\n produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n if (draft.fileUploads?.[id]) {\n draft.fileUploads[id] = {\n ...draft.fileUploads?.[id],\n ...data\n };\n }\n })\n );\n }\n\n public deleteFileUploads(ids: string[]): void {\n this.chatContext.setState(\n produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n ids.forEach((id) => {\n delete draft?.fileUploads?.[id];\n });\n })\n );\n }\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @internal\n */\nexport class AzureCommunicationFileUploadAdapter implements FileUploadAdapter {\n private context: FileUploadContext;\n private fileUploads: FileUpload[] = [];\n\n constructor(chatContext: ChatContext) {\n this.context = new FileUploadContext(chatContext);\n }\n\n private findFileUpload(id: string): FileUpload | undefined {\n return this.fileUploads.find((fileUpload) => fileUpload.id === id);\n }\n\n private deleteFileUploads(ids: string[]): void {\n this.fileUploads = this.fileUploads.filter((fileUpload) => !ids.includes(fileUpload.id));\n this.context.deleteFileUploads(ids);\n }\n\n private deleteErroneousFileUploads(): void {\n const fileUploads = this.context.getFileUploads() || {};\n const ids = Object.values(fileUploads)\n .filter((item: FileUploadState) => item.error)\n .map((item: FileUploadState) => item.id);\n\n ids.forEach((id) => {\n const fileUpload = this.findFileUpload(id);\n this.unsubscribeAllEvents(fileUpload);\n });\n\n this.deleteFileUploads(ids);\n }\n\n private registerFileUploads(files: File[] | FileMetadata[]): FileUploadManager[] {\n this.deleteErroneousFileUploads();\n const fileUploads: FileUpload[] = [];\n files.forEach((file) => fileUploads.push(new FileUpload(file)));\n fileUploads.forEach((fileUpload) => this.subscribeAllEvents(fileUpload));\n this.fileUploads = this.fileUploads.concat(fileUploads);\n this.context.addFileUploads(fileUploads);\n return fileUploads;\n }\n\n registerActiveFileUploads(files: File[]): FileUploadManager[] {\n return this.registerFileUploads(files);\n }\n\n registerCompletedFileUploads(metadata: FileMetadata[]): FileUploadManager[] {\n return this.registerFileUploads(metadata);\n }\n\n clearFileUploads(): void {\n this.context.clearFileUploads();\n this.fileUploads.forEach((fileUpload) => this.unsubscribeAllEvents(fileUpload));\n this.fileUploads = [];\n }\n\n cancelFileUpload(id: string): void {\n this.deleteErroneousFileUploads();\n const fileUpload = this.findFileUpload(id);\n this.unsubscribeAllEvents(fileUpload);\n this.deleteFileUploads([id]);\n }\n\n updateFileUploadProgress(id: string, progress: number): void {\n this.context.updateFileUpload(id, { progress });\n }\n\n updateFileUploadErrorMessage(id: string, errorMessage: string): void {\n this.context.updateFileUpload(id, {\n error: {\n message: errorMessage,\n timestamp: Date.now()\n }\n });\n }\n\n updateFileUploadMetadata(id: string, metadata: FileMetadata): void {\n this.context.updateFileUpload(id, { progress: 1, metadata });\n }\n\n private subscribeAllEvents(fileUpload: FileUpload): void {\n fileUpload.on('uploadProgressChange', this.updateFileUploadProgress.bind(this));\n fileUpload.on('uploadComplete', this.updateFileUploadMetadata.bind(this));\n fileUpload.on('uploadFail', this.updateFileUploadErrorMessage.bind(this));\n }\n\n private unsubscribeAllEvents(fileUpload?: FileUpload): void {\n fileUpload?.off('uploadProgressChange', this.updateFileUploadProgress.bind(this));\n fileUpload?.off('uploadComplete', this.updateFileUploadMetadata.bind(this));\n fileUpload?.off('uploadFail', this.updateFileUploadErrorMessage.bind(this));\n }\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @param fileUploadUiState {@link FileUploadsUiState}\n * @private\n */\nexport const convertFileUploadsUiStateToMessageMetadata = (fileUploads?: FileUploadsUiState): FileSharingMetadata => {\n const fileMetadata: FileMetadata[] = [];\n if (fileUploads) {\n Object.keys(fileUploads).forEach((key) => {\n const file = fileUploads[key];\n if (!file.error && file.metadata) {\n fileMetadata.push(file.metadata);\n }\n });\n }\n\n return { fileSharingMetadata: JSON.stringify(fileMetadata) };\n};\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @private\n */\nconst convertObservableFileUploadToFileUploadsUiState = (fileUploads: FileUpload[]): FileUploadsUiState => {\n return fileUploads.reduce((map: FileUploadsUiState, fileUpload) => {\n map[fileUpload.id] = {\n id: fileUpload.id,\n filename: fileUpload.fileName,\n progress: 0,\n metadata: fileUpload.metadata\n };\n return map;\n }, {});\n};\n\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"AzureCommunicationFileUploadAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { FileMetadata } from '@internal/react-components';\nimport { FileUploadManager, FileUploadState } from '../file-sharing';\n/* @conditional-compile-remove(file-sharing) */\nimport produce from 'immer';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileSharingMetadata, FileUpload } from '../file-sharing';\n/* @conditional-compile-remove(file-sharing) */\nimport { ChatContext } from './AzureCommunicationChatAdapter';\n/* @conditional-compile-remove(file-sharing) */\nimport { ChatAdapterState } from './ChatAdapter';\n\n/**\n * A record containing {@link FileUploadState} mapped to unique ids.\n * @beta\n */\nexport type FileUploadsUiState = Record<string, FileUploadState>;\n\n/**\n * @beta\n */\nexport interface FileUploadAdapter {\n registerActiveFileUploads: (files: File[]) => FileUploadManager[];\n registerCompletedFileUploads: (metadata: FileMetadata[]) => FileUploadManager[];\n clearFileUploads: () => void;\n cancelFileUpload: (id: string) => void;\n updateFileUploadProgress: (id: string, progress: number) => void;\n updateFileUploadErrorMessage: (id: string, errorMessage: string) => void;\n updateFileUploadMetadata: (id: string, metadata: FileMetadata) => void;\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @internal\n */\nclass FileUploadContext {\n private chatContext: ChatContext;\n constructor(chatContext: ChatContext) {\n this.chatContext = chatContext;\n }\n public getFileUploads(): FileUploadsUiState | undefined {\n return this.chatContext.getState().fileUploads;\n }\n public addFileUploads(fileUploads: FileUpload[]): void {\n const fileUploadsMap = convertObservableFileUploadToFileUploadsUiState(fileUploads);\n this.chatContext.setState(produce(this.chatContext.getState(), draft => {\n draft.fileUploads = draft.fileUploads || {};\n draft.fileUploads = {\n ...draft.fileUploads,\n ...fileUploadsMap\n };\n }));\n }\n public clearFileUploads(): void {\n this.chatContext.setState(produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n draft.fileUploads = {};\n }));\n }\n public updateFileUpload(id: string, data: Partial<Pick<FileUploadState, 'progress' | 'metadata' | 'error'>>): void {\n this.chatContext.setState(produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n if (draft.fileUploads?.[id]) {\n draft.fileUploads[id] = {\n ...draft.fileUploads?.[id],\n ...data\n };\n }\n }));\n }\n public deleteFileUploads(ids: string[]): void {\n this.chatContext.setState(produce(this.chatContext.getState(), (draft: ChatAdapterState) => {\n ids.forEach(id => {\n delete draft?.fileUploads?.[id];\n });\n }));\n }\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @internal\n */\nexport class AzureCommunicationFileUploadAdapter implements FileUploadAdapter {\n private context: FileUploadContext;\n private fileUploads: FileUpload[] = [];\n constructor(chatContext: ChatContext) {\n this.context = new FileUploadContext(chatContext);\n }\n private findFileUpload(id: string): FileUpload | undefined {\n return this.fileUploads.find(fileUpload => fileUpload.id === id);\n }\n private deleteFileUploads(ids: string[]): void {\n this.fileUploads = this.fileUploads.filter(fileUpload => !ids.includes(fileUpload.id));\n this.context.deleteFileUploads(ids);\n }\n private deleteErroneousFileUploads(): void {\n const fileUploads = this.context.getFileUploads() || {};\n const ids = Object.values(fileUploads).filter((item: FileUploadState) => item.error).map((item: FileUploadState) => item.id);\n ids.forEach(id => {\n const fileUpload = this.findFileUpload(id);\n this.unsubscribeAllEvents(fileUpload);\n });\n this.deleteFileUploads(ids);\n }\n private registerFileUploads(files: File[] | FileMetadata[]): FileUploadManager[] {\n this.deleteErroneousFileUploads();\n const fileUploads: FileUpload[] = [];\n files.forEach(file => fileUploads.push(new FileUpload(file)));\n fileUploads.forEach(fileUpload => this.subscribeAllEvents(fileUpload));\n this.fileUploads = this.fileUploads.concat(fileUploads);\n this.context.addFileUploads(fileUploads);\n return fileUploads;\n }\n registerActiveFileUploads(files: File[]): FileUploadManager[] {\n return this.registerFileUploads(files);\n }\n registerCompletedFileUploads(metadata: FileMetadata[]): FileUploadManager[] {\n return this.registerFileUploads(metadata);\n }\n clearFileUploads(): void {\n this.context.clearFileUploads();\n this.fileUploads.forEach(fileUpload => this.unsubscribeAllEvents(fileUpload));\n this.fileUploads = [];\n }\n cancelFileUpload(id: string): void {\n this.deleteErroneousFileUploads();\n const fileUpload = this.findFileUpload(id);\n this.unsubscribeAllEvents(fileUpload);\n this.deleteFileUploads([id]);\n }\n updateFileUploadProgress(id: string, progress: number): void {\n this.context.updateFileUpload(id, {\n progress\n });\n }\n updateFileUploadErrorMessage(id: string, errorMessage: string): void {\n this.context.updateFileUpload(id, {\n error: {\n message: errorMessage,\n timestamp: Date.now()\n }\n });\n }\n updateFileUploadMetadata(id: string, metadata: FileMetadata): void {\n this.context.updateFileUpload(id, {\n progress: 1,\n metadata\n });\n }\n private subscribeAllEvents(fileUpload: FileUpload): void {\n fileUpload.on('uploadProgressChange', this.updateFileUploadProgress.bind(this));\n fileUpload.on('uploadComplete', this.updateFileUploadMetadata.bind(this));\n fileUpload.on('uploadFail', this.updateFileUploadErrorMessage.bind(this));\n }\n private unsubscribeAllEvents(fileUpload?: FileUpload): void {\n fileUpload?.off('uploadProgressChange', this.updateFileUploadProgress.bind(this));\n fileUpload?.off('uploadComplete', this.updateFileUploadMetadata.bind(this));\n fileUpload?.off('uploadFail', this.updateFileUploadErrorMessage.bind(this));\n }\n}\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @param fileUploadUiState {@link FileUploadsUiState}\n * @private\n */\nexport const convertFileUploadsUiStateToMessageMetadata = (fileUploads?: FileUploadsUiState): FileSharingMetadata => {\n const fileMetadata: FileMetadata[] = [];\n if (fileUploads) {\n Object.keys(fileUploads).forEach(key => {\n const file = fileUploads[key];\n if (!file.error && file.metadata) {\n fileMetadata.push(file.metadata);\n }\n });\n }\n return {\n fileSharingMetadata: JSON.stringify(fileMetadata)\n };\n};\n\n/* @conditional-compile-remove(file-sharing) */\n/**\n * @private\n */\nconst convertObservableFileUploadToFileUploadsUiState = (fileUploads: FileUpload[]): FileUploadsUiState => {\n return fileUploads.reduce((map: FileUploadsUiState, fileUpload) => {\n map[fileUpload.id] = {\n id: fileUpload.id,\n filename: fileUpload.fileName,\n progress: 0,\n metadata: fileUpload.metadata\n };\n return map;\n }, {});\n};\"../../../../../react-components/src\""]}
@@ -75,7 +75,7 @@ export interface ChatAdapterThreadManagement {
75
75
  /**
76
76
  * Update a message content.
77
77
  */
78
- updateMessage(messageId: string, content: string, metadata?: Record<string, string>, options?: {
78
+ updateMessage(messageId: string, content: string, metadata?: Record<string, string>, /* @conditional-compile-remove(file-sharing) */ options?: {
79
79
  attachedFilesMetadata?: FileMetadata[];
80
80
  }): Promise<void>;
81
81
  /**
@@ -162,7 +162,7 @@ export interface ChatAdapterSubscribers {
162
162
  *
163
163
  * @public
164
164
  */
165
- export declare type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers & FileUploadAdapter;
165
+ export declare type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers & /* @conditional-compile-remove(file-sharing) */ FileUploadAdapter;
166
166
  /**
167
167
  * Callback for {@link ChatAdapterSubscribers} 'messageReceived' event.
168
168
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ChatAdapter.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/adapter/ChatAdapter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { ChatMessage, ChatParticipant, SendMessageOptions } from '@azure/communication-chat';\nimport type { CommunicationIdentifierKind, CommunicationUserKind } from '@azure/communication-common';\nimport { ChatThreadClientState } from '@internal/chat-stateful-client';\nimport type { AdapterError, AdapterErrors, AdapterState, Disposable } from '../../common/adapters';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadAdapter, FileUploadsUiState } from './AzureCommunicationFileUploadAdapter';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentDownloadResult } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata } from '@internal/react-components';\n\n/**\n * {@link ChatAdapter} state for pure UI purposes.\n *\n * @public\n */\nexport type ChatAdapterUiState = {\n // FIXME(Delete?)\n // Self-contained state for composite\n error?: Error;\n /* @conditional-compile-remove(file-sharing) */\n /**\n * Files being uploaded by a user in the current thread.\n * Should be set to null once the upload is complete.\n * Array of type {@link FileUploadsUiState}\n * @beta\n */\n fileUploads?: FileUploadsUiState;\n};\n\n/**\n * {@link ChatAdapter} state inferred from Azure Communication Services backend.\n *\n * @public\n */\nexport type ChatCompositeClientState = {\n userId: CommunicationIdentifierKind;\n displayName: string;\n thread: ChatThreadClientState;\n /**\n * Latest error encountered for each operation performed via the adapter.\n */\n latestErrors: AdapterErrors;\n};\n\n/**\n * {@link ChatAdapter} state.\n *\n * @public\n */\nexport type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;\n\n/**\n * Functionality for managing the current chat thread.\n *\n * @public\n */\nexport interface ChatAdapterThreadManagement {\n /**\n * Fetch initial state for the Chat adapter.\n *\n * Performs the minimal fetch necessary for ChatComposite and API methods.\n */\n fetchInitialData(): Promise<void>;\n /**\n * Send a message in the thread.\n */\n sendMessage(content: string, options?: SendMessageOptions): Promise<void>;\n /**\n * Send a read receipt for a message.\n */\n sendReadReceipt(chatMessageId: string): Promise<void>;\n /**\n * Send typing indicator in the thread.\n */\n sendTypingIndicator(): Promise<void>;\n /**\n * Remove a participant in the thread.\n */\n removeParticipant(userId: string): Promise<void>;\n /**\n * Set the topic for the thread.\n */\n setTopic(topicName: string): Promise<void>;\n /**\n * Update a message content.\n */\n updateMessage(\n messageId: string,\n content: string,\n metadata?: Record<string, string>,\n /* @conditional-compile-remove(file-sharing) */\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }\n ): Promise<void>;\n /**\n * Delete a message in the thread.\n */\n deleteMessage(messageId: string): Promise<void>;\n /**\n * Load more previous messages in the chat thread history.\n *\n * @remarks\n * This method is usually used to control incremental fetch/infinite scroll\n *\n */\n loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n downloadAttachments: (options: { attachmentUrls: string[] }) => Promise<AttachmentDownloadResult[]>;\n}\n\n/**\n * Chat composite events that can be subscribed to.\n *\n * @public\n */\nexport interface ChatAdapterSubscribers {\n /**\n * Subscribe function for 'messageReceived' event.\n */\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Subscribe function for 'messageSent' event.\n */\n on(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Subscribe function for 'messageRead' event.\n */\n on(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Subscribe function for 'participantsAdded' event.\n */\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Subscribe function for 'participantsRemoved' event.\n */\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Subscribe function for 'topicChanged' event.\n */\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Subscribe function for 'error' event.\n */\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n /**\n * Unsubscribe function for 'messageReceived' event.\n */\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Unsubscribe function for 'messageSent' event.\n */\n off(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Unsubscribe function for 'messageRead' event.\n */\n off(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Unsubscribe function for 'participantsAdded' event.\n */\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Unsubscribe function for 'participantsRemoved' event.\n */\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Unsubscribe function for 'topicChanged' event.\n */\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Unsubscribe function for 'error' event.\n */\n off(event: 'error', listener: (e: AdapterError) => void): void;\n}\n\n/**\n * {@link ChatComposite} Adapter interface.\n *\n * @public\n */\nexport type ChatAdapter = ChatAdapterThreadManagement &\n AdapterState<ChatAdapterState> &\n Disposable &\n ChatAdapterSubscribers &\n /* @conditional-compile-remove(file-sharing) */\n FileUploadAdapter;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageReceived' event.\n *\n * @public\n */\nexport type MessageReceivedListener = (event: { message: ChatMessage }) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageSent' event.\n *\n * @public\n */\nexport type MessageSentListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageRead' event.\n *\n * @public\n */\nexport type MessageReadListener = (event: { message: ChatMessage; readBy: CommunicationUserKind }) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsAdded' event.\n *\n * @public\n */\nexport type ParticipantsAddedListener = (event: {\n participantsAdded: ChatParticipant[];\n addedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsRemoved' event.\n *\n * @public\n */\nexport type ParticipantsRemovedListener = (event: {\n participantsRemoved: ChatParticipant[];\n removedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'topicChanged' event.\n *\n * @public\n */\nexport type TopicChangedListener = (event: { topic: string }) => void;\n\"../../../../../chat-stateful-client/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"ChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { ChatMessage, ChatParticipant, SendMessageOptions } from '@azure/communication-chat';\nimport type { CommunicationIdentifierKind, CommunicationUserKind } from '@azure/communication-common';\nimport { ChatThreadClientState } from '@internal/chat-stateful-client';\nimport type { AdapterError, AdapterErrors, AdapterState, Disposable } from '../../common/adapters';\n/* @conditional-compile-remove(file-sharing) */\nimport { FileUploadAdapter, FileUploadsUiState } from './AzureCommunicationFileUploadAdapter';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentDownloadResult } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing) */ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata } from '@internal/react-components';\n\n/**\n * {@link ChatAdapter} state for pure UI purposes.\n *\n * @public\n */\nexport type ChatAdapterUiState = {\n // FIXME(Delete?)\n // Self-contained state for composite\n error?: Error;\n /* @conditional-compile-remove(file-sharing) */\n /**\n * Files being uploaded by a user in the current thread.\n * Should be set to null once the upload is complete.\n * Array of type {@link FileUploadsUiState}\n * @beta\n */\n fileUploads?: FileUploadsUiState;\n};\n\n/**\n * {@link ChatAdapter} state inferred from Azure Communication Services backend.\n *\n * @public\n */\nexport type ChatCompositeClientState = {\n userId: CommunicationIdentifierKind;\n displayName: string;\n thread: ChatThreadClientState;\n /**\n * Latest error encountered for each operation performed via the adapter.\n */\n latestErrors: AdapterErrors;\n};\n\n/**\n * {@link ChatAdapter} state.\n *\n * @public\n */\nexport type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;\n\n/**\n * Functionality for managing the current chat thread.\n *\n * @public\n */\nexport interface ChatAdapterThreadManagement {\n /**\n * Fetch initial state for the Chat adapter.\n *\n * Performs the minimal fetch necessary for ChatComposite and API methods.\n */\n fetchInitialData(): Promise<void>;\n /**\n * Send a message in the thread.\n */\n sendMessage(content: string, options?: SendMessageOptions): Promise<void>;\n /**\n * Send a read receipt for a message.\n */\n sendReadReceipt(chatMessageId: string): Promise<void>;\n /**\n * Send typing indicator in the thread.\n */\n sendTypingIndicator(): Promise<void>;\n /**\n * Remove a participant in the thread.\n */\n removeParticipant(userId: string): Promise<void>;\n /**\n * Set the topic for the thread.\n */\n setTopic(topicName: string): Promise<void>;\n /**\n * Update a message content.\n */\n updateMessage(messageId: string, content: string, metadata?: Record<string, string>, /* @conditional-compile-remove(file-sharing) */\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }): Promise<void>;\n /**\n * Delete a message in the thread.\n */\n deleteMessage(messageId: string): Promise<void>;\n /**\n * Load more previous messages in the chat thread history.\n *\n * @remarks\n * This method is usually used to control incremental fetch/infinite scroll\n *\n */\n loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n downloadAttachments: (options: {\n attachmentUrls: string[];\n }) => Promise<AttachmentDownloadResult[]>;\n}\n\n/**\n * Chat composite events that can be subscribed to.\n *\n * @public\n */\nexport interface ChatAdapterSubscribers {\n /**\n * Subscribe function for 'messageReceived' event.\n */\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Subscribe function for 'messageSent' event.\n */\n on(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Subscribe function for 'messageRead' event.\n */\n on(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Subscribe function for 'participantsAdded' event.\n */\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Subscribe function for 'participantsRemoved' event.\n */\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Subscribe function for 'topicChanged' event.\n */\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Subscribe function for 'error' event.\n */\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n /**\n * Unsubscribe function for 'messageReceived' event.\n */\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Unsubscribe function for 'messageSent' event.\n */\n off(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Unsubscribe function for 'messageRead' event.\n */\n off(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Unsubscribe function for 'participantsAdded' event.\n */\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Unsubscribe function for 'participantsRemoved' event.\n */\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Unsubscribe function for 'topicChanged' event.\n */\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Unsubscribe function for 'error' event.\n */\n off(event: 'error', listener: (e: AdapterError) => void): void;\n}\n\n/**\n * {@link ChatComposite} Adapter interface.\n *\n * @public\n */\nexport type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers & /* @conditional-compile-remove(file-sharing) */\nFileUploadAdapter;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageReceived' event.\n *\n * @public\n */\nexport type MessageReceivedListener = (event: {\n message: ChatMessage;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageSent' event.\n *\n * @public\n */\nexport type MessageSentListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageRead' event.\n *\n * @public\n */\nexport type MessageReadListener = (event: {\n message: ChatMessage;\n readBy: CommunicationUserKind;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsAdded' event.\n *\n * @public\n */\nexport type ParticipantsAddedListener = (event: {\n participantsAdded: ChatParticipant[];\n addedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsRemoved' event.\n *\n * @public\n */\nexport type ParticipantsRemovedListener = (event: {\n participantsRemoved: ChatParticipant[];\n removedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'topicChanged' event.\n *\n * @public\n */\nexport type TopicChangedListener = (event: {\n topic: string;\n}) => void;\"../../../../../chat-stateful-client/src\"\"../../../../../react-components/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatAdapterProvider.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAazD,MAAM,kBAAkB,GAAG,aAAa,CAA0B,SAAS,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAAe,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,OAAO,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAAG,KAAK,CAAC,QAAQ,CAA+B,CAAC;AACrG,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAgB,EAAE;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,qDAAqD,CAAC;KAC7D;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAsB,EAAE;IAC1D,+CAA+C;IAC/C,OAAO,UAAU,EAAE,CAAC;IACpB,iFAAiF;IACjF,OAAO;QACL,yBAAyB;YACvB,OAAO,EAAyB,CAAC;QACnC,CAAC;QACD,4BAA4B;YAC1B,OAAO,EAAyB,CAAC;QACnC,CAAC;QACD,gBAAgB;YACd,OAAO;QACT,CAAC;QACD,gBAAgB;YACd,OAAO;QACT,CAAC;QACD,4BAA4B;YAC1B,OAAO;QACT,CAAC;QACD,wBAAwB;YACtB,OAAO;QACT,CAAC;QACD,wBAAwB;YACtB,OAAO;QACT,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { createContext, useContext } from 'react';\nimport { FileUploadManager } from '../file-sharing';\nimport { FileUploadAdapter } from './AzureCommunicationFileUploadAdapter';\nimport { ChatAdapter } from './ChatAdapter';\n\n/**\n * @private\n */\ntype ChatProviderProps = {\n children: React.ReactNode;\n adapter: ChatAdapter;\n};\n\nconst ChatAdapterContext = createContext<ChatAdapter | undefined>(undefined);\n\n/**\n * @private\n */\nexport const ChatAdapterProvider = (props: ChatProviderProps): JSX.Element => {\n const { adapter } = props;\n return <ChatAdapterContext.Provider value={adapter}>{props.children}</ChatAdapterContext.Provider>;\n};\n\n/**\n * @private\n */\nexport const useAdapter = (): ChatAdapter => {\n const adapter = useContext(ChatAdapterContext);\n if (!adapter) {\n throw 'Cannot find adapter please initialize before usage.';\n }\n return adapter;\n};\n\n/**\n * @private\n */\nexport const useFileUploadAdapter = (): FileUploadAdapter => {\n /* @conditional-compile-remove(file-sharing) */\n return useAdapter();\n // A stub that short-circuits all logic because none of the fields are available.\n return {\n registerActiveFileUploads() {\n return [] as FileUploadManager[];\n },\n registerCompletedFileUploads() {\n return [] as FileUploadManager[];\n },\n cancelFileUpload() {\n // noop\n },\n clearFileUploads() {\n // noop\n },\n updateFileUploadErrorMessage() {\n // noop\n },\n updateFileUploadProgress() {\n // noop\n },\n updateFileUploadMetadata() {\n // noop\n }\n };\n};\n"]}
1
+ {"version":3,"file":"ChatAdapterProvider.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAYzD,MAAM,kBAAkB,GAAG,aAAa,CAA0B,SAAS,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAAe,EAAE;IAC3E,MAAM,EACJ,OAAO,EACR,GAAG,KAAK,CAAC;IACV,OAAO,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAAG,KAAK,CAAC,QAAQ,CAA+B,CAAC;AACrG,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAgB,EAAE;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,qDAAqD,CAAC;KAC7D;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAsB,EAAE;IAC1D,+CAA+C;IAC/C,OAAO,UAAU,EAAE,CAAC;IACpB,iFAAiF;IACjF,OAAO;QACL,yBAAyB;YACvB,OAAQ,EAA0B,CAAC;QACrC,CAAC;QACD,4BAA4B;YAC1B,OAAQ,EAA0B,CAAC;QACrC,CAAC;QACD,gBAAgB;YACd,OAAO;QACT,CAAC;QACD,gBAAgB;YACd,OAAO;QACT,CAAC;QACD,4BAA4B;YAC1B,OAAO;QACT,CAAC;QACD,wBAAwB;YACtB,OAAO;QACT,CAAC;QACD,wBAAwB;YACtB,OAAO;QACT,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { createContext, useContext } from 'react';\nimport { FileUploadManager } from '../file-sharing';\nimport { FileUploadAdapter } from './AzureCommunicationFileUploadAdapter';\nimport { ChatAdapter } from './ChatAdapter';\n\n/**\n * @private\n */\ntype ChatProviderProps = {\n children: React.ReactNode;\n adapter: ChatAdapter;\n};\nconst ChatAdapterContext = createContext<ChatAdapter | undefined>(undefined);\n\n/**\n * @private\n */\nexport const ChatAdapterProvider = (props: ChatProviderProps): JSX.Element => {\n const {\n adapter\n } = props;\n return <ChatAdapterContext.Provider value={adapter}>{props.children}</ChatAdapterContext.Provider>;\n};\n\n/**\n * @private\n */\nexport const useAdapter = (): ChatAdapter => {\n const adapter = useContext(ChatAdapterContext);\n if (!adapter) {\n throw 'Cannot find adapter please initialize before usage.';\n }\n return adapter;\n};\n\n/**\n * @private\n */\nexport const useFileUploadAdapter = (): FileUploadAdapter => {\n /* @conditional-compile-remove(file-sharing) */\n return useAdapter();\n // A stub that short-circuits all logic because none of the fields are available.\n return {\n registerActiveFileUploads() {\n return ([] as FileUploadManager[]);\n },\n registerCompletedFileUploads() {\n return ([] as FileUploadManager[]);\n },\n cancelFileUpload() {\n // noop\n },\n clearFileUploads() {\n // noop\n },\n updateFileUploadErrorMessage() {\n // noop\n },\n updateFileUploadProgress() {\n // noop\n },\n updateFileUploadMetadata() {\n // noop\n }\n };\n};"]}