@azure/communication-react 1.32.0-beta.1 → 1.32.0

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 (946) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +32 -32
  3. package/dist/communication-react.d.ts +41 -1374
  4. package/dist/dist-cjs/communication-react/index.js +40467 -174
  5. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/common.d.ts +0 -13
  9. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/constants.d.ts +0 -5
  12. package/dist/dist-esm/acs-ui-common/src/constants.js +0 -5
  13. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/index.d.ts +0 -4
  17. package/dist/dist-esm/acs-ui-common/src/index.js +0 -3
  18. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  20. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  21. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  22. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  23. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  24. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  25. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  26. package/dist/dist-esm/acs-ui-javascript-loaders/src/callCompositeLoader.js.map +1 -1
  27. package/dist/dist-esm/acs-ui-javascript-loaders/src/callWithChatCompositeLoader.js.map +1 -1
  28. package/dist/dist-esm/acs-ui-javascript-loaders/src/chatCompositeLoader.js.map +1 -1
  29. package/dist/dist-esm/acs-ui-javascript-loaders/src/outboundCallCompositeLoader.js.map +1 -1
  30. package/dist/dist-esm/acs-ui-javascript-loaders/src/utils.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -2
  32. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/getRemoteParticipantsExcludingConsumers.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +0 -2
  38. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +0 -6
  39. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  40. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  41. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +1 -25
  43. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/incomingCallStackSelector.js.map +1 -1
  48. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +7 -0
  49. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  50. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts +0 -1
  51. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -3
  52. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  53. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  55. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  56. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  57. package/dist/dist-esm/calling-component-bindings/src/remoteParticipantsSelector.js.map +1 -1
  58. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  59. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -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.js.map +1 -1
  62. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  63. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  64. package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js +5 -1
  65. package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +0 -4
  68. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  69. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +3 -43
  70. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +0 -6
  72. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -35
  73. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  75. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js.map +1 -1
  77. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  79. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +0 -4
  80. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +7 -33
  81. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
  83. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  84. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -3
  85. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  87. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  88. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  89. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  90. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  91. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  92. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js.map +1 -1
  93. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  94. package/dist/dist-esm/calling-stateful-client/src/PPTLiveSubscriber.js.map +1 -1
  95. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  97. package/dist/dist-esm/calling-stateful-client/src/ReactionSubscriber.js.map +1 -1
  98. package/dist/dist-esm/calling-stateful-client/src/RealTimeTextSubscriber.js.map +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts +0 -1
  100. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js +1 -7
  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/SpotlightSubscriber.js.map +1 -1
  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.map +1 -1
  106. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  108. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +0 -17
  109. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  110. package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js.map +1 -1
  112. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.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.map +1 -1
  116. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  117. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -1
  118. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  119. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  120. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  121. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  122. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +2 -6
  123. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -36
  124. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  125. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  126. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts +1 -2
  127. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js +0 -4
  128. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  129. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  130. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +2 -25
  131. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  132. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  133. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  134. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  135. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  136. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  137. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  138. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -3
  139. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  140. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -15
  141. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  142. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +3 -2
  143. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  144. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +1 -2
  145. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  146. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  147. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js.map +1 -1
  148. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  149. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.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/convertChatMessage.js.map +1 -1
  152. package/dist/dist-esm/chat-stateful-client/src/index.d.ts +0 -1
  153. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  154. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  155. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  156. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  157. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  158. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  159. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  160. package/dist/dist-esm/communication-react/src/api-summary.js.map +1 -1
  161. package/dist/dist-esm/communication-react/src/index.d.ts +0 -21
  162. package/dist/dist-esm/communication-react/src/index.js +0 -3
  163. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  164. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/Announcer.js +4 -1
  170. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.d.ts +0 -2
  174. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +0 -1
  175. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  178. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/CaptionsAndRTTAnnouncer.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +2 -2
  181. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  183. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  185. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -13
  186. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js +3 -9
  187. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +0 -11
  189. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +2 -32
  190. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/ChatMessage/DefaultSystemMessage.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -8
  193. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +5 -9
  194. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.d.ts +1 -2
  196. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +4 -4
  197. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.d.ts +1 -4
  199. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +6 -31
  200. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +1 -15
  202. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +0 -9
  203. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +2 -23
  205. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +6 -17
  206. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  207. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -8
  208. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +6 -10
  209. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +5 -5
  211. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  215. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  217. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  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.map +1 -1
  220. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  222. package/dist/dist-esm/react-components/src/components/Dialpad/DTMFToneGenerator.js.map +1 -1
  223. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  224. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  225. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  226. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  227. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  228. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  229. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js.map +1 -1
  230. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  231. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  232. package/dist/dist-esm/react-components/src/components/ErrorBoundary.js.map +1 -1
  233. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  234. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  235. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  236. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  237. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +0 -2
  238. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/IncomingCallNotification.js.map +1 -1
  240. package/dist/dist-esm/react-components/src/components/IncomingCallStack.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/InputBoxButton.js.map +1 -1
  242. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts +0 -2
  243. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +0 -15
  244. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  245. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -2
  247. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +4 -0
  249. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +1 -1
  250. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  251. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js.map +1 -1
  252. package/dist/dist-esm/react-components/src/components/MessageStatusIcon.js.map +1 -1
  253. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  254. package/dist/dist-esm/react-components/src/components/MessageStatusIndicatorInternal.js.map +1 -1
  255. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +5 -81
  256. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -13
  257. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  258. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +4 -2
  259. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  260. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +6 -2
  261. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  262. package/dist/dist-esm/react-components/src/components/Notification.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/NotificationStack.d.ts +4 -0
  264. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  265. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  266. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +0 -15
  267. package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -12
  268. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  269. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  270. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  272. package/dist/dist-esm/react-components/src/components/RTTDisclosureBanner.js.map +1 -1
  273. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  274. package/dist/dist-esm/react-components/src/components/ReactionButton.js +4 -4
  275. package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
  276. package/dist/dist-esm/react-components/src/components/RealTimeText.js.map +1 -1
  277. package/dist/dist-esm/react-components/src/components/RealTimeTextModal.js.map +1 -1
  278. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  279. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  280. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  281. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  282. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +1 -51
  283. package/dist/dist-esm/react-components/src/components/SendBox.js +6 -58
  284. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  285. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/components/StartRealTimeTextButton.js.map +1 -1
  287. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js +2 -2
  289. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.styles.js.map +1 -1
  291. package/dist/dist-esm/react-components/src/components/Survey/SurveyTypes.js.map +1 -1
  292. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js.map +1 -1
  293. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.styles.js.map +1 -1
  294. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  295. package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  297. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  298. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  299. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  300. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  301. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  302. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  303. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  304. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  305. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +1 -1
  306. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  307. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  308. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  309. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +1 -1
  310. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  311. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js +1 -1
  312. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js.map +1 -1
  313. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  314. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  315. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  316. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -1
  317. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -1
  318. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  319. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  320. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +1 -1
  321. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
  322. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js.map +1 -1
  323. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js.map +1 -1
  324. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  325. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  326. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  327. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  328. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  329. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  330. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  331. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  332. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  334. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +1 -1
  335. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  336. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  337. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  338. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +4 -0
  339. package/dist/dist-esm/react-components/src/components/VideoGallery.js +34 -5
  340. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  341. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  342. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  343. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -21
  344. package/dist/dist-esm/react-components/src/components/index.js +0 -8
  345. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  346. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
  347. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
  348. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.d.ts +1 -1
  349. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js.map +1 -1
  350. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +5 -1
  351. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +28 -3
  352. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  353. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  354. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  355. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  356. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  358. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  359. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  360. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  361. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/styles/InputBoxButton.style.js.map +1 -1
  363. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  364. package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js.map +1 -1
  365. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  366. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +3 -3
  367. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +0 -8
  368. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  369. package/dist/dist-esm/react-components/src/components/styles/Notification.styles.js.map +1 -1
  370. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  371. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  372. package/dist/dist-esm/react-components/src/components/styles/RTTDisclosureBanner.styles.js.map +1 -1
  373. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/styles/ReactionOverlay.style.js.map +1 -1
  375. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  376. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  377. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  378. package/dist/dist-esm/react-components/src/components/styles/TeamsMeetingConferenceInfo.js.map +1 -1
  379. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js.map +1 -1
  380. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  381. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  382. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  383. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -1
  385. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +2 -3
  386. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  387. package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -1
  388. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +1 -38
  389. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +3 -30
  390. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  391. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +2 -4
  392. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +2 -9
  393. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  395. package/dist/dist-esm/react-components/src/components/utils/Logger.js.map +1 -1
  396. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +1 -47
  397. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +4 -154
  398. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/utils/common.js +0 -2
  400. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  401. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  402. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  403. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +1 -2
  404. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  405. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  406. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  407. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/utils/sortCaptionsAndRealTimeTexts.js.map +1 -1
  409. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  410. package/dist/dist-esm/react-components/src/components/utils.js +1 -0
  411. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  412. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  413. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +0 -4
  414. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +1 -3
  415. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  417. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  418. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -45
  419. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  420. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js.map +1 -1
  421. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +10 -1
  422. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js.map +1 -1
  423. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +10 -1
  424. package/dist/dist-esm/react-components/src/localization/locales/cy-GB/ComponentLocale.js.map +1 -1
  425. package/dist/dist-esm/react-components/src/localization/locales/cy-GB/strings.json +10 -1
  426. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js.map +1 -1
  427. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +10 -1
  428. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js.map +1 -1
  429. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +10 -1
  430. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +10 -1
  431. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js.map +1 -1
  432. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +10 -1
  433. package/dist/dist-esm/react-components/src/localization/locales/es-MX/ComponentLocale.js.map +1 -1
  434. package/dist/dist-esm/react-components/src/localization/locales/es-MX/strings.json +10 -1
  435. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js.map +1 -1
  436. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +10 -1
  437. package/dist/dist-esm/react-components/src/localization/locales/fr-CA/ComponentLocale.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/localization/locales/fr-CA/strings.json +12 -3
  439. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js.map +1 -1
  440. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +12 -3
  441. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js.map +1 -1
  442. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +10 -1
  443. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js.map +1 -1
  444. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +10 -1
  445. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js.map +1 -1
  446. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +10 -1
  447. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js.map +1 -1
  448. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +10 -1
  449. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js.map +1 -1
  450. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +10 -1
  451. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js.map +1 -1
  452. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +10 -1
  453. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js.map +1 -1
  454. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +10 -1
  455. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js.map +1 -1
  456. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +10 -1
  457. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js.map +1 -1
  458. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +10 -1
  459. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js.map +1 -1
  460. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +10 -1
  461. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js.map +1 -1
  462. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +10 -1
  463. package/dist/dist-esm/react-components/src/localization/locales/utils.js.map +1 -1
  464. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js.map +1 -1
  465. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +10 -1
  466. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js.map +1 -1
  467. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +10 -1
  468. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  469. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
  470. package/dist/dist-esm/react-components/src/theming/generateTheme.js.map +1 -1
  471. package/dist/dist-esm/react-components/src/theming/icons.d.ts +0 -24
  472. package/dist/dist-esm/react-components/src/theming/icons.js +0 -67
  473. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  474. package/dist/dist-esm/react-components/src/theming/themeDuplicates.js.map +1 -1
  475. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  476. package/dist/dist-esm/react-components/src/theming/themes.d.ts +0 -6
  477. package/dist/dist-esm/react-components/src/theming/themes.js +0 -9
  478. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  479. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  480. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +0 -13
  481. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  482. package/dist/dist-esm/react-components/src/types/CallSurveyImprovementSuggestions.js.map +1 -1
  483. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  484. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -20
  485. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  486. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  487. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  488. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  489. package/dist/dist-esm/react-components/src/types/ReactionTypes.js.map +1 -1
  490. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  491. package/dist/dist-esm/react-components/src/types/SurveyIssues.js.map +1 -1
  492. package/dist/dist-esm/react-components/src/types/SurveyIssuesHeadingStrings.js.map +1 -1
  493. package/dist/dist-esm/react-components/src/types/TogetherModeTypes.js.map +1 -1
  494. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  495. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  496. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +1 -59
  497. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +14 -18
  498. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  499. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  500. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  501. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +6 -38
  502. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +7 -16
  503. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  504. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  505. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  506. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -1
  507. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  508. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  509. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  510. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  511. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +0 -2
  512. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  513. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.js.map +1 -1
  514. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.js.map +1 -1
  515. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  516. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
  517. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  518. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  519. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  520. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +0 -2
  521. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +0 -19
  522. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  523. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +2 -10
  524. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  525. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +0 -2
  526. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +0 -19
  527. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  528. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  529. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  530. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  531. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  532. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -1
  533. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +3 -5
  534. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  535. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  536. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  537. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  538. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  539. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js +5 -3
  540. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Prompt.js.map +1 -1
  541. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +1 -1
  542. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  543. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  544. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +7 -6
  545. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  546. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  547. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  548. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SvgWithWordWrapping.js.map +1 -1
  549. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  550. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  551. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  552. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  553. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  554. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useCompositeStringsForNotificationStack.js.map +1 -1
  555. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -3
  556. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  557. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  558. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  559. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +0 -3
  560. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  561. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
  562. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
  563. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  564. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +0 -7
  565. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +10 -45
  566. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  567. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js.map +1 -1
  568. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +2 -2
  569. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  570. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +1 -0
  571. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -2
  572. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  573. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  574. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js +7 -1
  575. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js.map +1 -1
  576. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js +1 -1
  577. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js.map +1 -1
  578. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +2 -2
  579. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  580. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  581. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  583. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  584. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -1
  585. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitySelector.js.map +1 -1
  586. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  587. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js.map +1 -1
  588. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  589. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  590. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/getFirstSpotlightedRemoteParticipantSelector.js.map +1 -1
  591. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  592. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  593. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  594. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  595. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  596. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  597. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  598. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +2 -2
  599. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  600. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  601. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/DtmfDialpadPage.styles.js.map +1 -1
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +2 -2
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +0 -8
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -68
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js.map +1 -1
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/timerUtils.js.map +1 -1
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/useConsoleErrors.js.map +1 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +0 -52
  624. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +5 -11
  625. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  626. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  628. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  629. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  631. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -10
  632. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -20
  633. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +2 -16
  635. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -10
  638. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +2 -14
  639. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  641. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  644. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +0 -27
  645. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +1 -2
  646. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  647. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  648. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +0 -2
  649. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -189
  650. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  651. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +0 -20
  652. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  653. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -6
  654. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +0 -36
  655. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  656. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -12
  657. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  658. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  659. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  660. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  661. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +2 -13
  662. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  663. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  664. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  665. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +0 -2
  666. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  667. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +0 -4
  668. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +0 -4
  669. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  670. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  671. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  672. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  673. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  674. package/dist/dist-esm/react-composites/src/composites/common/AudioProvider.js.map +1 -1
  675. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  676. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  677. package/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsBanner.js +4 -1
  678. package/dist/dist-esm/react-composites/src/composites/common/CallingCaptionsBanner.js.map +1 -1
  679. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  680. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  681. package/dist/dist-esm/react-composites/src/composites/common/CalloutWithIcon.js.map +1 -1
  682. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  683. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +1 -0
  684. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +1 -1
  685. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  686. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  687. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  688. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DtmfDialerButton.js.map +1 -1
  689. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +13 -5
  690. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  691. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/Timer.js.map +1 -1
  692. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  693. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionLanguageSettingsDrawer.js.map +1 -1
  694. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  695. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  696. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageSettingsDrawer.js.map +1 -1
  697. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  698. package/dist/dist-esm/react-composites/src/composites/common/ExitSpotlightButton.js.map +1 -1
  699. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  700. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  701. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  702. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +5 -9
  703. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  704. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  705. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -41
  706. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +0 -21
  707. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  708. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  709. package/dist/dist-esm/react-composites/src/composites/common/Survey.js +1 -1
  710. package/dist/dist-esm/react-composites/src/composites/common/Survey.js.map +1 -1
  711. package/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js.map +1 -1
  712. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  713. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  714. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  715. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +0 -5
  716. package/dist/dist-esm/react-composites/src/composites/common/constants.js +0 -5
  717. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  718. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -26
  719. package/dist/dist-esm/react-composites/src/composites/common/icons.js +0 -2
  720. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  721. package/dist/dist-esm/react-composites/src/composites/common/logger.js.map +1 -1
  722. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependency.js.map +1 -1
  723. package/dist/dist-esm/react-composites/src/composites/common/resolveDeepNoiseSuppressionDependencyLazy.js.map +1 -1
  724. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  725. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  726. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  727. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  728. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  729. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  730. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  731. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  732. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js +6 -10
  733. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js.map +1 -1
  734. package/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.js.map +1 -1
  735. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  736. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  737. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  738. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  739. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -1
  740. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +1 -0
  741. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -1
  742. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +1 -0
  743. package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/CompositeLocale.js.map +1 -1
  744. package/dist/dist-esm/react-composites/src/composites/localization/locales/cy-GB/strings.json +1 -0
  745. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -1
  746. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +1 -0
  747. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -1
  748. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +1 -0
  749. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  750. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -1
  751. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +1 -0
  752. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-MX/CompositeLocale.js.map +1 -1
  753. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-MX/strings.json +1 -0
  754. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -1
  755. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +1 -0
  756. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-CA/CompositeLocale.js.map +1 -1
  757. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-CA/strings.json +1 -0
  758. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -1
  759. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +1 -0
  760. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -1
  761. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +1 -0
  762. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -1
  763. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +1 -0
  764. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -1
  765. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +1 -0
  766. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -1
  767. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +1 -0
  768. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -1
  769. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +1 -0
  770. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -1
  771. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +1 -0
  772. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -1
  773. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +1 -0
  774. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -1
  775. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +1 -0
  776. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -1
  777. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +1 -0
  778. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -1
  779. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +1 -0
  780. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -1
  781. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +1 -0
  782. package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js.map +1 -1
  783. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -1
  784. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +1 -0
  785. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -1
  786. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +1 -0
  787. package/package.json +5 -5
  788. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-NuAV1Y6u.js +0 -213
  789. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-NuAV1Y6u.js.map +0 -1
  790. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-Dpqf9W8c.js +0 -49
  791. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-Dpqf9W8c.js.map +0 -1
  792. package/dist/dist-cjs/communication-react/index-GSav-Odr.js +0 -46349
  793. package/dist/dist-cjs/communication-react/index-GSav-Odr.js.map +0 -1
  794. package/dist/dist-esm/acs-ui-common/src/dataConversion.d.ts +0 -6
  795. package/dist/dist-esm/acs-ui-common/src/dataConversion.js +0 -20
  796. package/dist/dist-esm/acs-ui-common/src/dataConversion.js.map +0 -1
  797. package/dist/dist-esm/acs-ui-common/src/removeImageTags.d.ts +0 -7
  798. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js +0 -18
  799. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js.map +0 -1
  800. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.d.ts +0 -17
  801. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js +0 -33
  802. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js.map +0 -1
  803. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.d.ts +0 -6
  804. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js +0 -20
  805. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js.map +0 -1
  806. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.d.ts +0 -10
  807. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js +0 -15
  808. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +0 -1
  809. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +0 -24
  810. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +0 -203
  811. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +0 -1
  812. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.d.ts +0 -69
  813. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +0 -36
  814. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +0 -1
  815. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.d.ts +0 -75
  816. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +0 -67
  817. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +0 -1
  818. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +0 -105
  819. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +0 -51
  820. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +0 -1
  821. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +0 -86
  822. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +0 -40
  823. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +0 -1
  824. package/dist/dist-esm/react-components/src/components/MentionPopover.d.ts +0 -121
  825. package/dist/dist-esm/react-components/src/components/MentionPopover.js +0 -119
  826. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +0 -1
  827. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.d.ts +0 -9
  828. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js +0 -29
  829. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js.map +0 -1
  830. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +0 -30
  831. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +0 -98
  832. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +0 -1
  833. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.d.ts +0 -19
  834. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js +0 -43
  835. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js.map +0 -1
  836. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +0 -15
  837. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +0 -42
  838. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +0 -1
  839. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.d.ts +0 -24
  840. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js +0 -64
  841. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js.map +0 -1
  842. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.d.ts +0 -20
  843. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js +0 -45
  844. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js.map +0 -1
  845. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.d.ts +0 -14
  846. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js +0 -42
  847. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js.map +0 -1
  848. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.d.ts +0 -30
  849. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js +0 -99
  850. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js.map +0 -1
  851. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +0 -59
  852. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +0 -334
  853. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +0 -1
  854. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +0 -37
  855. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +0 -78
  856. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +0 -1
  857. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -215
  858. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +0 -184
  859. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +0 -1
  860. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +0 -16
  861. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +0 -75
  862. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +0 -1
  863. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.d.ts +0 -9
  864. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js +0 -16
  865. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js.map +0 -1
  866. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.d.ts +0 -19
  867. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +0 -229
  868. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +0 -1
  869. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.d.ts +0 -7
  870. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js +0 -51
  871. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js.map +0 -1
  872. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.d.ts +0 -15
  873. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js +0 -64
  874. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js.map +0 -1
  875. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.d.ts +0 -6
  876. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js +0 -13
  877. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js.map +0 -1
  878. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts +0 -56
  879. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +0 -75
  880. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +0 -1
  881. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +0 -14
  882. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +0 -18
  883. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +0 -1
  884. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.d.ts +0 -24
  885. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +0 -550
  886. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +0 -1
  887. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +0 -152
  888. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +0 -819
  889. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +0 -1
  890. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +0 -58
  891. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +0 -144
  892. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +0 -1
  893. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +0 -26
  894. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +0 -69
  895. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +0 -1
  896. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +0 -82
  897. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +0 -328
  898. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +0 -1
  899. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.d.ts +0 -21
  900. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +0 -38
  901. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +0 -1
  902. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.d.ts +0 -38
  903. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js +0 -99
  904. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +0 -1
  905. package/dist/dist-esm/react-components/src/components/styles/Stack.style.d.ts +0 -5
  906. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js +0 -32
  907. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js.map +0 -1
  908. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +0 -73
  909. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +0 -178
  910. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +0 -1
  911. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.d.ts +0 -33
  912. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js +0 -119
  913. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js.map +0 -1
  914. package/dist/dist-esm/react-components/src/components/utils/merge.d.ts +0 -7
  915. package/dist/dist-esm/react-components/src/components/utils/merge.js +0 -16
  916. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +0 -1
  917. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +0 -6
  918. package/dist/dist-esm/react-components/src/theming/icons.styles.js +0 -25
  919. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +0 -1
  920. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +0 -46
  921. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +0 -200
  922. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +0 -1
  923. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.d.ts +0 -15
  924. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js +0 -23
  925. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js.map +0 -1
  926. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +0 -18
  927. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +0 -18
  928. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +0 -1
  929. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +0 -49
  930. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +0 -44
  931. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +0 -1
  932. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +0 -39
  933. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +0 -267
  934. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +0 -1
  935. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +0 -80
  936. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +0 -36
  937. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +0 -1
  938. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.d.ts +0 -38
  939. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +0 -66
  940. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +0 -1
  941. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +0 -5
  942. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +0 -5
  943. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +0 -1
  944. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.d.ts +0 -10
  945. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +0 -16
  946. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"messageThreadSelector.js","sourceRoot":"","sources":["../../../../preprocess-dist/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 { ChatBaseSelectorProps, getChatMessages, getIsLargeGroup, getLatestReadTime, getParticipants, getReadReceipts, getUserId } from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ChatClientState, ChatMessageWithStatus, ResourceFetchResult } from '@internal/chat-stateful-client';\nimport { memoizeFnAll } from '@internal/acs-ui-common';\nimport { ChatMessage, Message, CommunicationParticipant, SystemMessage, MessageContentType, ReadReceiptsBySenderId } from '@internal/react-components';\nimport { BlockedMessage } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport { DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL } from './utils/constants';\nimport { ACSKnownMessageType } from './utils/constants';\nimport { updateMessagesWithAttached } from './utils/updateMessagesWithAttached';\nimport { AttachmentMetadata } from '@internal/acs-ui-common';\nimport { ChatAttachment } from '@azure/communication-chat';\nimport type { ChatParticipant } from '@azure/communication-chat';\nimport { ChatAttachmentType } from '@internal/react-components';\nconst memoizedAllConvertChatMessage = memoizeFnAll((_key: string, chatMessage: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): Message => {\n const messageType = chatMessage.type.toLowerCase();\n if (chatMessage.policyViolation?.result === 'contentBlocked') {\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});\nconst extractAttachmentMetadata = (metadata: Record<string, string>): AttachmentMetadata[] => {\n const attachmentMetadata = metadata.fileSharingMetadata;\n if (!attachmentMetadata) {\n return [];\n }\n try {\n return JSON.parse(attachmentMetadata);\n } catch (e) {\n console.error(e);\n return [];\n }\n};\nconst extractTeamsAttachmentsMetadata = (rawAttachments: ChatAttachment[]): {\n attachments: AttachmentMetadata[];\n} => {\n const attachments: AttachmentMetadata[] = [];\n rawAttachments.forEach(rawAttachment => {\n const attachmentType = rawAttachment.attachmentType as ChatAttachmentType;\n if (attachmentType === 'file') {\n attachments.push({\n id: rawAttachment.id,\n name: rawAttachment.name ?? '',\n url: extractAttachmentUrl(rawAttachment)\n });\n }\n });\n return {\n attachments\n };\n};\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 extractAttachmentUrl = (attachment: ChatAttachment): string => {\n return attachment.previewUrl ? attachment.previewUrl : attachment.url || '';\n};\nconst processChatMessageContent = (message: ChatMessageWithStatus): string | undefined => {\n let content = message.content?.message;\n if (message.content?.attachments && message.content?.attachments.length > 0 && sanitizedMessageContentType(message.type).includes('html')) {\n const attachments: ChatAttachment[] = message.content?.attachments;\n // Fill in the src here\n if (content) {\n const document = new DOMParser().parseFromString(content ?? '', 'text/html');\n document.querySelectorAll('img').forEach(img => {\n const attachmentPreviewUrl = attachments.find(attachment => attachment.id === img.id)?.previewUrl;\n if (attachmentPreviewUrl) {\n const resourceCache = message.resourceCache?.[attachmentPreviewUrl];\n const src = getResourceSourceUrl(resourceCache);\n // if in error state\n if (src === undefined) {\n const brokenImageView = getBrokenImageViewNode(img);\n img.parentElement?.replaceChild(brokenImageView, img);\n } else {\n // else in loading or success state\n img.setAttribute('src', src);\n }\n setImageWidthAndHeight(img);\n }\n });\n content = document.body.innerHTML;\n }\n const teamsImageHtmlContent = attachments.filter(attachment => attachment.attachmentType === 'image' && attachment.previewUrl !== undefined && !message.content?.message?.includes(attachment.id)).map(attachment => generateImageAttachmentImgHtml(message, attachment)).join('');\n if (teamsImageHtmlContent) {\n return (content ?? '') + teamsImageHtmlContent;\n }\n }\n return content;\n};\nconst generateImageAttachmentImgHtml = (message: ChatMessageWithStatus, attachment: ChatAttachment): string => {\n if (attachment.previewUrl !== undefined) {\n const contentType = extractAttachmentContentTypeFromName(attachment.name);\n const resourceCache = message.resourceCache?.[attachment.previewUrl];\n const src = getResourceSourceUrl(resourceCache);\n // if in error state\n if (src === undefined) {\n return `\\r\\n<p>${getBrokenImageViewNode().outerHTML}</p>`;\n }\n // else in loading or success state\n return `\\r\\n<p><img alt=\"image\" src=\"${src}\" itemscope=\"${contentType}\" id=\"${attachment.id}\"></p>`;\n }\n return '';\n};\nconst getResourceSourceUrl = (result?: ResourceFetchResult): string | undefined => {\n if (result) {\n if (!result.error && result.sourceUrl) {\n // return sourceUrl for success state\n return result.sourceUrl;\n } else {\n // return undefined for error state\n return undefined;\n }\n }\n // return empty string for loading state\n return '';\n};\nconst extractAttachmentContentTypeFromName = (name?: string): string => {\n if (name === undefined) {\n return '';\n }\n const indexOfLastDot = name.lastIndexOf('.');\n if (indexOfLastDot === undefined || indexOfLastDot < 0) {\n return '';\n }\n const contentType = name.substring(indexOfLastDot + 1);\n return contentType;\n};\nconst setImageWidthAndHeight = (img?: HTMLImageElement): void => {\n if (img) {\n // define aspect ratio explicitly to prevent image not being displayed correctly\n // in safari, this includes image placeholder for loading state\n const width = img.width;\n const height = img.height;\n img.style.aspectRatio = `${width}/${height}`;\n }\n};\nconst extractAttachmentsMetadata = (message: ChatMessageWithStatus): {\n attachments?: AttachmentMetadata[];\n} => {\n let attachments: AttachmentMetadata[] = [];\n if (message.metadata) {\n attachments = attachments.concat(extractAttachmentMetadata(message.metadata));\n }\n if (message.content?.attachments) {\n const teamsAttachments = extractTeamsAttachmentsMetadata(message.content?.attachments);\n attachments = attachments.concat(teamsAttachments.attachments);\n }\n return {\n attachments: attachments.length > 0 ? attachments : undefined\n };\n};\nconst convertToUiChatMessage = (message: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): ChatMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n const {\n attachments\n } = extractAttachmentsMetadata(message);\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 attachments\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: ChatParticipant) => participant.displayName && participant.displayName !== '').map((participant: ChatParticipant): 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: ChatParticipant) => !!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 getBrokenImageViewNode = (img?: HTMLDivElement): HTMLDivElement => {\n const wrapper = document.createElement('div');\n Array.from(img?.attributes ?? []).forEach(attr => {\n wrapper.setAttribute(attr.nodeName, attr.nodeValue ?? '');\n });\n wrapper.setAttribute('class', 'broken-image-wrapper');\n wrapper.setAttribute('data-ui-id', 'broken-image-icon');\n return wrapper;\n};\nconst isMessageValidToRender = (message: ChatMessageWithStatus): boolean => {\n if (message.deletedOn) {\n return false;\n }\n if (message.metadata?.fileSharingMetadata || message.content?.attachments?.length) {\n return true;\n }\n if (message.policyViolation?.result === 'contentBlocked') {\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();"]}
