@azure/communication-react 1.10.0-beta.1 → 1.10.1-alpha-202311110012

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 (936) hide show
  1. package/dist/communication-react.d.ts +149 -22
  2. package/dist/dist-cjs/communication-react/index.js +5043 -4172
  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.d.ts +7 -0
  7. package/dist/dist-esm/acs-ui-common/src/common.js +9 -0
  8. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/identifier.js +4 -1
  13. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/index.js +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  18. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  20. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  21. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  22. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  23. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +4 -0
  25. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +9 -0
  26. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +43 -11
  28. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +12 -5
  30. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +20 -55
  32. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +35 -41
  34. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +2 -2
  36. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +4 -2
  39. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  40. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +2 -6
  41. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +46 -12
  48. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  50. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js +6 -3
  52. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  53. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  55. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  56. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +6 -1
  57. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +26 -6
  58. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  59. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +3 -1
  60. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  61. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +2 -1
  62. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +36 -14
  63. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  64. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +46 -8
  65. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +1 -1
  68. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  69. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +65 -75
  70. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +6 -2
  72. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  73. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +18 -13
  75. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +7 -8
  77. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +74 -85
  79. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  81. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +10 -7
  83. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  84. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
  85. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/Converter.js +12 -12
  87. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  88. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +51 -57
  89. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  90. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +14 -16
  91. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  92. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  93. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +3 -15
  94. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  95. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  97. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +1 -3
  98. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  100. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  101. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  102. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  103. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +65 -67
  104. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  105. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +33 -31
  106. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +8 -11
  108. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  109. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +1 -1
  110. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +7 -8
  112. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  113. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  114. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  115. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +3 -3
  116. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  117. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +6 -7
  118. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  119. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  120. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  121. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js +4 -4
  122. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  123. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +3 -3
  124. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  125. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js +13 -14
  126. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  127. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +2 -1
  128. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +5 -12
  129. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  130. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  131. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  132. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  133. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  134. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +33 -15
  135. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  136. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  137. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js +1 -1
  138. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  139. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  140. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +3 -7
  141. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  142. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js +3 -1
  143. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  144. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  145. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +10 -3
  146. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  147. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  148. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +5 -9
  149. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  150. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  151. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +7 -10
  152. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  153. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  154. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js +57 -67
  155. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  156. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +114 -128
  157. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  158. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +3 -1
  159. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  160. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  161. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  162. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  163. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  164. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  165. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  166. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  167. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  168. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +3 -6
  170. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +4 -10
  174. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +1 -1
  176. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +1 -1
  178. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/CameraButton.js +8 -19
  181. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/Caption.js +2 -2
  183. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +9 -8
  185. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +44 -22
  187. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +2 -2
  189. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +9 -6
  190. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +38 -23
  192. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +1 -1
  194. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +18 -10
  195. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +31 -39
  197. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +1 -1
  199. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +73 -35
  200. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +1 -1
  202. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +46 -33
  203. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +18 -18
  206. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  207. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +7 -4
  208. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +2 -2
  210. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  211. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/components/ControlBar.js +10 -14
  215. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts +6 -0
  217. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +14 -4
  218. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  219. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +3 -14
  220. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +4 -10
  222. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  223. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +14 -31
  224. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  225. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +5 -8
  226. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  227. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +24 -6
  228. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  229. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +12 -20
  230. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  231. package/dist/dist-esm/react-components/src/components/DevicesButton.js +19 -27
  232. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  233. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +36 -44
  234. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  235. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +4 -4
  236. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  237. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js +2 -6
  238. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +6 -6
  240. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +11 -23
  242. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  243. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +6 -4
  244. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  245. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/components/EndCallButton.js +3 -7
  247. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/components/ErrorBar.js +9 -5
  249. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  250. package/dist/dist-esm/react-components/src/components/FileCard.js +2 -3
  251. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  252. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +1 -1
  253. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  254. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +2 -0
  255. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +19 -17
  256. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  257. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +8 -7
  258. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  259. package/dist/dist-esm/react-components/src/components/GridLayout.js +37 -37
  260. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
  262. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/HoldButton.js +1 -1
  264. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  265. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +7 -9
  266. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  267. package/dist/dist-esm/react-components/src/components/ImageGallery.js +10 -13
  268. package/dist/dist-esm/react-components/src/components/ImageGallery.js.map +1 -1
  269. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +8 -17
  270. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js +3 -5
  272. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  273. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +29 -10
  274. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  275. package/dist/dist-esm/react-components/src/components/MentionPopover.js +19 -11
  276. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  277. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +23 -36
  278. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  279. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -2
  280. package/dist/dist-esm/react-components/src/components/MessageThread.js +185 -104
  281. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  282. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +17 -14
  283. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  284. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +94 -101
  285. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +15 -18
  287. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/components/ParticipantList.js +59 -32
  289. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +46 -32
  291. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  292. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js +3 -3
  293. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  294. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js +3 -3
  295. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js +6 -12
  297. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  298. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +48 -16
  299. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  300. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +2 -2
  301. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  302. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +2 -2
  303. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  304. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +6 -14
  305. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  306. package/dist/dist-esm/react-components/src/components/SendBox.js +17 -19
  307. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  308. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +2 -2
  309. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  310. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  311. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +2 -4
  312. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  313. package/dist/dist-esm/react-components/src/components/StreamMedia.js +3 -3
  314. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  315. package/dist/dist-esm/react-components/src/components/SystemMessage.js +2 -4
  316. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  317. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +70 -32
  318. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  319. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +52 -46
  320. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  321. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +10 -10
  322. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  323. package/dist/dist-esm/react-components/src/components/TypingIndicator.js +9 -6
  324. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  325. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +1 -1
  326. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  327. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +1 -1
  328. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  329. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +4 -8
  330. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  331. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +1 -1
  332. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +19 -34
  334. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  335. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +3 -1
  336. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  337. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +8 -12
  338. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  339. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +13 -17
  340. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  341. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +6 -2
  342. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  343. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +38 -16
  344. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  345. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +14 -10
  346. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  347. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +63 -25
  348. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  349. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js +2 -2
  350. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js.map +1 -1
  351. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.d.ts +17 -0
  352. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +127 -0
  353. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -0
  354. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  355. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +7 -7
  356. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +1 -0
  358. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +31 -8
  359. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  360. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +8 -6
  361. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +2 -2
  363. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +4 -12
  364. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  365. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +58 -20
  366. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
  367. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +1 -6
  368. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  369. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +7 -32
  370. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  371. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +2 -11
  372. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  373. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  375. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  376. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -1
  377. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.d.ts +2 -2
  378. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +7 -14
  379. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  380. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +10 -11
  381. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  382. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +22 -28
  383. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +10 -5
  385. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  386. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +19 -32
  387. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  388. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  389. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +54 -26
  390. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  391. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +1 -1
  392. package/dist/dist-esm/react-components/src/components/VideoGallery.js +121 -36
  393. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/VideoTile.js +34 -55
  395. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  396. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js +2 -2
  397. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  398. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  400. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  401. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  402. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +1 -5
  403. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  404. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  405. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  406. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  407. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  409. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  410. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  411. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +1 -4
  412. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +1 -1
  413. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +1 -4
  414. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  415. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  417. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +2 -8
  418. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  419. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +0 -1
  420. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  421. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  422. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +2 -10
  423. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  424. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  425. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +0 -3
  426. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  427. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  428. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +0 -1
  429. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  430. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  431. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  432. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +0 -1
  433. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  434. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +3 -17
  435. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  436. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  437. package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/components/utils/Datetime.js +1 -4
  439. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  440. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  441. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  442. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  443. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +4 -7
  444. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  445. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  446. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  447. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  448. package/dist/dist-esm/react-components/src/components/utils/responsive.js +2 -2
  449. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  450. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +10 -1
  451. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  452. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +1 -3
  453. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  454. package/dist/dist-esm/react-components/src/components/utils.js +13 -10
  455. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  456. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +8 -6
  457. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  458. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  459. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  460. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  461. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  462. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +2 -0
  463. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  464. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  465. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js +1 -3
  466. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js.map +1 -1
  467. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +3 -2
  468. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js +1 -3
  469. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js.map +1 -1
  470. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +3 -2
  471. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js +1 -3
  472. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js.map +1 -1
  473. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +3 -2
  474. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js +1 -3
  475. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js.map +1 -1
  476. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +3 -2
  477. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -1
  478. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js +1 -3
  479. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js.map +1 -1
  480. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +3 -2
  481. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js +1 -3
  482. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js.map +1 -1
  483. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +3 -2
  484. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js +1 -3
  485. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js.map +1 -1
  486. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +3 -2
  487. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js +1 -3
  488. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js.map +1 -1
  489. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +3 -2
  490. package/dist/dist-esm/react-components/src/localization/locales/index.js +1 -3
  491. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  492. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js +1 -3
  493. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js.map +1 -1
  494. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +3 -2
  495. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js +1 -3
  496. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js.map +1 -1
  497. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +3 -2
  498. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js +1 -3
  499. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js.map +1 -1
  500. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +3 -2
  501. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js +1 -3
  502. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js.map +1 -1
  503. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +3 -2
  504. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js +1 -3
  505. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js.map +1 -1
  506. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +3 -2
  507. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js +1 -3
  508. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js.map +1 -1
  509. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +3 -2
  510. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js +1 -3
  511. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js.map +1 -1
  512. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +3 -2
  513. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js +1 -3
  514. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js.map +1 -1
  515. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +3 -2
  516. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js +1 -3
  517. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js.map +1 -1
  518. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +3 -2
  519. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js +1 -3
  520. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js.map +1 -1
  521. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +3 -2
  522. package/dist/dist-esm/react-components/src/localization/locales/utils.js.map +1 -1
  523. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js +1 -3
  524. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js.map +1 -1
  525. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +3 -2
  526. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js +1 -3
  527. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js.map +1 -1
  528. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +3 -2
  529. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +3 -5
  530. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  531. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +1 -1
  532. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
  533. package/dist/dist-esm/react-components/src/theming/icons.js +20 -26
  534. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  535. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  536. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  537. package/dist/dist-esm/react-components/src/theming/themeDuplicates.js.map +1 -1
  538. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  539. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  540. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -7
  541. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  542. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  543. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  544. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  545. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  546. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  547. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  548. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  549. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  550. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  551. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  552. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  553. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +35 -0
  554. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +61 -48
  555. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  556. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  557. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  558. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +12 -1
  559. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +129 -64
  560. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  561. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +32 -0
  562. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +9 -1
  563. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  564. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  565. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.d.ts +18 -0
  566. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +46 -0
  567. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -0
  568. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  569. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +1 -3
  570. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  571. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  572. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +1 -1
  573. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +11 -5
  574. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  575. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  576. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  577. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  578. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +88 -39
  579. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  580. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +44 -70
  581. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +133 -141
  583. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  584. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +10 -18
  585. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  586. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +1 -7
  587. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  588. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +1 -1
  589. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  590. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +1 -7
  591. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  592. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +5 -4
  593. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  594. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +4 -4
  595. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  596. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +2 -2
  597. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  598. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +34 -23
  599. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  600. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +36 -25
  601. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +25 -34
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +49 -35
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js +2 -2
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +2 -2
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +29 -11
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +3 -7
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +13 -8
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts +1 -0
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +1 -1
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +1 -0
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +9 -3
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +19 -11
  624. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  625. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +5 -2
  626. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -0
  628. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +14 -7
  629. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +5 -2
  631. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js +1 -1
  635. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +3 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  638. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +8 -8
  639. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +10 -4
  641. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js +1 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  646. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
  648. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +20 -11
  649. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  650. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +8 -0
  651. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +95 -42
  652. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  653. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +13 -7
  654. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  655. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +15 -7
  656. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  657. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  658. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  659. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +23 -23
  660. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  661. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +3 -3
  662. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  663. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +12 -10
  664. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js +1 -1
  665. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  666. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +8 -6
  667. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +2 -1
  668. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  669. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  670. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +11 -9
  671. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  672. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +11 -9
  673. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +1 -4
  674. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -1
  675. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +11 -9
  676. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  677. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +11 -9
  678. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js.map +1 -1
  679. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +12 -10
  680. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js +1 -1
  681. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  682. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +8 -6
  683. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +7 -5
  684. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  685. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +13 -11
  686. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js +1 -1
  687. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  688. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +19 -17
  689. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +7 -1
  690. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  691. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +12 -10
  692. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +4 -4
  693. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  694. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +6 -4
  695. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +1 -1
  696. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  697. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +26 -22
  698. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +4 -4
  699. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  700. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +12 -10
  701. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js +1 -1
  702. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  703. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +15 -13
  704. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  705. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +1 -1
  706. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  707. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +2 -6
  708. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  709. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts +18 -8
  710. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +95 -27
  711. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  712. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  713. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  714. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +1 -4
  715. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  716. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  717. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +1 -4
  718. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  719. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.d.ts +1 -1
  720. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js +13 -10
  721. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  722. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.d.ts +2 -1
  723. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +3 -3
  724. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  725. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  726. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  727. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +0 -1
  728. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  729. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +6 -24
  730. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  731. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +2 -10
  732. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  733. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +1 -1
  734. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  735. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +9 -11
  736. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  737. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +10 -10
  738. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  739. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js +2 -2
  740. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  741. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -2
  742. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +35 -22
  743. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  744. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  745. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +34 -0
  746. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +84 -27
  747. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  748. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js +1 -1
  749. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  750. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js +9 -7
  751. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  752. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +3 -6
  753. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  754. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  755. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  756. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +4 -2
  757. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +45 -9
  758. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  759. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -1
  760. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  761. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  762. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -1
  763. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  764. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +1 -1
  765. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  766. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  767. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  768. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js +1 -1
  769. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  770. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -0
  771. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +4 -1
  772. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  773. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  774. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +2 -2
  775. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  776. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js +3 -5
  777. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  778. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +41 -32
  779. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  780. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +1 -1
  781. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  782. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js +3 -5
  783. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  784. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  785. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +3 -3
  786. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +50 -42
  787. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  788. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +15 -20
  789. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  790. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +3 -3
  791. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  792. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  793. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  794. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +11 -6
  795. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  796. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  797. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  798. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js +3 -5
  799. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  800. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +10 -2
  801. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  802. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  803. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +1 -1
  804. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  805. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  806. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  807. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +8 -8
  808. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +3 -5
  809. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  810. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +2 -6
  811. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  812. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +9 -9
  813. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  814. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +23 -25
  815. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  816. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  817. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +8 -3
  818. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  819. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +5 -14
  820. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  821. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +9 -23
  822. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  823. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  824. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +6 -8
  825. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  826. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +12 -16
  827. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  828. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +1 -1
  829. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  830. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js +1 -5
  831. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  832. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +63 -41
  833. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  834. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +36 -35
  835. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  836. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +104 -69
  837. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  838. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +1 -1
  839. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  840. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  841. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js +5 -7
  842. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js.map +1 -1
  843. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +85 -113
  844. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  845. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  846. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  847. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  848. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +1 -1
  849. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -1
  850. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts +11 -0
  851. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +40 -12
  852. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  853. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  854. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  855. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +11 -14
  856. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  857. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +19 -8
  858. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  859. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +7 -15
  860. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  861. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  862. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +7 -15
  863. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  864. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +10 -8
  865. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  866. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +16 -11
  867. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  868. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  869. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  870. package/dist/dist-esm/react-composites/src/composites/common/icons.js +3 -3
  871. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  872. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  873. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  874. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  875. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  876. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +13 -12
  877. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  878. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +12 -51
  879. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  880. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +6 -29
  881. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  882. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +4 -22
  883. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  884. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +0 -10
  885. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  886. package/dist/dist-esm/react-composites/src/composites/common/utils.js +17 -12
  887. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  888. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  889. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js +2 -2
  890. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  891. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  892. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -1
  893. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +6 -5
  894. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -1
  895. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +6 -5
  896. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -1
  897. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +6 -5
  898. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -1
  899. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +6 -5
  900. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  901. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -1
  902. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +6 -5
  903. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -1
  904. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +6 -5
  905. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -1
  906. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +6 -5
  907. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -1
  908. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +6 -5
  909. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  910. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -1
  911. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +6 -5
  912. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -1
  913. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +6 -5
  914. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -1
  915. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +6 -5
  916. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -1
  917. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +6 -5
  918. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -1
  919. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +6 -5
  920. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -1
  921. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +6 -5
  922. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -1
  923. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +6 -5
  924. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -1
  925. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +6 -5
  926. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -1
  927. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +6 -5
  928. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -1
  929. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +6 -5
  930. package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js.map +1 -1
  931. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -1
  932. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +6 -5
  933. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -1
  934. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +6 -5
  935. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  936. package/package.json +2 -2
