@azure/communication-react 1.31.0-beta.1 → 1.31.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 (384) hide show
  1. package/dist/communication-react.d.ts +24 -1373
  2. package/dist/dist-cjs/communication-react/index.js +40378 -174
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/common.d.ts +0 -13
  5. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/constants.d.ts +0 -5
  7. package/dist/dist-esm/acs-ui-common/src/constants.js +0 -5
  8. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/index.d.ts +0 -4
  10. package/dist/dist-esm/acs-ui-common/src/index.js +0 -3
  11. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -2
  15. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +0 -2
  17. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +0 -6
  18. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +1 -25
  20. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts +0 -1
  22. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -3
  23. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  24. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +0 -4
  25. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  26. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +2 -42
  27. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  28. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +0 -6
  29. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -35
  30. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +1 -5
  32. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +12 -27
  33. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  34. package/dist/dist-esm/calling-stateful-client/src/Converter.js +0 -3
  35. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  36. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts +0 -1
  37. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js +1 -7
  38. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  39. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +0 -17
  40. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  41. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +0 -1
  42. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  43. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +2 -6
  44. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -36
  45. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  46. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts +1 -2
  47. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js +0 -4
  48. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  49. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +2 -25
  50. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  51. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +3 -3
  52. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  53. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -15
  54. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  55. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +1 -2
  56. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  57. package/dist/dist-esm/chat-stateful-client/src/index.d.ts +0 -1
  58. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  59. package/dist/dist-esm/communication-react/src/index.d.ts +0 -21
  60. package/dist/dist-esm/communication-react/src/index.js +0 -3
  61. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.d.ts +0 -2
  63. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +0 -1
  64. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -13
  66. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js +3 -9
  67. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +0 -11
  69. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +2 -32
  70. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.d.ts +1 -8
  72. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +5 -9
  73. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.d.ts +1 -2
  75. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js +4 -4
  76. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.js.map +1 -1
  77. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.d.ts +1 -4
  78. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +6 -31
  79. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  80. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +1 -15
  81. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +0 -9
  82. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  83. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +2 -23
  84. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +6 -17
  85. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  86. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.d.ts +1 -8
  87. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +6 -10
  88. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  89. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +5 -5
  90. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  91. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +0 -2
  92. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  93. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts +0 -2
  94. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +0 -15
  95. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  96. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +5 -81
  97. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -13
  98. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  99. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +0 -15
  100. package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -12
  101. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +1 -51
  103. package/dist/dist-esm/react-components/src/components/SendBox.js +6 -58
  104. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  105. package/dist/dist-esm/react-components/src/components/index.d.ts +0 -21
  106. package/dist/dist-esm/react-components/src/components/index.js +0 -8
  107. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  108. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +1 -1
  109. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.d.ts +1 -1
  110. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +3 -3
  111. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +0 -8
  112. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  113. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +1 -38
  114. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +3 -30
  115. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  116. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.d.ts +2 -4
  117. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js +2 -9
  118. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +1 -47
  120. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +4 -154
  121. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/utils/common.js +0 -2
  123. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  124. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +1 -2
  125. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  126. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +0 -4
  127. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +1 -3
  128. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  129. package/dist/dist-esm/react-components/src/index.d.ts +0 -1
  130. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  131. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +0 -45
  132. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  133. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +2 -2
  134. package/dist/dist-esm/react-components/src/theming/icons.d.ts +0 -24
  135. package/dist/dist-esm/react-components/src/theming/icons.js +0 -67
  136. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/theming/themes.d.ts +0 -6
  138. package/dist/dist-esm/react-components/src/theming/themes.js +0 -9
  139. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  140. package/dist/dist-esm/react-components/src/types/Attachment.d.ts +0 -13
  141. package/dist/dist-esm/react-components/src/types/Attachment.js.map +1 -1
  142. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +1 -20
  143. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  144. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +0 -59
  145. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +10 -15
  146. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  147. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +6 -38
  148. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +1 -12
  149. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  150. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +0 -2
  151. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  152. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +0 -2
  153. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +0 -19
  154. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  155. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +2 -10
  156. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  157. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +0 -2
  158. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +0 -19
  159. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  160. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +0 -1
  161. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +3 -5
  162. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  163. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -3
  164. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  165. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +0 -3
  166. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  167. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
  168. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  169. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +0 -7
  170. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +5 -43
  171. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  172. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +2 -2
  173. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  174. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -2
  175. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  176. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +2 -2
  177. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  178. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +0 -8
  179. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -68
  180. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  181. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +0 -52
  182. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +4 -10
  183. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  184. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -10
  185. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +2 -20
  186. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  187. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +2 -16
  188. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  189. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -10
  190. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +2 -14
  191. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  192. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +0 -27
  193. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +1 -2
  194. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  195. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +0 -2
  196. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -189
  197. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  198. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +0 -20
  199. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  200. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +2 -6
  201. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +0 -36
  202. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  203. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +2 -12
  204. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  205. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +2 -13
  206. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  207. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +0 -2
  208. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  209. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts +0 -4
  210. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +0 -4
  211. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  212. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -2
  213. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  214. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -41
  215. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +0 -21
  216. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  217. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +0 -5
  218. package/dist/dist-esm/react-composites/src/composites/common/constants.js +0 -5
  219. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  220. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -26
  221. package/dist/dist-esm/react-composites/src/composites/common/icons.js +0 -2
  222. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +1 -1
  224. package/dist/tsdoc-metadata.json +1 -1
  225. package/package.json +5 -5
  226. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-DdSFdo_m.js +0 -213
  227. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-DdSFdo_m.js.map +0 -1
  228. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-C2HrwCVY.js +0 -49
  229. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-C2HrwCVY.js.map +0 -1
  230. package/dist/dist-cjs/communication-react/index-CH39vOsT.js +0 -46344
  231. package/dist/dist-cjs/communication-react/index-CH39vOsT.js.map +0 -1
  232. package/dist/dist-esm/acs-ui-common/src/dataConversion.d.ts +0 -6
  233. package/dist/dist-esm/acs-ui-common/src/dataConversion.js +0 -20
  234. package/dist/dist-esm/acs-ui-common/src/dataConversion.js.map +0 -1
  235. package/dist/dist-esm/acs-ui-common/src/removeImageTags.d.ts +0 -7
  236. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js +0 -18
  237. package/dist/dist-esm/acs-ui-common/src/removeImageTags.js.map +0 -1
  238. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.d.ts +0 -17
  239. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js +0 -33
  240. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js.map +0 -1
  241. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.d.ts +0 -6
  242. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js +0 -20
  243. package/dist/dist-esm/chat-component-bindings/src/utils/getImageAttachmentsFromHTMLContent.js.map +0 -1
  244. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.d.ts +0 -10
  245. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js +0 -15
  246. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +0 -1
  247. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +0 -24
  248. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +0 -203
  249. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +0 -1
  250. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.d.ts +0 -69
  251. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +0 -36
  252. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +0 -1
  253. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.d.ts +0 -75
  254. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +0 -67
  255. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +0 -1
  256. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +0 -105
  257. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +0 -51
  258. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +0 -1
  259. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +0 -86
  260. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +0 -40
  261. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +0 -1
  262. package/dist/dist-esm/react-components/src/components/MentionPopover.d.ts +0 -121
  263. package/dist/dist-esm/react-components/src/components/MentionPopover.js +0 -119
  264. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +0 -1
  265. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.d.ts +0 -9
  266. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js +0 -29
  267. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/ContextMenuPlugin.js.map +0 -1
  268. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +0 -30
  269. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +0 -98
  270. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +0 -1
  271. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.d.ts +0 -19
  272. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js +0 -43
  273. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/KeyboardInputPlugin.js.map +0 -1
  274. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +0 -15
  275. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +0 -42
  276. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +0 -1
  277. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.d.ts +0 -24
  278. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js +0 -64
  279. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/RichTextToolbarPlugin.js.map +0 -1
  280. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.d.ts +0 -20
  281. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js +0 -45
  282. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/TableEditContextMenuProvider.js.map +0 -1
  283. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.d.ts +0 -14
  284. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js +0 -42
  285. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UndoRedoPlugin.js.map +0 -1
  286. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.d.ts +0 -30
  287. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js +0 -99
  288. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/UpdateContentPlugin.js.map +0 -1
  289. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.d.ts +0 -59
  290. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +0 -334
  291. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +0 -1
  292. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.d.ts +0 -37
  293. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +0 -78
  294. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +0 -1
  295. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -215
  296. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +0 -184
  297. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +0 -1
  298. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +0 -16
  299. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +0 -75
  300. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +0 -1
  301. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.d.ts +0 -9
  302. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js +0 -16
  303. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxUtils.js.map +0 -1
  304. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.d.ts +0 -19
  305. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +0 -229
  306. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +0 -1
  307. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.d.ts +0 -7
  308. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js +0 -51
  309. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTableCommandBarItem.js.map +0 -1
  310. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.d.ts +0 -15
  311. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js +0 -64
  312. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js.map +0 -1
  313. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.d.ts +0 -6
  314. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js +0 -13
  315. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextToolbarTableIcon.js.map +0 -1
  316. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts +0 -56
  317. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +0 -75
  318. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +0 -1
  319. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +0 -14
  320. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js +0 -18
  321. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +0 -1
  322. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.d.ts +0 -24
  323. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +0 -550
  324. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +0 -1
  325. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +0 -152
  326. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +0 -819
  327. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +0 -1
  328. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +0 -58
  329. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +0 -144
  330. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +0 -1
  331. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +0 -26
  332. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +0 -69
  333. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +0 -1
  334. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +0 -82
  335. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +0 -328
  336. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +0 -1
  337. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.d.ts +0 -21
  338. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js +0 -38
  339. package/dist/dist-esm/react-components/src/components/styles/RichTextInputBoxComponent.styles.js.map +0 -1
  340. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.d.ts +0 -38
  341. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js +0 -99
  342. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +0 -1
  343. package/dist/dist-esm/react-components/src/components/styles/Stack.style.d.ts +0 -5
  344. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js +0 -32
  345. package/dist/dist-esm/react-components/src/components/styles/Stack.style.js.map +0 -1
  346. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +0 -73
  347. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +0 -178
  348. package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +0 -1
  349. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.d.ts +0 -33
  350. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js +0 -119
  351. package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js.map +0 -1
  352. package/dist/dist-esm/react-components/src/components/utils/merge.d.ts +0 -7
  353. package/dist/dist-esm/react-components/src/components/utils/merge.js +0 -16
  354. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +0 -1
  355. package/dist/dist-esm/react-components/src/theming/icons.styles.d.ts +0 -6
  356. package/dist/dist-esm/react-components/src/theming/icons.styles.js +0 -25
  357. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +0 -1
  358. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +0 -46
  359. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +0 -200
  360. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +0 -1
  361. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.d.ts +0 -15
  362. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js +0 -23
  363. package/dist/dist-esm/react-composites/src/composites/ChatComposite/AttachmentDownloadErrorBar.js.map +0 -1
  364. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +0 -18
  365. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +0 -18
  366. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +0 -1
  367. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +0 -49
  368. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +0 -44
  369. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +0 -1
  370. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +0 -39
  371. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +0 -267
  372. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +0 -1
  373. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +0 -80
  374. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js +0 -36
  375. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +0 -1
  376. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.d.ts +0 -38
  377. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +0 -66
  378. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +0 -1
  379. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts +0 -5
  380. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js +0 -5
  381. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +0 -1
  382. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.d.ts +0 -10
  383. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +0 -16
  384. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AzureCommunicationChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _createStatefulChatClientInner, ChatClientState, ChatError, StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatHandlers, createDefaultChatHandlers } from '@internal/chat-component-bindings';\nimport { ChatMessage, ChatMessageType, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';\nimport type { ChatMessageDeletedEvent, ChatMessageEditedEvent, ChatMessageReceivedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ReadReceiptReceivedEvent } from '@azure/communication-chat';\nimport type { UploadChatImageResult } from '@internal/acs-ui-common';\nimport { toFlatCommunicationIdentifier, _TelemetryImplementationHint } from '@internal/acs-ui-common';\nimport { EventEmitter } from 'events';\nimport { ChatAdapter, ChatAdapterState, MessageDeletedListener, MessageEditedListener, MessageReadListener, MessageReceivedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './ChatAdapter';\nimport { ResourceDetails } from './ChatAdapter';\nimport { AdapterError } from '../../common/adapters';\nimport { useEffect, useRef, useState } from 'react';\nimport { _isValidIdentifier } from '@internal/acs-ui-common';\nimport { TEAMS_LIMITATION_LEARN_MORE, UNSUPPORTED_CHAT_THREAD_TYPE } from '../../common/constants';\nimport { MessageOptions } from '@internal/acs-ui-common';\nimport { createProfileStateModifier } from './OnFetchProfileCallback';\nimport type { OnFetchChatProfileCallback } from './OnFetchProfileCallback';\n\n/**\n * @private\n */\nexport type AdapterStateModifier = (state: ChatAdapterState) => ChatAdapterState;\n\n/**\n * Options for configuring the ChatAdapter.\n *\n * @public\n */\nexport type ChatAdapterOptions = {\n /**\n * Optional callback to fetch a chat profile\n */\n onFetchProfile?: OnFetchChatProfileCallback;\n};\n/**\n * Context of Chat, which is a centralized context for all state updates\n * @private\n */\nexport class ChatContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: ChatAdapterState;\n private threadId: string;\n private displayNameModifier: AdapterStateModifier | undefined;\n constructor(clientState: ChatClientState, threadId: string, chatAdapterOptions?: ChatAdapterOptions) {\n const thread = clientState.threads[threadId];\n this.threadId = threadId;\n if (!thread) {\n throw 'Cannot find threadId, please initialize thread before use!';\n }\n this.state = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n this.displayNameModifier = chatAdapterOptions?.onFetchProfile ? createProfileStateModifier(chatAdapterOptions.onFetchProfile, () => {\n this.setState(this.getState());\n }) : undefined;\n }\n public onStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n public setState(state: ChatAdapterState): void {\n this.state = state;\n this.state = this.displayNameModifier ? this.displayNameModifier(state) : state;\n this.emitter.emit('stateChanged', this.state);\n }\n public getState(): ChatAdapterState {\n return this.state;\n }\n public setError(error: Error): void {\n this.setState({\n ...this.state,\n error\n });\n }\n public updateClientState(clientState: ChatClientState): void {\n const thread = clientState.threads[this.threadId];\n if (!thread) {\n throw 'Cannot find threadId, please make sure thread state is still in Stateful ChatClient.';\n }\n let updatedState: ChatAdapterState = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n updatedState = {\n ...updatedState\n };\n this.setState(updatedState);\n }\n}\n\n/**\n * @private\n */\nexport class AzureCommunicationChatAdapter implements ChatAdapter {\n private chatClient: StatefulChatClient;\n private chatThreadClient: ChatThreadClient;\n private context: ChatContext;\n private handlers: ChatHandlers;\n private emitter: EventEmitter = new EventEmitter();\n constructor(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, chatAdapterOptions?: ChatAdapterOptions) {\n this.bindAllPublicMethods();\n this.chatClient = chatClient;\n this.chatThreadClient = chatThreadClient;\n this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId, chatAdapterOptions);\n const onStateChange = (clientState: ChatClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n chatClient.offStateChange(onStateChange);\n return;\n }\n this.context.updateClientState(clientState);\n };\n this.handlers = createDefaultChatHandlers(chatClient, chatThreadClient);\n this.chatClient.onStateChange(onStateChange);\n this.subscribeAllEvents();\n }\n private bindAllPublicMethods(): void {\n this.onStateChange = this.onStateChange.bind(this);\n this.offStateChange = this.offStateChange.bind(this);\n this.getState = this.getState.bind(this);\n this.dispose = this.dispose.bind(this);\n this.fetchInitialData = this.fetchInitialData.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.uploadImage = this.uploadImage.bind(this);\n this.deleteImage = this.deleteImage.bind(this);\n this.sendReadReceipt = this.sendReadReceipt.bind(this);\n this.sendTypingIndicator = this.sendTypingIndicator.bind(this);\n this.updateMessage = this.updateMessage.bind(this);\n this.deleteMessage = this.deleteMessage.bind(this);\n this.removeParticipant = this.removeParticipant.bind(this);\n this.setTopic = this.setTopic.bind(this);\n this.loadPreviousChatMessages = this.loadPreviousChatMessages.bind(this);\n this.on = this.on.bind(this);\n this.off = this.off.bind(this);\n this.downloadResourceToCache = this.downloadResourceToCache.bind(this);\n this.removeResourceFromCache = this.removeResourceFromCache.bind(this);\n }\n dispose(): void {\n this.unsubscribeAllEvents();\n this.chatClient.dispose();\n }\n async fetchInitialData(): Promise<void> {\n // If get properties fails we dont want to try to get the participants after.\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.chatThreadClient.getProperties();\n // Fetch all participants who joined before the local user.\n for await (const _page of this.chatThreadClient.listParticipants().byPage({\n // Fetch 100 participants per page by default.\n maxPageSize: 100\n }));\n });\n }\n getState(): ChatAdapterState {\n return this.context.getState();\n }\n onStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n offStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n async sendMessage(content: string, options?: SendMessageOptions | MessageOptions): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onSendMessage(content, options);\n });\n }\n async uploadImage(image: Blob, imageFilename: string): Promise<UploadChatImageResult> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onUploadImage(image, imageFilename);\n });\n }\n async deleteImage(imageId: string): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onDeleteImage(imageId);\n });\n }\n async sendReadReceipt(chatMessageId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onMessageSeen(chatMessageId);\n });\n }\n async sendTypingIndicator(): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onTyping();\n });\n }\n async removeParticipant(userId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onRemoveParticipant(userId);\n });\n }\n async setTopic(topicName: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.updateThreadTopicName(topicName);\n });\n }\n async loadPreviousChatMessages(messagesToLoad: number): Promise<boolean> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onLoadPreviousChatMessages(messagesToLoad);\n });\n }\n async updateMessage(messageId: string, content: string, options?: Record<string, string> | MessageOptions): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n const messageOptions: MessageOptions = {};\n if (options && (\n // if options.attachments is an array or undefined (for removal all attachments),\n // then given options is a MessageOptions\n Array.isArray(options.attachments) || options.attachments === undefined)) {\n messageOptions.attachments = options.attachments ?? [];\n }\n if (options &&\n // if options.metadata is provided, we need to add it in MessageOptions\n options.metadata && typeof options.metadata === 'object') {\n messageOptions.metadata = options.metadata;\n }\n if (options && !('attachments' in options) && !('metadata' in options)) {\n // if options don't have attachments or metadata,\n // then it is a Record<string, string>\n return await this.handlers.onUpdateMessage(messageId, content, options);\n }\n return await this.handlers.onUpdateMessage(messageId, content, messageOptions);\n // metadata is never used in the current stable\n return await this.handlers.onUpdateMessage(messageId, content);\n });\n }\n async deleteMessage(messageId: string): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onDeleteMessage(messageId);\n });\n }\n async downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void> {\n this.chatClient.downloadResourceToCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);\n }\n removeResourceFromCache(resourceDetails: ResourceDetails): void {\n this.chatClient.removeResourceFromCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);\n }\n private messageReceivedListener(event: ChatMessageReceivedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageReceived', {\n message\n });\n const currentUserId = toFlatCommunicationIdentifier(this.chatClient.getState().userId);\n if (message?.sender && toFlatCommunicationIdentifier(message.sender) === currentUserId) {\n this.emitter.emit('messageSent', {\n message\n });\n }\n }\n private messageEditedListener(event: ChatMessageEditedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageEdited', {\n message\n });\n }\n private messageDeletedListener(event: ChatMessageDeletedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageDeleted', {\n message\n });\n }\n private messageReadListener({\n chatMessageId,\n recipient\n }: ReadReceiptReceivedEvent): void {\n const message = this.getState().thread.chatMessages[chatMessageId];\n if (message) {\n this.emitter.emit('messageRead', {\n message,\n readBy: recipient\n });\n }\n }\n private participantsAddedListener({\n addedBy,\n participantsAdded\n }: ParticipantsAddedEvent): void {\n this.emitter.emit('participantsAdded', {\n addedBy,\n participantsAdded\n });\n }\n private participantsRemovedListener({\n removedBy,\n participantsRemoved\n }: ParticipantsRemovedEvent): void {\n this.emitter.emit('participantsRemoved', {\n removedBy,\n participantsRemoved\n });\n }\n private chatThreadPropertiesUpdatedListener(event: ChatThreadPropertiesUpdatedEvent): void {\n this.emitter.emit('topicChanged', {\n topic: event.properties.topic\n });\n }\n private subscribeAllEvents(): void {\n this.chatClient.on('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.on('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.on('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.on('chatMessageEdited', this.messageEditedListener.bind(this));\n this.chatClient.on('chatMessageDeleted', this.messageDeletedListener.bind(this));\n this.chatClient.on('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n private unsubscribeAllEvents(): void {\n this.chatClient.off('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.off('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.off('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.off('chatMessageEdited', this.messageEditedListener.bind(this));\n this.chatClient.off('chatMessageDeleted', this.messageDeletedListener.bind(this));\n this.chatClient.off('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n on(event: 'messageEdited', listener: MessageEditedListener): void;\n on(event: 'messageDeleted', listener: MessageDeletedListener): void;\n on(event: 'messageSent', listener: MessageReceivedListener): void;\n on(event: 'messageRead', listener: MessageReadListener): void;\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n off(event: 'messageEdited', listener: MessageEditedListener): void;\n off(event: 'messageDeleted', listener: MessageDeletedListener): void;\n off(event: 'messageSent', listener: MessageReceivedListener): void;\n off(event: 'messageRead', listener: MessageReadListener): void;\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n off(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isChatError(error as Error)) {\n this.emitter.emit('error', error as AdapterError);\n }\n throw error;\n }\n }\n}\nconst convertEventToChatMessage = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): ChatMessage => {\n return {\n id: event.id,\n version: event.version,\n content: isChatMessageDeletedEvent(event) ? undefined : {\n message: event.message\n },\n type: convertEventType(event.type),\n sender: event.sender,\n senderDisplayName: event.senderDisplayName,\n sequenceId: '',\n createdOn: new Date(event.createdOn),\n editedOn: isChatMessageEditedEvent(event) ? event.editedOn : undefined,\n deletedOn: isChatMessageDeletedEvent(event) ? event.deletedOn : undefined\n };\n};\nconst isChatMessageEditedEvent = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): event is ChatMessageEditedEvent => {\n return 'editedOn' in event;\n};\nconst isChatMessageDeletedEvent = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): event is ChatMessageDeletedEvent => {\n return 'deletedOn' in event;\n};\n\n// only text/html message type will be received from event\nconst convertEventType = (type: string): ChatMessageType => {\n const lowerCaseType = type.toLowerCase();\n if (lowerCaseType === 'richtext/html' || lowerCaseType === 'html') {\n return 'html';\n } else {\n return 'text';\n }\n};\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link ChatAdapter}.\n *\n * @public\n */\nexport type AzureCommunicationChatAdapterArgs = {\n endpoint: string;\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n threadId: string;\n chatAdapterOptions?: ChatAdapterOptions;\n};\n\n/**\n * Create a {@link ChatAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link ChatAdapter} provided by this library.\n *\n * @public\n */\nexport const createAzureCommunicationChatAdapter = async ({\n endpoint: endpointUrl,\n userId,\n displayName,\n credential,\n threadId,\n chatAdapterOptions\n}: AzureCommunicationChatAdapterArgs): Promise<ChatAdapter> => {\n return _createAzureCommunicationChatAdapterInner(endpointUrl, userId, displayName, credential, threadId, 'Chat' as _TelemetryImplementationHint, chatAdapterOptions);\n};\n\n/**\n * This inner function is used to allow injection of TelemetryImplementationHint without changing the public API.\n *\n * @internal\n */\nexport const _createAzureCommunicationChatAdapterInner = async function (endpoint: string, userId: CommunicationUserIdentifier, displayName: string, credential: CommunicationTokenCredential, threadId: string, telemetryImplementationHint: _TelemetryImplementationHint = 'Chat', chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n const chatClient = _createStatefulChatClientInner({\n userId,\n displayName,\n endpoint,\n credential\n }, undefined, telemetryImplementationHint);\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n const adapter = await createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, chatAdapterOptions);\n return adapter;\n};\n\n/**\n * This inner function to create ChatAdapterPromise in case when threadID is not avaialble.\n * ThreadId is a promise to allow for lazy initialization of the adapter.\n * @internal\n */\nexport const _createLazyAzureCommunicationChatAdapterInner = async function (endpoint: string, userId: CommunicationUserIdentifier, displayName: string, credential: CommunicationTokenCredential, threadId: Promise<string>, telemetryImplementationHint: _TelemetryImplementationHint = 'Chat', chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n const chatClient = _createStatefulChatClientInner({\n userId,\n displayName,\n endpoint,\n credential\n }, undefined, telemetryImplementationHint);\n return threadId.then(async threadId => {\n if (UNSUPPORTED_CHAT_THREAD_TYPE.some(t => threadId.includes(t))) {\n console.error(`Invalid Chat ThreadId: ${threadId}. Please note with Teams Channel Meetings, only Calling is supported and Chat is not currently supported. Read more: ${TEAMS_LIMITATION_LEARN_MORE}.`);\n }\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n const adapter = await createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, chatAdapterOptions);\n return adapter;\n });\n};\n\n/**\n * A custom React hook to simplify the creation of {@link ChatAdapter}.\n *\n * Similar to {@link createAzureCommunicationChatAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationChatAdapter = (args: Partial<AzureCommunicationChatAdapterArgs>, afterCreate?: (adapter: ChatAdapter) => Promise<ChatAdapter>, beforeDispose?: (adapter: ChatAdapter) => Promise<void>): ChatAdapter | undefined => {\n const {\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n } = args;\n\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<ChatAdapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<ChatAdapter | undefined>(undefined);\n const creatingAdapterRef = useRef<boolean>(false);\n const afterCreateRef = useRef<((adapter: ChatAdapter) => Promise<ChatAdapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: ChatAdapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n useEffect(() => {\n if (!credential || !displayName || !endpoint || !threadId || !userId) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n if (creatingAdapterRef.current) {\n console.warn('Adapter is already being created, please see storybook for more information: https://azure.github.io/communication-ui-library/?path=/story/troubleshooting--page');\n return;\n }\n creatingAdapterRef.current = true;\n let newAdapter = await createAzureCommunicationChatAdapter({\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n });\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n creatingAdapterRef.current = false;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]);\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n return adapter;\n};\n\n/**\n * Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulChatClient}.\n * Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.\n *\n * @public\n */\nexport async function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n return new AzureCommunicationChatAdapter(chatClient, chatThreadClient, chatAdapterOptions);\n}\nconst isChatError = (e: Error): e is ChatError => {\n return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;\n};"]}
1
+ {"version":3,"file":"AzureCommunicationChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _createStatefulChatClientInner, ChatClientState, ChatError, StatefulChatClient } from '@internal/chat-stateful-client';\nimport { ChatHandlers, createDefaultChatHandlers } from '@internal/chat-component-bindings';\nimport { ChatMessage, ChatMessageType, ChatThreadClient, SendMessageOptions } from '@azure/communication-chat';\nimport { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';\nimport type { ChatMessageDeletedEvent, ChatMessageEditedEvent, ChatMessageReceivedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ReadReceiptReceivedEvent } from '@azure/communication-chat';\nimport { toFlatCommunicationIdentifier, _TelemetryImplementationHint } from '@internal/acs-ui-common';\nimport { EventEmitter } from 'events';\nimport { ChatAdapter, ChatAdapterState, MessageDeletedListener, MessageEditedListener, MessageReadListener, MessageReceivedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './ChatAdapter';\nimport { ResourceDetails } from './ChatAdapter';\nimport { AdapterError } from '../../common/adapters';\nimport { useEffect, useRef, useState } from 'react';\nimport { _isValidIdentifier } from '@internal/acs-ui-common';\nimport { TEAMS_LIMITATION_LEARN_MORE, UNSUPPORTED_CHAT_THREAD_TYPE } from '../../common/constants';\nimport { createProfileStateModifier } from './OnFetchProfileCallback';\nimport type { OnFetchChatProfileCallback } from './OnFetchProfileCallback';\n\n/**\n * @private\n */\nexport type AdapterStateModifier = (state: ChatAdapterState) => ChatAdapterState;\n\n/**\n * Options for configuring the ChatAdapter.\n *\n * @public\n */\nexport type ChatAdapterOptions = {\n /**\n * Optional callback to fetch a chat profile\n */\n onFetchProfile?: OnFetchChatProfileCallback;\n};\n/**\n * Context of Chat, which is a centralized context for all state updates\n * @private\n */\nexport class ChatContext {\n private emitter: EventEmitter = new EventEmitter();\n private state: ChatAdapterState;\n private threadId: string;\n private displayNameModifier: AdapterStateModifier | undefined;\n constructor(clientState: ChatClientState, threadId: string, chatAdapterOptions?: ChatAdapterOptions) {\n const thread = clientState.threads[threadId];\n this.threadId = threadId;\n if (!thread) {\n throw 'Cannot find threadId, please initialize thread before use!';\n }\n this.state = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n this.displayNameModifier = chatAdapterOptions?.onFetchProfile ? createProfileStateModifier(chatAdapterOptions.onFetchProfile, () => {\n this.setState(this.getState());\n }) : undefined;\n }\n public onStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.on('stateChanged', handler);\n }\n public offStateChange(handler: (_uiState: ChatAdapterState) => void): void {\n this.emitter.off('stateChanged', handler);\n }\n public setState(state: ChatAdapterState): void {\n this.state = state;\n this.state = this.displayNameModifier ? this.displayNameModifier(state) : state;\n this.emitter.emit('stateChanged', this.state);\n }\n public getState(): ChatAdapterState {\n return this.state;\n }\n public setError(error: Error): void {\n this.setState({\n ...this.state,\n error\n });\n }\n public updateClientState(clientState: ChatClientState): void {\n const thread = clientState.threads[this.threadId];\n if (!thread) {\n throw 'Cannot find threadId, please make sure thread state is still in Stateful ChatClient.';\n }\n let updatedState: ChatAdapterState = {\n userId: clientState.userId,\n displayName: clientState.displayName,\n thread,\n latestErrors: clientState.latestErrors\n };\n this.setState(updatedState);\n }\n}\n\n/**\n * @private\n */\nexport class AzureCommunicationChatAdapter implements ChatAdapter {\n private chatClient: StatefulChatClient;\n private chatThreadClient: ChatThreadClient;\n private context: ChatContext;\n private handlers: ChatHandlers;\n private emitter: EventEmitter = new EventEmitter();\n constructor(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, chatAdapterOptions?: ChatAdapterOptions) {\n this.bindAllPublicMethods();\n this.chatClient = chatClient;\n this.chatThreadClient = chatThreadClient;\n this.context = new ChatContext(chatClient.getState(), chatThreadClient.threadId, chatAdapterOptions);\n const onStateChange = (clientState: ChatClientState): void => {\n // unsubscribe when the instance gets disposed\n if (!this) {\n chatClient.offStateChange(onStateChange);\n return;\n }\n this.context.updateClientState(clientState);\n };\n this.handlers = createDefaultChatHandlers(chatClient, chatThreadClient);\n this.chatClient.onStateChange(onStateChange);\n this.subscribeAllEvents();\n }\n private bindAllPublicMethods(): void {\n this.onStateChange = this.onStateChange.bind(this);\n this.offStateChange = this.offStateChange.bind(this);\n this.getState = this.getState.bind(this);\n this.dispose = this.dispose.bind(this);\n this.fetchInitialData = this.fetchInitialData.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.sendReadReceipt = this.sendReadReceipt.bind(this);\n this.sendTypingIndicator = this.sendTypingIndicator.bind(this);\n this.updateMessage = this.updateMessage.bind(this);\n this.deleteMessage = this.deleteMessage.bind(this);\n this.removeParticipant = this.removeParticipant.bind(this);\n this.setTopic = this.setTopic.bind(this);\n this.loadPreviousChatMessages = this.loadPreviousChatMessages.bind(this);\n this.on = this.on.bind(this);\n this.off = this.off.bind(this);\n this.downloadResourceToCache = this.downloadResourceToCache.bind(this);\n this.removeResourceFromCache = this.removeResourceFromCache.bind(this);\n }\n dispose(): void {\n this.unsubscribeAllEvents();\n this.chatClient.dispose();\n }\n async fetchInitialData(): Promise<void> {\n // If get properties fails we dont want to try to get the participants after.\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.chatThreadClient.getProperties();\n // Fetch all participants who joined before the local user.\n for await (const _page of this.chatThreadClient.listParticipants().byPage({\n // Fetch 100 participants per page by default.\n maxPageSize: 100\n }));\n });\n }\n getState(): ChatAdapterState {\n return this.context.getState();\n }\n onStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.onStateChange(handler);\n }\n offStateChange(handler: (state: ChatAdapterState) => void): void {\n this.context.offStateChange(handler);\n }\n async sendMessage(content: string, options?: SendMessageOptions): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onSendMessage(content, options);\n });\n }\n async sendReadReceipt(chatMessageId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onMessageSeen(chatMessageId);\n });\n }\n async sendTypingIndicator(): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onTyping();\n });\n }\n async removeParticipant(userId: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.onRemoveParticipant(userId);\n });\n }\n async setTopic(topicName: string): Promise<void> {\n await this.asyncTeeErrorToEventEmitter(async () => {\n await this.handlers.updateThreadTopicName(topicName);\n });\n }\n async loadPreviousChatMessages(messagesToLoad: number): Promise<boolean> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onLoadPreviousChatMessages(messagesToLoad);\n });\n }\n async updateMessage(messageId: string, content: string, options?: Record<string, string>): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n // metadata is never used in the current stable\n return await this.handlers.onUpdateMessage(messageId, content);\n });\n }\n async deleteMessage(messageId: string): Promise<void> {\n return await this.asyncTeeErrorToEventEmitter(async () => {\n return await this.handlers.onDeleteMessage(messageId);\n });\n }\n async downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void> {\n this.chatClient.downloadResourceToCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);\n }\n removeResourceFromCache(resourceDetails: ResourceDetails): void {\n this.chatClient.removeResourceFromCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);\n }\n private messageReceivedListener(event: ChatMessageReceivedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageReceived', {\n message\n });\n const currentUserId = toFlatCommunicationIdentifier(this.chatClient.getState().userId);\n if (message?.sender && toFlatCommunicationIdentifier(message.sender) === currentUserId) {\n this.emitter.emit('messageSent', {\n message\n });\n }\n }\n private messageEditedListener(event: ChatMessageEditedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageEdited', {\n message\n });\n }\n private messageDeletedListener(event: ChatMessageDeletedEvent): void {\n const isCurrentChatAdapterThread = event.threadId === this.chatThreadClient.threadId;\n if (!isCurrentChatAdapterThread) {\n return;\n }\n const message = convertEventToChatMessage(event);\n this.emitter.emit('messageDeleted', {\n message\n });\n }\n private messageReadListener({\n chatMessageId,\n recipient\n }: ReadReceiptReceivedEvent): void {\n const message = this.getState().thread.chatMessages[chatMessageId];\n if (message) {\n this.emitter.emit('messageRead', {\n message,\n readBy: recipient\n });\n }\n }\n private participantsAddedListener({\n addedBy,\n participantsAdded\n }: ParticipantsAddedEvent): void {\n this.emitter.emit('participantsAdded', {\n addedBy,\n participantsAdded\n });\n }\n private participantsRemovedListener({\n removedBy,\n participantsRemoved\n }: ParticipantsRemovedEvent): void {\n this.emitter.emit('participantsRemoved', {\n removedBy,\n participantsRemoved\n });\n }\n private chatThreadPropertiesUpdatedListener(event: ChatThreadPropertiesUpdatedEvent): void {\n this.emitter.emit('topicChanged', {\n topic: event.properties.topic\n });\n }\n private subscribeAllEvents(): void {\n this.chatClient.on('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.on('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.on('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.on('chatMessageEdited', this.messageEditedListener.bind(this));\n this.chatClient.on('chatMessageDeleted', this.messageDeletedListener.bind(this));\n this.chatClient.on('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.on('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n private unsubscribeAllEvents(): void {\n this.chatClient.off('chatThreadPropertiesUpdated', this.chatThreadPropertiesUpdatedListener.bind(this));\n this.chatClient.off('participantsAdded', this.participantsAddedListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n this.chatClient.off('chatMessageReceived', this.messageReceivedListener.bind(this));\n this.chatClient.off('chatMessageEdited', this.messageEditedListener.bind(this));\n this.chatClient.off('chatMessageDeleted', this.messageDeletedListener.bind(this));\n this.chatClient.off('readReceiptReceived', this.messageReadListener.bind(this));\n this.chatClient.off('participantsRemoved', this.participantsRemovedListener.bind(this));\n }\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n on(event: 'messageEdited', listener: MessageEditedListener): void;\n on(event: 'messageDeleted', listener: MessageDeletedListener): void;\n on(event: 'messageSent', listener: MessageReceivedListener): void;\n on(event: 'messageRead', listener: MessageReadListener): void;\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (e: any) => void): void {\n this.emitter.on(event, listener);\n }\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n off(event: 'messageEdited', listener: MessageEditedListener): void;\n off(event: 'messageDeleted', listener: MessageDeletedListener): void;\n off(event: 'messageSent', listener: MessageReceivedListener): void;\n off(event: 'messageRead', listener: MessageReadListener): void;\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n off(event: 'error', listener: (e: AdapterError) => void): void;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (e: any) => void): void {\n this.emitter.off(event, listener);\n }\n private async asyncTeeErrorToEventEmitter<T>(f: () => Promise<T>): Promise<T> {\n try {\n return await f();\n } catch (error) {\n if (isChatError(error as Error)) {\n this.emitter.emit('error', error as AdapterError);\n }\n throw error;\n }\n }\n}\nconst convertEventToChatMessage = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): ChatMessage => {\n return {\n id: event.id,\n version: event.version,\n content: isChatMessageDeletedEvent(event) ? undefined : {\n message: event.message\n },\n type: convertEventType(event.type),\n sender: event.sender,\n senderDisplayName: event.senderDisplayName,\n sequenceId: '',\n createdOn: new Date(event.createdOn),\n editedOn: isChatMessageEditedEvent(event) ? event.editedOn : undefined,\n deletedOn: isChatMessageDeletedEvent(event) ? event.deletedOn : undefined\n };\n};\nconst isChatMessageEditedEvent = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): event is ChatMessageEditedEvent => {\n return 'editedOn' in event;\n};\nconst isChatMessageDeletedEvent = (event: ChatMessageReceivedEvent | ChatMessageEditedEvent | ChatMessageDeletedEvent): event is ChatMessageDeletedEvent => {\n return 'deletedOn' in event;\n};\n\n// only text/html message type will be received from event\nconst convertEventType = (type: string): ChatMessageType => {\n const lowerCaseType = type.toLowerCase();\n if (lowerCaseType === 'richtext/html' || lowerCaseType === 'html') {\n return 'html';\n } else {\n return 'text';\n }\n};\n\n/**\n * Arguments for creating the Azure Communication Services implementation of {@link ChatAdapter}.\n *\n * @public\n */\nexport type AzureCommunicationChatAdapterArgs = {\n endpoint: string;\n userId: CommunicationUserIdentifier;\n displayName: string;\n credential: CommunicationTokenCredential;\n threadId: string;\n chatAdapterOptions?: ChatAdapterOptions;\n};\n\n/**\n * Create a {@link ChatAdapter} backed by Azure Communication Services.\n *\n * This is the default implementation of {@link ChatAdapter} provided by this library.\n *\n * @public\n */\nexport const createAzureCommunicationChatAdapter = async ({\n endpoint: endpointUrl,\n userId,\n displayName,\n credential,\n threadId,\n chatAdapterOptions\n}: AzureCommunicationChatAdapterArgs): Promise<ChatAdapter> => {\n return _createAzureCommunicationChatAdapterInner(endpointUrl, userId, displayName, credential, threadId, 'Chat' as _TelemetryImplementationHint, chatAdapterOptions);\n};\n\n/**\n * This inner function is used to allow injection of TelemetryImplementationHint without changing the public API.\n *\n * @internal\n */\nexport const _createAzureCommunicationChatAdapterInner = async function (endpoint: string, userId: CommunicationUserIdentifier, displayName: string, credential: CommunicationTokenCredential, threadId: string, telemetryImplementationHint: _TelemetryImplementationHint = 'Chat', chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n const chatClient = _createStatefulChatClientInner({\n userId,\n displayName,\n endpoint,\n credential\n }, undefined, telemetryImplementationHint);\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n const adapter = await createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, chatAdapterOptions);\n return adapter;\n};\n\n/**\n * This inner function to create ChatAdapterPromise in case when threadID is not avaialble.\n * ThreadId is a promise to allow for lazy initialization of the adapter.\n * @internal\n */\nexport const _createLazyAzureCommunicationChatAdapterInner = async function (endpoint: string, userId: CommunicationUserIdentifier, displayName: string, credential: CommunicationTokenCredential, threadId: Promise<string>, telemetryImplementationHint: _TelemetryImplementationHint = 'Chat', chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n if (!_isValidIdentifier(userId)) {\n throw new Error('Provided userId is invalid. Please provide valid identifier object.');\n }\n const chatClient = _createStatefulChatClientInner({\n userId,\n displayName,\n endpoint,\n credential\n }, undefined, telemetryImplementationHint);\n return threadId.then(async threadId => {\n if (UNSUPPORTED_CHAT_THREAD_TYPE.some(t => threadId.includes(t))) {\n console.error(`Invalid Chat ThreadId: ${threadId}. Please note with Teams Channel Meetings, only Calling is supported and Chat is not currently supported. Read more: ${TEAMS_LIMITATION_LEARN_MORE}.`);\n }\n const chatThreadClient = await chatClient.getChatThreadClient(threadId);\n await chatClient.startRealtimeNotifications();\n const adapter = await createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient, chatAdapterOptions);\n return adapter;\n });\n};\n\n/**\n * A custom React hook to simplify the creation of {@link ChatAdapter}.\n *\n * Similar to {@link createAzureCommunicationChatAdapter}, but takes care of asynchronous\n * creation of the adapter internally.\n *\n * Allows arguments to be undefined so that you can respect the rule-of-hooks and pass in arguments\n * as they are created. The adapter is only created when all arguments are defined.\n *\n * Note that you must memoize the arguments to avoid recreating adapter on each render.\n * See storybook for typical usage examples.\n *\n * @public\n */\nexport const useAzureCommunicationChatAdapter = (args: Partial<AzureCommunicationChatAdapterArgs>, afterCreate?: (adapter: ChatAdapter) => Promise<ChatAdapter>, beforeDispose?: (adapter: ChatAdapter) => Promise<void>): ChatAdapter | undefined => {\n const {\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n } = args;\n\n // State update needed to rerender the parent component when a new adapter is created.\n const [adapter, setAdapter] = useState<ChatAdapter | undefined>(undefined);\n // Ref needed for cleanup to access the old adapter created asynchronously.\n const adapterRef = useRef<ChatAdapter | undefined>(undefined);\n const creatingAdapterRef = useRef<boolean>(false);\n const afterCreateRef = useRef<((adapter: ChatAdapter) => Promise<ChatAdapter>) | undefined>(undefined);\n const beforeDisposeRef = useRef<((adapter: ChatAdapter) => Promise<void>) | undefined>(undefined);\n // These refs are updated on *each* render, so that the latest values\n // are used in the `useEffect` closures below.\n // Using a Ref ensures that new values for the callbacks do not trigger the\n // useEffect blocks, and a new adapter creation / distruction is not triggered.\n afterCreateRef.current = afterCreate;\n beforeDisposeRef.current = beforeDispose;\n useEffect(() => {\n if (!credential || !displayName || !endpoint || !threadId || !userId) {\n return;\n }\n (async () => {\n if (adapterRef.current) {\n // Dispose the old adapter when a new one is created.\n //\n // This clean up function uses `adapterRef` because `adapter` can not be added to the dependency array of\n // this `useEffect` -- we do not want to trigger a new adapter creation because of the first adapter\n // creation.\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n if (creatingAdapterRef.current) {\n console.warn('Adapter is already being created, please see storybook for more information: https://azure.github.io/communication-ui-library/?path=/story/troubleshooting--page');\n return;\n }\n creatingAdapterRef.current = true;\n let newAdapter = await createAzureCommunicationChatAdapter({\n credential,\n displayName,\n endpoint,\n threadId,\n userId\n });\n if (afterCreateRef.current) {\n newAdapter = await afterCreateRef.current(newAdapter);\n }\n adapterRef.current = newAdapter;\n creatingAdapterRef.current = false;\n setAdapter(newAdapter);\n })();\n },\n // Explicitly list all arguments so that caller doesn't have to memoize the `args` object.\n [adapterRef, afterCreateRef, beforeDisposeRef, credential, displayName, endpoint, threadId, userId]);\n\n // Dispose any existing adapter when the component unmounts.\n useEffect(() => {\n return () => {\n (async () => {\n if (adapterRef.current) {\n if (beforeDisposeRef.current) {\n await beforeDisposeRef.current(adapterRef.current);\n }\n adapterRef.current.dispose();\n adapterRef.current = undefined;\n }\n })();\n };\n }, []);\n return adapter;\n};\n\n/**\n * Create a {@link ChatAdapter} using the provided {@link StatefulChatClient}.\n *\n * Useful if you want to keep a reference to {@link StatefulChatClient}.\n * Consider using {@link createAzureCommunicationChatAdapter} for a simpler API.\n *\n * @public\n */\nexport async function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, chatAdapterOptions?: ChatAdapterOptions): Promise<ChatAdapter> {\n return new AzureCommunicationChatAdapter(chatClient, chatThreadClient, chatAdapterOptions);\n}\nconst isChatError = (e: Error): e is ChatError => {\n return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;\n};"]}
@@ -1,9 +1,7 @@
1
1
  import type { ChatMessage, ChatParticipant, SendMessageOptions } from '@azure/communication-chat';