1
+ {"version":3,"file":"messageThreadSelector.js","sourceRoot":"","sources":["../../../../preprocess-dist/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 { ChatBaseSelectorProps, getChatMessages, getIsLargeGroup, getLatestReadTime, getParticipants, getReadReceipts, getUserId } from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ChatClientState, ChatMessageWithStatus, ResourceFetchResult } from '@internal/chat-stateful-client';\nimport { memoizeFnAll } from '@internal/acs-ui-common';\nimport { ChatMessage, Message, CommunicationParticipant, SystemMessage, MessageContentType, ReadReceiptsBySenderId } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport { ACSKnownMessageType } from './utils/constants';\nimport { updateMessagesWithAttached } from './utils/updateMessagesWithAttached';\nimport { AttachmentMetadata } from '@internal/acs-ui-common';\nimport { ChatAttachment } from '@azure/communication-chat';\nimport type { ChatParticipant } from '@azure/communication-chat';\nimport { ChatAttachmentType } from '@internal/react-components';\nconst memoizedAllConvertChatMessage = memoizeFnAll((_key: string, chatMessage: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): Message => {\n const messageType = chatMessage.type.toLowerCase();\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});\nconst extractAttachmentMetadata = (metadata: Record<string, string>): AttachmentMetadata[] => {\n const attachmentMetadata = metadata.fileSharingMetadata;\n if (!attachmentMetadata) {\n return [];\n }\n try {\n return JSON.parse(attachmentMetadata);\n } catch (e) {\n console.error(e);\n return [];\n }\n};\nconst extractTeamsAttachmentsMetadata = (rawAttachments: ChatAttachment[]): {\n attachments: AttachmentMetadata[];\n} => {\n const attachments: AttachmentMetadata[] = [];\n rawAttachments.forEach(rawAttachment => {\n const attachmentType = rawAttachment.attachmentType as ChatAttachmentType;\n if (attachmentType === 'file') {\n attachments.push({\n id: rawAttachment.id,\n name: rawAttachment.name ?? '',\n url: extractAttachmentUrl(rawAttachment)\n });\n }\n });\n return {\n attachments\n };\n};\nconst extractAttachmentUrl = (attachment: ChatAttachment): string => {\n return attachment.previewUrl ? attachment.previewUrl : attachment.url || '';\n};\nconst processChatMessageContent = (message: ChatMessageWithStatus): string | undefined => {\n let content = message.content?.message;\n if (message.content?.attachments && message.content?.attachments.length > 0 && sanitizedMessageContentType(message.type).includes('html')) {\n const attachments: ChatAttachment[] = message.content?.attachments;\n // Fill in the src here\n if (content) {\n const document = new DOMParser().parseFromString(content ?? '', 'text/html');\n document.querySelectorAll('img').forEach(img => {\n const attachmentPreviewUrl = attachments.find(attachment => attachment.id === img.id)?.previewUrl;\n if (attachmentPreviewUrl) {\n const resourceCache = message.resourceCache?.[attachmentPreviewUrl];\n const src = getResourceSourceUrl(resourceCache);\n // if in error state\n if (src === undefined) {\n const brokenImageView = getBrokenImageViewNode(img);\n img.parentElement?.replaceChild(brokenImageView, img);\n } else {\n // else in loading or success state\n img.setAttribute('src', src);\n }\n setImageWidthAndHeight(img);\n }\n });\n content = document.body.innerHTML;\n }\n const teamsImageHtmlContent = attachments.filter(attachment => attachment.attachmentType === 'image' && attachment.previewUrl !== undefined && !message.content?.message?.includes(attachment.id)).map(attachment => generateImageAttachmentImgHtml(message, attachment)).join('');\n if (teamsImageHtmlContent) {\n return (content ?? '') + teamsImageHtmlContent;\n }\n }\n return content;\n};\nconst generateImageAttachmentImgHtml = (message: ChatMessageWithStatus, attachment: ChatAttachment): string => {\n if (attachment.previewUrl !== undefined) {\n const contentType = extractAttachmentContentTypeFromName(attachment.name);\n const resourceCache = message.resourceCache?.[attachment.previewUrl];\n const src = getResourceSourceUrl(resourceCache);\n // if in error state\n if (src === undefined) {\n return `\\r\\n<p>${getBrokenImageViewNode().outerHTML}</p>`;\n }\n // else in loading or success state\n return `\\r\\n<p><img alt=\"image\" src=\"${src}\" itemscope=\"${contentType}\" id=\"${attachment.id}\"></p>`;\n }\n return '';\n};\nconst getResourceSourceUrl = (result?: ResourceFetchResult): string | undefined => {\n if (result) {\n if (!result.error && result.sourceUrl) {\n // return sourceUrl for success state\n return result.sourceUrl;\n } else {\n // return undefined for error state\n return undefined;\n }\n }\n // return empty string for loading state\n return '';\n};\nconst extractAttachmentContentTypeFromName = (name?: string): string => {\n if (name === undefined) {\n return '';\n }\n const indexOfLastDot = name.lastIndexOf('.');\n if (indexOfLastDot === undefined || indexOfLastDot < 0) {\n return '';\n }\n const contentType = name.substring(indexOfLastDot + 1);\n return contentType;\n};\nconst setImageWidthAndHeight = (img?: HTMLImageElement): void => {\n if (img) {\n // define aspect ratio explicitly to prevent image not being displayed correctly\n // in safari, this includes image placeholder for loading state\n const width = img.width;\n const height = img.height;\n img.style.aspectRatio = `${width}/${height}`;\n }\n};\nconst extractAttachmentsMetadata = (message: ChatMessageWithStatus): {\n attachments?: AttachmentMetadata[];\n} => {\n let attachments: AttachmentMetadata[] = [];\n if (message.metadata) {\n attachments = attachments.concat(extractAttachmentMetadata(message.metadata));\n }\n if (message.content?.attachments) {\n const teamsAttachments = extractTeamsAttachmentsMetadata(message.content?.attachments);\n attachments = attachments.concat(teamsAttachments.attachments);\n }\n return {\n attachments: attachments.length > 0 ? attachments : undefined\n };\n};\nconst convertToUiChatMessage = (message: ChatMessageWithStatus, userId: string, isSeen: boolean, isLargeGroup: boolean): ChatMessage => {\n const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n const {\n attachments\n } = extractAttachmentsMetadata(message);\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 attachments\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: ChatParticipant) => participant.displayName && participant.displayName !== '').map((participant: ChatParticipant): 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/**\r\n * Selector type for {@link MessageThread} component.\r\n *\r\n * @public\r\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: ChatParticipant) => !!p.displayName);\n\n/**\r\n *\r\n * @private\r\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 getBrokenImageViewNode = (img?: HTMLDivElement): HTMLDivElement => {\n const wrapper = document.createElement('div');\n Array.from(img?.attributes ?? []).forEach(attr => {\n wrapper.setAttribute(attr.nodeName, attr.nodeValue ?? '');\n });\n wrapper.setAttribute('class', 'broken-image-wrapper');\n wrapper.setAttribute('data-ui-id', 'broken-image-icon');\n return wrapper;\n};\nconst isMessageValidToRender = (message: ChatMessageWithStatus): boolean => {\n if (message.deletedOn) {\n return false;\n }\n if (message.metadata?.fileSharingMetadata || message.content?.attachments?.length) {\n return true;\n }\n return !!(message.content && message.content?.message !== '');\n};\n\n/**\r\n * Selector for {@link MessageThread} component.\r\n *\r\n * @public\r\n */\nexport const messageThreadSelector: MessageThreadSelector = messageThreadSelectorWithThread();"]}
@@ -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,CAAC;QAChB,MAAM,sGAAsG,CAAC;IAC/G,CAAC;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};"]}
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,CAAC;QAChB,MAAM,sGAAsG,CAAC;IAC/G,CAAC;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/**\r\n * @private\r\n */\nexport const ChatClientContext = createContext<StatefulChatClient | undefined>(undefined);\n\n/**\r\n * Arguments to initialize a {@link ChatClientProvider}.\r\n *\r\n * @public\r\n */\nexport type ChatClientProviderProps = {\n children: React.ReactNode;\n chatClient: StatefulChatClient;\n};\n\n/**\r\n * A {@link React.Context} that stores a {@link StatefulChatClient}.\r\n *\r\n * Chat components from this package must be wrapped with a {@link ChatClientProvider}.\r\n *\r\n * @public\r\n */\nexport const ChatClientProvider = (props: ChatClientProviderProps): JSX.Element => {\n return <ChatClientContext.Provider value={props.chatClient}>{props.children}</ChatClientContext.Provider>;\n};\n\n/**\r\n * Hook to obtain {@link StatefulChatClient} from the provider.\r\n *\r\n * Useful when implementing a custom component that utilizes the providers\r\n * exported from this library.\r\n *\r\n * @public\r\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};"]}
@@ -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,CAAC;QACtB,MAAM,mHAAmH,CAAC;IAC5H,CAAC;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":["../../../../../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,CAAC;QACtB,MAAM,mHAAmH,CAAC;IAC5H,CAAC;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/**\r\n * @private\r\n */\nexport const ChatThreadClientContext = createContext<ChatThreadClient | undefined>(undefined);\n\n/**\r\n * Arguments to initialize a {@link ChatThreadClientProvider}.\r\n *\r\n * @public\r\n */\nexport type ChatThreadClientProviderProps = {\n children: React.ReactNode;\n chatThreadClient: ChatThreadClient;\n};\n\n/**\r\n * A {@link React.Context} that stores a {@link @azure/communication-chat#ChatThreadClient}.\r\n *\r\n * Chat components from this package must be wrapped with a {@link ChatThreadClientProvider}.\r\n *\r\n * @public\r\n */\nexport const ChatThreadClientProvider = (props: ChatThreadClientProviderProps): JSX.Element => {\n return <ChatThreadClientContext.Provider value={props.chatThreadClient}>{props.children}</ChatThreadClientContext.Provider>;\n};\n/**\r\n * Hook to obtain {@link @azure/communication-chat#ChatThreadClient} from the provider.\r\n *\r\n * Useful when implementing a custom component that utilizes the providers\r\n * exported from this library.\r\n *\r\n * @public\r\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 +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}));"]}
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/**\r\n * Selector type for {@link SendBox} component.\r\n *\r\n * @public\r\n */\nexport type SendBoxSelector = (state: ChatClientState, props: ChatBaseSelectorProps) => {\n displayName: string;\n userId: string;\n};\n\n/**\r\n * Selector for {@link SendBox} component.\r\n *\r\n * @public\r\n */\nexport const sendBoxSelector: SendBoxSelector = createSelector([getUserId, getDisplayName], (userId, displayName) => ({\n displayName: displayName,\n userId: userId\n}));"]}
@@ -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,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAK,MAAM,eAAe,IAAI,wBAAwB,EAAE,CAAC;QACvD,IAAI,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;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,CAAC;QACjE,OAAO;YACL,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;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 const reversedTypingIndicators = typingIndicators.toReversed();\n for (const typingIndicator of reversedTypingIndicators) {\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});"]}
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,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAK,MAAM,eAAe,IAAI,wBAAwB,EAAE,CAAC;QACvD,IAAI,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;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,CAAC;QACjE,OAAO;YACL,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;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 const reversedTypingIndicators = typingIndicators.toReversed();\n for (const typingIndicator of reversedTypingIndicators) {\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/**\r\n * Selector type for {@link TypingIndicator} component.\r\n *\r\n * @public\r\n */\nexport type TypingIndicatorSelector = (state: ChatClientState, props: ChatBaseSelectorProps) => {\n typingUsers: CommunicationParticipant[];\n};\n\n/**\r\n * Selector for {@link TypingIndicator} component.\r\n *\r\n * @public\r\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});"]}
@@ -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,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 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};"]}
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,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/**\r\n * @private\r\n */\nexport const compareMessages = (firstMessage: Message, secondMessage: Message): number => {\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};"]}
@@ -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,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};"]}
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,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/**\r\n * @private\r\n */\nexport const MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS = 8000;\n\n/**\r\n * @private\r\n */\nexport const PARTICIPANTS_THRESHOLD = 20;\n\n/**\r\n * @private\r\n */\nexport const MINUTE_IN_MS = 1000 * 60;\n\n/**\r\n * @private\r\n */\nexport const DEFAULT_DATA_LOSS_PREVENTION_POLICY_URL = 'https://go.microsoft.com/fwlink/?LinkId=2132837';\n\n/**\r\n * @private\r\n *\r\n * TODO: Import enum from @azure/communication-chat when ChatMessageType shows up in new release version\r\n * (or define our type to decouple)\r\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};"]}
@@ -7,7 +7,7 @@ export const updateMessagesWithAttached = (chatMessagesWithStatus) => {
7
7
  chatMessagesWithStatus.sort(compareMessages);
8
8
  chatMessagesWithStatus.forEach((message, index, messages) => {
9
9
  var _a, _b;
10
- if (message.messageType === 'chat' || message.messageType === 'blocked') {
10
+ if (message.messageType === 'chat') {
11
11
  /**
12
12
  * Attached === true means it is within a group of messages in the current order
13
13
  * Attached === top/bottom means it is on the top/bottom boundary
@@ -17,8 +17,8 @@ export const updateMessagesWithAttached = (chatMessagesWithStatus) => {
17
17
  let attached = false;
18
18
  const previousMessage = index > 0 ? messages[index - 1] : undefined;
19
19
  const nextMessage = index === messages.length - 1 ? undefined : messages[index + 1];
20
- const previousSenderId = (previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.messageType) === 'chat' || (previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.messageType) === 'blocked' ? previousMessage.senderId : undefined;
21
- const nextSenderId = (nextMessage === null || nextMessage === void 0 ? void 0 : nextMessage.messageType) === 'chat' || (nextMessage === null || nextMessage === void 0 ? void 0 : nextMessage.messageType) === 'blocked' ? nextMessage.senderId : undefined;
20
+ const previousSenderId = (previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.messageType) === 'chat' ? previousMessage.senderId : undefined;
21
+ const nextSenderId = (nextMessage === null || nextMessage === void 0 ? void 0 : nextMessage.messageType) === 'chat' ? nextMessage.senderId : undefined;
22
22
  const timediff = new Date((_a = message === null || message === void 0 ? void 0 : message.createdOn) !== null && _a !== void 0 ? _a : '').getTime() - new Date((_b = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdOn) !== null && _b !== void 0 ? _b : '').getTime();
23
23
  const diffMins = Math.round(timediff / MINUTE_IN_MS); // minutes
24
24
  if (previousSenderId !== message.senderId) {
@@ -1 +1 @@
1
- {"version":3,"file":"updateMessagesWithAttached.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/utils/updateMessagesWithAttached.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,sBAAiC,EAAQ,EAAE;IACpF,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,sBAAsB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;;QAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxE;;;;;eAKG;YACH,IAAI,QAAQ,GAAoC,KAAK,CAAC;YACtD,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,WAAW,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,gBAAgB,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,MAAK,MAAM,IAAI,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,MAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACtJ,MAAM,YAAY,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,MAAK,MAAM,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,MAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACtI,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU;YAEhE,IAAI,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/D,CAAC;iBAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBACrC,wGAAwG;gBACxG,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Message, MessageAttachedStatus } from '@internal/react-components';\nimport { compareMessages } from './compareMessages';\nimport { MINUTE_IN_MS } from './constants';\n\n/**\n * @private\n */\nexport const updateMessagesWithAttached = (chatMessagesWithStatus: Message[]): void => {\n chatMessagesWithStatus.sort(compareMessages);\n chatMessagesWithStatus.forEach((message, index, messages) => {\n if (message.messageType === 'chat' || message.messageType === 'blocked') {\n /**\n * Attached === true means it is within a group of messages in the current order\n * Attached === top/bottom means it is on the top/bottom boundary\n * Attached === false means it is just a single message\n * A group of messages: continuous messages that belong to the same sender and not intercepted by other senders.\n */\n let attached: boolean | MessageAttachedStatus = false;\n const previousMessage = index > 0 ? messages[index - 1] : undefined;\n const nextMessage = index === messages.length - 1 ? undefined : messages[index + 1];\n const previousSenderId = previousMessage?.messageType === 'chat' || previousMessage?.messageType === 'blocked' ? previousMessage.senderId : undefined;\n const nextSenderId = nextMessage?.messageType === 'chat' || nextMessage?.messageType === 'blocked' ? nextMessage.senderId : undefined;\n const timediff = new Date(message?.createdOn ?? '').getTime() - new Date(previousMessage?.createdOn ?? '').getTime();\n const diffMins = Math.round(timediff / MINUTE_IN_MS); // minutes\n\n if (previousSenderId !== message.senderId) {\n attached = message.senderId === nextSenderId ? 'top' : false;\n } else if (diffMins && diffMins >= 5) {\n // if there are more than or equal to 5 mins time gap between messages do not attach and show time stamp\n attached = false;\n } else {\n attached = message.senderId === nextSenderId ? true : 'bottom';\n }\n message.attached = attached;\n }\n });\n};"]}
1
+ {"version":3,"file":"updateMessagesWithAttached.js","sourceRoot":"","sources":["../../../../../preprocess-dist/chat-component-bindings/src/utils/updateMessagesWithAttached.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,sBAAiC,EAAQ,EAAE;IACpF,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,sBAAsB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;;QAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YACnC;;;;;eAKG;YACH,IAAI,QAAQ,GAAoC,KAAK,CAAC;YACtD,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,WAAW,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,gBAAgB,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,MAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxG,MAAM,YAAY,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,MAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU;YAEhE,IAAI,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/D,CAAC;iBAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBACrC,wGAAwG;gBACxG,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Message, MessageAttachedStatus } from '@internal/react-components';\nimport { compareMessages } from './compareMessages';\nimport { MINUTE_IN_MS } from './constants';\n\n/**\r\n * @private\r\n */\nexport const updateMessagesWithAttached = (chatMessagesWithStatus: Message[]): void => {\n chatMessagesWithStatus.sort(compareMessages);\n chatMessagesWithStatus.forEach((message, index, messages) => {\n if (message.messageType === 'chat') {\n /**\r\n * Attached === true means it is within a group of messages in the current order\r\n * Attached === top/bottom means it is on the top/bottom boundary\r\n * Attached === false means it is just a single message\r\n * A group of messages: continuous messages that belong to the same sender and not intercepted by other senders.\r\n */\n let attached: boolean | MessageAttachedStatus = false;\n const previousMessage = index > 0 ? messages[index - 1] : undefined;\n const nextMessage = index === messages.length - 1 ? undefined : messages[index + 1];\n const previousSenderId = previousMessage?.messageType === 'chat' ? previousMessage.senderId : undefined;\n const nextSenderId = nextMessage?.messageType === 'chat' ? nextMessage.senderId : undefined;\n const timediff = new Date(message?.createdOn ?? '').getTime() - new Date(previousMessage?.createdOn ?? '').getTime();\n const diffMins = Math.round(timediff / MINUTE_IN_MS); // minutes\n\n if (previousSenderId !== message.senderId) {\n attached = message.senderId === nextSenderId ? 'top' : false;\n } else if (diffMins && diffMins >= 5) {\n // if there are more than or equal to 5 mins time gap between messages do not attach and show time stamp\n attached = false;\n } else {\n attached = message.senderId === nextSenderId ? true : 'bottom';\n }\n message.attached = attached;\n }\n });\n};"]}
@@ -86,21 +86,7 @@ export type ChatThreadClientState = {
86
86
  */
87
87
  export type ChatThreadProperties = {
88
88
  topic?: string;
89
- createdBy?: CommunicationIdentifierKind;
90
- messagingPolicy?: MessagingPolicy;
91
89
  };
92
- /**
93
- *
94
- * Messaging policy of a chat thread.
95
- *
96
- * @beta
97
- */
98
- export interface MessagingPolicy {
99
- /**
100
- * Boolean to track whether or not messages are restricted to only text.
101
- * */
102
- textOnlyChat?: boolean;
103
- }
104
90
  /**
105
91
  * Errors teed from API calls to the Chat SDK.
106
92
  *
@@ -136,5 +122,5 @@ export declare class ChatError extends Error {
136
122
  *
137
123
  * @public
138
124
  */
139
- export type ChatErrorTarget = 'ChatClient.createChatThread' | 'ChatClient.deleteChatThread' | 'ChatClient.getChatThreadClient' | 'ChatClient.listChatThreads' | 'ChatClient.off' | 'ChatClient.on' | 'ChatClient.startRealtimeNotifications' | 'ChatClient.stopRealtimeNotifications' | 'ChatThreadClient.addParticipants' | 'ChatThreadClient.deleteMessage' | 'ChatThreadClient.getMessage' | 'ChatThreadClient.getProperties' | 'ChatThreadClient.listMessages' | 'ChatThreadClient.listParticipants' | 'ChatThreadClient.listReadReceipts' | 'ChatThreadClient.removeParticipant' | 'ChatThreadClient.sendMessage' | 'ChatThreadClient.sendReadReceipt' | 'ChatThreadClient.sendTypingNotification' | 'ChatThreadClient.updateMessage' | 'ChatThreadClient.updateProperties' | 'ChatThreadClient.updateTopic' | 'ChatThreadClient.uploadImage' | 'ChatThreadClient.deleteImage';
125
+ export type ChatErrorTarget = 'ChatClient.createChatThread' | 'ChatClient.deleteChatThread' | 'ChatClient.getChatThreadClient' | 'ChatClient.listChatThreads' | 'ChatClient.off' | 'ChatClient.on' | 'ChatClient.startRealtimeNotifications' | 'ChatClient.stopRealtimeNotifications' | 'ChatThreadClient.addParticipants' | 'ChatThreadClient.deleteMessage' | 'ChatThreadClient.getMessage' | 'ChatThreadClient.getProperties' | 'ChatThreadClient.listMessages' | 'ChatThreadClient.listParticipants' | 'ChatThreadClient.listReadReceipts' | 'ChatThreadClient.removeParticipant' | 'ChatThreadClient.sendMessage' | 'ChatThreadClient.sendReadReceipt' | 'ChatThreadClient.sendTypingNotification' | 'ChatThreadClient.updateMessage' | 'ChatThreadClient.updateProperties' | 'ChatThreadClient.updateTopic';
140
126
  //# sourceMappingURL=ChatClientState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatClientState.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-stateful-client/src/ChatClientState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAsHlC;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAalC,YAAY,MAAuB,EAAE,UAAiB,EAAE,SAAgB;QACtE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,8EAA8E;QAC9E,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatMessageReadReceipt, ChatParticipant } from '@azure/communication-chat';\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { ChatMessageWithStatus } from './types/ChatMessageWithStatus';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\n\n/**\n * Centralized state for {@link @azure/communication-chat#ChatClient}.\n *\n * @public\n */\nexport type ChatClientState = {\n /**\n * Identifier of the current user.\n */\n userId: CommunicationIdentifierKind;\n /**\n * DisplayName of the current user.\n * The same value as what others see in {@link @azure/communication-chat#ChatParticipant.displayName}\n */\n displayName: string;\n /**\n * Chat threads joined by the current user.\n * Object with {@link ChatThreadClientState} fields, keyed by {@link ChatThreadClientState.threadId}.\n */\n threads: {\n [key: string]: ChatThreadClientState;\n };\n /**\n * Stores the latest error for each API method.\n *\n * See documentation of {@link ChatErrors} for details.\n */\n latestErrors: ChatErrors;\n};\n\n/**\n * Centralized state for {@link @azure/communication-chat#ChatThreadClient}.\n *\n * @public\n */\nexport type ChatThreadClientState = {\n /**\n * Messages in this thread.\n * Object with {@link ChatMessageWithStatus} entries\n * Local messages are keyed by keyed by {@link ChatMessageWithStatus.clientMessageId}.\n * Remote messages are keyed by {@link @azure/communication-chat#ChatMessage.id}.\n */\n chatMessages: {\n [key: string]: ChatMessageWithStatus;\n };\n /**\n * Participants of this chat thread.\n *\n * Object with {@link @azure/communication-chat#ChatParticipant} fields,\n * keyed by {@link @azure/communication-chat#ChatParticipant.id}.\n */\n participants: {\n [key: string]: ChatParticipant;\n };\n /**\n * Id of this chat thread. Returned from {@link @azure/communication-chat#ChatThreadClient.threadId}\n */\n threadId: string;\n /**\n * An object containing properties of this chat thread.\n */\n properties?: ChatThreadProperties;\n /**\n * An array of ReadReceipts of this chat thread. Returned from {@link @azure/communication-chat#ChatThreadClient.listReadReceipts}\n */\n readReceipts: ChatMessageReadReceipt[];\n /**\n * An array of typingIndicators of this chat thread. Captured from event listener of {@link @azure/communication-chat#ChatClient}\n * Stateful client only stores recent 8000ms real-time typing indicators data.\n */\n typingIndicators: TypingIndicatorReceivedEvent[];\n /**\n * Latest timestamp when other users read messages sent by current user.\n */\n latestReadTime: Date;\n};\n\n/**\n * Properties of a chat thread.\n *\n * We define a minimal one that helps us hide the different types used by underlying API.\n *\n * @public\n */\nexport type ChatThreadProperties = {\n topic?: string;\n createdBy?: CommunicationIdentifierKind;\n messagingPolicy?: MessagingPolicy;\n};\n/**\n *\n * Messaging policy of a chat thread.\n *\n * @beta\n */\nexport interface MessagingPolicy {\n /**\n * Boolean to track whether or not messages are restricted to only text.\n * */\n textOnlyChat?: boolean;\n}\n\n/**\n * Errors teed from API calls to the Chat SDK.\n *\n * Each property in the object stores the latest error for a particular SDK API method.\n *\n * @public\n */\nexport type ChatErrors = { [target in ChatErrorTarget]: ChatError };\n\n/**\n * Error thrown from failed {@link StatefulChatClient} methods.\n *\n * @public\n */\nexport class ChatError extends Error {\n /**\n * The API method target that failed.\n */\n public target: ChatErrorTarget;\n /**\n * Error thrown by the failed SDK method.\n */\n public innerError: Error;\n /**\n * Timestamp added to the error by the stateful layer.\n */\n public timestamp: Date;\n constructor(target: ChatErrorTarget, innerError: Error, timestamp?: Date) {\n super();\n this.target = target;\n this.innerError = innerError;\n // Testing note: It is easier to mock Date::now() than the Date() constructor.\n this.timestamp = timestamp ?? new Date(Date.now());\n this.name = 'ChatError';\n this.message = `${this.target}: ${this.innerError.message}`;\n }\n}\n\n/**\n * String literal type for all permissible keys in {@link ChatErrors}.\n *\n * @public\n */\nexport type ChatErrorTarget = 'ChatClient.createChatThread' | 'ChatClient.deleteChatThread' | 'ChatClient.getChatThreadClient' | 'ChatClient.listChatThreads' | 'ChatClient.off' | 'ChatClient.on' | 'ChatClient.startRealtimeNotifications' | 'ChatClient.stopRealtimeNotifications' | 'ChatThreadClient.addParticipants' | 'ChatThreadClient.deleteMessage' | 'ChatThreadClient.getMessage' | 'ChatThreadClient.getProperties' | 'ChatThreadClient.listMessages' | 'ChatThreadClient.listParticipants' | 'ChatThreadClient.listReadReceipts' | 'ChatThreadClient.removeParticipant' | 'ChatThreadClient.sendMessage' | 'ChatThreadClient.sendReadReceipt' | 'ChatThreadClient.sendTypingNotification' | 'ChatThreadClient.updateMessage' | 'ChatThreadClient.updateProperties' | 'ChatThreadClient.updateTopic' | 'ChatThreadClient.uploadImage' | 'ChatThreadClient.deleteImage';"]}
1
+ {"version":3,"file":"ChatClientState.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-stateful-client/src/ChatClientState.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAuGlC;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAalC,YAAY,MAAuB,EAAE,UAAiB,EAAE,SAAgB;QACtE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,8EAA8E;QAC9E,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatMessageReadReceipt, ChatParticipant } from '@azure/communication-chat';\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { ChatMessageWithStatus } from './types/ChatMessageWithStatus';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\n\n/**\r\n * Centralized state for {@link @azure/communication-chat#ChatClient}.\r\n *\r\n * @public\r\n */\nexport type ChatClientState = {\n /**\r\n * Identifier of the current user.\r\n */\n userId: CommunicationIdentifierKind;\n /**\r\n * DisplayName of the current user.\r\n * The same value as what others see in {@link @azure/communication-chat#ChatParticipant.displayName}\r\n */\n displayName: string;\n /**\r\n * Chat threads joined by the current user.\r\n * Object with {@link ChatThreadClientState} fields, keyed by {@link ChatThreadClientState.threadId}.\r\n */\n threads: {\n [key: string]: ChatThreadClientState;\n };\n /**\r\n * Stores the latest error for each API method.\r\n *\r\n * See documentation of {@link ChatErrors} for details.\r\n */\n latestErrors: ChatErrors;\n};\n\n/**\r\n * Centralized state for {@link @azure/communication-chat#ChatThreadClient}.\r\n *\r\n * @public\r\n */\nexport type ChatThreadClientState = {\n /**\r\n * Messages in this thread.\r\n * Object with {@link ChatMessageWithStatus} entries\r\n * Local messages are keyed by keyed by {@link ChatMessageWithStatus.clientMessageId}.\r\n * Remote messages are keyed by {@link @azure/communication-chat#ChatMessage.id}.\r\n */\n chatMessages: {\n [key: string]: ChatMessageWithStatus;\n };\n /**\r\n * Participants of this chat thread.\r\n *\r\n * Object with {@link @azure/communication-chat#ChatParticipant} fields,\r\n * keyed by {@link @azure/communication-chat#ChatParticipant.id}.\r\n */\n participants: {\n [key: string]: ChatParticipant;\n };\n /**\r\n * Id of this chat thread. Returned from {@link @azure/communication-chat#ChatThreadClient.threadId}\r\n */\n threadId: string;\n /**\r\n * An object containing properties of this chat thread.\r\n */\n properties?: ChatThreadProperties;\n /**\r\n * An array of ReadReceipts of this chat thread. Returned from {@link @azure/communication-chat#ChatThreadClient.listReadReceipts}\r\n */\n readReceipts: ChatMessageReadReceipt[];\n /**\r\n * An array of typingIndicators of this chat thread. Captured from event listener of {@link @azure/communication-chat#ChatClient}\r\n * Stateful client only stores recent 8000ms real-time typing indicators data.\r\n */\n typingIndicators: TypingIndicatorReceivedEvent[];\n /**\r\n * Latest timestamp when other users read messages sent by current user.\r\n */\n latestReadTime: Date;\n};\n\n/**\r\n * Properties of a chat thread.\r\n *\r\n * We define a minimal one that helps us hide the different types used by underlying API.\r\n *\r\n * @public\r\n */\nexport type ChatThreadProperties = {\n topic?: string;\n};\n/**\r\n * Errors teed from API calls to the Chat SDK.\r\n *\r\n * Each property in the object stores the latest error for a particular SDK API method.\r\n *\r\n * @public\r\n */\nexport type ChatErrors = { [target in ChatErrorTarget]: ChatError };\n\n/**\r\n * Error thrown from failed {@link StatefulChatClient} methods.\r\n *\r\n * @public\r\n */\nexport class ChatError extends Error {\n /**\r\n * The API method target that failed.\r\n */\n public target: ChatErrorTarget;\n /**\r\n * Error thrown by the failed SDK method.\r\n */\n public innerError: Error;\n /**\r\n * Timestamp added to the error by the stateful layer.\r\n */\n public timestamp: Date;\n constructor(target: ChatErrorTarget, innerError: Error, timestamp?: Date) {\n super();\n this.target = target;\n this.innerError = innerError;\n // Testing note: It is easier to mock Date::now() than the Date() constructor.\n this.timestamp = timestamp ?? new Date(Date.now());\n this.name = 'ChatError';\n this.message = `${this.target}: ${this.innerError.message}`;\n }\n}\n\n/**\r\n * String literal type for all permissible keys in {@link ChatErrors}.\r\n *\r\n * @public\r\n */\nexport type ChatErrorTarget = 'ChatClient.createChatThread' | 'ChatClient.deleteChatThread' | 'ChatClient.getChatThreadClient' | 'ChatClient.listChatThreads' | 'ChatClient.off' | 'ChatClient.on' | 'ChatClient.startRealtimeNotifications' | 'ChatClient.stopRealtimeNotifications' | 'ChatThreadClient.addParticipants' | 'ChatThreadClient.deleteMessage' | 'ChatThreadClient.getMessage' | 'ChatThreadClient.getProperties' | 'ChatThreadClient.listMessages' | 'ChatThreadClient.listParticipants' | 'ChatThreadClient.listReadReceipts' | 'ChatThreadClient.removeParticipant' | 'ChatThreadClient.sendMessage' | 'ChatThreadClient.sendReadReceipt' | 'ChatThreadClient.sendTypingNotification' | 'ChatThreadClient.updateMessage' | 'ChatThreadClient.updateProperties' | 'ChatThreadClient.updateTopic';"]}
@@ -282,8 +282,9 @@ export class ChatContext {
282
282
  const thread = draft.threads[threadId];
283
283
  const readReceipts = thread === null || thread === void 0 ? void 0 : thread.readReceipts;
284
284
  if (thread && readReceipts) {
285
- // TODO(prprabhu): Replace `this.getState()` with `draft`?
286
- if (readReceipt.sender !== this.getState().userId && thread.latestReadTime < readReceipt.readOn) {
285
+ const readReceiptSenderId = toFlatCommunicationIdentifier(readReceipt.sender);
286
+ const currentUserId = toFlatCommunicationIdentifier(draft.userId);
287
+ if (readReceiptSenderId !== currentUserId && thread.latestReadTime < readReceipt.readOn) {
287
288
  thread.latestReadTime = readReceipt.readOn;
288
289
  }
289
290
  readReceipts.push(readReceipt);
@@ -1 +1 @@
1
- {"version":3,"file":"ChatContext.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-stateful-client/src/ChatContext.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAS,MAAM,OAAO,CAAC;AACpE,OAAO,EAA6F,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAIzI,OAAO,EAAe,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gCAAgC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,CAAC;AACf,qDAAqD;AACrD,aAAa,EAAE,CAAC;AAEhB;;GAEG;AACH,MAAM,OAAO,WAAW;IAetB,YAAY,YAAqB,EAAE,UAAyC,EAAE,QAAiB;QAdvF,WAAM,GAAoB;YAChC,MAAM,EAAE;gBACN,EAAE,EAAE,EAAE;aACkB;YAC1B,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAgB;SAC/B,CAAC;QACM,eAAU,GAAG,KAAK,CAAC;QAGnB,4BAAuB,GAAuB,SAAS,CAAC;QACxD,sBAAiB,GAAsC,SAAS,CAAC;QACjE,wBAAmB,GAAsC,SAAS,CAAC;QAEzE,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE;gBACvD,UAAU;gBACV,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE;gBACzD,UAAU;gBACV,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACM,WAAW,CAAC,QAA0C;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAgB,EAAE,EAAE;YAChE,IAAI,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;gBAChC,0EAA0E;gBAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACM,OAAO;QACZ,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,EAAE,CAAC;YAC5C,MAAA,IAAI,CAAC,mBAAmB,0CAAE,iBAAiB,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC;oBACpC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;4BACtC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gCACvB,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,uCAAuC;IACzC,CAAC;IACY,uBAAuB,CAAC,QAAgB,EAAE,SAAiB,EAAE,WAAmB;;;YAC3F,IAAI,OAAO,GAAG,MAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACzE,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC3B,OAAO,mCACF,OAAO,KACV,aAAa,EAAE,EAAE,GAClB,CAAC;gBACJ,CAAC;gBACD,iDAAiD;gBACjD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE;oBACpE,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KAAA;IACM,uBAAuB,CAAC,QAAgB,EAAE,SAAiB,EAAE,WAAmB;QACrF,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChH,MAAA,IAAI,CAAC,mBAAmB,0CAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnH,MAAA,IAAI,CAAC,iBAAiB,0CAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,EAAE,CAAC;oBACxB,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,SAAS,CAAC,QAAgB,EAAE,WAAkC;QACnE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IACM,YAAY,CAAC,QAAgB,EAAE,UAAiC;QACrE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACxB,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;gBACpB,cAAc,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACM,gBAAgB,CAAC,MAAmC,EAAE,WAAmB;QAC9E,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IACM,sBAAsB,CAAC,QAAgB,EAAE,UAAiC;QAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACM,YAAY,CAAC,QAAgB,EAAE,UAAiC;QACrE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,iBAAiB,CAAC,QAAgB,EAAE,KAAc;QACvD,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACjC,MAAM,CAAC,UAAU,GAAG;oBAClB,KAAK,EAAE,KAAK;iBACb,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,YAAY,CAAC,QAAgB;QAClC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,eAAe,CAAC,QAAgB,EAAE,QAExC;QACC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,YAAY,GAAG,QAAQ,CAAC;YACtC,CAAC;YAED,gDAAgD;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,wBAAwB,CAAC,QAAgB,EAAE,UAAkB,EAAE,OAA2B;QAC/F,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,kBAAkB,CAAC,QAAgB,EAAE,OAAe;QACzD,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC3D,MAAM,OAAO,GAAsC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBACvD,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC7C,mBAAmB,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACM,aAAa,CAAC,QAAgB,EAAE,EAAU;QAC/C,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,cAAc,CAAC,QAAgB,EAAE,WAA4B;QAClE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,eAAe,CAAC,QAAgB,EAAE,YAA+B;QACtE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC9D,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;oBACvC,eAAe,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,kBAAkB,CAAC,QAAgB,EAAE,cAA6C;QACvF,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC1B,OAAO,YAAY,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,iBAAiB,CAAC,QAAgB,EAAE,aAA0C;QACnF,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAY,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACM,cAAc,CAAC,QAAgB,EAAE,WAAmC;QACzE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;YAC1C,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3B,0DAA0D;gBAC1D,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBAChG,MAAM,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC7C,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACO,2BAA2B;QACjC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACrD,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;gBAC1C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClD,MAAM,wBAAwB,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;wBAChF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;wBAClE,OAAO,OAAO,GAAG,SAAS,CAAC,8BAA8B,CAAC;oBAC5D,CAAC,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC;wBACvE,MAAM,CAAC,gBAAgB,GAAG,wBAAwB,CAAC;oBACrD,CAAC;oBACD,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvC,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACpD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACnD,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;YAC3C,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IACM,kBAAkB,CAAC,QAAgB,EAAE,eAA6C;QACvF,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;gBACjD,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IACM,cAAc,CAAC,QAAgB,EAAE,OAA8B;QACpE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,EACJ,EAAE,EAAE,SAAS,EACb,eAAe,EAChB,GAAG,OAAO,CAAC;QACZ,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;;gBAC1C,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,YAAY,CAAC;gBAC7D,MAAM,cAAc,GAAG,cAAc,IAAI,eAAe,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC5F,MAAM,UAAU,GAAG,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;oBACjC,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBACvC,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACO,gBAAgB,CAAC,QAAgB,EAAE,OAA8B;;QACvE,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACzI,iDAAiD;gBACjD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,yBAAyB,CAA4B,CAAgC,EAAE,MAAuB;QACnH,OAAO,CAAO,GAAG,IAAU,EAAc,EAAE;YACzC,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACvC,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC,CAAA,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,oBAAoB,CAA4B,CAAuB,EAAE,MAAuB;QACrG,OAAO,CAAC,GAAG,IAAU,EAAK,EAAE;YAC1B,IAAI,CAAC;gBACH,kBAAkB,CAAC,IAAI,CAAC,gDAAgD,MAAM,EAAE,CAAC,CAAC;gBAClF,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACvC,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IACO,cAAc,CAAC,MAAuB,EAAE,KAAgB;QAC9D,IAAI,CAAC,WAAW,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC1C,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAClE,4BAA4B,CAAC,MAA6B,EAAE,MAAoC;QACtG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjD,MAAM,WAAW,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,6BAA6B,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;QACnJ,IAAI,wBAAwB,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,CAAC,gBAAgB,GAAG,wBAAwB,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,UAAsB;QACjC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC;YACH,UAAU,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACM,aAAa,CAAC,OAAyC;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACM,cAAc,CAAC,OAAyC;QAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AACD,MAAM,WAAW,GAAG,CAAC,MAAuB,EAAE,KAAc,EAAa,EAAE;IACzE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EventEmitter } from 'events';\nimport { enableMapSet, enablePatches, produce, Patch } from 'immer';\nimport { ChatClientState, ChatErrors, ChatThreadClientState, ChatThreadProperties, ChatErrorTarget, ChatError } from './ChatClientState';\nimport { ChatMessageWithStatus } from './types/ChatMessageWithStatus';\nimport { ChatMessageReadReceipt, ChatParticipant } from '@azure/communication-chat';\nimport { CommunicationIdentifierKind, UnknownIdentifierKind } from '@azure/communication-common';\nimport { AzureLogger, createClientLogger, getLogLevel } from '@azure/logger';\nimport { _safeJSONStringify, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { Constants } from './constants';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\nimport { chatStatefulLogger } from './Logger';\nimport type { CommunicationTokenCredential } from '@azure/communication-common';\nimport { ResourceDownloadQueue, fetchImageSource } from './ResourceDownloadQueue';\nenableMapSet();\n// Needed to generate state diff for verbose logging.\nenablePatches();\n\n/**\n * @internal\n */\nexport class ChatContext {\n private _state: ChatClientState = {\n userId: {\n id: ''\n } as UnknownIdentifierKind,\n displayName: '',\n threads: {},\n latestErrors: {} as ChatErrors\n };\n private _batchMode = false;\n private _logger: AzureLogger;\n private _emitter: EventEmitter;\n private typingIndicatorInterval: number | undefined = undefined;\n private _inlineImageQueue: ResourceDownloadQueue | undefined = undefined;\n private _fullsizeImageQueue: ResourceDownloadQueue | undefined = undefined;\n constructor(maxListeners?: number, credential?: CommunicationTokenCredential, endpoint?: string) {\n this._logger = createClientLogger('communication-react:chat-context');\n this._emitter = new EventEmitter();\n if (credential) {\n this._inlineImageQueue = new ResourceDownloadQueue(this, {\n credential,\n endpoint: endpoint ?? ''\n });\n this._fullsizeImageQueue = new ResourceDownloadQueue(this, {\n credential,\n endpoint: endpoint ?? ''\n });\n }\n if (maxListeners) {\n this._emitter.setMaxListeners(maxListeners);\n }\n }\n public getState(): ChatClientState {\n return this._state;\n }\n public modifyState(modifier: (draft: ChatClientState) => void): void {\n const priorState = this._state;\n this._state = produce(this._state, modifier, (patches: Patch[]) => {\n if (getLogLevel() === 'verbose') {\n // Log to `info` because AzureLogger.verbose() doesn't show up in console.\n this._logger.info(`State change: ${_safeJSONStringify(patches)}`);\n }\n });\n if (!this._batchMode && this._state !== priorState) {\n this._emitter.emit('stateChanged', this._state);\n }\n }\n public dispose(): void {\n this.modifyState((draft: ChatClientState) => {\n this._inlineImageQueue?.cancelAllRequests();\n this._fullsizeImageQueue?.cancelAllRequests();\n Object.values(draft.threads).forEach(thread => {\n Object.values(thread.chatMessages).forEach(message => {\n const cache = message.resourceCache;\n if (cache) {\n Object.values(cache).forEach(resource => {\n if (resource.sourceUrl) {\n URL.revokeObjectURL(resource.sourceUrl);\n }\n });\n }\n message.resourceCache = undefined;\n });\n });\n });\n // Any item in queue should be removed.\n }\n public async downloadResourceToCache(threadId: string, messageId: string, resourceUrl: string): Promise<void> {\n let message = this.getState().threads[threadId]?.chatMessages[messageId];\n if (message && this._fullsizeImageQueue) {\n if (!message.resourceCache) {\n message = {\n ...message,\n resourceCache: {}\n };\n }\n // Need to discuss retry logic in case of failure\n this._fullsizeImageQueue.addMessage(message);\n await this._fullsizeImageQueue.startQueue(threadId, fetchImageSource, {\n singleUrl: resourceUrl\n });\n }\n }\n public removeResourceFromCache(threadId: string, messageId: string, resourceUrl: string): void {\n this.modifyState((draft: ChatClientState) => {\n const message = draft.threads[threadId]?.chatMessages[messageId];\n if (message && this._fullsizeImageQueue && this._fullsizeImageQueue.containsMessageWithSameAttachments(message)) {\n this._fullsizeImageQueue?.cancelRequest(resourceUrl);\n } else if (message && this._inlineImageQueue && this._inlineImageQueue.containsMessageWithSameAttachments(message)) {\n this._inlineImageQueue?.cancelRequest(resourceUrl);\n }\n if (message && message.resourceCache && message.resourceCache[resourceUrl]) {\n const resource = message.resourceCache[resourceUrl];\n if (resource?.sourceUrl) {\n URL.revokeObjectURL(resource.sourceUrl);\n }\n delete message.resourceCache[resourceUrl];\n }\n });\n }\n public setThread(threadId: string, threadState: ChatThreadClientState): void {\n this.modifyState((draft: ChatClientState) => {\n draft.threads[threadId] = threadState;\n });\n }\n public createThread(threadId: string, properties?: ChatThreadProperties): void {\n this.modifyState((draft: ChatClientState) => {\n draft.threads[threadId] = {\n chatMessages: {},\n threadId: threadId,\n properties: properties,\n participants: {},\n readReceipts: [],\n typingIndicators: [],\n latestReadTime: new Date(0)\n };\n });\n }\n public updateChatConfig(userId: CommunicationIdentifierKind, displayName: string): void {\n this.modifyState((draft: ChatClientState) => {\n draft.displayName = displayName;\n draft.userId = userId;\n });\n }\n public createThreadIfNotExist(threadId: string, properties?: ChatThreadProperties): boolean {\n const exists = Object.prototype.hasOwnProperty.call(this.getState().threads, threadId);\n if (!exists) {\n this.createThread(threadId, properties);\n return true;\n }\n return false;\n }\n public updateThread(threadId: string, properties?: ChatThreadProperties): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n thread.properties = properties;\n }\n });\n }\n public updateThreadTopic(threadId: string, topic?: string): void {\n this.modifyState((draft: ChatClientState) => {\n if (topic === undefined) {\n return;\n }\n const thread = draft.threads[threadId];\n if (thread && !thread.properties) {\n thread.properties = {\n topic: topic\n };\n } else if (thread && thread.properties) {\n thread.properties.topic = topic;\n }\n });\n }\n public deleteThread(threadId: string): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n delete draft.threads[threadId];\n }\n });\n }\n public setChatMessages(threadId: string, messages: {\n [key: string]: ChatMessageWithStatus;\n }): void {\n this.modifyState((draft: ChatClientState) => {\n const threadState = draft.threads[threadId];\n if (threadState) {\n threadState.chatMessages = messages;\n }\n\n // remove typing indicator when receive messages\n const thread = draft.threads[threadId];\n if (thread) {\n for (const message of Object.values(messages)) {\n this.filterTypingIndicatorForUser(thread, message.sender);\n }\n }\n });\n }\n public updateChatMessageContent(threadId: string, messagesId: string, content: string | undefined): void {\n this.modifyState((draft: ChatClientState) => {\n const chatMessage = draft.threads[threadId]?.chatMessages[messagesId];\n if (chatMessage) {\n if (!chatMessage.content) {\n chatMessage.content = {};\n }\n chatMessage.content.message = content;\n }\n });\n }\n public deleteLocalMessage(threadId: string, localId: string): boolean {\n let localMessageDeleted = false;\n this.modifyState((draft: ChatClientState) => {\n const chatMessages = draft.threads[threadId]?.chatMessages;\n const message: ChatMessageWithStatus | undefined = chatMessages ? chatMessages[localId] : undefined;\n if (chatMessages && message && message.clientMessageId) {\n delete chatMessages[message.clientMessageId];\n localMessageDeleted = true;\n }\n });\n return localMessageDeleted;\n }\n public deleteMessage(threadId: string, id: string): void {\n this.modifyState((draft: ChatClientState) => {\n const chatMessages = draft.threads[threadId]?.chatMessages;\n if (chatMessages) {\n delete chatMessages[id];\n }\n });\n }\n public setParticipant(threadId: string, participant: ChatParticipant): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n participants[toFlatCommunicationIdentifier(participant.id)] = participant;\n }\n });\n }\n public setParticipants(threadId: string, participants: ChatParticipant[]): void {\n this.modifyState((draft: ChatClientState) => {\n const participantsMap = draft.threads[threadId]?.participants;\n if (participantsMap) {\n for (const participant of participants) {\n participantsMap[toFlatCommunicationIdentifier(participant.id)] = participant;\n }\n }\n });\n }\n public deleteParticipants(threadId: string, participantIds: CommunicationIdentifierKind[]): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n participantIds.forEach(id => {\n delete participants[toFlatCommunicationIdentifier(id)];\n });\n }\n });\n }\n public deleteParticipant(threadId: string, participantId: CommunicationIdentifierKind): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n delete participants[toFlatCommunicationIdentifier(participantId)];\n }\n });\n }\n public addReadReceipt(threadId: string, readReceipt: ChatMessageReadReceipt): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n const readReceipts = thread?.readReceipts;\n if (thread && readReceipts) {\n // TODO(prprabhu): Replace `this.getState()` with `draft`?\n if (readReceipt.sender !== this.getState().userId && thread.latestReadTime < readReceipt.readOn) {\n thread.latestReadTime = readReceipt.readOn;\n }\n readReceipts.push(readReceipt);\n }\n });\n }\n private startTypingIndicatorCleanUp(): void {\n if (this.typingIndicatorInterval) {\n return;\n }\n this.typingIndicatorInterval = window.setInterval(() => {\n let isTypingActive = false;\n this.modifyState((draft: ChatClientState) => {\n for (const thread of Object.values(draft.threads)) {\n const filteredTypingIndicators = thread.typingIndicators.filter(typingIndicator => {\n const timeGap = Date.now() - typingIndicator.receivedOn.getTime();\n return timeGap < Constants.TYPING_INDICATOR_MAINTAIN_TIME;\n });\n if (thread.typingIndicators.length !== filteredTypingIndicators.length) {\n thread.typingIndicators = filteredTypingIndicators;\n }\n if (thread.typingIndicators.length > 0) {\n isTypingActive = true;\n }\n }\n });\n if (!isTypingActive && this.typingIndicatorInterval) {\n window.clearInterval(this.typingIndicatorInterval);\n this.typingIndicatorInterval = undefined;\n }\n }, 1000);\n }\n public addTypingIndicator(threadId: string, typingIndicator: TypingIndicatorReceivedEvent): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n const typingIndicators = thread.typingIndicators;\n typingIndicators.push(typingIndicator);\n }\n });\n\n // Make sure we only maintain a period of typing indicator for perf purposes\n this.startTypingIndicatorCleanUp();\n }\n public setChatMessage(threadId: string, message: ChatMessageWithStatus): void {\n this.parseAttachments(threadId, message);\n const {\n id: messageId,\n clientMessageId\n } = message;\n if (messageId || clientMessageId) {\n this.modifyState((draft: ChatClientState) => {\n const threadMessages = draft.threads[threadId]?.chatMessages;\n const isLocalIdInMap = threadMessages && clientMessageId && threadMessages[clientMessageId];\n const messageKey = !messageId || isLocalIdInMap ? clientMessageId : messageId;\n if (threadMessages && messageKey) {\n threadMessages[messageKey] = message;\n }\n\n // remove typing indicator when receive a message from a user\n const thread = draft.threads[threadId];\n if (thread) {\n this.filterTypingIndicatorForUser(thread, message.sender);\n }\n });\n }\n }\n private parseAttachments(threadId: string, message: ChatMessageWithStatus): void {\n const attachments = message.content?.attachments;\n if (message.type === 'html' && attachments && attachments.length > 0) {\n if (this._inlineImageQueue && !this._inlineImageQueue.containsMessageWithSameAttachments(message) && message.resourceCache === undefined) {\n // Need to discuss retry logic in case of failure\n this._inlineImageQueue.addMessage(message);\n this._inlineImageQueue.startQueue(threadId, fetchImageSource);\n }\n }\n }\n\n /**\n * Tees any errors encountered in an async function to the state.\n *\n * @param f Async function to execute.\n * @param target The error target to tee error to.\n * @returns Result of calling `f`. Also re-raises any exceptions thrown from `f`.\n * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.\n */\n public withAsyncErrorTeedToState<Args extends unknown[], R>(f: (...args: Args) => Promise<R>, target: ChatErrorTarget): (...args: Args) => Promise<R> {\n return async (...args: Args): Promise<R> => {\n try {\n return await f(...args);\n } catch (error) {\n const chatError = toChatError(target, error);\n this.setLatestError(target, chatError);\n throw chatError;\n }\n };\n }\n\n /**\n * Tees any errors encountered in an function to the state.\n *\n * @param f Function to execute.\n * @param target The error target to tee error to.\n * @returns Result of calling `f`. Also re-raises any exceptions thrown from `f`.\n * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.\n */\n public withErrorTeedToState<Args extends unknown[], R>(f: (...args: Args) => R, target: ChatErrorTarget): (...args: Args) => R {\n return (...args: Args): R => {\n try {\n chatStatefulLogger.info(`Chat stateful client target function called: ${target}`);\n return f(...args);\n } catch (error) {\n const chatError = toChatError(target, error);\n this.setLatestError(target, chatError);\n throw chatError;\n }\n };\n }\n private setLatestError(target: ChatErrorTarget, error: ChatError): void {\n this.modifyState((draft: ChatClientState) => {\n draft.latestErrors[target] = error;\n });\n }\n\n // This is a mutating function, only use it inside of a produce() function\n private filterTypingIndicatorForUser(thread: ChatThreadClientState, userId?: CommunicationIdentifierKind): void {\n if (!userId) {\n return;\n }\n const typingIndicators = thread.typingIndicators;\n const userIdAsKey = toFlatCommunicationIdentifier(userId);\n const filteredTypingIndicators = typingIndicators.filter(typingIndicator => toFlatCommunicationIdentifier(typingIndicator.sender) !== userIdAsKey);\n if (filteredTypingIndicators.length !== typingIndicators.length) {\n thread.typingIndicators = filteredTypingIndicators;\n }\n }\n\n /**\n * Batch updates to minimize `stateChanged` events across related operations.\n *\n * - A maximum of one `stateChanged` event is emitted, at the end of the operations.\n * - No `stateChanged` event is emitted if the state did not change through the operations.\n * - In case of an exception, state is reset to the prior value and no `stateChanged` event is emitted.\n *\n * All operations finished in this batch should be synchronous.\n * This function is not reentrant -- do not call batch() from within another batch().\n */\n public batch(operations: () => void): void {\n if (this._batchMode) {\n throw new Error('batch() called from within another batch()');\n }\n this._batchMode = true;\n const priorState = this._state;\n try {\n operations();\n if (this._state !== priorState) {\n this._emitter.emit('stateChanged', this._state);\n }\n } catch (e) {\n this._state = priorState;\n if (getLogLevel() === 'verbose') {\n this._logger.warning(`State rollback to: ${_safeJSONStringify(priorState)}`);\n }\n throw e;\n } finally {\n this._batchMode = false;\n }\n }\n public onStateChange(handler: (state: ChatClientState) => void): void {\n this._emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (state: ChatClientState) => void): void {\n this._emitter.off('stateChanged', handler);\n }\n}\nconst toChatError = (target: ChatErrorTarget, error: unknown): ChatError => {\n if (error instanceof Error) {\n return new ChatError(target, error);\n }\n return new ChatError(target, new Error(`${error}`));\n};"]}
1
+ {"version":3,"file":"ChatContext.js","sourceRoot":"","sources":["../../../../preprocess-dist/chat-stateful-client/src/ChatContext.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EventEmitter } from 'events';\nimport { enableMapSet, enablePatches, produce, Patch } from 'immer';\nimport { ChatClientState, ChatErrors, ChatThreadClientState, ChatThreadProperties, ChatErrorTarget, ChatError } from './ChatClientState';\nimport { ChatMessageWithStatus } from './types/ChatMessageWithStatus';\nimport { ChatMessageReadReceipt, ChatParticipant } from '@azure/communication-chat';\nimport { CommunicationIdentifierKind, UnknownIdentifierKind } from '@azure/communication-common';\nimport { AzureLogger, createClientLogger, getLogLevel } from '@azure/logger';\nimport { _safeJSONStringify, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { Constants } from './constants';\nimport { TypingIndicatorReceivedEvent } from '@azure/communication-chat';\nimport { chatStatefulLogger } from './Logger';\nimport type { CommunicationTokenCredential } from '@azure/communication-common';\nimport { ResourceDownloadQueue, fetchImageSource } from './ResourceDownloadQueue';\nenableMapSet();\n// Needed to generate state diff for verbose logging.\nenablePatches();\n\n/**\r\n * @internal\r\n */\nexport class ChatContext {\n private _state: ChatClientState = {\n userId: {\n id: ''\n } as UnknownIdentifierKind,\n displayName: '',\n threads: {},\n latestErrors: {} as ChatErrors\n };\n private _batchMode = false;\n private _logger: AzureLogger;\n private _emitter: EventEmitter;\n private typingIndicatorInterval: number | undefined = undefined;\n private _inlineImageQueue: ResourceDownloadQueue | undefined = undefined;\n private _fullsizeImageQueue: ResourceDownloadQueue | undefined = undefined;\n constructor(maxListeners?: number, credential?: CommunicationTokenCredential, endpoint?: string) {\n this._logger = createClientLogger('communication-react:chat-context');\n this._emitter = new EventEmitter();\n if (credential) {\n this._inlineImageQueue = new ResourceDownloadQueue(this, {\n credential,\n endpoint: endpoint ?? ''\n });\n this._fullsizeImageQueue = new ResourceDownloadQueue(this, {\n credential,\n endpoint: endpoint ?? ''\n });\n }\n if (maxListeners) {\n this._emitter.setMaxListeners(maxListeners);\n }\n }\n public getState(): ChatClientState {\n return this._state;\n }\n public modifyState(modifier: (draft: ChatClientState) => void): void {\n const priorState = this._state;\n this._state = produce(this._state, modifier, (patches: Patch[]) => {\n if (getLogLevel() === 'verbose') {\n // Log to `info` because AzureLogger.verbose() doesn't show up in console.\n this._logger.info(`State change: ${_safeJSONStringify(patches)}`);\n }\n });\n if (!this._batchMode && this._state !== priorState) {\n this._emitter.emit('stateChanged', this._state);\n }\n }\n public dispose(): void {\n this.modifyState((draft: ChatClientState) => {\n this._inlineImageQueue?.cancelAllRequests();\n this._fullsizeImageQueue?.cancelAllRequests();\n Object.values(draft.threads).forEach(thread => {\n Object.values(thread.chatMessages).forEach(message => {\n const cache = message.resourceCache;\n if (cache) {\n Object.values(cache).forEach(resource => {\n if (resource.sourceUrl) {\n URL.revokeObjectURL(resource.sourceUrl);\n }\n });\n }\n message.resourceCache = undefined;\n });\n });\n });\n // Any item in queue should be removed.\n }\n public async downloadResourceToCache(threadId: string, messageId: string, resourceUrl: string): Promise<void> {\n let message = this.getState().threads[threadId]?.chatMessages[messageId];\n if (message && this._fullsizeImageQueue) {\n if (!message.resourceCache) {\n message = {\n ...message,\n resourceCache: {}\n };\n }\n // Need to discuss retry logic in case of failure\n this._fullsizeImageQueue.addMessage(message);\n await this._fullsizeImageQueue.startQueue(threadId, fetchImageSource, {\n singleUrl: resourceUrl\n });\n }\n }\n public removeResourceFromCache(threadId: string, messageId: string, resourceUrl: string): void {\n this.modifyState((draft: ChatClientState) => {\n const message = draft.threads[threadId]?.chatMessages[messageId];\n if (message && this._fullsizeImageQueue && this._fullsizeImageQueue.containsMessageWithSameAttachments(message)) {\n this._fullsizeImageQueue?.cancelRequest(resourceUrl);\n } else if (message && this._inlineImageQueue && this._inlineImageQueue.containsMessageWithSameAttachments(message)) {\n this._inlineImageQueue?.cancelRequest(resourceUrl);\n }\n if (message && message.resourceCache && message.resourceCache[resourceUrl]) {\n const resource = message.resourceCache[resourceUrl];\n if (resource?.sourceUrl) {\n URL.revokeObjectURL(resource.sourceUrl);\n }\n delete message.resourceCache[resourceUrl];\n }\n });\n }\n public setThread(threadId: string, threadState: ChatThreadClientState): void {\n this.modifyState((draft: ChatClientState) => {\n draft.threads[threadId] = threadState;\n });\n }\n public createThread(threadId: string, properties?: ChatThreadProperties): void {\n this.modifyState((draft: ChatClientState) => {\n draft.threads[threadId] = {\n chatMessages: {},\n threadId: threadId,\n properties: properties,\n participants: {},\n readReceipts: [],\n typingIndicators: [],\n latestReadTime: new Date(0)\n };\n });\n }\n public updateChatConfig(userId: CommunicationIdentifierKind, displayName: string): void {\n this.modifyState((draft: ChatClientState) => {\n draft.displayName = displayName;\n draft.userId = userId;\n });\n }\n public createThreadIfNotExist(threadId: string, properties?: ChatThreadProperties): boolean {\n const exists = Object.prototype.hasOwnProperty.call(this.getState().threads, threadId);\n if (!exists) {\n this.createThread(threadId, properties);\n return true;\n }\n return false;\n }\n public updateThread(threadId: string, properties?: ChatThreadProperties): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n thread.properties = properties;\n }\n });\n }\n public updateThreadTopic(threadId: string, topic?: string): void {\n this.modifyState((draft: ChatClientState) => {\n if (topic === undefined) {\n return;\n }\n const thread = draft.threads[threadId];\n if (thread && !thread.properties) {\n thread.properties = {\n topic: topic\n };\n } else if (thread && thread.properties) {\n thread.properties.topic = topic;\n }\n });\n }\n public deleteThread(threadId: string): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n delete draft.threads[threadId];\n }\n });\n }\n public setChatMessages(threadId: string, messages: {\n [key: string]: ChatMessageWithStatus;\n }): void {\n this.modifyState((draft: ChatClientState) => {\n const threadState = draft.threads[threadId];\n if (threadState) {\n threadState.chatMessages = messages;\n }\n\n // remove typing indicator when receive messages\n const thread = draft.threads[threadId];\n if (thread) {\n for (const message of Object.values(messages)) {\n this.filterTypingIndicatorForUser(thread, message.sender);\n }\n }\n });\n }\n public updateChatMessageContent(threadId: string, messagesId: string, content: string | undefined): void {\n this.modifyState((draft: ChatClientState) => {\n const chatMessage = draft.threads[threadId]?.chatMessages[messagesId];\n if (chatMessage) {\n if (!chatMessage.content) {\n chatMessage.content = {};\n }\n chatMessage.content.message = content;\n }\n });\n }\n public deleteLocalMessage(threadId: string, localId: string): boolean {\n let localMessageDeleted = false;\n this.modifyState((draft: ChatClientState) => {\n const chatMessages = draft.threads[threadId]?.chatMessages;\n const message: ChatMessageWithStatus | undefined = chatMessages ? chatMessages[localId] : undefined;\n if (chatMessages && message && message.clientMessageId) {\n delete chatMessages[message.clientMessageId];\n localMessageDeleted = true;\n }\n });\n return localMessageDeleted;\n }\n public deleteMessage(threadId: string, id: string): void {\n this.modifyState((draft: ChatClientState) => {\n const chatMessages = draft.threads[threadId]?.chatMessages;\n if (chatMessages) {\n delete chatMessages[id];\n }\n });\n }\n public setParticipant(threadId: string, participant: ChatParticipant): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n participants[toFlatCommunicationIdentifier(participant.id)] = participant;\n }\n });\n }\n public setParticipants(threadId: string, participants: ChatParticipant[]): void {\n this.modifyState((draft: ChatClientState) => {\n const participantsMap = draft.threads[threadId]?.participants;\n if (participantsMap) {\n for (const participant of participants) {\n participantsMap[toFlatCommunicationIdentifier(participant.id)] = participant;\n }\n }\n });\n }\n public deleteParticipants(threadId: string, participantIds: CommunicationIdentifierKind[]): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n participantIds.forEach(id => {\n delete participants[toFlatCommunicationIdentifier(id)];\n });\n }\n });\n }\n public deleteParticipant(threadId: string, participantId: CommunicationIdentifierKind): void {\n this.modifyState((draft: ChatClientState) => {\n const participants = draft.threads[threadId]?.participants;\n if (participants) {\n delete participants[toFlatCommunicationIdentifier(participantId)];\n }\n });\n }\n public addReadReceipt(threadId: string, readReceipt: ChatMessageReadReceipt): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n const readReceipts = thread?.readReceipts;\n if (thread && readReceipts) {\n const readReceiptSenderId = toFlatCommunicationIdentifier(readReceipt.sender);\n const currentUserId = toFlatCommunicationIdentifier(draft.userId);\n if (readReceiptSenderId !== currentUserId && thread.latestReadTime < readReceipt.readOn) {\n thread.latestReadTime = readReceipt.readOn;\n }\n readReceipts.push(readReceipt);\n }\n });\n }\n private startTypingIndicatorCleanUp(): void {\n if (this.typingIndicatorInterval) {\n return;\n }\n this.typingIndicatorInterval = window.setInterval(() => {\n let isTypingActive = false;\n this.modifyState((draft: ChatClientState) => {\n for (const thread of Object.values(draft.threads)) {\n const filteredTypingIndicators = thread.typingIndicators.filter(typingIndicator => {\n const timeGap = Date.now() - typingIndicator.receivedOn.getTime();\n return timeGap < Constants.TYPING_INDICATOR_MAINTAIN_TIME;\n });\n if (thread.typingIndicators.length !== filteredTypingIndicators.length) {\n thread.typingIndicators = filteredTypingIndicators;\n }\n if (thread.typingIndicators.length > 0) {\n isTypingActive = true;\n }\n }\n });\n if (!isTypingActive && this.typingIndicatorInterval) {\n window.clearInterval(this.typingIndicatorInterval);\n this.typingIndicatorInterval = undefined;\n }\n }, 1000);\n }\n public addTypingIndicator(threadId: string, typingIndicator: TypingIndicatorReceivedEvent): void {\n this.modifyState((draft: ChatClientState) => {\n const thread = draft.threads[threadId];\n if (thread) {\n const typingIndicators = thread.typingIndicators;\n typingIndicators.push(typingIndicator);\n }\n });\n\n // Make sure we only maintain a period of typing indicator for perf purposes\n this.startTypingIndicatorCleanUp();\n }\n public setChatMessage(threadId: string, message: ChatMessageWithStatus): void {\n this.parseAttachments(threadId, message);\n const {\n id: messageId,\n clientMessageId\n } = message;\n if (messageId || clientMessageId) {\n this.modifyState((draft: ChatClientState) => {\n const threadMessages = draft.threads[threadId]?.chatMessages;\n const isLocalIdInMap = threadMessages && clientMessageId && threadMessages[clientMessageId];\n const messageKey = !messageId || isLocalIdInMap ? clientMessageId : messageId;\n if (threadMessages && messageKey) {\n threadMessages[messageKey] = message;\n }\n\n // remove typing indicator when receive a message from a user\n const thread = draft.threads[threadId];\n if (thread) {\n this.filterTypingIndicatorForUser(thread, message.sender);\n }\n });\n }\n }\n private parseAttachments(threadId: string, message: ChatMessageWithStatus): void {\n const attachments = message.content?.attachments;\n if (message.type === 'html' && attachments && attachments.length > 0) {\n if (this._inlineImageQueue && !this._inlineImageQueue.containsMessageWithSameAttachments(message) && message.resourceCache === undefined) {\n // Need to discuss retry logic in case of failure\n this._inlineImageQueue.addMessage(message);\n this._inlineImageQueue.startQueue(threadId, fetchImageSource);\n }\n }\n }\n\n /**\r\n * Tees any errors encountered in an async function to the state.\r\n *\r\n * @param f Async function to execute.\r\n * @param target The error target to tee error to.\r\n * @returns Result of calling `f`. Also re-raises any exceptions thrown from `f`.\r\n * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.\r\n */\n public withAsyncErrorTeedToState<Args extends unknown[], R>(f: (...args: Args) => Promise<R>, target: ChatErrorTarget): (...args: Args) => Promise<R> {\n return async (...args: Args): Promise<R> => {\n try {\n return await f(...args);\n } catch (error) {\n const chatError = toChatError(target, error);\n this.setLatestError(target, chatError);\n throw chatError;\n }\n };\n }\n\n /**\r\n * Tees any errors encountered in an function to the state.\r\n *\r\n * @param f Function to execute.\r\n * @param target The error target to tee error to.\r\n * @returns Result of calling `f`. Also re-raises any exceptions thrown from `f`.\r\n * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.\r\n */\n public withErrorTeedToState<Args extends unknown[], R>(f: (...args: Args) => R, target: ChatErrorTarget): (...args: Args) => R {\n return (...args: Args): R => {\n try {\n chatStatefulLogger.info(`Chat stateful client target function called: ${target}`);\n return f(...args);\n } catch (error) {\n const chatError = toChatError(target, error);\n this.setLatestError(target, chatError);\n throw chatError;\n }\n };\n }\n private setLatestError(target: ChatErrorTarget, error: ChatError): void {\n this.modifyState((draft: ChatClientState) => {\n draft.latestErrors[target] = error;\n });\n }\n\n // This is a mutating function, only use it inside of a produce() function\n private filterTypingIndicatorForUser(thread: ChatThreadClientState, userId?: CommunicationIdentifierKind): void {\n if (!userId) {\n return;\n }\n const typingIndicators = thread.typingIndicators;\n const userIdAsKey = toFlatCommunicationIdentifier(userId);\n const filteredTypingIndicators = typingIndicators.filter(typingIndicator => toFlatCommunicationIdentifier(typingIndicator.sender) !== userIdAsKey);\n if (filteredTypingIndicators.length !== typingIndicators.length) {\n thread.typingIndicators = filteredTypingIndicators;\n }\n }\n\n /**\r\n * Batch updates to minimize `stateChanged` events across related operations.\r\n *\r\n * - A maximum of one `stateChanged` event is emitted, at the end of the operations.\r\n * - No `stateChanged` event is emitted if the state did not change through the operations.\r\n * - In case of an exception, state is reset to the prior value and no `stateChanged` event is emitted.\r\n *\r\n * All operations finished in this batch should be synchronous.\r\n * This function is not reentrant -- do not call batch() from within another batch().\r\n */\n public batch(operations: () => void): void {\n if (this._batchMode) {\n throw new Error('batch() called from within another batch()');\n }\n this._batchMode = true;\n const priorState = this._state;\n try {\n operations();\n if (this._state !== priorState) {\n this._emitter.emit('stateChanged', this._state);\n }\n } catch (e) {\n this._state = priorState;\n if (getLogLevel() === 'verbose') {\n this._logger.warning(`State rollback to: ${_safeJSONStringify(priorState)}`);\n }\n throw e;\n } finally {\n this._batchMode = false;\n }\n }\n public onStateChange(handler: (state: ChatClientState) => void): void {\n this._emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (state: ChatClientState) => void): void {\n this._emitter.off('stateChanged', handler);\n }\n}\nconst toChatError = (target: ChatErrorTarget, error: unknown): ChatError => {\n if (error instanceof Error) {\n return new ChatError(target, error);\n }\n return new ChatError(target, new Error(`${error}`));\n};"]}
@@ -41,8 +41,7 @@ export class EventSubscriber {
41
41
  // Note: there is a bug in chatMessageReceived event that it is missing sequenceId
42
42
  createdOn: new Date(event.createdOn),
43
43
  editedOn: 'editedOn' in event ? event.editedOn : undefined,
44
- metadata: event.metadata,
45
- policyViolation: 'policyViolation' in event ? event.policyViolation : undefined
44
+ metadata: event.metadata
46
45
  });
47
46
  };
48
47
  // convert event type to chatMessage type, only possible type is 'html' and 'text' in chat event