@@ -32,22 +32,17 @@ export const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClien
32
32
  };
33
33
  yield chatThreadClient.sendMessage(sendMessageRequest, options);
34
34
  }),
35
- onUpdateMessage: (messageId, content, metadata, options) => __awaiter(void 0, void 0, void 0, function* () {
36
- const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
35
+ onUpdateMessage: (messageId, content, options) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const updatedMetadata = (options === null || options === void 0 ? void 0 : options.metadata) ? Object.assign({}, options.metadata) : {};
37
37
  updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
38
- yield chatThreadClient.updateMessage(messageId, {
39
- content,
40
- metadata: updatedMetadata
41
- });
38
+ yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
42
39
  }),
43
40
  onDeleteMessage: (messageId) => __awaiter(void 0, void 0, void 0, function* () {
44
41
  yield chatThreadClient.deleteMessage(messageId);
45
42
  }),
46
43
  // This handler is designed for chatThread to consume
47
44
  onMessageSeen: (chatMessageId) => __awaiter(void 0, void 0, void 0, function* () {
48
- yield chatThreadClient.sendReadReceipt({
49
- chatMessageId
50
- });
45
+ yield chatThreadClient.sendReadReceipt({ chatMessageId });
51
46
  }),
52
47
  onTyping: () => __awaiter(void 0, void 0, void 0, function* () {
53
48
  yield chatThreadClient.sendTypingNotification();
@@ -63,9 +58,7 @@ export const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClien
63
58
  if (messageIterator === undefined) {
64
59
  // Lazy definition so that errors in the method call are reported correctly.
65
60
  // Also allows recovery via retries in case of transient errors.
66
- messageIterator = chatThreadClient.listMessages({
67
- maxPageSize: 50
68
- });
61
+ messageIterator = chatThreadClient.listMessages({ maxPageSize: 50 });
69
62
  }
70
63
  if (readReceiptIterator === undefined) {
71
64
  readReceiptIterator = chatThreadClient.listReadReceipts();
@@ -1 +1 @@
1
- {"version":3,"file":"createHandlers.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/handlers/createHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PagedAsyncIterableIterator } from '@azure/core-paging';\nimport { ReactElement } from 'react';\nimport { Common, fromFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatMessage, ChatMessageReadReceipt, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport memoizeOne from 'memoize-one';\nimport { FileMetadata } from '@internal/react-components';\n\n/**\n * Object containing all the handlers required for chat components.\n *\n * Chat related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport type ChatHandlers = {\n onSendMessage: (content: string, options?: SendMessageOptions) => Promise<void>;\n onMessageSeen: (chatMessageId: string) => Promise<void>;\n onTyping: () => Promise<void>;\n onRemoveParticipant: (userId: string) => Promise<void>;\n updateThreadTopicName: (topicName: string) => Promise<void>;\n onLoadPreviousChatMessages: (messagesToLoad: number) => Promise<boolean>;\n onUpdateMessage: (messageId: string, content: string, /* @conditional-compile-remove(file-sharing) */\n metadata?: Record<string, string>, /* @conditional-compile-remove(file-sharing) */\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }) => Promise<void>;\n onDeleteMessage: (messageId: string) => Promise<void>;\n};\n\n/**\n * Create the default implementation of {@link ChatHandlers}.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * Returned object is memoized to avoid rerenders when used as props for React Components.\n *\n * @public\n */\nexport const createDefaultChatHandlers = memoizeOne((chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient): ChatHandlers => {\n let messageIterator: PagedAsyncIterableIterator<ChatMessage> | undefined = undefined;\n let readReceiptIterator: PagedAsyncIterableIterator<ChatMessageReadReceipt> | undefined = undefined;\n return {\n onSendMessage: async (content: string, options?: SendMessageOptions) => {\n const sendMessageRequest = {\n content,\n senderDisplayName: chatClient.getState().displayName\n };\n await chatThreadClient.sendMessage(sendMessageRequest, options);\n },\n onUpdateMessage: async (messageId: string, content: string, metadata?: Record<string, string>, options?: {\n attachedFilesMetadata?: FileMetadata[];\n }) => {\n const updatedMetadata = metadata ? {\n ...metadata\n } : {};\n updatedMetadata['fileSharingMetadata'] = JSON.stringify(options?.attachedFilesMetadata || []);\n await chatThreadClient.updateMessage(messageId, {\n content,\n metadata: updatedMetadata\n });\n },\n onDeleteMessage: async (messageId: string) => {\n await chatThreadClient.deleteMessage(messageId);\n },\n // This handler is designed for chatThread to consume\n onMessageSeen: async (chatMessageId: string) => {\n await chatThreadClient.sendReadReceipt({\n chatMessageId\n });\n },\n onTyping: async () => {\n await chatThreadClient.sendTypingNotification();\n },\n onRemoveParticipant: async (userId: string) => {\n await chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));\n },\n updateThreadTopicName: async (topicName: string) => {\n await chatThreadClient.updateTopic(topicName);\n },\n onLoadPreviousChatMessages: async (messagesToLoad: number) => {\n if (messageIterator === undefined) {\n // Lazy definition so that errors in the method call are reported correctly.\n // Also allows recovery via retries in case of transient errors.\n messageIterator = chatThreadClient.listMessages({\n maxPageSize: 50\n });\n }\n if (readReceiptIterator === undefined) {\n readReceiptIterator = chatThreadClient.listReadReceipts();\n }\n // get the earliest message time\n let remainingMessagesToGet = messagesToLoad;\n let isAllChatMessagesLoaded = false;\n let earliestTime = Number.MAX_SAFE_INTEGER;\n while (remainingMessagesToGet >= 1) {\n const message = await messageIterator.next();\n if (message?.value?.id) {\n if (parseInt(message.value.id) < earliestTime) {\n earliestTime = parseInt(message.value.id);\n }\n }\n if (message.value?.type && message.value.type === 'text') {\n remainingMessagesToGet--;\n }\n\n // We have traversed all messages in this thread\n if (message.done) {\n isAllChatMessagesLoaded = true;\n break;\n }\n }\n // keep fetching read receipts until read receipt time < earlist message time\n let readReceipt = await readReceiptIterator.next();\n while (!readReceipt.done && parseInt(readReceipt?.value?.chatMessageId) >= earliestTime) {\n readReceipt = await readReceiptIterator.next();\n }\n return isAllChatMessagesLoaded;\n }\n };\n});\n\n/**\n * Create a set of default handlers for given component.\n *\n * Returned object is memoized (with reference to the arguments) to avoid\n * renders when used as props for React Components.\n *\n * @public\n */\nexport const createDefaultChatHandlersForComponent = <Props,>(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, _: (props: Props) => ReactElement | null): Common<ChatHandlers, Props> => {\n return createDefaultChatHandlers(chatClient, chatThreadClient);\n};\"../../../acs-ui-common/src\"\"../../../chat-stateful-client/src\"\"../../../react-components/src\""]}
1
+ {"version":3,"file":"createHandlers.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/handlers/createHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PagedAsyncIterableIterator } from '@azure/core-paging';\nimport { ReactElement } from 'react';\nimport { Common, fromFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatMessage, ChatMessageReadReceipt, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport memoizeOne from 'memoize-one';\nimport { FileMetadata } from '@internal/react-components';\n\n/**\n * Object containing all the handlers required for chat components.\n *\n * Chat related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport type ChatHandlers = {\n onSendMessage: (content: string, options?: SendMessageOptions) => Promise<void>;\n onMessageSeen: (chatMessageId: string) => Promise<void>;\n onTyping: () => Promise<void>;\n onRemoveParticipant: (userId: string) => Promise<void>;\n updateThreadTopicName: (topicName: string) => Promise<void>;\n onLoadPreviousChatMessages: (messagesToLoad: number) => Promise<boolean>;\n onUpdateMessage: (\n messageId: string,\n content: string,\n /* @conditional-compile-remove(file-sharing) */\n options?: {\n /* @conditional-compile-remove(file-sharing) */\n metadata?: Record<string, string>;\n attachedFilesMetadata?: FileMetadata[];\n }\n ) => Promise<void>;\n onDeleteMessage: (messageId: string) => Promise<void>;\n};\n\n/**\n * Create the default implementation of {@link ChatHandlers}.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * Returned object is memoized to avoid rerenders when used as props for React Components.\n *\n * @public\n */\nexport const createDefaultChatHandlers = memoizeOne(\n (chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient): ChatHandlers => {\n let messageIterator: PagedAsyncIterableIterator<ChatMessage> | undefined = undefined;\n let readReceiptIterator: PagedAsyncIterableIterator<ChatMessageReadReceipt> | undefined = undefined;\n return {\n onSendMessage: async (content: string, options?: SendMessageOptions) => {\n const sendMessageRequest = {\n content,\n senderDisplayName: chatClient.getState().displayName\n };\n await chatThreadClient.sendMessage(sendMessageRequest, options);\n },\n onUpdateMessage: async (\n messageId: string,\n content: string,\n options?: {\n metadata?: Record<string, string>;\n attachedFilesMetadata?: FileMetadata[];\n }\n ) => {\n const updatedMetadata = options?.metadata ? { ...options.metadata } : {};\n updatedMetadata['fileSharingMetadata'] = JSON.stringify(options?.attachedFilesMetadata || []);\n await chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });\n },\n onDeleteMessage: async (messageId: string) => {\n await chatThreadClient.deleteMessage(messageId);\n },\n // This handler is designed for chatThread to consume\n onMessageSeen: async (chatMessageId: string) => {\n await chatThreadClient.sendReadReceipt({ chatMessageId });\n },\n onTyping: async () => {\n await chatThreadClient.sendTypingNotification();\n },\n onRemoveParticipant: async (userId: string) => {\n await chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));\n },\n updateThreadTopicName: async (topicName: string) => {\n await chatThreadClient.updateTopic(topicName);\n },\n onLoadPreviousChatMessages: async (messagesToLoad: number) => {\n if (messageIterator === undefined) {\n // Lazy definition so that errors in the method call are reported correctly.\n // Also allows recovery via retries in case of transient errors.\n messageIterator = chatThreadClient.listMessages({ maxPageSize: 50 });\n }\n if (readReceiptIterator === undefined) {\n readReceiptIterator = chatThreadClient.listReadReceipts();\n }\n // get the earliest message time\n let remainingMessagesToGet = messagesToLoad;\n let isAllChatMessagesLoaded = false;\n let earliestTime = Number.MAX_SAFE_INTEGER;\n while (remainingMessagesToGet >= 1) {\n const message = await messageIterator.next();\n if (message?.value?.id) {\n if (parseInt(message.value.id) < earliestTime) {\n earliestTime = parseInt(message.value.id);\n }\n }\n\n if (message.value?.type && message.value.type === 'text') {\n remainingMessagesToGet--;\n }\n\n // We have traversed all messages in this thread\n if (message.done) {\n isAllChatMessagesLoaded = true;\n break;\n }\n }\n // keep fetching read receipts until read receipt time < earlist message time\n let readReceipt = await readReceiptIterator.next();\n while (!readReceipt.done && parseInt(readReceipt?.value?.chatMessageId) >= earliestTime) {\n readReceipt = await readReceiptIterator.next();\n }\n\n return isAllChatMessagesLoaded;\n }\n };\n }\n);\n\n/**\n * Create a set of default handlers for given component.\n *\n * Returned object is memoized (with reference to the arguments) to avoid\n * renders when used as props for React Components.\n *\n * @public\n */\nexport const createDefaultChatHandlersForComponent = <Props>(\n chatClient: StatefulChatClient,\n chatThreadClient: ChatThreadClient,\n _: (props: Props) => ReactElement | null\n): Common<ChatHandlers, Props> => {\n return createDefaultChatHandlers(chatClient, chatThreadClient);\n};\n\"../../../acs-ui-common/src\"\"../../../chat-stateful-client/src\"\"../../../react-components/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAgB,UAAU,EAAE,MAAM,OAAO,CAAC;AAIjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAU,SAAiD,EAA4C,EAAE;IAClI,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,qCAAqC,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACxF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createDefaultChatHandlersForComponent } from '../handlers/createHandlers';\nimport { ChatClientContext } from '../providers/ChatClientProvider';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\nimport { ReactElement, useContext } from 'react';\nimport { Common } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '../handlers/createHandlers';\n\n/**\n * Hook to obtain a handler for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useHandlers = <PropsT,>(component: (props: PropsT) => ReactElement | null): Common<ChatHandlers, PropsT> | undefined => {\n const chatClient = useContext(ChatClientContext);\n const chatThreadClient = useContext(ChatThreadClientContext);\n if (!chatThreadClient || !chatClient) {\n return undefined;\n }\n return createDefaultChatHandlersForComponent(chatClient, chatThreadClient, component);\n};\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAgB,UAAU,EAAE,MAAM,OAAO,CAAC;AAIjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAiD,EACP,EAAE;IAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,qCAAqC,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACxF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createDefaultChatHandlersForComponent } from '../handlers/createHandlers';\nimport { ChatClientContext } from '../providers/ChatClientProvider';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\nimport { ReactElement, useContext } from 'react';\nimport { Common } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '../handlers/createHandlers';\n\n/**\n * Hook to obtain a handler for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useHandlers = <PropsT>(\n component: (props: PropsT) => ReactElement | null\n): Common<ChatHandlers, PropsT> | undefined => {\n const chatClient = useContext(ChatClientContext);\n const chatThreadClient = useContext(ChatThreadClientContext);\n if (!chatThreadClient || !chatClient) {\n return undefined;\n }\n\n return createDefaultChatHandlersForComponent(chatClient, chatThreadClient, component);\n};\n\"../../../acs-ui-common/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePropsFor.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/hooks/usePropsFor.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAmB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAyB,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAA2B,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG9F,OAAO,EAA+B,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC1G,OAAO,EAAoB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAiD,SAAoB,EAAwJ,EAAE;IACxP,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,WAAW,CAA2B,SAAS,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAQ,gCACH,KAAK,GACL,QAAQ,CACJ,CAAC;KACX;IACD,OAAQ,SAAiB,CAAC;AAC5B,CAAC,CAAC;AASF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAA6D,SAAoB,EAA0B,EAAE;IACtI,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC;AACF,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAG,CAAC,SAAkD,EAAO,EAAE;IAC/E,8EAA8E;IAC9E,8FAA8F;IAC9F,yBAAyB;IACzB,MAAM,wBAAwB,GAAgC,GAAG,EAAE;;QACjE,MAAM,QAAQ,GAAG,MAAA,MAAA,UAAU,CAAC,uBAAuB,CAAC,0CAAE,QAAQ,mCAAI,iCAAiC,CAAC;QACpG,IAAI,yBAAyB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,yBAAyB,EAAE;YAC9B,8BAA8B,CAAC,QAAQ,CAAC,GAAG,+BAA+B,EAAE,CAAC;YAC7E,yBAAyB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;SACtE;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC,CAAC;IACF,QAAQ,SAAS,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,eAAe,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,wBAAwB,EAAE,CAAC;QACpC,KAAK,eAAe;YAClB,OAAO,uBAAuB,CAAC;QACjC,KAAK,eAAe;YAClB,OAAO,2BAA2B,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC;KAC3B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ErrorBar, MessageThread, ParticipantList, SendBox, TypingIndicator } from '@internal/react-components';\nimport { useHandlers } from './useHandlers';\nimport { useSelector } from './useSelector';\nimport { SendBoxSelector, sendBoxSelector } from '../sendBoxSelector';\nimport { MessageThreadSelector, messageThreadSelectorWithThread } from '../messageThreadSelector';\nimport { TypingIndicatorSelector, typingIndicatorSelector } from '../typingIndicatorSelector';\nimport { Common, AreEqual } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '../handlers/createHandlers';\nimport { ChatParticipantListSelector, chatParticipantListSelector } from '../chatParticipantListSelector';\nimport { ErrorBarSelector, errorBarSelector } from '../errorBarSelector';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\nimport { useContext } from 'react';\n\n/**\n * Primary hook to get all hooks necessary for a chat Component.\n *\n * Most straightforward usage of chat components looks like:\n *\n * @example\n * ```\n * import { ParticipantList, usePropsFor } from '@azure/communication-react';\n *\n * const App = (): JSX.Element => {\n * // ... code to setup Providers ...\n *\n * return <ParticipantList {...usePropsFor(ParticipantList)}/>\n * }\n * ```\n *\n * @public\n */\nexport const usePropsFor = <Component extends (props: any) => JSX.Element,>(component: Component): GetSelector<Component> extends (props: any) => any ? ReturnType<GetSelector<Component>> & Common<ChatHandlers, Parameters<Component>[0]> : undefined => {\n const selector = getSelector(component);\n const props = useSelector(selector);\n const handlers = useHandlers<Parameters<Component>[0]>(component);\n if (props !== undefined) {\n return ({\n ...props,\n ...handlers\n } as any);\n }\n return (undefined as any);\n};\n\n/**\n * Specific type of the selector applicable to a given Component.\n *\n * @public\n */\nexport type GetSelector<Component extends (props: any) => JSX.Element | undefined> = AreEqual<Component, typeof SendBox> extends true ? SendBoxSelector : AreEqual<Component, typeof MessageThread> extends true ? MessageThreadSelector : AreEqual<Component, typeof TypingIndicator> extends true ? TypingIndicatorSelector : AreEqual<Component, typeof ParticipantList> extends true ? ChatParticipantListSelector : AreEqual<Component, typeof ErrorBar> extends true ? ErrorBarSelector : undefined;\n\n/**\n * Get the selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const getSelector = <Component extends (props: any) => JSX.Element | undefined,>(component: Component): GetSelector<Component> => {\n return findSelector(component);\n};\nconst messageThreadSelectorsByThread = {};\nconst findSelector = (component: (props: any) => JSX.Element | undefined): any => {\n // For the message thread selector we need to create a new one for each thread\n // If we have just one for the entire app, then we will have updates when not expecting due to\n // the arguments changing\n const getMessageThreadSelector: () => MessageThreadSelector = () => {\n const threadId = useContext(ChatThreadClientContext)?.threadId ?? 'default-id-when-not-in-provider';\n let messageThreadSelectorImpl = messageThreadSelectorsByThread[threadId];\n if (!messageThreadSelectorImpl) {\n messageThreadSelectorsByThread[threadId] = messageThreadSelectorWithThread();\n messageThreadSelectorImpl = messageThreadSelectorsByThread[threadId];\n }\n return messageThreadSelectorImpl;\n };\n switch (component) {\n case SendBox:\n return sendBoxSelector;\n case MessageThread:\n return getMessageThreadSelector();\n case TypingIndicator:\n return typingIndicatorSelector;\n case ParticipantList:\n return chatParticipantListSelector;\n case ErrorBar:\n return errorBarSelector;\n }\n return undefined;\n};\"../../../react-components/src\"\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"usePropsFor.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/hooks/usePropsFor.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAEhH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAmB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAyB,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAA2B,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG9F,OAAO,EAA+B,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC1G,OAAO,EAAoB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAoB,EAGR,EAAE;IACd,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,WAAW,CAA2B,SAAS,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,gCAAK,KAAK,GAAK,QAAQ,CAAS,CAAC;KACzC;IACD,OAAO,SAAgB,CAAC;AAC1B,CAAC,CAAC;AAsBF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAoB,EACI,EAAE;IAC1B,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,MAAM,YAAY,GAAG,CAAC,SAAkD,EAAO,EAAE;IAC/E,8EAA8E;IAC9E,8FAA8F;IAC9F,yBAAyB;IACzB,MAAM,wBAAwB,GAAgC,GAAG,EAAE;;QACjE,MAAM,QAAQ,GAAG,MAAA,MAAA,UAAU,CAAC,uBAAuB,CAAC,0CAAE,QAAQ,mCAAI,iCAAiC,CAAC;QACpG,IAAI,yBAAyB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,yBAAyB,EAAE;YAC9B,8BAA8B,CAAC,QAAQ,CAAC,GAAG,+BAA+B,EAAE,CAAC;YAC7E,yBAAyB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;SACtE;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC,CAAC;IAEF,QAAQ,SAAS,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,eAAe,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,wBAAwB,EAAE,CAAC;QACpC,KAAK,eAAe;YAClB,OAAO,uBAAuB,CAAC;QACjC,KAAK,eAAe;YAClB,OAAO,2BAA2B,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC;KAC3B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ErrorBar, MessageThread, ParticipantList, SendBox, TypingIndicator } from '@internal/react-components';\n\nimport { useHandlers } from './useHandlers';\nimport { useSelector } from './useSelector';\nimport { SendBoxSelector, sendBoxSelector } from '../sendBoxSelector';\nimport { MessageThreadSelector, messageThreadSelectorWithThread } from '../messageThreadSelector';\nimport { TypingIndicatorSelector, typingIndicatorSelector } from '../typingIndicatorSelector';\nimport { Common, AreEqual } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '../handlers/createHandlers';\nimport { ChatParticipantListSelector, chatParticipantListSelector } from '../chatParticipantListSelector';\nimport { ErrorBarSelector, errorBarSelector } from '../errorBarSelector';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\nimport { useContext } from 'react';\n\n/**\n * Primary hook to get all hooks necessary for a chat Component.\n *\n * Most straightforward usage of chat components looks like:\n *\n * @example\n * ```\n * import { ParticipantList, usePropsFor } from '@azure/communication-react';\n *\n * const App = (): JSX.Element => {\n * // ... code to setup Providers ...\n *\n * return <ParticipantList {...usePropsFor(ParticipantList)}/>\n * }\n * ```\n *\n * @public\n */\nexport const usePropsFor = <Component extends (props: any) => JSX.Element>(\n component: Component\n): GetSelector<Component> extends (props: any) => any\n ? ReturnType<GetSelector<Component>> & Common<ChatHandlers, Parameters<Component>[0]>\n : undefined => {\n const selector = getSelector(component);\n const props = useSelector(selector);\n const handlers = useHandlers<Parameters<Component>[0]>(component);\n if (props !== undefined) {\n return { ...props, ...handlers } as any;\n }\n return undefined as any;\n};\n\n/**\n * Specific type of the selector applicable to a given Component.\n *\n * @public\n */\nexport type GetSelector<Component extends (props: any) => JSX.Element | undefined> = AreEqual<\n Component,\n typeof SendBox\n> extends true\n ? SendBoxSelector\n : AreEqual<Component, typeof MessageThread> extends true\n ? MessageThreadSelector\n : AreEqual<Component, typeof TypingIndicator> extends true\n ? TypingIndicatorSelector\n : AreEqual<Component, typeof ParticipantList> extends true\n ? ChatParticipantListSelector\n : AreEqual<Component, typeof ErrorBar> extends true\n ? ErrorBarSelector\n : undefined;\n\n/**\n * Get the selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const getSelector = <Component extends (props: any) => JSX.Element | undefined>(\n component: Component\n): GetSelector<Component> => {\n return findSelector(component);\n};\n\nconst messageThreadSelectorsByThread = {};\n\nconst findSelector = (component: (props: any) => JSX.Element | undefined): any => {\n // For the message thread selector we need to create a new one for each thread\n // If we have just one for the entire app, then we will have updates when not expecting due to\n // the arguments changing\n const getMessageThreadSelector: () => MessageThreadSelector = () => {\n const threadId = useContext(ChatThreadClientContext)?.threadId ?? 'default-id-when-not-in-provider';\n let messageThreadSelectorImpl = messageThreadSelectorsByThread[threadId];\n if (!messageThreadSelectorImpl) {\n messageThreadSelectorsByThread[threadId] = messageThreadSelectorWithThread();\n messageThreadSelectorImpl = messageThreadSelectorsByThread[threadId];\n }\n return messageThreadSelectorImpl;\n };\n\n switch (component) {\n case SendBox:\n return sendBoxSelector;\n case MessageThread:\n return getMessageThreadSelector();\n case TypingIndicator:\n return typingIndicatorSelector;\n case ParticipantList:\n return chatParticipantListSelector;\n case ErrorBar:\n return errorBarSelector;\n }\n return undefined;\n};\n\"../../../react-components/src\"\"../../../acs-ui-common/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelector.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/hooks/useSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAsG,QAAgB,EAAE,aAAwC,EAAgE,EAAE;;IAC3P,MAAM,UAAU,GAAmC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAA,UAAU,CAAC,uBAAuB,CAAC,0CAAE,QAAQ,CAAC;IAE/D,sHAAsH;IACtH,qHAAqH;IACrH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,QAAQ;KACT,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7I,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAQ,EAAE;YACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACpB;QACH,CAAC,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatClientState, StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatClientContext } from '../providers/ChatClientProvider';\nimport { useState, useEffect, useRef, useMemo, useContext } from 'react';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\n\n/**\n * Hook to obtain a selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useSelector = <SelectorT extends (state: ChatClientState, props: any) => any, ParamT extends SelectorT | undefined>(selector: ParamT, selectorProps?: Parameters<SelectorT>[1]): ParamT extends SelectorT ? ReturnType<SelectorT> : undefined => {\n const chatClient: StatefulChatClient | undefined = useContext(ChatClientContext);\n const threadId = useContext(ChatThreadClientContext)?.threadId;\n\n // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the\n // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n });\n const threadConfigProps = useMemo(() => ({\n threadId\n }), [threadId]);\n const [props, setProps] = useState(chatClient && selector ? selector(chatClient.getState(), selectorProps ?? threadConfigProps) : undefined);\n const propRef = useRef(props);\n propRef.current = props;\n useEffect(() => {\n if (!chatClient || !selector) {\n return;\n }\n const onStateChange = (state: ChatClientState): void => {\n const newProps = selector(state, selectorProps ?? threadConfigProps);\n if (propRef.current !== newProps) {\n setProps(newProps);\n }\n };\n chatClient.onStateChange(onStateChange);\n return () => {\n chatClient.offStateChange(onStateChange);\n };\n }, [chatClient, selector, selectorProps, threadConfigProps]);\n return selector ? props : undefined;\n};\"../../../chat-stateful-client/src\""]}
1
+ {"version":3,"file":"useSelector.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/hooks/useSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,QAAgB,EAChB,aAAwC,EACsB,EAAE;;IAChE,MAAM,UAAU,GAAmC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAA,UAAU,CAAC,uBAAuB,CAAC,0CAAE,QAAQ,CAAC;IAE/D,sHAAsH;IACtH,qHAAqH;IACrH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ;KACT,CAAC,EACF,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CACzG,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAQ,EAAE;YACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,iBAAiB,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACpB;QACH,CAAC,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatClientState, StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatClientContext } from '../providers/ChatClientProvider';\n\nimport { useState, useEffect, useRef, useMemo, useContext } from 'react';\nimport { ChatThreadClientContext } from '../providers/ChatThreadClientProvider';\n\n/**\n * Hook to obtain a selector for a specified component.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useSelector = <\n SelectorT extends (state: ChatClientState, props: any) => any,\n ParamT extends SelectorT | undefined\n>(\n selector: ParamT,\n selectorProps?: Parameters<SelectorT>[1]\n): ParamT extends SelectorT ? ReturnType<SelectorT> : undefined => {\n const chatClient: StatefulChatClient | undefined = useContext(ChatClientContext);\n const threadId = useContext(ChatThreadClientContext)?.threadId;\n\n // Keeps track of whether the current component is mounted or not. If it has unmounted, make sure we do not modify the\n // state or it will cause React warnings in the console. https://skype.visualstudio.com/SPOOL/_workitems/edit/2453212\n const mounted = useRef(false);\n\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n });\n\n const threadConfigProps = useMemo(\n () => ({\n threadId\n }),\n [threadId]\n );\n\n const [props, setProps] = useState(\n chatClient && selector ? selector(chatClient.getState(), selectorProps ?? threadConfigProps) : undefined\n );\n const propRef = useRef(props);\n propRef.current = props;\n useEffect(() => {\n if (!chatClient || !selector) {\n return;\n }\n const onStateChange = (state: ChatClientState): void => {\n const newProps = selector(state, selectorProps ?? threadConfigProps);\n if (propRef.current !== newProps) {\n setProps(newProps);\n }\n };\n chatClient.onStateChange(onStateChange);\n return () => {\n chatClient.offStateChange(onStateChange);\n };\n }, [chatClient, selector, selectorProps, threadConfigProps]);\n return selector ? props : undefined;\n};\n\"../../../chat-stateful-client/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,yBAAyB,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { createDefaultChatHandlers, createDefaultChatHandlersForComponent } from './handlers/createHandlers';\nexport { ChatClientProvider, useChatClient } from './providers/ChatClientProvider';\nexport { ChatThreadClientProvider, useChatThreadClient } from './providers/ChatThreadClientProvider';\nexport { usePropsFor as useChatPropsFor, getSelector as getChatSelector } from './hooks/usePropsFor';\nexport { useSelector as useChatSelector } from './hooks/useSelector';\nexport { useHandlers as useChatHandlers } from './hooks/useHandlers';\nexport type { ChatClientProviderProps } from './providers/ChatClientProvider';\nexport type { ChatThreadClientProviderProps } from './providers/ChatThreadClientProvider';\nexport type { ChatBaseSelectorProps } from './baseSelectors';\nexport type { ChatHandlers } from './handlers/createHandlers';\nexport type { GetSelector as GetChatSelector } from './hooks/usePropsFor';\nexport type { MessageThreadSelector } from './messageThreadSelector';\nexport type { SendBoxSelector } from './sendBoxSelector';\nexport type { ChatParticipantListSelector } from './chatParticipantListSelector';\nexport type { TypingIndicatorSelector } from './typingIndicatorSelector';\nexport type { ErrorBarSelector } from './errorBarSelector';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../chat-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,yBAAyB,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { createDefaultChatHandlers, createDefaultChatHandlersForComponent } from './handlers/createHandlers';\nexport { ChatClientProvider, useChatClient } from './providers/ChatClientProvider';\nexport { ChatThreadClientProvider, useChatThreadClient } from './providers/ChatThreadClientProvider';\nexport { usePropsFor as useChatPropsFor, getSelector as getChatSelector } from './hooks/usePropsFor';\nexport { useSelector as useChatSelector } from './hooks/useSelector';\nexport { useHandlers as useChatHandlers } from './hooks/useHandlers';\n\nexport type { ChatClientProviderProps } from './providers/ChatClientProvider';\nexport type { ChatThreadClientProviderProps } from './providers/ChatThreadClientProvider';\nexport type { ChatBaseSelectorProps } from './baseSelectors';\nexport type { ChatHandlers } from './handlers/createHandlers';\nexport type { GetSelector as GetChatSelector } from './hooks/usePropsFor';\n\nexport type { MessageThreadSelector } from './messageThreadSelector';\nexport type { SendBoxSelector } from './sendBoxSelector';\nexport type { ChatParticipantListSelector } from './chatParticipantListSelector';\nexport type { TypingIndicatorSelector } from './typingIndicatorSelector';\nexport type { ErrorBarSelector } from './errorBarSelector';\n"]}
@@ -14,7 +14,9 @@ const memoizedAllConvertChatMessage = memoizeFnAll((_key, chatMessage, userId, i
14
14
  if (chatMessage.policyViolation) {
15
15
  return convertToUiBlockedMessage(chatMessage, userId, isSeen, isLargeGroup);
16
16
  }
17
- if (messageType === ACSKnownMessageType.text || messageType === ACSKnownMessageType.richtextHtml || messageType === ACSKnownMessageType.html) {
17
+ if (messageType === ACSKnownMessageType.text ||
18
+ messageType === ACSKnownMessageType.richtextHtml ||
19
+ messageType === ACSKnownMessageType.html) {
18
20
  return convertToUiChatMessage(chatMessage, userId, isSeen, isLargeGroup);
19
21
  }
20
22
  else {
@@ -38,7 +40,7 @@ const extractAttachedFilesMetadata = (metadata) => {
38
40
  /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
39
41
  const extractTeamsAttachmentsMetadata = (attachments) => {
40
42
  const fileMetadata = [];
41
- attachments.forEach(attachment => {
43
+ attachments.forEach((attachment) => {
42
44
  var _a, _b, _c, _d;
43
45
  const attachmentType = mapAttachmentType(attachment.attachmentType);
44
46
  if (attachmentType === 'inlineImage') {
@@ -58,9 +60,7 @@ const extractTeamsAttachmentsMetadata = (attachments) => {
58
60
  name: (_c = attachment.name) !== null && _c !== void 0 ? _c : '',
59
61
  extension: (_d = attachment.contentType) !== null && _d !== void 0 ? _d : '',
60
62
  url: extractAttachmentUrl(attachment),
61
- payload: {
62
- teamsFileAttachment: 'true'
63
- }
63
+ payload: { teamsFileAttachment: 'true' }
64
64
  });
65
65
  }
66
66
  });
@@ -85,7 +85,10 @@ const processChatMessageContent = (message) => {
85
85
  /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
86
86
  if (sanitizedMessageContentType(message.type).includes('html') && ((_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments)) {
87
87
  const attachments = (_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments;
88
- const teamsImageHtmlContent = attachments.filter(attachment => attachment.attachmentType === 'teamsImage').map(attachment => generateImageAttachmentImgHtml(attachment)).join('');
88
+ const teamsImageHtmlContent = attachments
89
+ .filter((attachment) => attachment.attachmentType === 'teamsImage')
90
+ .map((attachment) => generateImageAttachmentImgHtml(attachment))
91
+ .join('');
89
92
  if (teamsImageHtmlContent) {
90
93
  return ((_d = (_c = message.content) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : '') + teamsImageHtmlContent;
91
94
  }
@@ -154,7 +157,7 @@ const convertToUiSystemMessage = (message) => {
154
157
  messageType: 'system',
155
158
  systemMessageType,
156
159
  createdOn: message.createdOn,
157
- participants: (_c = (_b = (_a = message.content) === null || _a === void 0 ? void 0 : _a.participants) === null || _b === void 0 ? void 0 : _b.filter(participant => participant.displayName && participant.displayName !== '').map((participant) => ({
160
+ participants: (_c = (_b = (_a = message.content) === null || _a === void 0 ? void 0 : _a.participants) === null || _b === void 0 ? void 0 : _b.filter((participant) => participant.displayName && participant.displayName !== '').map((participant) => ({
158
161
  userId: toFlatCommunicationIdentifier(participant.id),
159
162
  displayName: participant.displayName
160
163
  }))) !== null && _c !== void 0 ? _c : [],
@@ -175,23 +178,27 @@ const convertToUiSystemMessage = (message) => {
175
178
  }
176
179
  };
177
180
  /** Returns `true` if the message has participants and at least one participant has a display name. */
178
- const hasValidParticipant = (chatMessage) => { var _a; return !!((_a = chatMessage.content) === null || _a === void 0 ? void 0 : _a.participants) && chatMessage.content.participants.some(p => !!p.displayName); };
181
+ const hasValidParticipant = (chatMessage) => { var _a; return !!((_a = chatMessage.content) === null || _a === void 0 ? void 0 : _a.participants) && chatMessage.content.participants.some((p) => !!p.displayName); };
179
182
  /**
180
183
  *
181
184
  * @private
182
185
  */
183
186
  export const messageThreadSelectorWithThread = () => createSelector([getUserId, getChatMessages, getLatestReadTime, getIsLargeGroup, getReadReceipts, getParticipants], (userId, chatMessages, latestReadTime, isLargeGroup, readReceipts, participants) => {
184
187
  // We can't get displayName in teams meeting interop for now, disable rr feature when it is teams interop
185
- const isTeamsInterop = Object.values(participants).find(p => 'microsoftTeamsUserId' in p.id) !== undefined;
188
+ const isTeamsInterop = Object.values(participants).find((p) => 'microsoftTeamsUserId' in p.id) !== undefined;
186
189
  // get number of participants
187
190
  // filter out the non valid participants (no display name)
188
191
  // Read Receipt details will be disabled when participant count is 0
189
- const participantCount = isTeamsInterop ? undefined : Object.values(participants).filter(p => p.displayName && p.displayName !== '').length;
192
+ const participantCount = isTeamsInterop
193
+ ? undefined
194
+ : Object.values(participants).filter((p) => p.displayName && p.displayName !== '').length;
190
195
  // creating key value pairs of senderID: last read message information
191
196
  const readReceiptsBySenderId = {};
192
197
  // readReceiptsBySenderId[senderID] gets updated every time a new message is read by this sender
193
198
  // in this way we can make sure that we are only saving the latest read message id and read on time for each sender
194
- readReceipts.filter(r => r.sender && toFlatCommunicationIdentifier(r.sender) !== userId).forEach(r => {
199
+ readReceipts
200
+ .filter((r) => r.sender && toFlatCommunicationIdentifier(r.sender) !== userId)
201
+ .forEach((r) => {
195
202
  var _a, _b;
196
203
  readReceiptsBySenderId[toFlatCommunicationIdentifier(r.sender)] = {
197
204
  lastReadMessage: r.chatMessageId,
@@ -199,10 +206,17 @@ export const messageThreadSelectorWithThread = () => createSelector([getUserId,
199
206
  };
200
207
  });
201
208
  // A function takes parameter above and generate return value
202
- const convertedMessages = memoizedAllConvertChatMessage(memoizedFn => Object.values(chatMessages).filter(message => message.type.toLowerCase() === ACSKnownMessageType.text || message.type.toLowerCase() === ACSKnownMessageType.richtextHtml || message.type.toLowerCase() === ACSKnownMessageType.html || message.type === ACSKnownMessageType.participantAdded && hasValidParticipant(message) || message.type === ACSKnownMessageType.participantRemoved && hasValidParticipant(message) ||
209
+ const convertedMessages = memoizedAllConvertChatMessage((memoizedFn) => Object.values(chatMessages)
210
+ .filter((message) => message.type.toLowerCase() === ACSKnownMessageType.text ||
211
+ message.type.toLowerCase() === ACSKnownMessageType.richtextHtml ||
212
+ message.type.toLowerCase() === ACSKnownMessageType.html ||
213
+ (message.type === ACSKnownMessageType.participantAdded && hasValidParticipant(message)) ||
214
+ (message.type === ACSKnownMessageType.participantRemoved && hasValidParticipant(message)) ||
203
215
  // TODO: Add support for topicUpdated system messages in MessageThread component.
204
216
  // message.type === ACSKnownMessageType.topicUpdated ||
205
- message.clientMessageId !== undefined).filter(isMessageValidToRender).map(message => {
217
+ message.clientMessageId !== undefined)
218
+ .filter(isMessageValidToRender)
219
+ .map((message) => {
206
220
  var _a;
207
221
  return memoizedFn((_a = message.id) !== null && _a !== void 0 ? _a : message.clientMessageId, message, userId, message.createdOn <= latestReadTime, isLargeGroup);
208
222
  }));
@@ -217,14 +231,18 @@ export const messageThreadSelectorWithThread = () => createSelector([getUserId,
217
231
  });
218
232
  const sanitizedMessageContentType = (type) => {
219
233
  const lowerCaseType = type.toLowerCase();
220
- return lowerCaseType === 'text' || lowerCaseType === 'html' || lowerCaseType === 'richtext/html' ? lowerCaseType : 'unknown';
234
+ return lowerCaseType === 'text' || lowerCaseType === 'html' || lowerCaseType === 'richtext/html'
235
+ ? lowerCaseType
236
+ : 'unknown';
221
237
  };
222
238
  const isMessageValidToRender = (message) => {
223
239
  var _a, _b, _c;
224
240
  if (message.deletedOn) {
225
241
  return false;
226
242
  }
227
- if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a['fileSharingMetadata']) || /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ ((_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments)) {
243
+ if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a['fileSharingMetadata']) ||
244
+ (
245
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ (_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments)) {
228
246
  return true;
229
247
  }
230
248
  /* @conditional-compile-remove(data-loss-prevention) */
@@ -1 +1 @@
1
- {"version":3,"file":"messageThreadSelector.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-component-bindings/src/messageThreadSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAyB,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1J,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAExE,OAAO,EAAE,YAAY,EAAE,gCAAgC;AAIvD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,uDAAuD;AACvD,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAMhF,MAAM,6BAA6B,GAAG,YAAY,CAAC,CAAC,IAAY,EAAE,WAAkC,EAAE,MAAc,EAAE,MAAe,EAAE,YAAqB,EAAW,EAAE;IACvK,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnD,uDAAuD;IACvD,IAAI,WAAW,CAAC,eAAe,EAAE;QAC/B,OAAO,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;KAC7E;IACD,IAAI,WAAW,KAAK,mBAAmB,CAAC,IAAI,IAAI,WAAW,KAAK,mBAAmB,CAAC,YAAY,IAAI,WAAW,KAAK,mBAAmB,CAAC,IAAI,EAAE;QAC5I,OAAO,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;KAC1E;SAAM;QACL,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC;KAC9C;AACH,CAAC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,4BAA4B,GAAG,CAAC,QAAgC,EAAkB,EAAE;IACxF,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrD,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,EAAE,CAAC;KACX;IACD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAEF,uEAAuE;AACvE,MAAM,+BAA+B,GAAG,CAAC,WAA6B,EAAkB,EAAE;IACxF,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;;QAC/B,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,cAAc,KAAK,aAAa,EAAE;YACpC,YAAY,CAAC,IAAI,CAAC;gBAChB,cAAc,EAAE,cAAc;gBAC9B,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,MAAA,UAAU,CAAC,IAAI,mCAAI,EAAE;gBAC3B,SAAS,EAAE,MAAA,UAAU,CAAC,WAAW,mCAAI,EAAE;gBACvC,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC;gBACrC,UAAU,EAAE,UAAU,CAAC,UAAU;aAClC,CAAC,CAAC;SACJ;aAAM,IAAI,cAAc,KAAK,aAAa,EAAE;YAC3C,YAAY,CAAC,IAAI,CAAC;gBAChB,cAAc,EAAE,cAAc;gBAC9B,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,MAAA,UAAU,CAAC,IAAI,mCAAI,EAAE;gBAC3B,SAAS,EAAE,MAAA,UAAU,CAAC,WAAW,mCAAI,EAAE;gBACvC,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC;gBACrC,OAAO,EAAE;oBACP,mBAAmB,EAAE,MAAM;iBAC5B;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,CAAC,cAA8B,EAA8B,EAAE;IACvF,IAAI,cAAc,KAAK,YAAY,IAAI,cAAc,KAAK,kBAAkB,EAAE;QAC5E,OAAO,aAAa,CAAC;KACtB;SAAM,IAAI,cAAc,KAAK,MAAM,EAAE;QACpC,OAAO,aAAa,CAAC;KACtB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,uEAAuE;AACvE,MAAM,oBAAoB,GAAG,CAAC,UAA0B,EAAU,EAAE;IAClE,OAAO,UAAU,CAAC,cAAc,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AAChH,CAAC,CAAC;AACF,MAAM,yBAAyB,GAAG,CAAC,OAA8B,EAAsB,EAAE;;IACvF,uEAAuE;IACvE,IAAI,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAI,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAA,EAAE;QAC9F,MAAM,WAAW,GAAqB,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAC;QACnE,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClL,IAAI,qBAAqB,EAAE;YACzB,OAAO,CAAC,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,mCAAI,EAAE,CAAC,GAAG,qBAAqB,CAAC;SACjE;KACF;IACD,OAAO,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC;AAClC,CAAC,CAAC;AAEF,uEAAuE;AACvE,MAAM,8BAA8B,GAAG,CAAC,UAA0B,EAAU,EAAE;IAC5E,OAAO,6CAA6C,UAAU,CAAC,WAAW,SAAS,UAAU,CAAC,EAAE,QAAQ,CAAC;AAC3G,CAAC,CAAC;AAEF,iHAAiH;AACjH,MAAM,oBAAoB,GAAG,CAAC,OAA8B,EAAkB,EAAE;;IAC9E,IAAI,YAAY,GAAmB,EAAE,CAAC;IAEtC,+CAA+C;IAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpF;IAED,uEAAuE;IACvE,IAAI,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,EAAE;QAChC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,+BAA+B,CAAC,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAC,CAAC,CAAC;KACnG;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,uDAAuD;AACvD,MAAM,yBAAyB,GAAG,CAAC,OAA8B,EAAE,MAAc,EAAE,MAAe,EAAE,YAAqB,EAAkB,EAAE;IAC3I,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9G,OAAO;QACL,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;QAC3F,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,eAAe,KAAK,MAAM;QAChC,IAAI,EAAE,uCAAuC;KAC9C,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,CAAC,OAA8B,EAAE,MAAc,EAAE,MAAe,EAAE,YAAqB,EAAe,EAAE;IACrI,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9G,OAAO;QACL,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC;QAC3C,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC;QACtD,MAAM,EAAE,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;QAC3F,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,eAAe,KAAK,MAAM;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,iHAAiH;QACjH,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,CAAC;KACrD,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAiB,EAAE;;IACjF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,IAAI,iBAAiB,KAAK,kBAAkB,IAAI,iBAAiB,KAAK,oBAAoB,EAAE;QAC1F,OAAO;YACL,WAAW,EAAE,QAAQ;YACrB,iBAAiB;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,YAAY,0CAGzC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,EAA4B,EAAE,CAAC,CAAC;gBACjI,MAAM,EAAE,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC,CAAC,CAAC,mCAAI,EAAE;YACT,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,QAAQ,EAAE,iBAAiB,KAAK,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;SACjF,CAAC;KACH;SAAM;QACL,2DAA2D;QAC3D,OAAO;YACL,WAAW,EAAE,QAAQ;YACrB,iBAAiB,EAAE,cAAc;YACjC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,mCAAI,EAAE;YACnC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,QAAQ,EAAE,MAAM;SACjB,CAAC;KACH;AACH,CAAC,CAAC;AAaF,sGAAsG;AACtG,MAAM,mBAAmB,GAAG,CAAC,WAAkC,EAAW,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,YAAY,CAAA,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA,EAAA,CAAC;AAEhL;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAgC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE;IACtR,yGAAyG;IACzG,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;IAE3G,6BAA6B;IAC7B,0DAA0D;IAC1D,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;IAE5I,sEAAsE;IAEtE,MAAM,sBAAsB,GAA2B,EAAE,CAAC;IAE1D,gGAAgG;IAChG,mHAAmH;IACnH,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;QACnG,sBAAsB,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG;YAChE,eAAe,EAAE,CAAC,CAAC,aAAa;YAChC,WAAW,EAAE,MAAA,MAAA,YAAY,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,0CAAE,WAAW,mCAAI,EAAE;SACtF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,mBAAmB,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,mBAAmB,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,mBAAmB,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,CAAC,gBAAgB,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,OAAO,CAAC;QAC7d,iFAAiF;QACjF,uDAAuD;QACvD,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;QAClF,OAAO,UAAU,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc,EAAE,YAAY,CAAC,CAAC;IAC/H,CAAC,CAAC,CAAC,CAAC;IACJ,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO;QACL,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB;QAChB,sBAAsB;KACvB,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAsB,EAAE;IACvE,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/H,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,CAAC,OAA8B,EAAW,EAAE;;IACzE,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAG,qBAAqB,CAAC,KAAI,uEAAuE,EAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAA,EAAE;QACpJ,OAAO,IAAI,CAAC;KACb;IACD,uDAAuD;IACvD,IAAI,OAAO,CAAC,eAAe,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,MAAK,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,+BAA+B,EAAE,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatBaseSelectorProps, getChatMessages, getIsLargeGroup, getLatestReadTime, getParticipants, getReadReceipts, getUserId } from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ChatClientState, ChatMessageWithStatus } from '@internal/chat-stateful-client';\nimport { memoizeFnAll } from '@internal/acs-ui-common';\nimport { ChatMessage, Message, CommunicationParticipant, SystemMessage, MessageContentType, ReadReceiptsBySenderId } from '@internal/react-components';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { BlockedMessage } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport { ACSKnownMessageType } from './utils/constants';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL } from './utils/constants';\nimport { updateMessagesWithAttached } from './utils/updateMessagesWithAttached';\n\n/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata, FileMetadataAttachmentType } from '@internal/react-components';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentType, ChatAttachment } from '@azure/communication-chat';\nconst memoizedAllConvertChatMessage = memoizeFnAll((_key: string, chatMessage: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): Message => {\n const messageType = chatMessage.type.toLowerCase();\n /* @conditional-compile-remove(data-loss-prevention) */\n if (chatMessage.policyViolation) {\n return convertToUiBlockedMessage(chatMessage, userId, isSeen, isLargeGroup);\n }\n if (messageType === ACSKnownMessageType.text || messageType === ACSKnownMessageType.richtextHtml || messageType === ACSKnownMessageType.html) {\n return convertToUiChatMessage(chatMessage, userId, isSeen, isLargeGroup);\n } else {\n return convertToUiSystemMessage(chatMessage);\n }\n});\n\n/* @conditional-compile-remove(file-sharing) */\nconst extractAttachedFilesMetadata = (metadata: Record<string, string>): FileMetadata[] => {\n const fileMetadata = metadata['fileSharingMetadata'];\n if (!fileMetadata) {\n return [];\n }\n try {\n return JSON.parse(fileMetadata);\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractTeamsAttachmentsMetadata = (attachments: ChatAttachment[]): FileMetadata[] => {\n const fileMetadata: FileMetadata[] = [];\n attachments.forEach(attachment => {\n const attachmentType = mapAttachmentType(attachment.attachmentType);\n if (attachmentType === 'inlineImage') {\n fileMetadata.push({\n attachmentType: attachmentType,\n id: attachment.id,\n name: attachment.name ?? '',\n extension: attachment.contentType ?? '',\n url: extractAttachmentUrl(attachment),\n previewUrl: attachment.previewUrl\n });\n } else if (attachmentType === 'fileSharing') {\n fileMetadata.push({\n attachmentType: attachmentType,\n id: attachment.id,\n name: attachment.name ?? '',\n extension: attachment.contentType ?? '',\n url: extractAttachmentUrl(attachment),\n payload: {\n teamsFileAttachment: 'true'\n }\n });\n }\n });\n return fileMetadata;\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst mapAttachmentType = (attachmentType: AttachmentType): FileMetadataAttachmentType => {\n if (attachmentType === 'teamsImage' || attachmentType === 'teamsInlineImage') {\n return 'inlineImage';\n } else if (attachmentType === 'file') {\n return 'fileSharing';\n }\n return 'unknown';\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractAttachmentUrl = (attachment: ChatAttachment): string => {\n return attachment.attachmentType === 'file' && attachment.previewUrl ? attachment.previewUrl : attachment.url;\n};\nconst processChatMessageContent = (message: ChatMessageWithStatus): string | undefined => {\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (sanitizedMessageContentType(message.type).includes('html') && message.content?.attachments) {\n const attachments: ChatAttachment[] = message.content?.attachments;\n const teamsImageHtmlContent = attachments.filter(attachment => attachment.attachmentType === 'teamsImage').map(attachment => generateImageAttachmentImgHtml(attachment)).join('');\n if (teamsImageHtmlContent) {\n return (message.content?.message ?? '') + teamsImageHtmlContent;\n }\n }\n return message.content?.message;\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst generateImageAttachmentImgHtml = (attachment: ChatAttachment): string => {\n return `\\r\\n<p><img alt=\"image\" src=\"\" itemscope=\"${attachment.contentType}\" id=\"${attachment.id}\"></p>`;\n};\n\n/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractFilesMetadata = (message: ChatMessageWithStatus): FileMetadata[] => {\n let fileMetadata: FileMetadata[] = [];\n\n /* @conditional-compile-remove(file-sharing) */\n if (message.metadata) {\n fileMetadata = fileMetadata.concat(extractAttachedFilesMetadata(message.metadata));\n }\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (message.content?.attachments) {\n fileMetadata = fileMetadata.concat(extractTeamsAttachmentsMetadata(message.content?.attachments));\n }\n return fileMetadata;\n};\n\n/* @conditional-compile-remove(data-loss-prevention) */\nconst convertToUiBlockedMessage = (message: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): BlockedMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n return {\n messageType: 'blocked',\n createdOn: message.createdOn,\n warningText: undefined,\n status: !isLargeGroup && message.status === 'delivered' && isSeen ? 'seen' : message.status,\n senderDisplayName: message.senderDisplayName,\n senderId: messageSenderId,\n messageId: message.id,\n deletedOn: message.deletedOn,\n mine: messageSenderId === userId,\n link: DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL\n };\n};\nconst convertToUiChatMessage = (message: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): ChatMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n return {\n messageType: 'chat',\n createdOn: message.createdOn,\n content: processChatMessageContent(message),\n contentType: sanitizedMessageContentType(message.type),\n status: !isLargeGroup && message.status === 'delivered' && isSeen ? 'seen' : message.status,\n senderDisplayName: message.senderDisplayName,\n senderId: messageSenderId,\n messageId: message.id,\n clientMessageId: message.clientMessageId,\n editedOn: message.editedOn,\n deletedOn: message.deletedOn,\n mine: messageSenderId === userId,\n metadata: message.metadata,\n /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n attachedFilesMetadata: extractFilesMetadata(message)\n };\n};\nconst convertToUiSystemMessage = (message: ChatMessageWithStatus): SystemMessage => {\n const systemMessageType = message.type;\n if (systemMessageType === 'participantAdded' || systemMessageType === 'participantRemoved') {\n return {\n messageType: 'system',\n systemMessageType,\n createdOn: message.createdOn,\n participants: message.content?.participants\n // TODO: In our moderator logic, we use undefined name as our displayName for moderator, which should be filtered out\n // Once we have a better solution to identify the moderator, remove this line\n ?.filter(participant => participant.displayName && participant.displayName !== '').map((participant): CommunicationParticipant => ({\n userId: toFlatCommunicationIdentifier(participant.id),\n displayName: participant.displayName\n })) ?? [],\n messageId: message.id,\n iconName: systemMessageType === 'participantAdded' ? 'PeopleAdd' : 'PeopleBlock'\n };\n } else {\n // Only topic updated type left, according to ACSKnown type\n return {\n messageType: 'system',\n systemMessageType: 'topicUpdated',\n createdOn: message.createdOn,\n topic: message.content?.topic ?? '',\n messageId: message.id,\n iconName: 'Edit'\n };\n }\n};\n\n/**\n * Selector type for {@link MessageThread} component.\n *\n * @public\n */\nexport type MessageThreadSelector = (state: ChatClientState, props: ChatBaseSelectorProps) => {\n userId: string;\n showMessageStatus: boolean;\n messages: Message[];\n};\n\n/** Returns `true` if the message has participants and at least one participant has a display name. */\nconst hasValidParticipant = (chatMessage: ChatMessageWithStatus): boolean => !!chatMessage.content?.participants && chatMessage.content.participants.some(p => !!p.displayName);\n\n/**\n *\n * @private\n */\nexport const messageThreadSelectorWithThread: () => MessageThreadSelector = () => createSelector([getUserId, getChatMessages, getLatestReadTime, getIsLargeGroup, getReadReceipts, getParticipants], (userId, chatMessages, latestReadTime, isLargeGroup, readReceipts, participants) => {\n // We can't get displayName in teams meeting interop for now, disable rr feature when it is teams interop\n const isTeamsInterop = Object.values(participants).find(p => 'microsoftTeamsUserId' in p.id) !== undefined;\n\n // get number of participants\n // filter out the non valid participants (no display name)\n // Read Receipt details will be disabled when participant count is 0\n const participantCount = isTeamsInterop ? undefined : Object.values(participants).filter(p => p.displayName && p.displayName !== '').length;\n\n // creating key value pairs of senderID: last read message information\n\n const readReceiptsBySenderId: ReadReceiptsBySenderId = {};\n\n // readReceiptsBySenderId[senderID] gets updated every time a new message is read by this sender\n // in this way we can make sure that we are only saving the latest read message id and read on time for each sender\n readReceipts.filter(r => r.sender && toFlatCommunicationIdentifier(r.sender) !== userId).forEach(r => {\n readReceiptsBySenderId[toFlatCommunicationIdentifier(r.sender)] = {\n lastReadMessage: r.chatMessageId,\n displayName: participants[toFlatCommunicationIdentifier(r.sender)]?.displayName ?? ''\n };\n });\n\n // A function takes parameter above and generate return value\n const convertedMessages = memoizedAllConvertChatMessage(memoizedFn => Object.values(chatMessages).filter(message => message.type.toLowerCase() === ACSKnownMessageType.text || message.type.toLowerCase() === ACSKnownMessageType.richtextHtml || message.type.toLowerCase() === ACSKnownMessageType.html || message.type === ACSKnownMessageType.participantAdded && hasValidParticipant(message) || message.type === ACSKnownMessageType.participantRemoved && hasValidParticipant(message) ||\n // TODO: Add support for topicUpdated system messages in MessageThread component.\n // message.type === ACSKnownMessageType.topicUpdated ||\n message.clientMessageId !== undefined).filter(isMessageValidToRender).map(message => {\n return memoizedFn(message.id ?? message.clientMessageId, message, userId, message.createdOn <= latestReadTime, isLargeGroup);\n }));\n updateMessagesWithAttached(convertedMessages);\n return {\n userId,\n showMessageStatus: true,\n messages: convertedMessages,\n participantCount,\n readReceiptsBySenderId\n };\n});\nconst sanitizedMessageContentType = (type: string): MessageContentType => {\n const lowerCaseType = type.toLowerCase();\n return lowerCaseType === 'text' || lowerCaseType === 'html' || lowerCaseType === 'richtext/html' ? lowerCaseType : 'unknown';\n};\nconst isMessageValidToRender = (message: ChatMessageWithStatus): boolean => {\n if (message.deletedOn) {\n return false;\n }\n if (message.metadata?.['fileSharingMetadata'] || /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */message.content?.attachments) {\n return true;\n }\n /* @conditional-compile-remove(data-loss-prevention) */\n if (message.policyViolation) {\n return true;\n }\n return !!(message.content && message.content?.message !== '');\n};\n\n/**\n * Selector for {@link MessageThread} component.\n *\n * @public\n */\nexport const messageThreadSelector: MessageThreadSelector = messageThreadSelectorWithThread();\"../../acs-ui-common/src\"\"../../chat-stateful-client/src\"\"../../react-components/src\""]}
1
+ {"version":3,"file":"messageThreadSelector.js","sourceRoot":"","sources":["../../../../../chat-component-bindings/src/messageThreadSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n ChatBaseSelectorProps,\n getChatMessages,\n getIsLargeGroup,\n getLatestReadTime,\n getParticipants,\n getReadReceipts,\n getUserId\n} from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ChatClientState, ChatMessageWithStatus } from '@internal/chat-stateful-client';\nimport { memoizeFnAll } from '@internal/acs-ui-common';\nimport {\n ChatMessage,\n Message,\n CommunicationParticipant,\n SystemMessage,\n MessageContentType,\n ReadReceiptsBySenderId\n} from '@internal/react-components';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { BlockedMessage } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport { ACSKnownMessageType } from './utils/constants';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL } from './utils/constants';\nimport { updateMessagesWithAttached } from './utils/updateMessagesWithAttached';\n\n/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata, FileMetadataAttachmentType } from '@internal/react-components';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { AttachmentType, ChatAttachment } from '@azure/communication-chat';\n\nconst memoizedAllConvertChatMessage = memoizeFnAll(\n (\n _key: string,\n chatMessage: ChatMessageWithStatus,\n userId: string,\n isSeen: boolean,\n isLargeGroup: boolean\n ): Message => {\n const messageType = chatMessage.type.toLowerCase();\n /* @conditional-compile-remove(data-loss-prevention) */\n if (chatMessage.policyViolation) {\n return convertToUiBlockedMessage(chatMessage, userId, isSeen, isLargeGroup);\n }\n if (\n messageType === ACSKnownMessageType.text ||\n messageType === ACSKnownMessageType.richtextHtml ||\n messageType === ACSKnownMessageType.html\n ) {\n return convertToUiChatMessage(chatMessage, userId, isSeen, isLargeGroup);\n } else {\n return convertToUiSystemMessage(chatMessage);\n }\n }\n);\n\n/* @conditional-compile-remove(file-sharing) */\nconst extractAttachedFilesMetadata = (metadata: Record<string, string>): FileMetadata[] => {\n const fileMetadata = metadata['fileSharingMetadata'];\n if (!fileMetadata) {\n return [];\n }\n try {\n return JSON.parse(fileMetadata);\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractTeamsAttachmentsMetadata = (attachments: ChatAttachment[]): FileMetadata[] => {\n const fileMetadata: FileMetadata[] = [];\n attachments.forEach((attachment) => {\n const attachmentType = mapAttachmentType(attachment.attachmentType);\n if (attachmentType === 'inlineImage') {\n fileMetadata.push({\n attachmentType: attachmentType,\n id: attachment.id,\n name: attachment.name ?? '',\n extension: attachment.contentType ?? '',\n url: extractAttachmentUrl(attachment),\n previewUrl: attachment.previewUrl\n });\n } else if (attachmentType === 'fileSharing') {\n fileMetadata.push({\n attachmentType: attachmentType,\n id: attachment.id,\n name: attachment.name ?? '',\n extension: attachment.contentType ?? '',\n url: extractAttachmentUrl(attachment),\n payload: { teamsFileAttachment: 'true' }\n });\n }\n });\n return fileMetadata;\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst mapAttachmentType = (attachmentType: AttachmentType): FileMetadataAttachmentType => {\n if (attachmentType === 'teamsImage' || attachmentType === 'teamsInlineImage') {\n return 'inlineImage';\n } else if (attachmentType === 'file') {\n return 'fileSharing';\n }\n return 'unknown';\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractAttachmentUrl = (attachment: ChatAttachment): string => {\n return attachment.attachmentType === 'file' && attachment.previewUrl ? attachment.previewUrl : attachment.url;\n};\n\nconst processChatMessageContent = (message: ChatMessageWithStatus): string | undefined => {\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (sanitizedMessageContentType(message.type).includes('html') && message.content?.attachments) {\n const attachments: ChatAttachment[] = message.content?.attachments;\n const teamsImageHtmlContent = attachments\n .filter((attachment) => attachment.attachmentType === 'teamsImage')\n .map((attachment) => generateImageAttachmentImgHtml(attachment))\n .join('');\n\n if (teamsImageHtmlContent) {\n return (message.content?.message ?? '') + teamsImageHtmlContent;\n }\n }\n return message.content?.message;\n};\n\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst generateImageAttachmentImgHtml = (attachment: ChatAttachment): string => {\n return `\\r\\n<p><img alt=\"image\" src=\"\" itemscope=\"${attachment.contentType}\" id=\"${attachment.id}\"></p>`;\n};\n\n/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nconst extractFilesMetadata = (message: ChatMessageWithStatus): FileMetadata[] => {\n let fileMetadata: FileMetadata[] = [];\n\n /* @conditional-compile-remove(file-sharing) */\n if (message.metadata) {\n fileMetadata = fileMetadata.concat(extractAttachedFilesMetadata(message.metadata));\n }\n\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n if (message.content?.attachments) {\n fileMetadata = fileMetadata.concat(extractTeamsAttachmentsMetadata(message.content?.attachments));\n }\n\n return fileMetadata;\n};\n\n/* @conditional-compile-remove(data-loss-prevention) */\nconst convertToUiBlockedMessage = (\n message: ChatMessageWithStatus,\n userId: string,\n isSeen: boolean,\n isLargeGroup: boolean\n): BlockedMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n return {\n messageType: 'blocked',\n createdOn: message.createdOn,\n warningText: undefined,\n status: !isLargeGroup && message.status === 'delivered' && isSeen ? 'seen' : message.status,\n senderDisplayName: message.senderDisplayName,\n senderId: messageSenderId,\n messageId: message.id,\n deletedOn: message.deletedOn,\n mine: messageSenderId === userId,\n link: DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL\n };\n};\n\nconst convertToUiChatMessage = (\n message: ChatMessageWithStatus,\n userId: string,\n isSeen: boolean,\n isLargeGroup: boolean\n): ChatMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n return {\n messageType: 'chat',\n createdOn: message.createdOn,\n content: processChatMessageContent(message),\n contentType: sanitizedMessageContentType(message.type),\n status: !isLargeGroup && message.status === 'delivered' && isSeen ? 'seen' : message.status,\n senderDisplayName: message.senderDisplayName,\n senderId: messageSenderId,\n messageId: message.id,\n clientMessageId: message.clientMessageId,\n editedOn: message.editedOn,\n deletedOn: message.deletedOn,\n mine: messageSenderId === userId,\n metadata: message.metadata,\n /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n attachedFilesMetadata: extractFilesMetadata(message)\n };\n};\n\nconst convertToUiSystemMessage = (message: ChatMessageWithStatus): SystemMessage => {\n const systemMessageType = message.type;\n if (systemMessageType === 'participantAdded' || systemMessageType === 'participantRemoved') {\n return {\n messageType: 'system',\n systemMessageType,\n createdOn: message.createdOn,\n participants:\n message.content?.participants\n // TODO: In our moderator logic, we use undefined name as our displayName for moderator, which should be filtered out\n // Once we have a better solution to identify the moderator, remove this line\n ?.filter((participant) => participant.displayName && participant.displayName !== '')\n .map(\n (participant): CommunicationParticipant => ({\n userId: toFlatCommunicationIdentifier(participant.id),\n displayName: participant.displayName\n })\n ) ?? [],\n messageId: message.id,\n iconName: systemMessageType === 'participantAdded' ? 'PeopleAdd' : 'PeopleBlock'\n };\n } else {\n // Only topic updated type left, according to ACSKnown type\n return {\n messageType: 'system',\n systemMessageType: 'topicUpdated',\n createdOn: message.createdOn,\n topic: message.content?.topic ?? '',\n messageId: message.id,\n iconName: 'Edit'\n };\n }\n};\n\n/**\n * Selector type for {@link MessageThread} component.\n *\n * @public\n */\nexport type MessageThreadSelector = (\n state: ChatClientState,\n props: ChatBaseSelectorProps\n) => {\n userId: string;\n showMessageStatus: boolean;\n messages: Message[];\n};\n\n/** Returns `true` if the message has participants and at least one participant has a display name. */\nconst hasValidParticipant = (chatMessage: ChatMessageWithStatus): boolean =>\n !!chatMessage.content?.participants && chatMessage.content.participants.some((p) => !!p.displayName);\n\n/**\n *\n * @private\n */\nexport const messageThreadSelectorWithThread: () => MessageThreadSelector = () =>\n createSelector(\n [getUserId, getChatMessages, getLatestReadTime, getIsLargeGroup, getReadReceipts, getParticipants],\n (userId, chatMessages, latestReadTime, isLargeGroup, readReceipts, participants) => {\n // We can't get displayName in teams meeting interop for now, disable rr feature when it is teams interop\n const isTeamsInterop = Object.values(participants).find((p) => 'microsoftTeamsUserId' in p.id) !== undefined;\n\n // get number of participants\n // filter out the non valid participants (no display name)\n // Read Receipt details will be disabled when participant count is 0\n const participantCount = isTeamsInterop\n ? undefined\n : Object.values(participants).filter((p) => p.displayName && p.displayName !== '').length;\n\n // creating key value pairs of senderID: last read message information\n\n const readReceiptsBySenderId: ReadReceiptsBySenderId = {};\n\n // readReceiptsBySenderId[senderID] gets updated every time a new message is read by this sender\n // in this way we can make sure that we are only saving the latest read message id and read on time for each sender\n readReceipts\n .filter((r) => r.sender && toFlatCommunicationIdentifier(r.sender) !== userId)\n .forEach((r) => {\n readReceiptsBySenderId[toFlatCommunicationIdentifier(r.sender)] = {\n lastReadMessage: r.chatMessageId,\n displayName: participants[toFlatCommunicationIdentifier(r.sender)]?.displayName ?? ''\n };\n });\n\n // A function takes parameter above and generate return value\n const convertedMessages = memoizedAllConvertChatMessage((memoizedFn) =>\n Object.values(chatMessages)\n .filter(\n (message) =>\n message.type.toLowerCase() === ACSKnownMessageType.text ||\n message.type.toLowerCase() === ACSKnownMessageType.richtextHtml ||\n message.type.toLowerCase() === ACSKnownMessageType.html ||\n (message.type === ACSKnownMessageType.participantAdded && hasValidParticipant(message)) ||\n (message.type === ACSKnownMessageType.participantRemoved && hasValidParticipant(message)) ||\n // TODO: Add support for topicUpdated system messages in MessageThread component.\n // message.type === ACSKnownMessageType.topicUpdated ||\n message.clientMessageId !== undefined\n )\n .filter(isMessageValidToRender)\n .map((message) => {\n return memoizedFn(\n message.id ?? message.clientMessageId,\n message,\n userId,\n message.createdOn <= latestReadTime,\n isLargeGroup\n );\n })\n );\n\n updateMessagesWithAttached(convertedMessages);\n return {\n userId,\n showMessageStatus: true,\n messages: convertedMessages,\n participantCount,\n readReceiptsBySenderId\n };\n }\n );\n\nconst sanitizedMessageContentType = (type: string): MessageContentType => {\n const lowerCaseType = type.toLowerCase();\n return lowerCaseType === 'text' || lowerCaseType === 'html' || lowerCaseType === 'richtext/html'\n ? lowerCaseType\n : 'unknown';\n};\n\nconst isMessageValidToRender = (message: ChatMessageWithStatus): boolean => {\n if (message.deletedOn) {\n return false;\n }\n if (\n message.metadata?.['fileSharingMetadata'] ||\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ message.content?.attachments\n ) {\n return true;\n }\n /* @conditional-compile-remove(data-loss-prevention) */\n if (message.policyViolation) {\n return true;\n }\n return !!(message.content && message.content?.message !== '');\n};\n\n/**\n * Selector for {@link MessageThread} component.\n *\n * @public\n */\nexport const messageThreadSelector: MessageThreadSelector = messageThreadSelectorWithThread();\n\"../../acs-ui-common/src\"\"../../chat-stateful-client/src\"\"../../react-components/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatClientProvider.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/providers/ChatClientProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AAY1F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,OAAO,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,IAAG,KAAK,CAAC,QAAQ,CAA8B,CAAC;AAC5G,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAuB,EAAE;IACpD,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,sGAAsG,CAAC;KAC9G;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport { StatefulChatClient } from '@internal/chat-stateful-client';\n\n/**\n * @private\n */\nexport const ChatClientContext = createContext<StatefulChatClient | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link ChatClientProvider}.\n *\n * @public\n */\nexport type ChatClientProviderProps = {\n children: React.ReactNode;\n chatClient: StatefulChatClient;\n};\n\n/**\n * A {@link React.Context} that stores a {@link StatefulChatClient}.\n *\n * Chat components from this package must be wrapped with a {@link ChatClientProvider}.\n *\n * @public\n */\nexport const ChatClientProvider = (props: ChatClientProviderProps): JSX.Element => {\n return <ChatClientContext.Provider value={props.chatClient}>{props.children}</ChatClientContext.Provider>;\n};\n\n/**\n * Hook to obtain {@link StatefulChatClient} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useChatClient = (): StatefulChatClient => {\n const chatClient = useContext(ChatClientContext);\n if (!chatClient) {\n throw 'Please wrap components with ChatClientProvider and initialize a chat client before calling the hook!';\n }\n return chatClient;\n};\"../../../chat-stateful-client/src\""]}
1
+ {"version":3,"file":"ChatClientProvider.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/providers/ChatClientProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AAY1F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAe,EAAE;IAChF,OAAO,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,IAAG,KAAK,CAAC,QAAQ,CAA8B,CAAC;AAC5G,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAuB,EAAE;IACpD,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,sGAAsG,CAAC;KAC9G;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport { StatefulChatClient } from '@internal/chat-stateful-client';\n\n/**\n * @private\n */\nexport const ChatClientContext = createContext<StatefulChatClient | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link ChatClientProvider}.\n *\n * @public\n */\nexport type ChatClientProviderProps = {\n children: React.ReactNode;\n chatClient: StatefulChatClient;\n};\n\n/**\n * A {@link React.Context} that stores a {@link StatefulChatClient}.\n *\n * Chat components from this package must be wrapped with a {@link ChatClientProvider}.\n *\n * @public\n */\nexport const ChatClientProvider = (props: ChatClientProviderProps): JSX.Element => {\n return <ChatClientContext.Provider value={props.chatClient}>{props.children}</ChatClientContext.Provider>;\n};\n\n/**\n * Hook to obtain {@link StatefulChatClient} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useChatClient = (): StatefulChatClient => {\n const chatClient = useContext(ChatClientContext);\n if (!chatClient) {\n throw 'Please wrap components with ChatClientProvider and initialize a chat client before calling the hook!';\n }\n return chatClient;\n};\n\"../../../chat-stateful-client/src\""]}
@@ -13,7 +13,7 @@ export const ChatThreadClientContext = createContext(undefined);
13
13
  * @public
14
14
  */
15
15
  export const ChatThreadClientProvider = (props) => {
16
- return React.createElement(ChatThreadClientContext.Provider, { value: props.chatThreadClient }, props.children);
16
+ return (React.createElement(ChatThreadClientContext.Provider, { value: props.chatThreadClient }, props.children));
17
17
  };
18
18
  /**
19
19
  * Hook to obtain {@link @azure/communication-chat#ChatThreadClient} from the provider.
@@ -1 +1 @@
1
- {"version":3,"file":"ChatThreadClientProvider.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/providers/ChatThreadClientProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAA+B,SAAS,CAAC,CAAC;AAY9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAoC,EAAe,EAAE;IAC5F,OAAO,oBAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,IAAG,KAAK,CAAC,QAAQ,CAAoC,CAAC;AAC9H,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAqB,EAAE;IACxD,MAAM,gBAAgB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,mHAAmH,CAAC;KAC3H;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport { ChatThreadClient } from '@azure/communication-chat';\n\n/**\n * @private\n */\nexport const ChatThreadClientContext = createContext<ChatThreadClient | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link ChatThreadClientProvider}.\n *\n * @public\n */\nexport type ChatThreadClientProviderProps = {\n children: React.ReactNode;\n chatThreadClient: ChatThreadClient;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-chat#ChatThreadClient}.\n *\n * Chat components from this package must be wrapped with a {@link ChatThreadClientProvider}.\n *\n * @public\n */\nexport const ChatThreadClientProvider = (props: ChatThreadClientProviderProps): JSX.Element => {\n return <ChatThreadClientContext.Provider value={props.chatThreadClient}>{props.children}</ChatThreadClientContext.Provider>;\n};\n/**\n * Hook to obtain {@link @azure/communication-chat#ChatThreadClient} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useChatThreadClient = (): ChatThreadClient => {\n const chatThreadClient = useContext(ChatThreadClientContext);\n if (!chatThreadClient) {\n throw 'Please wrap components with ChatThreadClientProvider and initialize a chat thread client before calling the hook.';\n }\n return chatThreadClient;\n};"]}
1
+ {"version":3,"file":"ChatThreadClientProvider.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/providers/ChatThreadClientProvider.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAA+B,SAAS,CAAC,CAAC;AAY9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAoC,EAAe,EAAE;IAC5F,OAAO,CACL,oBAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,IAAG,KAAK,CAAC,QAAQ,CAAoC,CACrH,CAAC;AACJ,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAqB,EAAE;IACxD,MAAM,gBAAgB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,mHAAmH,CAAC;KAC3H;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createContext, useContext } from 'react';\nimport { ChatThreadClient } from '@azure/communication-chat';\n\n/**\n * @private\n */\nexport const ChatThreadClientContext = createContext<ChatThreadClient | undefined>(undefined);\n\n/**\n * Arguments to initialize a {@link ChatThreadClientProvider}.\n *\n * @public\n */\nexport type ChatThreadClientProviderProps = {\n children: React.ReactNode;\n chatThreadClient: ChatThreadClient;\n};\n\n/**\n * A {@link React.Context} that stores a {@link @azure/communication-chat#ChatThreadClient}.\n *\n * Chat components from this package must be wrapped with a {@link ChatThreadClientProvider}.\n *\n * @public\n */\nexport const ChatThreadClientProvider = (props: ChatThreadClientProviderProps): JSX.Element => {\n return (\n <ChatThreadClientContext.Provider value={props.chatThreadClient}>{props.children}</ChatThreadClientContext.Provider>\n );\n};\n/**\n * Hook to obtain {@link @azure/communication-chat#ChatThreadClient} from the provider.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const useChatThreadClient = (): ChatThreadClient => {\n const chatThreadClient = useContext(ChatThreadClientContext);\n if (!chatThreadClient) {\n throw 'Please wrap components with ChatThreadClientProvider and initialize a chat thread client before calling the hook.';\n }\n return chatThreadClient;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sendBoxSelector.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-component-bindings/src/sendBoxSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAyB,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAYnF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB,cAAc,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACpH,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,MAAM;CACf,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatClientState } from '@internal/chat-stateful-client';\nimport { createSelector } from 'reselect';\nimport { ChatBaseSelectorProps, getDisplayName, getUserId } from './baseSelectors';\n\n/**\n * Selector type for {@link SendBox} component.\n *\n * @public\n */\nexport type SendBoxSelector = (state: ChatClientState, props: ChatBaseSelectorProps) => {\n displayName: string;\n userId: string;\n};\n\n/**\n * Selector for {@link SendBox} component.\n *\n * @public\n */\nexport const sendBoxSelector: SendBoxSelector = createSelector([getUserId, getDisplayName], (userId, displayName) => ({\n displayName: displayName,\n userId: userId\n}));\"../../chat-stateful-client/src\""]}
1
+ {"version":3,"file":"sendBoxSelector.js","sourceRoot":"","sources":["../../../../../chat-component-bindings/src/sendBoxSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAyB,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAenF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB,cAAc,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACpH,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,MAAM;CACf,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatClientState } from '@internal/chat-stateful-client';\nimport { createSelector } from 'reselect';\nimport { ChatBaseSelectorProps, getDisplayName, getUserId } from './baseSelectors';\n\n/**\n * Selector type for {@link SendBox} component.\n *\n * @public\n */\nexport type SendBoxSelector = (\n state: ChatClientState,\n props: ChatBaseSelectorProps\n) => {\n displayName: string;\n userId: string;\n};\n\n/**\n * Selector for {@link SendBox} component.\n *\n * @public\n */\nexport const sendBoxSelector: SendBoxSelector = createSelector([getUserId, getDisplayName], (userId, displayName) => ({\n displayName: displayName,\n userId: userId\n}));\n\"../../chat-stateful-client/src\""]}
@@ -25,7 +25,7 @@ const filterTypingIndicators = (typingIndicators, userId) => {
25
25
  return filteredTypingIndicators;
26
26
  };
27
27
  const convertSdkTypingIndicatorsToCommunicationParticipants = (typingIndicators, participants) => {
28
- return typingIndicators.map(typingIndicator => {
28
+ return typingIndicators.map((typingIndicator) => {
29
29
  var _a;
30
30
  return ({
31
31
  userId: toFlatCommunicationIdentifier(typingIndicator.sender),
@@ -41,15 +41,11 @@ const convertSdkTypingIndicatorsToCommunicationParticipants = (typingIndicators,
41
41
  export const typingIndicatorSelector = createSelector([getTypingIndicators, getParticipants, getUserId], (typingIndicators, participants, userId) => {
42
42
  // if the participant size reaches the threshold then return no typing users
43
43
  if (Object.values(participants).length >= PARTICIPANTS_THRESHOLD) {
44
- return {
45
- typingUsers: []
46
- };
44
+ return { typingUsers: [] };
47
45
  }
48
46
  // filter typing indicators to remove those that are from the duplicate users or current user as well as those older than a threshold
49
47
  const filteredTypingIndicators = filterTypingIndicators(typingIndicators, userId);
50
48
  const typingUsers = convertSdkTypingIndicatorsToCommunicationParticipants(filteredTypingIndicators, participants);
51
- return {
52
- typingUsers
53
- };
49
+ return { typingUsers };
54
50
  });
55
51
  //# sourceMappingURL=typingIndicatorSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typingIndicatorSelector.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-component-bindings/src/typingIndicatorSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAExE,OAAO,EAAE,uCAAuC,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,MAAM,sBAAsB,GAAG,CAAC,gBAAgD,EAAE,MAAc,EAAkC,EAAE;IAClI,MAAM,wBAAwB,GAAmC,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,uCAAuC,CAAC,CAAC;IACvF,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;YACpE,SAAS;SACV;QACD,IAAI,eAAe,CAAC,UAAU,GAAG,eAAe,EAAE;YAChD,SAAS;SACV;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE;YACnE,SAAS;SACV;QACD,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AACF,MAAM,qDAAqD,GAAG,CAAC,gBAAgD,EAAE,YAEhH,EAA8B,EAAE;IAC/B,OAAO,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;;QAAC,OAAA,CAAC;YAC9C,MAAM,EAAE,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC;YAC7D,WAAW,EAAE,MAAA,YAAY,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,0CAAE,WAAW;SAC9F,CAAC,CAAA;KAAA,CAAC,CAAC;AACN,CAAC,CAAC;AAWF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA4B,cAAc,CAAC,CAAC,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,gBAAgD,EAAE,YAEpL,EAAE,MAAc,EAAE,EAAE;IACnB,4EAA4E;IAC5E,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,sBAAsB,EAAE;QAChE,OAAO;YACL,WAAW,EAAE,EAAE;SAChB,CAAC;KACH;IAED,qIAAqI;IACrI,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAClF,MAAM,WAAW,GAA+B,qDAAqD,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAC9I,OAAO;QACL,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { getTypingIndicators, getParticipants, getUserId, ChatBaseSelectorProps } from './baseSelectors';\nimport { createSelector } from 'reselect';\nimport { ChatParticipant } from '@azure/communication-chat';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CommunicationParticipant } from '@internal/react-components';\nimport { MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS, PARTICIPANTS_THRESHOLD } from './utils/constants';\nimport { ChatClientState } from '@internal/chat-stateful-client';\nconst filterTypingIndicators = (typingIndicators: TypingIndicatorReceivedEvent[], userId: string): TypingIndicatorReceivedEvent[] => {\n const filteredTypingIndicators: TypingIndicatorReceivedEvent[] = [];\n const seen = new Set();\n const date8SecondsAgo = new Date(Date.now() - MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS);\n for (let i = typingIndicators.length - 1; i >= 0; i--) {\n const typingIndicator = typingIndicators[i];\n if (toFlatCommunicationIdentifier(typingIndicator.sender) === userId) {\n continue;\n }\n if (typingIndicator.receivedOn < date8SecondsAgo) {\n continue;\n }\n if (seen.has(toFlatCommunicationIdentifier(typingIndicator.sender))) {\n continue;\n }\n seen.add(toFlatCommunicationIdentifier(typingIndicator.sender));\n filteredTypingIndicators.push(typingIndicator);\n }\n return filteredTypingIndicators;\n};\nconst convertSdkTypingIndicatorsToCommunicationParticipants = (typingIndicators: TypingIndicatorReceivedEvent[], participants: {\n [key: string]: ChatParticipant;\n}): CommunicationParticipant[] => {\n return typingIndicators.map(typingIndicator => ({\n userId: toFlatCommunicationIdentifier(typingIndicator.sender),\n displayName: participants[toFlatCommunicationIdentifier(typingIndicator.sender)]?.displayName\n }));\n};\n\n/**\n * Selector type for {@link TypingIndicator} component.\n *\n * @public\n */\nexport type TypingIndicatorSelector = (state: ChatClientState, props: ChatBaseSelectorProps) => {\n typingUsers: CommunicationParticipant[];\n};\n\n/**\n * Selector for {@link TypingIndicator} component.\n *\n * @public\n */\nexport const typingIndicatorSelector: TypingIndicatorSelector = createSelector([getTypingIndicators, getParticipants, getUserId], (typingIndicators: TypingIndicatorReceivedEvent[], participants: {\n [key: string]: ChatParticipant;\n}, userId: string) => {\n // if the participant size reaches the threshold then return no typing users\n if (Object.values(participants).length >= PARTICIPANTS_THRESHOLD) {\n return {\n typingUsers: []\n };\n }\n\n // filter typing indicators to remove those that are from the duplicate users or current user as well as those older than a threshold\n const filteredTypingIndicators = filterTypingIndicators(typingIndicators, userId);\n const typingUsers: CommunicationParticipant[] = convertSdkTypingIndicatorsToCommunicationParticipants(filteredTypingIndicators, participants);\n return {\n typingUsers\n };\n});\"../../acs-ui-common/src\"\"../../react-components/src\"\"../../chat-stateful-client/src\""]}
1
+ {"version":3,"file":"typingIndicatorSelector.js","sourceRoot":"","sources":["../../../../../chat-component-bindings/src/typingIndicatorSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAExE,OAAO,EAAE,uCAAuC,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,MAAM,sBAAsB,GAAG,CAC7B,gBAAgD,EAChD,MAAc,EACkB,EAAE;IAClC,MAAM,wBAAwB,GAAmC,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,uCAAuC,CAAC,CAAC;IACvF,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;YACpE,SAAS;SACV;QACD,IAAI,eAAe,CAAC,UAAU,GAAG,eAAe,EAAE;YAChD,SAAS;SACV;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE;YACnE,SAAS;SACV;QACD,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,qDAAqD,GAAG,CAC5D,gBAAgD,EAChD,YAAgD,EACpB,EAAE;IAC9B,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE;;QAAC,OAAA,CAAC;YAChD,MAAM,EAAE,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC;YAC7D,WAAW,EAAE,MAAA,YAAY,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,0CAAE,WAAW;SAC9F,CAAC,CAAA;KAAA,CAAC,CAAC;AACN,CAAC,CAAC;AAcF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA4B,cAAc,CAC5E,CAAC,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC,EACjD,CACE,gBAAgD,EAChD,YAAgD,EAChD,MAAc,EACd,EAAE;IACF,4EAA4E;IAC5E,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,sBAAsB,EAAE;QAChE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;KAC5B;IAED,qIAAqI;IACrI,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAElF,MAAM,WAAW,GAA+B,qDAAqD,CACnG,wBAAwB,EACxB,YAAY,CACb,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC,CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { getTypingIndicators, getParticipants, getUserId, ChatBaseSelectorProps } from './baseSelectors';\nimport { createSelector } from 'reselect';\nimport { ChatParticipant } from '@azure/communication-chat';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CommunicationParticipant } from '@internal/react-components';\nimport { MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS, PARTICIPANTS_THRESHOLD } from './utils/constants';\nimport { ChatClientState } from '@internal/chat-stateful-client';\n\nconst filterTypingIndicators = (\n typingIndicators: TypingIndicatorReceivedEvent[],\n userId: string\n): TypingIndicatorReceivedEvent[] => {\n const filteredTypingIndicators: TypingIndicatorReceivedEvent[] = [];\n const seen = new Set();\n const date8SecondsAgo = new Date(Date.now() - MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS);\n for (let i = typingIndicators.length - 1; i >= 0; i--) {\n const typingIndicator = typingIndicators[i];\n if (toFlatCommunicationIdentifier(typingIndicator.sender) === userId) {\n continue;\n }\n if (typingIndicator.receivedOn < date8SecondsAgo) {\n continue;\n }\n if (seen.has(toFlatCommunicationIdentifier(typingIndicator.sender))) {\n continue;\n }\n seen.add(toFlatCommunicationIdentifier(typingIndicator.sender));\n filteredTypingIndicators.push(typingIndicator);\n }\n return filteredTypingIndicators;\n};\n\nconst convertSdkTypingIndicatorsToCommunicationParticipants = (\n typingIndicators: TypingIndicatorReceivedEvent[],\n participants: { [key: string]: ChatParticipant }\n): CommunicationParticipant[] => {\n return typingIndicators.map((typingIndicator) => ({\n userId: toFlatCommunicationIdentifier(typingIndicator.sender),\n displayName: participants[toFlatCommunicationIdentifier(typingIndicator.sender)]?.displayName\n }));\n};\n\n/**\n * Selector type for {@link TypingIndicator} component.\n *\n * @public\n */\nexport type TypingIndicatorSelector = (\n state: ChatClientState,\n props: ChatBaseSelectorProps\n) => {\n typingUsers: CommunicationParticipant[];\n};\n\n/**\n * Selector for {@link TypingIndicator} component.\n *\n * @public\n */\nexport const typingIndicatorSelector: TypingIndicatorSelector = createSelector(\n [getTypingIndicators, getParticipants, getUserId],\n (\n typingIndicators: TypingIndicatorReceivedEvent[],\n participants: { [key: string]: ChatParticipant },\n userId: string\n ) => {\n // if the participant size reaches the threshold then return no typing users\n if (Object.values(participants).length >= PARTICIPANTS_THRESHOLD) {\n return { typingUsers: [] };\n }\n\n // filter typing indicators to remove those that are from the duplicate users or current user as well as those older than a threshold\n const filteredTypingIndicators = filterTypingIndicators(typingIndicators, userId);\n\n const typingUsers: CommunicationParticipant[] = convertSdkTypingIndicatorsToCommunicationParticipants(\n filteredTypingIndicators,\n participants\n );\n\n return { typingUsers };\n }\n);\n\"../../acs-ui-common/src\"\"../../react-components/src\"\"../../chat-stateful-client/src\""]}
@@ -14,7 +14,9 @@ export const compareMessages = (firstMessage, secondMessage) => {
14
14
  const secondDate = new Date(secondMessage.createdOn).getTime();
15
15
  // Workaround to get a stable order of message before we can get sequenceId from chat service.
16
16
  // MessageIds are generated by time order the message persist, a good candidate other than time
17
- const idDelta = firstMessage.messageId && secondMessage.messageId ? Number.parseInt(firstMessage.messageId) - Number.parseInt(secondMessage.messageId) : 0;
17
+ const idDelta = firstMessage.messageId && secondMessage.messageId
18
+ ? Number.parseInt(firstMessage.messageId) - Number.parseInt(secondMessage.messageId)
19
+ : 0;
18
20
  return firstDate - secondDate === 0 ? idDelta : firstDate - secondDate;
19
21
  };
20
22
  //# sourceMappingURL=compareMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compareMessages.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/utils/compareMessages.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,aAAsB,EAAU,EAAE;IACvF,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE;QACxC,OAAO,CAAC,CAAC;KACV;IACD,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE;QACzC,OAAO,CAAC,CAAC,CAAC;KACX;IACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/D,8FAA8F;IAC9F,+FAA+F;IAC/F,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3J,OAAO,SAAS,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC;AACzE,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Message } from '@internal/react-components';\n\n/**\n * @private\n */\nexport const compareMessages = (firstMessage: Message, secondMessage: Message): number => {\n if (firstMessage.createdOn === undefined) {\n return 1;\n }\n if (secondMessage.createdOn === undefined) {\n return -1;\n }\n const firstDate = new Date(firstMessage.createdOn).getTime();\n const secondDate = new Date(secondMessage.createdOn).getTime();\n // Workaround to get a stable order of message before we can get sequenceId from chat service.\n // MessageIds are generated by time order the message persist, a good candidate other than time\n const idDelta = firstMessage.messageId && secondMessage.messageId ? Number.parseInt(firstMessage.messageId) - Number.parseInt(secondMessage.messageId) : 0;\n return firstDate - secondDate === 0 ? idDelta : firstDate - secondDate;\n};\"../../../react-components/src\""]}
1
+ {"version":3,"file":"compareMessages.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/utils/compareMessages.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,aAAsB,EAAU,EAAE;IACvF,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE;QACxC,OAAO,CAAC,CAAC;KACV;IACD,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE;QACzC,OAAO,CAAC,CAAC,CAAC;KACX;IACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/D,8FAA8F;IAC9F,+FAA+F;IAC/F,MAAM,OAAO,GACX,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS;QAC/C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;QACpF,CAAC,CAAC,CAAC,CAAC;IACR,OAAO,SAAS,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC;AACzE,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Message } from '@internal/react-components';\n\n/**\n * @private\n */\nexport const compareMessages = (firstMessage: Message, secondMessage: Message): number => {\n if (firstMessage.createdOn === undefined) {\n return 1;\n }\n if (secondMessage.createdOn === undefined) {\n return -1;\n }\n const firstDate = new Date(firstMessage.createdOn).getTime();\n const secondDate = new Date(secondMessage.createdOn).getTime();\n // Workaround to get a stable order of message before we can get sequenceId from chat service.\n // MessageIds are generated by time order the message persist, a good candidate other than time\n const idDelta =\n firstMessage.messageId && secondMessage.messageId\n ? Number.parseInt(firstMessage.messageId) - Number.parseInt(secondMessage.messageId)\n : 0;\n return firstDate - secondDate === 0 ? idDelta : firstDate - secondDate;\n};\n\"../../../react-components/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/utils/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,iDAAiD,CAAC;AAEzG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAG,MAAgB;IACvB,IAAI,EAAG,MAAgB;IACvB,YAAY,EAAG,eAAyB;IACxC,YAAY,EAAG,cAAwB;IACvC,gBAAgB,EAAG,kBAA4B;IAC/C,kBAAkB,EAAG,oBAA8B;CACpD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS = 8000;\n\n/**\n * @private\n */\nexport const PARTICIPANTS_THRESHOLD = 20;\n\n/**\n * @private\n */\nexport const MINUTE_IN_MS = 1000 * 60;\n\n/**\n * @private\n */\nexport const DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL = 'https://go.microsoft.com/fwlink/?LinkId=2132837';\n\n/**\n * @private\n *\n * TODO: Import enum from @azure/communication-chat when ChatMessageType shows up in new release version\n * (or define our type to decouple)\n */\nexport const ACSKnownMessageType = {\n text: ('text' as const),\n html: ('html' as const),\n richtextHtml: ('richtext/html' as const),\n topicUpdated: ('topicUpdated' as const),\n participantAdded: ('participantAdded' as const),\n participantRemoved: ('participantRemoved' as const)\n};"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../chat-component-bindings/src/utils/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,iDAAiD,CAAC;AAEzG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAe;IACrB,IAAI,EAAE,MAAe;IACrB,YAAY,EAAE,eAAwB;IACtC,YAAY,EAAE,cAAuB;IACrC,gBAAgB,EAAE,kBAA2B;IAC7C,kBAAkB,EAAE,oBAA6B;CAClD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS = 8000;\n\n/**\n * @private\n */\nexport const PARTICIPANTS_THRESHOLD = 20;\n\n/**\n * @private\n */\nexport const MINUTE_IN_MS = 1000 * 60;\n\n/**\n * @private\n */\nexport const DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL = 'https://go.microsoft.com/fwlink/?LinkId=2132837';\n\n/**\n * @private\n *\n * TODO: Import enum from @azure/communication-chat when ChatMessageType shows up in new release version\n * (or define our type to decouple)\n */\nexport const ACSKnownMessageType = {\n text: 'text' as const,\n html: 'html' as const,\n richtextHtml: 'richtext/html' as const,\n topicUpdated: 'topicUpdated' as const,\n participantAdded: 'participantAdded' as const,\n participantRemoved: 'participantRemoved' as const\n};\n"]}