2
- import type { UploadChatImageResult } from "../../../../../acs-ui-common/src";
3
2
  import type { CommunicationIdentifierKind, CommunicationUserKind } from '@azure/communication-common';
4
3
  import { ChatThreadClientState } from "../../../../../chat-stateful-client/src";
5
4
  import type { AdapterError, AdapterErrors, AdapterState, Disposable } from '../../common/adapters';
6
- import { MessageOptions } from "../../../../../acs-ui-common/src";
7
5
  /**
8
6
  * {@link ChatAdapter} state for pure UI purposes.
9
7
  *
@@ -48,15 +46,7 @@ export interface ChatAdapterThreadManagement {
48
46
  * Send a message in the thread.
49
47
  * Please note that SendMessageOptions is being deprecated, please use MessageOptions instead.
50
48
  */
51
- sendMessage(content: string, options?: SendMessageOptions | MessageOptions): Promise<void>;
52
- /**
53
- * Upload an inline image for a message.
54
- */
55
- uploadImage(image: Blob, imageFilename: string): Promise<UploadChatImageResult>;
56
- /**
57
- * Delete an inline image for a message.
58
- */
59
- deleteImage(imageId: string): Promise<void>;
49
+ sendMessage(content: string, options?: SendMessageOptions): Promise<void>;
60
50
  /**
61
51
  * Send a read receipt for a message.
62
52
  */
@@ -77,7 +67,7 @@ export interface ChatAdapterThreadManagement {
77
67
  * Update a message content.
78
68
  * Please note that metadata is being deprecated, please use MessageOptions.metadata instead.
79
69
  */
80
- updateMessage(messageId: string, content: string, options?: Record<string, string> | MessageOptions): Promise<void>;
70
+ updateMessage(messageId: string, content: string, options?: Record<string, string>): Promise<void>;
81
71
  /**
82
72
  * Delete a message in the thread.
83
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ChatMessage, ChatParticipant, SendMessageOptions } from '@azure/communication-chat';\nimport type { UploadChatImageResult } from '@internal/acs-ui-common';\nimport type { CommunicationIdentifierKind, CommunicationUserKind } from '@azure/communication-common';\nimport { ChatThreadClientState } from '@internal/chat-stateful-client';\nimport type { AdapterError, AdapterErrors, AdapterState, Disposable } from '../../common/adapters';\nimport { MessageOptions } from '@internal/acs-ui-common';\n\n/**\n * {@link ChatAdapter} state for pure UI purposes.\n *\n * @public\n */\nexport type ChatAdapterUiState = {\n // FIXME(Delete?)\n // Self-contained state for composite\n error?: Error;\n};\n\n/**\n * {@link ChatAdapter} state inferred from Azure Communication Services backend.\n *\n * @public\n */\nexport type ChatCompositeClientState = {\n userId: CommunicationIdentifierKind;\n displayName: string;\n thread: ChatThreadClientState;\n /**\n * Latest error encountered for each operation performed via the adapter.\n */\n latestErrors: AdapterErrors;\n};\n\n/**\n * {@link ChatAdapter} state.\n *\n * @public\n */\nexport type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;\n\n/**\n * Functionality for managing the current chat thread.\n *\n * @public\n */\nexport interface ChatAdapterThreadManagement {\n /**\n * Fetch initial state for the Chat adapter.\n *\n * Performs the minimal fetch necessary for ChatComposite and API methods.\n */\n fetchInitialData(): Promise<void>;\n /**\n * Send a message in the thread.\n * Please note that SendMessageOptions is being deprecated, please use MessageOptions instead.\n */\n sendMessage(content: string, options?: SendMessageOptions | MessageOptions): Promise<void>;\n /**\n * Upload an inline image for a message.\n */\n uploadImage(image: Blob, imageFilename: string): Promise<UploadChatImageResult>;\n /**\n * Delete an inline image for a message.\n */\n deleteImage(imageId: string): Promise<void>;\n /**\n * Send a read receipt for a message.\n */\n sendReadReceipt(chatMessageId: string): Promise<void>;\n /**\n * Send typing indicator in the thread.\n */\n sendTypingIndicator(): Promise<void>;\n /**\n * Remove a participant in the thread.\n */\n removeParticipant(userId: string): Promise<void>;\n /**\n * Set the topic for the thread.\n */\n setTopic(topicName: string): Promise<void>;\n /**\n * Update a message content.\n * Please note that metadata is being deprecated, please use MessageOptions.metadata instead.\n */\n updateMessage(messageId: string, content: string, options?: Record<string, string> | MessageOptions): Promise<void>;\n /**\n * Delete a message in the thread.\n */\n deleteMessage(messageId: string): Promise<void>;\n /**\n * Load more previous messages in the chat thread history.\n *\n * @remarks\n * This method is usually used to control incremental fetch/infinite scroll\n *\n */\n loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;\n /**\n * Downloads a resource into the cache for the given message.\n */\n downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void>;\n /**\n * Removes a resource from the cache for the given message.\n */\n removeResourceFromCache(resourceDetails: ResourceDetails): void;\n}\n/**\n * Details required for download a resource to cache.\n *\n * @public\n */\nexport type ResourceDetails = {\n threadId: string;\n messageId: string;\n resourceUrl: string;\n};\n\n/**\n * Chat composite events that can be subscribed to.\n *\n * @public\n */\nexport interface ChatAdapterSubscribers {\n /**\n * Subscribe function for 'messageReceived' event.\n */\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Subscribe function for 'messageEdited' event.\n */\n on(event: 'messageEdited', listener: MessageEditedListener): void;\n /**\n * Subscribe function for 'messageDeleted' event.\n */\n on(event: 'messageDeleted', listener: MessageDeletedListener): void;\n /**\n * Subscribe function for 'messageSent' event.\n */\n on(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Subscribe function for 'messageRead' event.\n */\n on(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Subscribe function for 'participantsAdded' event.\n */\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Subscribe function for 'participantsRemoved' event.\n */\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Subscribe function for 'topicChanged' event.\n */\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Subscribe function for 'error' event.\n */\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n /**\n * Unsubscribe function for 'messageReceived' event.\n */\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Unsubscribe function for 'messageEdited' event.\n */\n off(event: 'messageEdited', listener: MessageEditedListener): void;\n /**\n * Unsubscribe function for 'messageDeleted' event.\n */\n off(event: 'messageDeleted', listener: MessageDeletedListener): void;\n /**\n * Unsubscribe function for 'messageSent' event.\n */\n off(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Unsubscribe function for 'messageRead' event.\n */\n off(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Unsubscribe function for 'participantsAdded' event.\n */\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Unsubscribe function for 'participantsRemoved' event.\n */\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Unsubscribe function for 'topicChanged' event.\n */\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Unsubscribe function for 'error' event.\n */\n off(event: 'error', listener: (e: AdapterError) => void): void;\n}\n\n/**\n * {@link ChatComposite} Adapter interface.\n *\n * @public\n */\nexport type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageReceived' event.\n *\n * @public\n */\nexport type MessageReceivedListener = (event: {\n message: ChatMessage;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageSent' event.\n *\n * @public\n */\nexport type MessageSentListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageEdited' event.\n *\n * @public\n */\nexport type MessageEditedListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageDeleted' event.\n *\n * @public\n */\nexport type MessageDeletedListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageRead' event.\n *\n * @public\n */\nexport type MessageReadListener = (event: {\n message: ChatMessage;\n readBy: CommunicationUserKind;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsAdded' event.\n *\n * @public\n */\nexport type ParticipantsAddedListener = (event: {\n participantsAdded: ChatParticipant[];\n addedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsRemoved' event.\n *\n * @public\n */\nexport type ParticipantsRemovedListener = (event: {\n participantsRemoved: ChatParticipant[];\n removedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'topicChanged' event.\n *\n * @public\n */\nexport type TopicChangedListener = (event: {\n topic: string;\n}) => void;"]}
1
+ {"version":3,"file":"ChatAdapter.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ChatMessage, ChatParticipant, SendMessageOptions } from '@azure/communication-chat';\nimport type { CommunicationIdentifierKind, CommunicationUserKind } from '@azure/communication-common';\nimport { ChatThreadClientState } from '@internal/chat-stateful-client';\nimport type { AdapterError, AdapterErrors, AdapterState, Disposable } from '../../common/adapters';\n/**\n * {@link ChatAdapter} state for pure UI purposes.\n *\n * @public\n */\nexport type ChatAdapterUiState = {\n // FIXME(Delete?)\n // Self-contained state for composite\n error?: Error;\n};\n\n/**\n * {@link ChatAdapter} state inferred from Azure Communication Services backend.\n *\n * @public\n */\nexport type ChatCompositeClientState = {\n userId: CommunicationIdentifierKind;\n displayName: string;\n thread: ChatThreadClientState;\n /**\n * Latest error encountered for each operation performed via the adapter.\n */\n latestErrors: AdapterErrors;\n};\n\n/**\n * {@link ChatAdapter} state.\n *\n * @public\n */\nexport type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;\n\n/**\n * Functionality for managing the current chat thread.\n *\n * @public\n */\nexport interface ChatAdapterThreadManagement {\n /**\n * Fetch initial state for the Chat adapter.\n *\n * Performs the minimal fetch necessary for ChatComposite and API methods.\n */\n fetchInitialData(): Promise<void>;\n /**\n * Send a message in the thread.\n * Please note that SendMessageOptions is being deprecated, please use MessageOptions instead.\n */\n sendMessage(content: string, options?: SendMessageOptions): Promise<void>;\n /**\n * Send a read receipt for a message.\n */\n sendReadReceipt(chatMessageId: string): Promise<void>;\n /**\n * Send typing indicator in the thread.\n */\n sendTypingIndicator(): Promise<void>;\n /**\n * Remove a participant in the thread.\n */\n removeParticipant(userId: string): Promise<void>;\n /**\n * Set the topic for the thread.\n */\n setTopic(topicName: string): Promise<void>;\n /**\n * Update a message content.\n * Please note that metadata is being deprecated, please use MessageOptions.metadata instead.\n */\n updateMessage(messageId: string, content: string, options?: Record<string, string>): Promise<void>;\n /**\n * Delete a message in the thread.\n */\n deleteMessage(messageId: string): Promise<void>;\n /**\n * Load more previous messages in the chat thread history.\n *\n * @remarks\n * This method is usually used to control incremental fetch/infinite scroll\n *\n */\n loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;\n /**\n * Downloads a resource into the cache for the given message.\n */\n downloadResourceToCache(resourceDetails: ResourceDetails): Promise<void>;\n /**\n * Removes a resource from the cache for the given message.\n */\n removeResourceFromCache(resourceDetails: ResourceDetails): void;\n}\n/**\n * Details required for download a resource to cache.\n *\n * @public\n */\nexport type ResourceDetails = {\n threadId: string;\n messageId: string;\n resourceUrl: string;\n};\n\n/**\n * Chat composite events that can be subscribed to.\n *\n * @public\n */\nexport interface ChatAdapterSubscribers {\n /**\n * Subscribe function for 'messageReceived' event.\n */\n on(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Subscribe function for 'messageEdited' event.\n */\n on(event: 'messageEdited', listener: MessageEditedListener): void;\n /**\n * Subscribe function for 'messageDeleted' event.\n */\n on(event: 'messageDeleted', listener: MessageDeletedListener): void;\n /**\n * Subscribe function for 'messageSent' event.\n */\n on(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Subscribe function for 'messageRead' event.\n */\n on(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Subscribe function for 'participantsAdded' event.\n */\n on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Subscribe function for 'participantsRemoved' event.\n */\n on(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Subscribe function for 'topicChanged' event.\n */\n on(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Subscribe function for 'error' event.\n */\n on(event: 'error', listener: (e: AdapterError) => void): void;\n\n /**\n * Unsubscribe function for 'messageReceived' event.\n */\n off(event: 'messageReceived', listener: MessageReceivedListener): void;\n /**\n * Unsubscribe function for 'messageEdited' event.\n */\n off(event: 'messageEdited', listener: MessageEditedListener): void;\n /**\n * Unsubscribe function for 'messageDeleted' event.\n */\n off(event: 'messageDeleted', listener: MessageDeletedListener): void;\n /**\n * Unsubscribe function for 'messageSent' event.\n */\n off(event: 'messageSent', listener: MessageSentListener): void;\n /**\n * Unsubscribe function for 'messageRead' event.\n */\n off(event: 'messageRead', listener: MessageReadListener): void;\n /**\n * Unsubscribe function for 'participantsAdded' event.\n */\n off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;\n /**\n * Unsubscribe function for 'participantsRemoved' event.\n */\n off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;\n /**\n * Unsubscribe function for 'topicChanged' event.\n */\n off(event: 'topicChanged', listener: TopicChangedListener): void;\n /**\n * Unsubscribe function for 'error' event.\n */\n off(event: 'error', listener: (e: AdapterError) => void): void;\n}\n\n/**\n * {@link ChatComposite} Adapter interface.\n *\n * @public\n */\nexport type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageReceived' event.\n *\n * @public\n */\nexport type MessageReceivedListener = (event: {\n message: ChatMessage;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageSent' event.\n *\n * @public\n */\nexport type MessageSentListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageEdited' event.\n *\n * @public\n */\nexport type MessageEditedListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageDeleted' event.\n *\n * @public\n */\nexport type MessageDeletedListener = MessageReceivedListener;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'messageRead' event.\n *\n * @public\n */\nexport type MessageReadListener = (event: {\n message: ChatMessage;\n readBy: CommunicationUserKind;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsAdded' event.\n *\n * @public\n */\nexport type ParticipantsAddedListener = (event: {\n participantsAdded: ChatParticipant[];\n addedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'participantsRemoved' event.\n *\n * @public\n */\nexport type ParticipantsRemovedListener = (event: {\n participantsRemoved: ChatParticipant[];\n removedBy: ChatParticipant;\n}) => void;\n\n/**\n * Callback for {@link ChatAdapterSubscribers} 'topicChanged' event.\n *\n * @public\n */\nexport type TopicChangedListener = (event: {\n topic: string;\n}) => void;"]}
@@ -12,26 +12,15 @@ const createCompositeHandlers = memoizeOne((adapter) => ({
12
12
  // have to use `any` here so we don't import from Chat SDK
13
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
14
  onSendMessage: (content, options) => {
15
- if (options && 'attachments' in options && options.attachments && options.attachments[0] && !('attachmentType' in options.attachments[0])) {
16
- const adapterMessageOption = {
17
- metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) })
18
- };
19
- return adapter.sendMessage(content, adapterMessageOption);
20
- }
21
15
  return adapter.sendMessage(content, options);
22
16
  },
23
- onUploadImage: adapter.uploadImage,
24
- onDeleteImage: adapter.deleteImage,
25
17
  onLoadPreviousChatMessages: adapter.loadPreviousChatMessages,
26
18
  onMessageSeen: adapter.sendReadReceipt,
27
19
  onTyping: adapter.sendTypingIndicator,
28
20
  onRemoveParticipant: adapter.removeParticipant,
29
21
  updateThreadTopicName: adapter.setTopic,
30
- onUpdateMessage: function (messageId, content, options) {
31
- const adapterMessageOptions = {
32
- attachments: options === null || options === void 0 ? void 0 : options.attachments
33
- };
34
- return adapter.updateMessage(messageId, content, adapterMessageOptions);
22
+ onUpdateMessage: function (messageId, content) {
23
+ return adapter.updateMessage(messageId, content);
35
24
  },
36
25
  onDeleteMessage: adapter.deleteMessage
37
26
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAU,UAAkD,EAA8D,EAAE;IACrJ,OAAO,uBAAuB,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF,MAAM,uBAAuB,GAAG,UAAU,CAAC,CAAC,OAAoB,EAAgB,EAAE,CAAC,CAAC;IAClF,0DAA0D;IAC1D,8DAA8D;IAC9D,aAAa,EAAE,CAAC,OAAe,EAAE,OAAY,EAAE,EAAE;QAC/C,IAAI,OAAO,IAAI,aAAa,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1I,MAAM,oBAAoB,GAAG;gBAC3B,QAAQ,kCACH,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KACpB,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC,GAC1D;aACF,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,aAAa,EAAE,OAAO,CAAC,WAAW;IAClC,aAAa,EAAE,OAAO,CAAC,WAAW;IAClC,0BAA0B,EAAE,OAAO,CAAC,wBAAwB;IAC5D,aAAa,EAAE,OAAO,CAAC,eAAe;IACtC,QAAQ,EAAE,OAAO,CAAC,mBAAmB;IACrC,mBAAmB,EAAE,OAAO,CAAC,iBAAiB;IAC9C,qBAAqB,EAAE,OAAO,CAAC,QAAQ;IACvC,eAAe,EAAE,UAAU,SAAiB,EAAE,OAAe,EAAE,OAAwB;QACrF,MAAM,qBAAqB,GAAmB;YAC5C,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;SAClC,CAAC;QACF,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IACD,eAAe,EAAE,OAAO,CAAC,aAAa;CACvC,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommonProperties } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '@internal/chat-component-bindings';\nimport { ReactElement } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { ChatAdapter } from '../adapter/ChatAdapter';\nimport { useAdapter } from '../adapter/ChatAdapterProvider';\nimport { MessageOptions } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const useHandlers = <PropsT,>(_component: (props: PropsT) => ReactElement | null): Pick<ChatHandlers, CommonProperties<ChatHandlers, PropsT>> => {\n return createCompositeHandlers(useAdapter());\n};\nconst createCompositeHandlers = memoizeOne((adapter: ChatAdapter): ChatHandlers => ({\n // have to use `any` here so we don't import from Chat SDK\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSendMessage: (content: string, options: any) => {\n if (options && 'attachments' in options && options.attachments && options.attachments[0] && !('attachmentType' in options.attachments[0])) {\n const adapterMessageOption = {\n metadata: {\n ...options?.metadata,\n fileSharingMetadata: JSON.stringify(options?.attachments)\n }\n };\n return adapter.sendMessage(content, adapterMessageOption);\n }\n return adapter.sendMessage(content, options);\n },\n onUploadImage: adapter.uploadImage,\n onDeleteImage: adapter.deleteImage,\n onLoadPreviousChatMessages: adapter.loadPreviousChatMessages,\n onMessageSeen: adapter.sendReadReceipt,\n onTyping: adapter.sendTypingIndicator,\n onRemoveParticipant: adapter.removeParticipant,\n updateThreadTopicName: adapter.setTopic,\n onUpdateMessage: function (messageId: string, content: string, options?: MessageOptions) {\n const adapterMessageOptions: MessageOptions = {\n attachments: options?.attachments\n };\n return adapter.updateMessage(messageId, content, adapterMessageOptions);\n },\n onDeleteMessage: adapter.deleteMessage\n}));"]}
1
+ {"version":3,"file":"useHandlers.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/hooks/useHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAU,UAAkD,EAA8D,EAAE;IACrJ,OAAO,uBAAuB,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF,MAAM,uBAAuB,GAAG,UAAU,CAAC,CAAC,OAAoB,EAAgB,EAAE,CAAC,CAAC;IAClF,0DAA0D;IAC1D,8DAA8D;IAC9D,aAAa,EAAE,CAAC,OAAe,EAAE,OAAY,EAAE,EAAE;QAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,0BAA0B,EAAE,OAAO,CAAC,wBAAwB;IAC5D,aAAa,EAAE,OAAO,CAAC,eAAe;IACtC,QAAQ,EAAE,OAAO,CAAC,mBAAmB;IACrC,mBAAmB,EAAE,OAAO,CAAC,iBAAiB;IAC9C,qBAAqB,EAAE,OAAO,CAAC,QAAQ;IACvC,eAAe,EAAE,UAAU,SAAiB,EAAE,OAAe;QAC3D,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,eAAe,EAAE,OAAO,CAAC,aAAa;CACvC,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommonProperties } from '@internal/acs-ui-common';\nimport { ChatHandlers } from '@internal/chat-component-bindings';\nimport { ReactElement } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { ChatAdapter } from '../adapter/ChatAdapter';\nimport { useAdapter } from '../adapter/ChatAdapterProvider';\n/**\n * @private\n */\nexport const useHandlers = <PropsT,>(_component: (props: PropsT) => ReactElement | null): Pick<ChatHandlers, CommonProperties<ChatHandlers, PropsT>> => {\n return createCompositeHandlers(useAdapter());\n};\nconst createCompositeHandlers = memoizeOne((adapter: ChatAdapter): ChatHandlers => ({\n // have to use `any` here so we don't import from Chat SDK\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSendMessage: (content: string, options: any) => {\n return adapter.sendMessage(content, options);\n },\n onLoadPreviousChatMessages: adapter.loadPreviousChatMessages,\n onMessageSeen: adapter.sendReadReceipt,\n onTyping: adapter.sendTypingIndicator,\n onRemoveParticipant: adapter.removeParticipant,\n updateThreadTopicName: adapter.setTopic,\n onUpdateMessage: function (messageId: string, content: string) {\n return adapter.updateMessage(messageId, content);\n },\n onDeleteMessage: adapter.deleteMessage\n}));"]}
@@ -7,6 +7,4 @@ export type { ChatCompositeProps, ChatCompositeOptions } from './ChatComposite';
7
7
  export type { ChatAdapter, ChatAdapterSubscribers, ChatAdapterThreadManagement, ChatCompositeClientState, ChatAdapterState, ChatAdapterUiState, MessageReadListener, MessageReceivedListener, MessageSentListener, MessageEditedListener, MessageDeletedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './adapter/ChatAdapter';
8
8
  export type { ResourceDetails } from './adapter/ChatAdapter';
9
9
  export * from './Strings';
10
- export type { AttachmentOptions, AttachmentMetadata, AttachmentDownloadOptions } from './file-sharing';
11
- export type { AttachmentProgressError, AttachmentUploadOptions, AttachmentSelectionHandler, AttachmentActionHandler, AttachmentRemovalHandler, AttachmentUploadTask } from './file-sharing';
12
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mCAAmC,EAAE,6CAA6C,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAG/K,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,cAAc,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { createAzureCommunicationChatAdapter, createAzureCommunicationChatAdapterFromClient, useAzureCommunicationChatAdapter } from './adapter/AzureCommunicationChatAdapter';\nexport type { AzureCommunicationChatAdapterArgs } from './adapter/AzureCommunicationChatAdapter';\nexport type { ChatAdapterOptions } from './adapter/AzureCommunicationChatAdapter';\nexport { ChatComposite } from './ChatComposite';\nexport type { OnFetchChatProfileCallback, ChatProfile } from './adapter/OnFetchProfileCallback';\nexport type { ChatCompositeProps, ChatCompositeOptions } from './ChatComposite';\nexport type { ChatAdapter, ChatAdapterSubscribers, ChatAdapterThreadManagement, ChatCompositeClientState, ChatAdapterState, ChatAdapterUiState, MessageReadListener, MessageReceivedListener, MessageSentListener, MessageEditedListener, MessageDeletedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './adapter/ChatAdapter';\nexport type { ResourceDetails } from './adapter/ChatAdapter';\nexport * from './Strings';\nexport type { AttachmentOptions, AttachmentMetadata, AttachmentDownloadOptions } from './file-sharing';\nexport type { AttachmentProgressError, AttachmentUploadOptions, AttachmentSelectionHandler, AttachmentActionHandler, AttachmentRemovalHandler, AttachmentUploadTask } from './file-sharing';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mCAAmC,EAAE,6CAA6C,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAG/K,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,cAAc,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { createAzureCommunicationChatAdapter, createAzureCommunicationChatAdapterFromClient, useAzureCommunicationChatAdapter } from './adapter/AzureCommunicationChatAdapter';\nexport type { AzureCommunicationChatAdapterArgs } from './adapter/AzureCommunicationChatAdapter';\nexport type { ChatAdapterOptions } from './adapter/AzureCommunicationChatAdapter';\nexport { ChatComposite } from './ChatComposite';\nexport type { OnFetchChatProfileCallback, ChatProfile } from './adapter/OnFetchProfileCallback';\nexport type { ChatCompositeProps, ChatCompositeOptions } from './ChatComposite';\nexport type { ChatAdapter, ChatAdapterSubscribers, ChatAdapterThreadManagement, ChatCompositeClientState, ChatAdapterState, ChatAdapterUiState, MessageReadListener, MessageReceivedListener, MessageSentListener, MessageEditedListener, MessageDeletedListener, ParticipantsAddedListener, ParticipantsRemovedListener, TopicChangedListener } from './adapter/ChatAdapter';\nexport type { ResourceDetails } from './adapter/ChatAdapter';\nexport * from './Strings';"]}
@@ -9,8 +9,4 @@ export declare const getThreadId: (state: ChatAdapterState) => string;
9
9
  export declare const getChatMessages: (state: ChatAdapterState) => {
10
10
  [key: string]: ChatMessageWithStatus;
11
11
  };
12
- /** @private */
13
- export declare const getTextOnlyChat: (state: ChatAdapterState) => boolean | undefined;
14
- /** @private */
15
- export declare const getCreatedBy: (state: ChatAdapterState) => CommunicationIdentifierKind | undefined;
16
12
  //# sourceMappingURL=baseSelectors.d.ts.map
@@ -6,8 +6,4 @@ export const getUserId = (state) => state.userId;
6
6
  export const getThreadId = (state) => state.thread.threadId;
7
7
  /** @private */
8
8
  export const getChatMessages = (state) => state.thread.chatMessages;
9
- /** @private */
10
- export const getTextOnlyChat = (state) => { var _a, _b; return (_b = (_a = state.thread.properties) === null || _a === void 0 ? void 0 : _a.messagingPolicy) === null || _b === void 0 ? void 0 : _b.textOnlyChat; };
11
- /** @private */
12
- export const getCreatedBy = (state) => { var _a; return (_a = state.thread.properties) === null || _a === void 0 ? void 0 : _a.createdBy; };
13
9
  //# sourceMappingURL=baseSelectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/selectors/baseSelectors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAMlC,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAuB,EAA+B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;AAEhG,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAEtF,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAuB,EAErD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAC/B,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAuB,EAAE,eAAC,OAAA,MAAA,MAAA,KAAK,CAAC,MAAM,CAAC,UAAU,0CAAE,eAAe,0CAAE,YAAY,CAAA,EAAA,CAAC;AACxI,eAAe;AACf,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAuB,EAA2C,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,MAAM,CAAC,UAAU,0CAAE,SAAS,CAAA,EAAA,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { ChatAdapterState } from '../adapter/ChatAdapter';\nimport { ChatMessageWithStatus } from '@internal/chat-stateful-client';\n\n/** @private */\nexport const getUserId = (state: ChatAdapterState): CommunicationIdentifierKind => state.userId;\n\n/** @private */\nexport const getThreadId = (state: ChatAdapterState): string => state.thread.threadId;\n\n/** @private */\nexport const getChatMessages = (state: ChatAdapterState): {\n [key: string]: ChatMessageWithStatus;\n} => state.thread.chatMessages;\n/** @private */\nexport const getTextOnlyChat = (state: ChatAdapterState): boolean | undefined => state.thread.properties?.messagingPolicy?.textOnlyChat;\n/** @private */\nexport const getCreatedBy = (state: ChatAdapterState): CommunicationIdentifierKind | undefined => state.thread.properties?.createdBy;"]}
1
+ {"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-composites/src/composites/ChatComposite/selectors/baseSelectors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAMlC,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAuB,EAA+B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;AAEhG,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAEtF,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAuB,EAErD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationIdentifierKind } from '@azure/communication-common';\nimport { ChatAdapterState } from '../adapter/ChatAdapter';\nimport { ChatMessageWithStatus } from '@internal/chat-stateful-client';\n\n/** @private */\nexport const getUserId = (state: ChatAdapterState): CommunicationIdentifierKind => state.userId;\n\n/** @private */\nexport const getThreadId = (state: ChatAdapterState): string => state.thread.threadId;\n\n/** @private */\nexport const getChatMessages = (state: ChatAdapterState): {\n [key: string]: ChatMessageWithStatus;\n} => state.thread.chatMessages;"]}
@@ -24,7 +24,6 @@ export const ParticipantListWithHeading = (props) => {
24
24
  const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps, headingMoreButtonAriaLabel, onClickHeadingMoreButton, headingMoreButtonMenuProps, pinnedParticipants } = props;
25
25
  const subheadingUniqueId = useId();
26
26
  const theme = useTheme();
27
- const totalParticipantCount = participantListProps.totalParticipantCount;
28
27
  const tooltipId = getId('text-tooltip');
29
28
  const subheadingStyleThemed = useMemo(() => ({
30
29
  root: {
@@ -39,7 +38,7 @@ export const ParticipantListWithHeading = (props) => {
39
38
  return React.createElement(Stack, { className: participantListStack },
40
39
  React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
41
40
  React.createElement(Stack.Item, { grow: true, styles: subheadingStyleThemed, "aria-label": title, id: subheadingUniqueId },
42
- React.createElement("h2", null, paneTitleTrampoline(title !== null && title !== void 0 ? title : '', totalParticipantCount))),
41
+ React.createElement("h2", null, paneTitleTrampoline(title !== null && title !== void 0 ? title : ''))),
43
42
  (onClickHeadingMoreButton || (headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0) && React.createElement(Stack.Item, null,
44
43
  React.createElement(DefaultButton, { "data-ui-id": "people-pane-header-more-button", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: {
45
44
  iconName: 'PeoplePaneMoreButton'
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles, headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { Stack, Text, TooltipHost, TooltipOverflowMode, getId, useTheme } from '@fluentui/react';\nimport { DefaultButton, IContextualMenuProps } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\ntype ParticipantContainerProps = {\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>;\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n headingMoreButtonAriaLabel?: string;\n onClickHeadingMoreButton?: () => void;\n headingMoreButtonMenuProps?: IContextualMenuProps;\n pinnedParticipants?: string[];\n}): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n title,\n participantListProps,\n headingMoreButtonAriaLabel,\n onClickHeadingMoreButton,\n headingMoreButtonMenuProps,\n pinnedParticipants\n } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const tooltipId: string = getId('text-tooltip');\n const subheadingStyleThemed = useMemo(() => ({\n root: {\n h2: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize,\n fontWeight: 'normal'\n }\n }\n }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);\n return <Stack className={participantListStack}>\n <Stack horizontal horizontalAlign=\"space-between\" verticalAlign=\"center\">\n <Stack.Item grow styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n <h2>\n {paneTitleTrampoline(title ?? '', totalParticipantCount)}\n </h2>\n </Stack.Item>\n {(onClickHeadingMoreButton || headingMoreButtonMenuProps?.items && headingMoreButtonMenuProps.items.length > 0) && <Stack.Item>\n <DefaultButton data-ui-id=\"people-pane-header-more-button\" ariaLabel={headingMoreButtonAriaLabel} styles={headingMoreButtonStyles(theme)} iconProps={{\n iconName: 'PeoplePaneMoreButton'\n }} onClick={onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined} menuProps={props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps} onRenderMenuIcon={() => null} />\n </Stack.Item>}\n </Stack>\n <Stack className={participantListContainerStyle}>\n <ParticipantList {...participantListProps} pinnedParticipants={pinnedParticipants} styles={props.isMobile ? participantListMobileStyle : participantListStyle} onRenderAvatar={(userId, options) => <>\n <AvatarPersona data-ui-id=\"chat-composite-participant-custom-avatar\" userId={userId} {...options} {...{\n hidePersonaDetails: !!options?.text\n }} dataProvider={onFetchAvatarPersonaData} allowActiveBorder={true} />\n {options?.text && <div style={displayNameStyles}>\n <TooltipHost content={options?.text} id={tooltipId} overflowMode={TooltipOverflowMode.Parent}>\n <Text nowrap={false} aria-labelledby={tooltipId}>\n {options?.text}\n </Text>\n </TooltipHost>\n </div>}\n </>} onFetchParticipantMenuItems={onFetchParticipantMenuItems} showParticipantOverflowTooltip={!props.isMobile} participantAriaLabelledBy={subheadingUniqueId} />\n </Stack>\n </Stack>;\n};\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount ? {\n numberOfPeople: `(${totalParticipantCount})`\n } : {\n numberOfPeople: ' '\n };\n return _formatString(paneTitle, participantCountString);\n};"]}
1
+ {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { participantListContainerStyle, participantListMobileStyle, participantListStack, participantListStyle, participantListWrapper, displayNameStyles, headingMoreButtonStyles } from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { Stack, Text, TooltipHost, TooltipOverflowMode, getId, useTheme } from '@fluentui/react';\nimport { DefaultButton, IContextualMenuProps } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\ntype ParticipantContainerProps = {\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>;\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n headingMoreButtonAriaLabel?: string;\n onClickHeadingMoreButton?: () => void;\n headingMoreButtonMenuProps?: IContextualMenuProps;\n pinnedParticipants?: string[];\n}): JSX.Element => {\n const {\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n title,\n participantListProps,\n headingMoreButtonAriaLabel,\n onClickHeadingMoreButton,\n headingMoreButtonMenuProps,\n pinnedParticipants\n } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n const tooltipId: string = getId('text-tooltip');\n const subheadingStyleThemed = useMemo(() => ({\n root: {\n h2: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize,\n fontWeight: 'normal'\n }\n }\n }), [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]);\n return <Stack className={participantListStack}>\n <Stack horizontal horizontalAlign=\"space-between\" verticalAlign=\"center\">\n <Stack.Item grow styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n <h2>\n {paneTitleTrampoline(title ?? '')}\n </h2>\n </Stack.Item>\n {(onClickHeadingMoreButton || headingMoreButtonMenuProps?.items && headingMoreButtonMenuProps.items.length > 0) && <Stack.Item>\n <DefaultButton data-ui-id=\"people-pane-header-more-button\" ariaLabel={headingMoreButtonAriaLabel} styles={headingMoreButtonStyles(theme)} iconProps={{\n iconName: 'PeoplePaneMoreButton'\n }} onClick={onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined} menuProps={props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps} onRenderMenuIcon={() => null} />\n </Stack.Item>}\n </Stack>\n <Stack className={participantListContainerStyle}>\n <ParticipantList {...participantListProps} pinnedParticipants={pinnedParticipants} styles={props.isMobile ? participantListMobileStyle : participantListStyle} onRenderAvatar={(userId, options) => <>\n <AvatarPersona data-ui-id=\"chat-composite-participant-custom-avatar\" userId={userId} {...options} {...{\n hidePersonaDetails: !!options?.text\n }} dataProvider={onFetchAvatarPersonaData} allowActiveBorder={true} />\n {options?.text && <div style={displayNameStyles}>\n <TooltipHost content={options?.text} id={tooltipId} overflowMode={TooltipOverflowMode.Parent}>\n <Text nowrap={false} aria-labelledby={tooltipId}>\n {options?.text}\n </Text>\n </TooltipHost>\n </div>}\n </>} onFetchParticipantMenuItems={onFetchParticipantMenuItems} showParticipantOverflowTooltip={!props.isMobile} participantAriaLabelledBy={subheadingUniqueId} />\n </Stack>\n </Stack>;\n};\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount ? {\n numberOfPeople: `(${totalParticipantCount})`\n } : {\n numberOfPeople: ' '\n };\n return _formatString(paneTitle, participantCountString);\n};"]}
@@ -1,51 +1,12 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { SendBoxStylesProps } from "../../../../react-components/src";
3
- import { RichTextSendBoxProps, RichTextEditorOptions } from "../../../../react-components/src";
4
- import { AttachmentMetadataInProgress, MessageOptions } from "../../../../acs-ui-common/src";
5
- export declare const loadRichTextSendBox: () => Promise<{
6
- default: React.ComponentType<RichTextSendBoxProps>;
7
- }>;
8
- /**
9
- * Options for the rich text editor send box configuration.
10
- *
11
- * @internal
12
- */
13
- export interface RichTextSendBoxOptions extends RichTextEditorOptions {
14
- /**
15
- * Optional callback to handle an inline image that's inserted in the rich text editor.
16
- * When not provided, pasting images into rich text editor will be disabled.
17
- * @param imageAttributes - attributes of the image such as id, src, style, etc.
18
- * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name']
19
- */
20
- onInsertInlineImage?: (imageAttributes: Record<string, string>) => void;
21
- /**
22
- * Optional callback invoked after inline image is removed from the UI.
23
- * @param imageAttributes - attributes of the image such as id, src, style, etc.
24
- * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name'].
25
- * Note that if the src attribute is a local blob url, it has been revoked at this point.
26
- */
27
- onRemoveInlineImage?: (imageAttributes: Record<string, string>) => void;
28
- /**
29
- * Optional Array of type {@link AttachmentMetadataInProgress}
30
- * to render the errorBar for inline images inserted in the RichTextSendBox when:
31
- * - there is an error provided in the inlineImagesWithProgress
32
- * - progress is less than 1 when the send button is clicked
33
- * - content html string is longer than the max allowed length.
34
- * (Note that the id and the url prop of the inlineImagesWithProgress will be used as the id and src attribute of the content html
35
- * when calculating the content length, only for the purpose of displaying the content length overflow error.)
36
- */
37
- inlineImagesWithProgress?: AttachmentMetadataInProgress[];
38
- }
39
3
  /**
40
4
  * @private
41
5
  */
42
6
  export type SendBoxPickerProps = {
43
7
  styles?: SendBoxStylesProps;
44
8
  autoFocus?: 'sendBoxTextField';
45
- onSendMessage: (content: string, options?: MessageOptions) => Promise<void>;
46
- richTextEditorOptions?: RichTextSendBoxOptions;
47
- attachments?: AttachmentMetadataInProgress[];
48
- onCancelAttachmentUpload?: (attachmentId: string) => void;
9
+ onSendMessage: (content: string) => Promise<void>;
49
10
  };
50
11
  /**
51
12
  * @private
@@ -3,32 +3,11 @@
3
3
  import React, { useMemo } from 'react';
4
4
  import { SendBox } from "../../../../react-components/src";
5
5
  import { usePropsFor } from '../ChatComposite/hooks/usePropsFor';
6
- import { Suspense } from 'react';
7
- import { _ErrorBoundary } from "../../../../react-components/src";
8
- /**
9
- * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
10
- */
11
- const RichTextSendBoxWrapper = React.lazy(() => import('./RichTextSendBoxWrapper').then(module => ({
12
- default: module.RichTextSendBoxWrapper
13
- })));
14
- export const loadRichTextSendBox = () => import('./RichTextSendBoxWrapper').then(module => ({
15
- default: module.RichTextSendBoxWrapper
16
- }));
17
6
  /**
18
7
  * @private
19
8
  */
20
9
  export const SendBoxPicker = (props) => {
21
- const { richTextEditorOptions } = props;
22
- const { onPaste, onInsertInlineImage, inlineImagesWithProgress, onRemoveInlineImage } = richTextEditorOptions || {};
23
- const isRichTextEditorEnabled = useMemo(() => {
24
- return richTextEditorOptions !== undefined;
25
- }, [richTextEditorOptions]);
26
10
  const sendBox = useMemo(() => React.createElement(SendBoxWrapper, Object.assign({}, props)), [props]);
27
- if (isRichTextEditorEnabled) {
28
- return React.createElement(_ErrorBoundary, { fallback: sendBox },
29
- React.createElement(Suspense, { fallback: sendBox },
30
- React.createElement(RichTextSendBoxWrapper, Object.assign({}, props, { onPaste: onPaste, onInsertInlineImage: onInsertInlineImage, inlineImagesWithProgress: inlineImagesWithProgress, onRemoveInlineImage: onRemoveInlineImage }))));
31
- }
32
11
  return sendBox;
33
12
  };
34
13
  // Move SendBox initialization to a separate component as otherwise it will cause re-render for Suspense and _ErrorBoundary when props and sendBoxProps are updated
@@ -1 +1 @@
1
- {"version":3,"file":"SendBoxPicker.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/SendBoxPicker.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAsB,yCAAmC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAA+C,yCAAmC;AAEzG;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjG,OAAO,EAAE,MAAM,CAAC,sBAAsB;CACvC,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAEhC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC,sBAAsB;CACvC,CAAC,CAAC,CAAC;AA4CJ;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,MAAM,EACJ,qBAAqB,EACtB,GAAG,KAAK,CAAC;IACV,MAAM,EACJ,OAAO,EACP,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACpB,GAAG,qBAAqB,IAAI,EAAE,CAAC;IAChC,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,qBAAqB,KAAK,SAAS,CAAC;IAC7C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAC,cAAc,oBAAK,KAAK,EAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,oBAAC,cAAc,IAAC,QAAQ,EAAE,OAAO;YACpC,oBAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO;gBACzB,oBAAC,sBAAsB,oBAAK,KAAK,IAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,IAAI,CACtL,CACI,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,mKAAmK;AACnK,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAe,EAAE;IAChE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,oBAAC,OAAO,oBAAK,YAAY,EAAM,KAAK,EAAI,CAAC;AAClD,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { SendBox, SendBoxStylesProps } from '@internal/react-components';\nimport { usePropsFor } from '../ChatComposite/hooks/usePropsFor';\nimport { Suspense } from 'react';\nimport { _ErrorBoundary, RichTextSendBoxProps, RichTextEditorOptions } from '@internal/react-components';\nimport { AttachmentMetadataInProgress, MessageOptions } from '@internal/acs-ui-common';\n/**\n * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading\n */\nconst RichTextSendBoxWrapper = React.lazy(() => import('./RichTextSendBoxWrapper').then(module => ({\n default: module.RichTextSendBoxWrapper\n})));\nexport const loadRichTextSendBox = (): Promise<{\n default: React.ComponentType<RichTextSendBoxProps>;\n}> => import('./RichTextSendBoxWrapper').then(module => ({\n default: module.RichTextSendBoxWrapper\n}));\n/**\n * Options for the rich text editor send box configuration.\n *\n * @internal\n */\nexport interface RichTextSendBoxOptions extends RichTextEditorOptions {\n /**\n * Optional callback to handle an inline image that's inserted in the rich text editor.\n * When not provided, pasting images into rich text editor will be disabled.\n * @param imageAttributes - attributes of the image such as id, src, style, etc.\n * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name']\n */\n onInsertInlineImage?: (imageAttributes: Record<string, string>) => void;\n /**\n * Optional callback invoked after inline image is removed from the UI.\n * @param imageAttributes - attributes of the image such as id, src, style, etc.\n * It also contains the image file name which can be accessed through imageAttributes['data-image-file-name'].\n * Note that if the src attribute is a local blob url, it has been revoked at this point.\n */\n onRemoveInlineImage?: (imageAttributes: Record<string, string>) => void;\n /**\n * Optional Array of type {@link AttachmentMetadataInProgress}\n * to render the errorBar for inline images inserted in the RichTextSendBox when:\n * - there is an error provided in the inlineImagesWithProgress\n * - progress is less than 1 when the send button is clicked\n * - content html string is longer than the max allowed length.\n * (Note that the id and the url prop of the inlineImagesWithProgress will be used as the id and src attribute of the content html\n * when calculating the content length, only for the purpose of displaying the content length overflow error.)\n */\n inlineImagesWithProgress?: AttachmentMetadataInProgress[];\n}\n/**\n * @private\n */\nexport type SendBoxPickerProps = {\n styles?: SendBoxStylesProps;\n autoFocus?: 'sendBoxTextField';\n onSendMessage: (content: string, options?: MessageOptions) => Promise<void>;\n richTextEditorOptions?: RichTextSendBoxOptions;\n attachments?: AttachmentMetadataInProgress[];\n onCancelAttachmentUpload?: (attachmentId: string) => void;\n};\n\n/**\n * @private\n */\nexport const SendBoxPicker = (props: SendBoxPickerProps): JSX.Element => {\n const {\n richTextEditorOptions\n } = props;\n const {\n onPaste,\n onInsertInlineImage,\n inlineImagesWithProgress,\n onRemoveInlineImage\n } = richTextEditorOptions || {};\n const isRichTextEditorEnabled = useMemo(() => {\n return richTextEditorOptions !== undefined;\n }, [richTextEditorOptions]);\n const sendBox = useMemo(() => <SendBoxWrapper {...props} />, [props]);\n if (isRichTextEditorEnabled) {\n return <_ErrorBoundary fallback={sendBox}>\n <Suspense fallback={sendBox}>\n <RichTextSendBoxWrapper {...props} onPaste={onPaste} onInsertInlineImage={onInsertInlineImage} inlineImagesWithProgress={inlineImagesWithProgress} onRemoveInlineImage={onRemoveInlineImage} />\n </Suspense>\n </_ErrorBoundary>;\n }\n return sendBox;\n};\n\n// Move SendBox initialization to a separate component as otherwise it will cause re-render for Suspense and _ErrorBoundary when props and sendBoxProps are updated\nconst SendBoxWrapper = (props: SendBoxPickerProps): JSX.Element => {\n const sendBoxProps = usePropsFor(SendBox);\n return <SendBox {...sendBoxProps} {...props} />;\n};"]}
1
+ {"version":3,"file":"SendBoxPicker.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/SendBoxPicker.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAsB,yCAAmC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAUjE;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAe,EAAE;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAC,cAAc,oBAAK,KAAK,EAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,mKAAmK;AACnK,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAe,EAAE;IAChE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,oBAAC,OAAO,oBAAK,YAAY,EAAM,KAAK,EAAI,CAAC;AAClD,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport { SendBox, SendBoxStylesProps } from '@internal/react-components';\nimport { usePropsFor } from '../ChatComposite/hooks/usePropsFor';\n/**\n * @private\n */\nexport type SendBoxPickerProps = {\n styles?: SendBoxStylesProps;\n autoFocus?: 'sendBoxTextField';\n onSendMessage: (content: string) => Promise<void>;\n};\n\n/**\n * @private\n */\nexport const SendBoxPicker = (props: SendBoxPickerProps): JSX.Element => {\n const sendBox = useMemo(() => <SendBoxWrapper {...props} />, [props]);\n return sendBox;\n};\n\n// Move SendBox initialization to a separate component as otherwise it will cause re-render for Suspense and _ErrorBoundary when props and sendBoxProps are updated\nconst SendBoxWrapper = (props: SendBoxPickerProps): JSX.Element => {\n const sendBoxProps = usePropsFor(SendBox);\n return <SendBox {...sendBoxProps} {...props} />;\n};"]}
@@ -16,9 +16,4 @@ export declare const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;
16
16
  * @private
17
17
  */
18
18
  export declare const SEND_BOX_UPLOADS_KEY_VALUE = "send-box";
19
- /**
20
- * Default rich text editor inline image file name
21
- * @internal
22
- */
23
- export declare const _DEFAULT_INLINE_IMAGE_FILE_NAME = "image.png";
24
19
  //# sourceMappingURL=constants.d.ts.map
@@ -18,9 +18,4 @@ export const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;
18
18
  * @private
19
19
  */
20
20
  export const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';
21
- /**
22
- * Default rich text editor inline image file name
23
- * @internal
24
- */
25
- export const _DEFAULT_INLINE_IMAGE_FILE_NAME = 'image.png';
26
21
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,yHAAyH,CAAC;AAErK;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;AACrD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];\n\n/**\n * @private\n */\nexport const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';\n\n/**\n * @remarks\n * This value is publicly documented in the ChatComposite API documentation.\n * Changing this value will require updating the API documentation.\n */\nexport const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;\n\n/**\n * @private\n */\nexport const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';\n/**\n * Default rich text editor inline image file name\n * @internal\n */\nexport const _DEFAULT_INLINE_IMAGE_FILE_NAME = 'image.png';"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-composites/src/composites/common/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,yHAAyH,CAAC;AAErK;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @private\n */\nexport const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];\n\n/**\n * @private\n */\nexport const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';\n\n/**\n * @remarks\n * This value is publicly documented in the ChatComposite API documentation.\n * Changing this value will require updating the API documentation.\n */\nexport const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;\n\n/**\n * @private\n */\nexport const SEND_BOX_UPLOADS_KEY_VALUE = 'send-box';"]}