@azure/communication-react 1.5.2-alpha-202301190014.0 → 1.6.1-alpha-202306220014

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 (702) hide show
  1. package/README.md +3 -4
  2. package/dist/communication-react.d.ts +1306 -201
  3. package/dist/dist-cjs/communication-react/index.js +14017 -7900
  4. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/identifier.d.ts +6 -0
  6. package/dist/dist-esm/acs-ui-common/src/identifier.js +15 -2
  7. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/index.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  13. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +21 -0
  14. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +54 -0
  15. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.d.ts +48 -0
  17. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +73 -0
  18. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -0
  19. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +38 -11
  20. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +21 -0
  22. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +102 -7
  23. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +3 -1
  25. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  26. package/dist/dist-esm/calling-component-bindings/src/index.d.ts +3 -0
  27. package/dist/dist-esm/calling-component-bindings/src/index.js +2 -0
  28. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -1
  30. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +3 -2
  32. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +9 -15
  34. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts +1 -0
  36. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +11 -3
  37. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  38. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +140 -1
  39. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  40. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +27 -0
  41. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +157 -0
  42. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  43. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +99 -0
  44. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  45. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +5 -0
  46. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +59 -0
  47. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  48. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.d.ts +18 -0
  49. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js +38 -0
  50. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -0
  51. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +10 -0
  52. package/dist/dist-esm/calling-stateful-client/src/Converter.js +40 -2
  53. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  54. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.d.ts +13 -1
  55. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +8 -1
  56. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  57. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +4 -0
  58. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +28 -0
  59. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  60. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.d.ts +28 -0
  61. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js +49 -0
  62. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -0
  63. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +16 -27
  64. package/dist/dist-esm/calling-stateful-client/src/Logger.js +16 -27
  65. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.d.ts +24 -0
  67. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +28 -0
  68. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -0
  69. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +1 -1
  70. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +138 -331
  72. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  73. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.d.ts +17 -0
  74. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +198 -0
  75. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -0
  76. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +7 -0
  77. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +10 -0
  78. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  79. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +4 -0
  80. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  81. package/dist/dist-esm/calling-stateful-client/src/index.d.ts +1 -0
  82. package/dist/dist-esm/calling-stateful-client/src/index.js +2 -0
  83. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  84. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +98 -10
  85. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  86. package/dist/dist-esm/chat-component-bindings/src/utils/constants.d.ts +4 -0
  87. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js +4 -0
  88. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  89. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +32 -26
  90. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  91. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +15 -3
  92. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  93. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +6 -1
  94. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  95. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +1 -0
  96. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  97. package/dist/dist-esm/communication-react/src/index.d.ts +11 -2
  98. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  99. package/dist/dist-esm/northstar-wrapper/src/index.js +2 -0
  100. package/dist/dist-esm/northstar-wrapper/src/index.js.LICENSE.txt +41 -0
  101. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.d.ts +20 -0
  102. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +44 -0
  103. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -0
  104. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.d.ts +10 -0
  105. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js +14 -0
  106. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -0
  107. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.d.ts +10 -0
  108. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js +29 -0
  109. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -0
  110. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.d.ts +7 -0
  111. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +26 -0
  112. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -0
  113. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.d.ts +9 -0
  114. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +10 -0
  115. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -0
  116. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.d.ts +8 -0
  117. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +19 -0
  118. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -0
  119. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +20 -0
  120. package/dist/dist-esm/react-components/src/components/CameraButton.js +41 -3
  121. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/Caption.d.ts +21 -0
  123. package/dist/dist-esm/react-components/src/components/Caption.js +32 -0
  124. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -0
  125. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +41 -0
  126. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +51 -0
  127. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -0
  128. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.d.ts +37 -0
  129. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +95 -0
  130. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -0
  131. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +1 -1
  132. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +1 -1
  133. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  134. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +11 -2
  135. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  136. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +29 -4
  137. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +25 -17
  138. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  139. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +3 -1
  140. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +32 -18
  141. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  142. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +18 -3
  143. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +46 -31
  144. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  145. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +16 -2
  146. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +122 -12
  147. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  148. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.d.ts +10 -0
  149. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js +15 -0
  150. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -0
  151. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +1 -1
  152. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  153. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +2 -2
  154. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +10 -10
  155. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  156. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts +1 -1
  157. package/dist/dist-esm/react-components/src/components/DevicesButton.js +88 -55
  158. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  159. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts +5 -0
  160. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +1 -1
  161. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  162. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.d.ts +2 -0
  163. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +1 -0
  164. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.d.ts +5 -0
  166. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +23 -5
  167. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +8 -0
  169. package/dist/dist-esm/react-components/src/components/ErrorBar.js +1 -2
  170. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/FileCard.js +5 -5
  172. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts +1 -0
  174. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +2 -2
  175. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +14 -0
  177. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +29 -10
  178. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +1 -3
  180. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/components/GridLayout.js +1 -1
  182. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  183. package/dist/dist-esm/react-components/src/components/HorizontalGallery.d.ts +4 -0
  184. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +32 -24
  185. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts +3 -1
  187. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +60 -10
  188. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  189. package/dist/dist-esm/react-components/src/components/MentionPopover.d.ts +121 -0
  190. package/dist/dist-esm/react-components/src/components/MentionPopover.js +125 -0
  191. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -0
  192. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +5 -5
  193. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  194. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +47 -8
  195. package/dist/dist-esm/react-components/src/components/MessageThread.js +126 -53
  196. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +12 -0
  198. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +29 -1
  199. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +1 -1
  201. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  202. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +5 -0
  203. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +5 -3
  204. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -0
  206. package/dist/dist-esm/react-components/src/components/ParticipantList.js +4 -4
  207. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  208. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +1 -0
  209. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
  211. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +5 -3
  212. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.d.ts +4 -2
  214. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +6 -42
  215. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.d.ts +35 -0
  217. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +33 -0
  218. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -0
  219. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +10 -2
  220. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +10 -4
  222. package/dist/dist-esm/react-components/src/components/SendBox.js +22 -14
  223. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  224. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +70 -0
  225. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +59 -0
  226. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -0
  227. package/dist/dist-esm/react-components/src/components/SystemMessage.d.ts +1 -1
  228. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  229. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.d.ts +41 -0
  230. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +579 -0
  231. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -0
  232. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.d.ts +152 -0
  233. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +792 -0
  234. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -0
  235. package/dist/dist-esm/react-components/src/components/VerticalGallery.d.ts +67 -0
  236. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +116 -0
  237. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -0
  238. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.d.ts +21 -0
  239. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +65 -0
  240. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -0
  241. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.d.ts +75 -0
  242. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +52 -0
  243. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -0
  244. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.d.ts +88 -0
  245. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +37 -0
  246. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -0
  247. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.d.ts +11 -0
  248. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +56 -0
  249. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -0
  250. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +1 -1
  251. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +56 -20
  252. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  253. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.d.ts +10 -3
  254. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +12 -10
  255. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  256. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.d.ts +6 -1
  257. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +91 -25
  258. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  259. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +14 -2
  260. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +21 -0
  262. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +63 -0
  263. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -0
  264. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +2 -1
  265. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +8 -2
  266. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  267. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.d.ts +32 -7
  268. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +31 -12
  269. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  270. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +2 -2
  271. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  272. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.d.ts +4 -1
  273. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +9 -8
  274. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  275. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.d.ts +64 -0
  276. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +79 -0
  277. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -0
  278. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +5 -0
  279. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +34 -9
  280. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  281. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.d.ts +25 -0
  282. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js +94 -0
  283. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -0
  284. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +5 -4
  285. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +68 -52
  286. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  287. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +55 -1
  288. package/dist/dist-esm/react-components/src/components/VideoGallery.js +82 -20
  289. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/components/VideoTile.js +34 -16
  291. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  292. package/dist/dist-esm/react-components/src/components/index.d.ts +15 -1
  293. package/dist/dist-esm/react-components/src/components/index.js +13 -0
  294. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  295. package/dist/dist-esm/react-components/src/components/styles/Captions.style.d.ts +37 -0
  296. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +67 -0
  297. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -0
  298. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.d.ts +34 -0
  299. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js +86 -0
  300. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -0
  301. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts +10 -0
  302. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +10 -0
  303. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  304. package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +14 -0
  305. package/dist/dist-esm/react-components/src/components/styles/Common.style.js +16 -0
  306. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -0
  307. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js +4 -7
  308. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  309. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js +1 -0
  310. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  311. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.d.ts +3 -3
  312. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +7 -11
  313. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  314. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.d.ts +31 -0
  315. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js +70 -0
  316. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -0
  317. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +8 -3
  318. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +64 -4
  319. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  320. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js +4 -1
  321. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  322. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts +0 -4
  323. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +2 -9
  324. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  325. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.d.ts +32 -0
  326. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +66 -0
  327. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -0
  328. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +4 -0
  329. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +6 -0
  330. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  331. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +3 -1
  332. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts +6 -4
  334. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +1 -1
  335. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  336. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.d.ts +11 -0
  337. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js +22 -0
  338. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -0
  339. package/dist/dist-esm/react-components/src/components/utils/responsive.d.ts +6 -0
  340. package/dist/dist-esm/react-components/src/components/utils/responsive.js +7 -0
  341. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  342. package/dist/dist-esm/react-components/src/components/utils.d.ts +19 -0
  343. package/dist/dist-esm/react-components/src/components/utils.js +48 -1
  344. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  345. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +6 -14
  346. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  347. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts +14 -4
  348. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js +11 -2
  349. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  350. package/dist/dist-esm/react-components/src/index.d.ts +3 -1
  351. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  352. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +8 -0
  353. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  354. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +331 -0
  355. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +125 -13
  356. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +124 -12
  357. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +29 -6
  358. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +124 -12
  359. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +331 -0
  360. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +125 -13
  361. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +331 -0
  362. package/dist/dist-esm/react-components/src/localization/locales/index.d.ts +36 -0
  363. package/dist/dist-esm/react-components/src/localization/locales/index.js +42 -0
  364. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  365. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +124 -12
  366. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +124 -12
  367. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +124 -12
  368. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +331 -0
  369. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +124 -12
  370. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +331 -0
  371. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +125 -13
  372. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +124 -12
  373. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +331 -0
  374. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +125 -13
  375. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +124 -12
  376. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +124 -12
  377. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +1 -1
  378. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  379. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +1 -1
  380. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  381. package/dist/dist-esm/react-components/src/theming/icons.d.ts +13 -0
  382. package/dist/dist-esm/react-components/src/theming/icons.js +49 -10
  383. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.d.ts +48 -0
  385. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js +4 -0
  386. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -0
  387. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts +21 -1
  388. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  389. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.d.ts +9 -0
  390. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js +4 -0
  391. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -0
  392. package/dist/dist-esm/react-components/src/types/index.d.ts +2 -0
  393. package/dist/dist-esm/react-components/src/types/index.js +2 -0
  394. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  395. package/dist/dist-esm/react-composites/src/Logger.d.ts +5 -0
  396. package/dist/dist-esm/react-composites/src/Logger.js +8 -0
  397. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -0
  398. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +36 -0
  399. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +49 -35
  400. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  401. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +129 -0
  402. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  403. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +66 -6
  404. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +310 -20
  405. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  406. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +199 -2
  407. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  408. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.d.ts +23 -0
  409. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +45 -0
  410. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -0
  411. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +5 -1
  412. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  413. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +4 -0
  414. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +180 -60
  415. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  416. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +6 -6
  417. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  418. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +14 -14
  419. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  420. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +1 -0
  421. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +9 -1
  422. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  423. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +17 -4
  424. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  425. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +2 -0
  426. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +39 -8
  427. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  428. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +1 -1
  429. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  430. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +14 -0
  431. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +65 -0
  432. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -0
  433. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.d.ts +58 -0
  434. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js +31 -0
  435. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -0
  436. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +17 -0
  437. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +43 -0
  438. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -0
  439. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +25 -0
  440. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +75 -0
  441. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -0
  442. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +6 -5
  443. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +3 -1
  444. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  445. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +8 -8
  446. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js +6 -34
  447. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  448. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts +1 -1
  449. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  450. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts +1 -1
  451. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  452. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -1
  453. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  454. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -1
  455. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  456. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts +1 -1
  457. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  458. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +37 -1
  459. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  460. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +8 -3
  461. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  462. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +4 -0
  463. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +4 -4
  464. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  465. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +2 -0
  466. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +67 -30
  467. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  468. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts +4 -0
  469. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +1 -3
  470. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  471. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +4 -0
  472. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +1 -3
  473. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  474. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts +4 -1
  475. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  476. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  477. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.d.ts +14 -0
  478. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +113 -0
  479. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -0
  480. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +7 -0
  481. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +21 -0
  482. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -0
  483. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +31 -0
  484. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +55 -0
  485. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  486. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.d.ts +7 -0
  487. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js +14 -0
  488. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/videoBackgroundErrorsSelector.js.map +1 -0
  489. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.d.ts +6 -1
  490. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +7 -0
  491. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  492. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts +13 -1
  493. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +59 -0
  494. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  495. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  496. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts +4 -0
  497. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js +4 -1
  498. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  499. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +4 -4
  500. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  501. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.d.ts +20 -0
  502. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +21 -1
  503. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  504. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.d.ts +37 -0
  505. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +55 -0
  506. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -0
  507. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +11 -85
  508. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  509. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.d.ts +1 -1
  510. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +3 -3
  511. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  512. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +31 -11
  513. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +76 -15
  514. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  515. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +15 -75
  516. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +126 -142
  517. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  518. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{ChatButton.d.ts → ChatButton/ChatButton.d.ts} +1 -1
  519. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{ChatButton.js → ChatButton/ChatButton.js} +1 -1
  520. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -0
  521. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{ChatButtonWithUnreadMessagesBadge.d.ts → ChatButton/ChatButtonWithUnreadMessagesBadge.d.ts} +2 -2
  522. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{ChatButtonWithUnreadMessagesBadge.js → ChatButton/ChatButtonWithUnreadMessagesBadge.js} +3 -3
  523. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -0
  524. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -0
  525. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +12 -0
  526. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  527. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +28 -1
  528. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +110 -7
  529. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  530. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +82 -1
  531. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  532. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +13 -0
  533. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +58 -1
  534. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  535. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -0
  536. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +6 -0
  537. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  538. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +4 -0
  539. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  540. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts +1 -1
  541. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  542. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +5 -0
  543. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +10 -2
  544. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  545. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.d.ts +1 -1
  546. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js +6 -3
  547. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  548. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +27 -2
  549. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  550. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +19 -2
  551. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +74 -8
  552. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  553. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +4 -0
  554. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  555. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +1 -0
  556. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  557. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +2 -2
  558. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  559. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +2 -2
  560. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  561. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +1 -1
  562. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  563. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +6 -0
  564. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +68 -0
  565. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -0
  566. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.d.ts +12 -0
  567. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +104 -0
  568. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -0
  569. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.d.ts +7 -0
  570. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +38 -0
  571. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -0
  572. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +30 -0
  573. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +291 -0
  574. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -0
  575. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.d.ts +83 -0
  576. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +84 -0
  577. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -0
  578. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite/components → common/ControlBar}/DesktopMoreButton.d.ts +4 -0
  579. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +190 -0
  580. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -0
  581. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common/ControlBar}/PeopleButton.d.ts +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common/ControlBar}/PeopleButton.js +3 -3
  583. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -0
  584. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -0
  585. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite/components → common/Drawer}/MoreDrawer.d.ts +15 -2
  586. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite/components → common/Drawer}/MoreDrawer.js +106 -9
  587. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -0
  588. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.d.ts +6 -0
  589. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js +24 -0
  590. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -0
  591. package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common/Drawer}/PreparedMoreDrawer.d.ts +3 -2
  592. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +26 -0
  593. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -0
  594. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.d.ts +20 -0
  595. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js +55 -0
  596. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.js.map +1 -0
  597. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.d.ts +7 -0
  598. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js +24 -0
  599. package/dist/dist-esm/react-composites/src/composites/common/Drawer/SpokenLanguageDrawer.styles.js.map +1 -0
  600. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  601. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +4 -2
  603. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  604. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +0 -9
  605. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +32 -12
  606. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  607. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +1 -1
  608. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  609. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts +4 -4
  610. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +27 -2
  611. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  612. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +8 -5
  613. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +11 -2
  614. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +14 -0
  616. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +156 -0
  617. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -0
  618. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +9 -0
  619. package/dist/dist-esm/react-composites/src/composites/common/constants.js +11 -0
  620. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -0
  621. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +19 -1
  622. package/dist/dist-esm/react-composites/src/composites/common/icons.js +15 -15
  623. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  624. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.d.ts +7 -0
  625. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js +9 -0
  626. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -0
  627. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts +4 -0
  628. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +4 -0
  629. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +173 -0
  631. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js +4 -0
  632. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -0
  633. package/dist/dist-esm/react-composites/src/composites/common/utils.d.ts +4 -0
  634. package/dist/dist-esm/react-composites/src/composites/common/utils.js +4 -0
  635. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  636. package/dist/dist-esm/react-composites/src/composites/index.d.ts +3 -0
  637. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  638. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +199 -0
  639. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +92 -3
  640. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +92 -3
  641. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +77 -1
  642. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +92 -3
  643. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +199 -0
  644. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +92 -3
  645. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +199 -0
  646. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts +36 -0
  647. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js +61 -1
  648. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  649. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +92 -3
  650. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +92 -3
  651. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +92 -3
  652. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +199 -0
  653. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +92 -3
  654. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +199 -0
  655. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +92 -3
  656. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +92 -3
  657. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +199 -0
  658. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +92 -3
  659. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +92 -3
  660. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +92 -3
  661. package/package.json +46 -40
  662. package/CHANGELOG.beta.md +0 -668
  663. package/CHANGELOG.json +0 -10238
  664. package/CHANGELOG.stable.md +0 -373
  665. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.d.ts +0 -14
  666. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js +0 -19
  667. package/dist/dist-esm/react-components/src/components/VideoGallery/VideoGalleryResponsiveHorizontalGallery.js.map +0 -1
  668. package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts +0 -7
  669. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js +0 -32
  670. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js.map +0 -1
  671. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts +0 -9
  672. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js +0 -26
  673. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js.map +0 -1
  674. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts +0 -24
  675. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +0 -80
  676. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +0 -1
  677. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.d.ts +0 -16
  678. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.js +0 -38
  679. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSidePaneState.js.map +0 -1
  680. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts +0 -27
  681. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +0 -190
  682. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +0 -1
  683. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.d.ts +0 -34
  684. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +0 -90
  685. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +0 -1
  686. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton.js.map +0 -1
  687. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButtonWithUnreadMessagesBadge.js.map +0 -1
  688. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.js.map +0 -1
  689. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts +0 -67
  690. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js +0 -75
  691. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +0 -1
  692. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/NotificationIcon.js.map +0 -1
  693. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.js.map +0 -1
  694. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.js +0 -22
  695. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.js.map +0 -1
  696. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js +0 -65
  697. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +0 -1
  698. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +0 -1
  699. /package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{NotificationIcon.d.ts → ChatButton/NotificationIcon.d.ts} +0 -0
  700. /package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/{NotificationIcon.js → ChatButton/NotificationIcon.js} +0 -0
  701. /package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common}/ConvertContextualMenuItemToDrawerMenuItem.d.ts +0 -0
  702. /package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common}/ConvertContextualMenuItemToDrawerMenuItem.js +0 -0
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import { concatStyleSets, Icon, mergeStyles, Stack } from '@fluentui/react';
4
+ import { Chat } from "../../../../northstar-wrapper/src";
4
5
  import { _formatString } from "../../../../acs-ui-common/src";
5
6
  import { useTheme } from '../../theming/FluentThemeProvider';
6
7
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
@@ -8,6 +9,7 @@ import { editBoxStyle, inputBoxIcon, editingButtonStyle, editBoxStyleSet } from
8
9
  import { InputBoxButton, InputBoxComponent } from '../InputBoxComponent';
9
10
  import { borderAndBoxShadowStyle } from '../styles/SendBox.styles';
10
11
  import { _FileUploadCards } from '../FileUploadCards';
12
+ import { chatMessageFailedTagStyle, chatMessageEditContainerStyle } from '../styles/ChatMessageComponent.styles';
11
13
  const MAXIMUM_LENGTH_OF_MESSAGE = 8000;
12
14
  const onRenderCancelIcon = (color) => {
13
15
  const className = mergeStyles(inputBoxIcon, { color });
@@ -22,6 +24,8 @@ const onRenderSubmitIcon = (color) => {
22
24
  */
23
25
  export const ChatMessageComponentAsEditBox = (props) => {
24
26
  const { onCancel, onSubmit, strings, message } = props;
27
+ /* @conditional-compile-remove(mention) */
28
+ const { mentionLookupOptions } = props;
25
29
  const [textValue, setTextValue] = useState(message.content || '');
26
30
  const [attachedFilesMetadata, setAttachedFilesMetadata] = React.useState(getMessageAttachedFilesMetadata(message));
27
31
  const editTextFieldRef = React.useRef(null);
@@ -53,28 +57,38 @@ export const ChatMessageComponentAsEditBox = (props) => {
53
57
  setAttachedFilesMetadata(attachedFilesMetadata === null || attachedFilesMetadata === void 0 ? void 0 : attachedFilesMetadata.filter((file) => file.name !== fileId));
54
58
  } }))));
55
59
  }, [attachedFilesMetadata]);
56
- return (React.createElement(Stack, { className: mergeStyles(borderAndBoxShadowStyle({
57
- theme,
58
- hasErrorMessage: false,
59
- disabled: false
60
- })) },
61
- React.createElement(InputBoxComponent, { inlineChildren: props.inlineEditButtons, id: 'editbox', textFieldRef: editTextFieldRef, inputClassName: editBoxStyle(props.inlineEditButtons), placeholderText: strings.editBoxPlaceholderText, textValue: textValue, onChange: setText, onEnterKeyDown: () => {
62
- submitEnabled &&
63
- onSubmit(textValue, message.metadata, {
64
- attachedFilesMetadata
65
- });
66
- }, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles },
67
- React.createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
68
- onCancel && onCancel();
69
- }, id: 'dismissIconWrapper' }),
70
- React.createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
60
+ const getContent = () => {
61
+ return (React.createElement(Stack, { className: mergeStyles(borderAndBoxShadowStyle({
62
+ theme,
63
+ hasErrorMessage: message.failureReason !== undefined,
64
+ disabled: false
65
+ })) },
66
+ React.createElement(InputBoxComponent, { inlineChildren: props.inlineEditButtons, id: 'editbox', textFieldRef: editTextFieldRef, inputClassName: editBoxStyle(props.inlineEditButtons), placeholderText: strings.editBoxPlaceholderText, textValue: textValue, onChange: setText, onKeyDown: (ev) => {
67
+ if (ev.key === 'ArrowUp' || ev.key === 'ArrowDown') {
68
+ ev.stopPropagation();
69
+ }
70
+ }, onEnterKeyDown: () => {
71
71
  submitEnabled &&
72
72
  onSubmit(textValue, message.metadata, {
73
73
  attachedFilesMetadata
74
74
  });
75
- e.stopPropagation();
76
- }, id: 'submitIconWrapper' })),
77
- onRenderFileUploads()));
75
+ }, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles,
76
+ /* @conditional-compile-remove(mention) */
77
+ mentionLookupOptions: mentionLookupOptions },
78
+ React.createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
79
+ onCancel && onCancel(message.messageId);
80
+ }, id: 'dismissIconWrapper' }),
81
+ React.createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
82
+ submitEnabled &&
83
+ onSubmit(textValue, message.metadata, {
84
+ attachedFilesMetadata
85
+ });
86
+ e.stopPropagation();
87
+ }, id: 'submitIconWrapper' })),
88
+ message.failureReason && (React.createElement("div", { className: mergeStyles(chatMessageFailedTagStyle(theme), { padding: '0.5rem' }) }, message.failureReason)),
89
+ onRenderFileUploads()));
90
+ };
91
+ return React.createElement(Chat.Message, { styles: chatMessageEditContainerStyle, content: getContent() });
78
92
  };
79
93
  const isMessageTooLong = (messageText) => messageText.length > MAXIMUM_LENGTH_OF_MESSAGE;
80
94
  const isMessageEmpty = (messageText, attachedFilesMetadata) => messageText.trim().length === 0 && attachedFilesMetadata.length === 0;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageComponentAsEditBox.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { concatStyleSets, Icon, ITextField, mergeStyles, Stack } from '@fluentui/react';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useTheme } from '../../theming/FluentThemeProvider';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { editBoxStyle, inputBoxIcon, editingButtonStyle, editBoxStyleSet } from '../styles/EditBox.styles';\nimport { InputBoxButton, InputBoxComponent } from '../InputBoxComponent';\nimport { MessageThreadStrings } from '../MessageThread';\nimport { borderAndBoxShadowStyle } from '../styles/SendBox.styles';\nimport { ChatMessage } from '../../types';\nimport { _FileUploadCards } from '../FileUploadCards';\nimport { FileMetadata } from '../FileDownloadCards';\n\nconst MAXIMUM_LENGTH_OF_MESSAGE = 8000;\n\nconst onRenderCancelIcon = (color: string): JSX.Element => {\n const className = mergeStyles(inputBoxIcon, { color });\n return <Icon iconName={'EditBoxCancel'} className={className} />;\n};\n\nconst onRenderSubmitIcon = (color: string): JSX.Element => {\n const className = mergeStyles(inputBoxIcon, { color });\n return <Icon iconName={'EditBoxSubmit'} className={className} />;\n};\n\n/** @private */\nexport type ChatMessageComponentAsEditBoxProps = {\n onCancel?: () => void;\n onSubmit: (\n text: string,\n metadata?: Record<string, string>,\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }\n ) => void;\n message: ChatMessage;\n strings: MessageThreadStrings;\n /**\n * Inline the accept and reject edit buttons when editing a message.\n * Setting to false will mean they are on a new line inside the editable chat message.\n */\n inlineEditButtons: boolean;\n};\n\ntype MessageState = 'OK' | 'too short' | 'too long';\n\n/**\n * @private\n */\nexport const ChatMessageComponentAsEditBox = (props: ChatMessageComponentAsEditBoxProps): JSX.Element => {\n const { onCancel, onSubmit, strings, message } = props;\n const [textValue, setTextValue] = useState<string>(message.content || '');\n\n const [attachedFilesMetadata, setAttachedFilesMetadata] = React.useState(getMessageAttachedFilesMetadata(message));\n const editTextFieldRef = React.useRef<ITextField>(null);\n const theme = useTheme();\n const messageState = getMessageState(textValue, attachedFilesMetadata ?? []);\n const submitEnabled = messageState === 'OK';\n\n useEffect(() => {\n editTextFieldRef.current?.focus();\n }, []);\n\n const setText = (\n event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>,\n newValue?: string | undefined\n ): void => {\n setTextValue(newValue ?? '');\n };\n\n const textTooLongMessage =\n messageState === 'too long'\n ? _formatString(strings.editBoxTextLimit, { limitNumber: `${MAXIMUM_LENGTH_OF_MESSAGE}` })\n : undefined;\n\n const onRenderThemedCancelIcon = useCallback(\n () => onRenderCancelIcon(theme.palette.neutralSecondary),\n [theme.palette.neutralSecondary]\n );\n\n const onRenderThemedSubmitIcon = useCallback(\n () => onRenderSubmitIcon(theme.palette.neutralSecondary),\n [theme.palette.neutralSecondary]\n );\n\n const editBoxStyles = useMemo(() => {\n return concatStyleSets(editBoxStyleSet, { textField: { borderColor: theme.palette.themePrimary } });\n }, [theme.palette.themePrimary]);\n\n const onRenderFileUploads = useCallback(() => {\n return (\n attachedFilesMetadata?.length && (\n <div style={{ margin: '0.25rem' }}>\n <_FileUploadCards\n activeFileUploads={attachedFilesMetadata?.map((file) => ({\n id: file.name,\n filename: file.name,\n progress: 1\n }))}\n onCancelFileUpload={(fileId) => {\n setAttachedFilesMetadata(attachedFilesMetadata?.filter((file) => file.name !== fileId));\n }}\n />\n </div>\n )\n );\n }, [attachedFilesMetadata]);\n\n return (\n <Stack\n className={mergeStyles(\n borderAndBoxShadowStyle({\n theme,\n hasErrorMessage: false,\n disabled: false\n })\n )}\n >\n <InputBoxComponent\n inlineChildren={props.inlineEditButtons}\n id={'editbox'}\n textFieldRef={editTextFieldRef}\n inputClassName={editBoxStyle(props.inlineEditButtons)}\n placeholderText={strings.editBoxPlaceholderText}\n textValue={textValue}\n onChange={setText}\n onEnterKeyDown={() => {\n submitEnabled &&\n onSubmit(textValue, message.metadata, {\n attachedFilesMetadata\n });\n }}\n supportNewline={false}\n maxLength={MAXIMUM_LENGTH_OF_MESSAGE}\n errorMessage={textTooLongMessage}\n styles={editBoxStyles}\n >\n <InputBoxButton\n className={editingButtonStyle}\n ariaLabel={strings.editBoxCancelButton}\n tooltipContent={strings.editBoxCancelButton}\n onRenderIcon={onRenderThemedCancelIcon}\n onClick={() => {\n onCancel && onCancel();\n }}\n id={'dismissIconWrapper'}\n />\n <InputBoxButton\n className={editingButtonStyle}\n ariaLabel={strings.editBoxSubmitButton}\n tooltipContent={strings.editBoxSubmitButton}\n onRenderIcon={onRenderThemedSubmitIcon}\n onClick={(e) => {\n submitEnabled &&\n onSubmit(textValue, message.metadata, {\n attachedFilesMetadata\n });\n e.stopPropagation();\n }}\n id={'submitIconWrapper'}\n />\n </InputBoxComponent>\n {onRenderFileUploads()}\n </Stack>\n );\n};\n\nconst isMessageTooLong = (messageText: string): boolean => messageText.length > MAXIMUM_LENGTH_OF_MESSAGE;\nconst isMessageEmpty = (messageText: string, attachedFilesMetadata: FileMetadata[]): boolean =>\n messageText.trim().length === 0 && attachedFilesMetadata.length === 0;\nconst getMessageState = (messageText: string, attachedFilesMetadata: FileMetadata[]): MessageState =>\n isMessageEmpty(messageText, attachedFilesMetadata) ? 'too short' : isMessageTooLong(messageText) ? 'too long' : 'OK';\n\n// @TODO: Remove when file-sharing feature becomes stable.\nconst getMessageAttachedFilesMetadata = (message: ChatMessage): FileMetadata[] | undefined => {\n /* @conditional-compile-remove(file-sharing) */\n return message.attachedFilesMetadata;\n return [];\n};\n\"../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"ChatMessageComponentAsEditBox.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { concatStyleSets, Icon, ITextField, mergeStyles, Stack } from '@fluentui/react';\nimport { Chat } from '@internal/northstar-wrapper';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useTheme } from '../../theming/FluentThemeProvider';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { editBoxStyle, inputBoxIcon, editingButtonStyle, editBoxStyleSet } from '../styles/EditBox.styles';\nimport { InputBoxButton, InputBoxComponent } from '../InputBoxComponent';\nimport { MessageThreadStrings } from '../MessageThread';\nimport { borderAndBoxShadowStyle } from '../styles/SendBox.styles';\nimport { ChatMessage } from '../../types';\nimport { _FileUploadCards } from '../FileUploadCards';\nimport { FileMetadata } from '../FileDownloadCards';\nimport { chatMessageFailedTagStyle, chatMessageEditContainerStyle } from '../styles/ChatMessageComponent.styles';\n/* @conditional-compile-remove(mention) */\nimport { MentionLookupOptions } from '../MentionPopover';\n\nconst MAXIMUM_LENGTH_OF_MESSAGE = 8000;\n\nconst onRenderCancelIcon = (color: string): JSX.Element => {\n const className = mergeStyles(inputBoxIcon, { color });\n return <Icon iconName={'EditBoxCancel'} className={className} />;\n};\n\nconst onRenderSubmitIcon = (color: string): JSX.Element => {\n const className = mergeStyles(inputBoxIcon, { color });\n return <Icon iconName={'EditBoxSubmit'} className={className} />;\n};\n\n/** @private */\nexport type ChatMessageComponentAsEditBoxProps = {\n onCancel?: (messageId: string) => void;\n onSubmit: (\n text: string,\n metadata?: Record<string, string>,\n options?: {\n attachedFilesMetadata?: FileMetadata[];\n }\n ) => void;\n message: ChatMessage;\n strings: MessageThreadStrings;\n /**\n * Inline the accept and reject edit buttons when editing a message.\n * Setting to false will mean they are on a new line inside the editable chat message.\n */\n inlineEditButtons: boolean;\n /* @conditional-compile-remove(mention) */\n mentionLookupOptions?: MentionLookupOptions;\n};\n\ntype MessageState = 'OK' | 'too short' | 'too long';\n\n/**\n * @private\n */\nexport const ChatMessageComponentAsEditBox = (props: ChatMessageComponentAsEditBoxProps): JSX.Element => {\n const { onCancel, onSubmit, strings, message } = props;\n /* @conditional-compile-remove(mention) */\n const { mentionLookupOptions } = props;\n\n const [textValue, setTextValue] = useState<string>(message.content || '');\n\n const [attachedFilesMetadata, setAttachedFilesMetadata] = React.useState(getMessageAttachedFilesMetadata(message));\n const editTextFieldRef = React.useRef<ITextField>(null);\n const theme = useTheme();\n const messageState = getMessageState(textValue, attachedFilesMetadata ?? []);\n const submitEnabled = messageState === 'OK';\n\n useEffect(() => {\n editTextFieldRef.current?.focus();\n }, []);\n\n const setText = (event?: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string): void => {\n setTextValue(newValue ?? '');\n };\n\n const textTooLongMessage =\n messageState === 'too long'\n ? _formatString(strings.editBoxTextLimit, { limitNumber: `${MAXIMUM_LENGTH_OF_MESSAGE}` })\n : undefined;\n\n const onRenderThemedCancelIcon = useCallback(\n () => onRenderCancelIcon(theme.palette.neutralSecondary),\n [theme.palette.neutralSecondary]\n );\n\n const onRenderThemedSubmitIcon = useCallback(\n () => onRenderSubmitIcon(theme.palette.neutralSecondary),\n [theme.palette.neutralSecondary]\n );\n\n const editBoxStyles = useMemo(() => {\n return concatStyleSets(editBoxStyleSet, { textField: { borderColor: theme.palette.themePrimary } });\n }, [theme.palette.themePrimary]);\n\n const onRenderFileUploads = useCallback(() => {\n return (\n attachedFilesMetadata?.length && (\n <div style={{ margin: '0.25rem' }}>\n <_FileUploadCards\n activeFileUploads={attachedFilesMetadata?.map((file) => ({\n id: file.name,\n filename: file.name,\n progress: 1\n }))}\n onCancelFileUpload={(fileId) => {\n setAttachedFilesMetadata(attachedFilesMetadata?.filter((file) => file.name !== fileId));\n }}\n />\n </div>\n )\n );\n }, [attachedFilesMetadata]);\n\n const getContent = (): JSX.Element => {\n return (\n <Stack\n className={mergeStyles(\n borderAndBoxShadowStyle({\n theme,\n hasErrorMessage: message.failureReason !== undefined,\n disabled: false\n })\n )}\n >\n <InputBoxComponent\n inlineChildren={props.inlineEditButtons}\n id={'editbox'}\n textFieldRef={editTextFieldRef}\n inputClassName={editBoxStyle(props.inlineEditButtons)}\n placeholderText={strings.editBoxPlaceholderText}\n textValue={textValue}\n onChange={setText}\n onKeyDown={(ev) => {\n if (ev.key === 'ArrowUp' || ev.key === 'ArrowDown') {\n ev.stopPropagation();\n }\n }}\n onEnterKeyDown={() => {\n submitEnabled &&\n onSubmit(textValue, message.metadata, {\n attachedFilesMetadata\n });\n }}\n supportNewline={false}\n maxLength={MAXIMUM_LENGTH_OF_MESSAGE}\n errorMessage={textTooLongMessage}\n styles={editBoxStyles}\n /* @conditional-compile-remove(mention) */\n mentionLookupOptions={mentionLookupOptions}\n >\n <InputBoxButton\n className={editingButtonStyle}\n ariaLabel={strings.editBoxCancelButton}\n tooltipContent={strings.editBoxCancelButton}\n onRenderIcon={onRenderThemedCancelIcon}\n onClick={() => {\n onCancel && onCancel(message.messageId);\n }}\n id={'dismissIconWrapper'}\n />\n <InputBoxButton\n className={editingButtonStyle}\n ariaLabel={strings.editBoxSubmitButton}\n tooltipContent={strings.editBoxSubmitButton}\n onRenderIcon={onRenderThemedSubmitIcon}\n onClick={(e) => {\n submitEnabled &&\n onSubmit(textValue, message.metadata, {\n attachedFilesMetadata\n });\n e.stopPropagation();\n }}\n id={'submitIconWrapper'}\n />\n </InputBoxComponent>\n {message.failureReason && (\n <div className={mergeStyles(chatMessageFailedTagStyle(theme), { padding: '0.5rem' })}>\n {message.failureReason}\n </div>\n )}\n {onRenderFileUploads()}\n </Stack>\n );\n };\n\n return <Chat.Message styles={chatMessageEditContainerStyle} content={getContent()} />;\n};\n\nconst isMessageTooLong = (messageText: string): boolean => messageText.length > MAXIMUM_LENGTH_OF_MESSAGE;\nconst isMessageEmpty = (messageText: string, attachedFilesMetadata: FileMetadata[]): boolean =>\n messageText.trim().length === 0 && attachedFilesMetadata.length === 0;\nconst getMessageState = (messageText: string, attachedFilesMetadata: FileMetadata[]): MessageState =>\n isMessageEmpty(messageText, attachedFilesMetadata) ? 'too short' : isMessageTooLong(messageText) ? 'too long' : 'OK';\n\n// @TODO: Remove when file-sharing feature becomes stable.\nconst getMessageAttachedFilesMetadata = (message: ChatMessage): FileMetadata[] | undefined => {\n /* @conditional-compile-remove(file-sharing) */\n return message.attachedFilesMetadata;\n return [];\n};\n\"../../../../northstar-wrapper/src\"\"../../../../acs-ui-common/src\""]}
@@ -1,11 +1,13 @@
1
- import { ComponentSlotStyle } from '@fluentui/react-northstar';
2
1
  import React from 'react';
3
2
  import { ChatMessage } from '../../types/ChatMessage';
3
+ import { FileMetadata } from '../FileDownloadCards';
4
+ import { BlockedMessage } from '../../types/ChatMessage';
4
5
  import { MessageThreadStrings } from '../MessageThread';
5
- import { OnRenderAvatarCallback } from '../../types';
6
+ import { ComponentSlotStyle, OnRenderAvatarCallback } from '../../types';
6
7
  import { FileDownloadHandler } from '../FileDownloadCards';
8
+ import { MentionDisplayOptions } from '../MentionPopover';
7
9
  declare type ChatMessageComponentAsMessageBubbleProps = {
8
- message: ChatMessage;
10
+ message: ChatMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage;
9
11
  messageContainerStyle?: ComponentSlotStyle;
10
12
  showDate?: boolean;
11
13
  disableEditing?: boolean;
@@ -43,6 +45,19 @@ declare type ChatMessageComponentAsMessageBubbleProps = {
43
45
  * @beta
44
46
  */
45
47
  onDisplayDateTimeString?: (messageDate: Date) => string;
48
+ /**
49
+ * Optional props needed to display suggestions in the mention scenario.
50
+ * @internal
51
+ */
52
+ mentionDisplayOptions?: MentionDisplayOptions;
53
+ /**
54
+ * Optional function to fetch attachments.
55
+ */
56
+ onFetchAttachments?: (attachment: FileMetadata) => Promise<void>;
57
+ /**
58
+ * Optional map of attachment ids to blob urls.
59
+ */
60
+ attachmentsMap?: Record<string, string>;
46
61
  };
47
62
  /** @private */
48
63
  export declare const ChatMessageComponentAsMessageBubble: React.MemoExoticComponent<(props: ChatMessageComponentAsMessageBubbleProps) => JSX.Element>;
@@ -1,8 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import { mergeStyles } from '@fluentui/react';
4
- import { Chat, Text } from '@fluentui/react-northstar';
5
- import { _formatString } from "../../../../acs-ui-common/src";
4
+ import { Chat, Text } from "../../../../northstar-wrapper/src";
6
5
  import React, { useCallback, useRef, useState } from 'react';
7
6
  import { chatMessageEditedTagStyle, chatMessageDateStyle, chatMessageFailedTagStyle } from '../styles/ChatMessageComponent.styles';
8
7
  import { formatTimeForChatMessage, formatTimestampForChatMessage } from '../utils/Datetime';
@@ -10,6 +9,8 @@ import { useIdentifiers } from '../../identifiers/IdentifierProvider';
10
9
  import { useTheme } from '../../theming';
11
10
  import { ChatMessageActionFlyout } from './ChatMessageActionsFlyout';
12
11
  import { ChatMessageContent } from './ChatMessageContent';
12
+ /* @conditional-compile-remove(data-loss-prevention) */
13
+ import { BlockedMessageContent } from './ChatMessageContent';
13
14
  import { chatMessageActionMenuProps } from './ChatMessageActionMenu';
14
15
  import { _FileDownloadCards } from '../FileDownloadCards';
15
16
  import { useLocale } from '../../localization';
@@ -49,7 +50,10 @@ const MessageBubble = (props) => {
49
50
  const messageRef = useRef(null);
50
51
  const messageActionButtonRef = useRef(null);
51
52
  const [chatMessageActionFlyoutTarget, setChatMessageActionFlyoutTarget] = useState(undefined);
52
- const chatActionsEnabled = !disableEditing && message.status !== 'sending' && !!message.mine;
53
+ const chatActionsEnabled = !disableEditing &&
54
+ message.status !== 'sending' &&
55
+ !!message.mine &&
56
+ /* @conditional-compile-remove(data-loss-prevention) */ message.messageType !== 'blocked';
53
57
  const [messageReadBy, setMessageReadBy] = useState([]);
54
58
  const actionMenuProps = wasInteractionByTouch
55
59
  ? undefined
@@ -60,8 +64,10 @@ const MessageBubble = (props) => {
60
64
  // Force show the action button while the flyout is open (otherwise this will dismiss when the pointer is hovered over the flyout)
61
65
  forceShow: chatMessageActionFlyoutTarget === messageActionButtonRef,
62
66
  onActionButtonClick: () => {
63
- props.onActionButtonClick(message, setMessageReadBy);
64
- setChatMessageActionFlyoutTarget(messageActionButtonRef);
67
+ if (message.messageType === 'chat') {
68
+ props.onActionButtonClick(message, setMessageReadBy);
69
+ setChatMessageActionFlyoutTarget(messageActionButtonRef);
70
+ }
65
71
  },
66
72
  theme
67
73
  });
@@ -70,37 +76,44 @@ const MessageBubble = (props) => {
70
76
  // or not we need to set the target to undefined here to actually hide the action flyout
71
77
  setChatMessageActionFlyoutTarget(undefined);
72
78
  }, [setChatMessageActionFlyoutTarget]);
73
- const defaultOnRenderFileDownloads = useCallback(() => {
74
- var _a;
75
- return (React.createElement(_FileDownloadCards, { userId: userId, fileMetadata: message['attachedFilesMetadata'] || [], downloadHandler: fileDownloadHandler,
76
- /* @conditional-compile-remove(file-sharing) */
77
- strings: { downloadFile: (_a = props.strings.downloadFile) !== null && _a !== void 0 ? _a : locale.strings.messageThread.downloadFile } }));
78
- }, [
79
+ const defaultOnRenderFileDownloads = useCallback(() => (React.createElement(_FileDownloadCards, { userId: userId, fileMetadata: message['attachedFilesMetadata'] || [], downloadHandler: fileDownloadHandler,
80
+ /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing)*/
81
+ strings: { downloadFile: strings.downloadFile, fileCardGroupMessage: strings.fileCardGroupMessage } })), [
79
82
  userId,
80
83
  message,
81
- /* @conditional-compile-remove(file-sharing) */
82
- props,
83
- /* @conditional-compile-remove(file-sharing) */
84
- locale,
84
+ /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing)*/
85
+ strings,
85
86
  fileDownloadHandler
86
87
  ]);
87
- const messageContentAriaText = props.message.content
88
- ? props.message.mine
89
- ? _formatString(strings.messageContentMineAriaText, {
90
- message: props.message.content
91
- })
92
- : _formatString(strings.messageContentAriaText, {
93
- author: `${props.message.senderDisplayName}`,
94
- message: props.message.content
95
- })
96
- : undefined;
88
+ const editedOn = 'editedOn' in message ? message.editedOn : undefined;
89
+ const getMessageDetails = useCallback(() => {
90
+ if (messageStatus === 'failed') {
91
+ return React.createElement("div", { className: chatMessageFailedTagStyle(theme) }, strings.failToSendTag);
92
+ }
93
+ else if (message.messageType === 'chat' && editedOn) {
94
+ return React.createElement("div", { className: chatMessageEditedTagStyle(theme) }, strings.editedTag);
95
+ }
96
+ return undefined;
97
+ }, [editedOn, message.messageType, messageStatus, strings.editedTag, strings.failToSendTag, theme]);
98
+ const getContent = useCallback(() => {
99
+ /* @conditional-compile-remove(data-loss-prevention) */
100
+ if (message.messageType === 'blocked') {
101
+ return (React.createElement("div", { tabIndex: 0 },
102
+ React.createElement(BlockedMessageContent, { message: message, strings: strings })));
103
+ }
104
+ return (React.createElement("div", { tabIndex: 0 },
105
+ React.createElement(ChatMessageContent, { message: message, strings: strings,
106
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
107
+ onFetchAttachment: props.onFetchAttachments,
108
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
109
+ attachmentsMap: props.attachmentsMap,
110
+ /* @conditional-compile-remove(mention) */
111
+ mentionDisplayOptions: props.mentionDisplayOptions }),
112
+ props.onRenderFileDownloads ? props.onRenderFileDownloads(userId, message) : defaultOnRenderFileDownloads()));
113
+ }, [defaultOnRenderFileDownloads, message, props, strings, userId]);
97
114
  const chatMessage = (React.createElement(React.Fragment, null,
98
115
  React.createElement("div", { ref: messageRef },
99
- React.createElement(Chat.Message, { "data-ui-id": "chat-composite-message", className: mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: React.createElement("div", { tabIndex: 0 },
100
- React.createElement(ChatMessageContent, { message: message, liveAuthorIntro: strings.liveAuthorIntro, messageContentAriaText: messageContentAriaText }),
101
- props.onRenderFileDownloads
102
- ? props.onRenderFileDownloads(userId, message)
103
- : defaultOnRenderFileDownloads()), author: React.createElement(Text, { className: chatMessageDateStyle }, message.senderDisplayName), mine: message.mine, timestamp: React.createElement(Text, { "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: messageStatus === 'failed' ? (React.createElement("div", { className: chatMessageFailedTagStyle(theme) }, strings.failToSendTag)) : message.editedOn ? (React.createElement("div", { className: chatMessageEditedTagStyle(theme) }, strings.editedTag)) : undefined, positionActionMenu: false, actionMenu: actionMenuProps, onTouchStart: () => setWasInteractionByTouch(true), onPointerDown: () => setWasInteractionByTouch(false), onKeyDown: () => setWasInteractionByTouch(false), onBlur: () => setWasInteractionByTouch(false), onClick: () => {
116
+ React.createElement(Chat.Message, { "data-ui-id": "chat-composite-message", className: mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: getContent(), author: React.createElement(Text, { className: chatMessageDateStyle }, message.senderDisplayName), mine: message.mine, timestamp: React.createElement(Text, { "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails(), positionActionMenu: false, actionMenu: actionMenuProps, onTouchStart: () => setWasInteractionByTouch(true), onPointerDown: () => setWasInteractionByTouch(false), onKeyDown: () => setWasInteractionByTouch(false), onBlur: () => setWasInteractionByTouch(false), onClick: () => {
104
117
  if (!wasInteractionByTouch) {
105
118
  return;
106
119
  }
@@ -110,7 +123,9 @@ const MessageBubble = (props) => {
110
123
  // In doing so here we set the target of the flyout to be the message and
111
124
  // not the 3-dot menu button to position the flyout correctly.
112
125
  setChatMessageActionFlyoutTarget(messageRef);
113
- props.onActionButtonClick(message, setMessageReadBy);
126
+ if (message.messageType === 'chat') {
127
+ props.onActionButtonClick(message, setMessageReadBy);
128
+ }
114
129
  } })),
115
130
  chatActionsEnabled && (React.createElement(ChatMessageActionFlyout, { hidden: !chatMessageActionFlyoutTarget, target: chatMessageActionFlyoutTarget, increaseFlyoutItemSize: wasInteractionByTouch, onDismiss: onActionFlyoutDismiss, onEditClick: onEditClick, onRemoveClick: onRemoveClick, onResendClick: onResendClick, strings: strings, messageReadBy: messageReadBy, messageStatus: messageStatus !== null && messageStatus !== void 0 ? messageStatus : 'failed', remoteParticipantsCount: remoteParticipantsCount, onRenderAvatar: onRenderAvatar, showMessageStatus: showMessageStatus }))));
116
131
  return chatMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageComponentAsMessageBubble.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IStyle, mergeStyles } from '@fluentui/react';\nimport { Chat, Text, ComponentSlotStyle } from '@fluentui/react-northstar';\nimport { _formatString } from '@internal/acs-ui-common';\nimport React, { useCallback, useRef, useState } from 'react';\nimport {\n chatMessageEditedTagStyle,\n chatMessageDateStyle,\n chatMessageFailedTagStyle\n} from '../styles/ChatMessageComponent.styles';\nimport { formatTimeForChatMessage, formatTimestampForChatMessage } from '../utils/Datetime';\nimport { useIdentifiers } from '../../identifiers/IdentifierProvider';\nimport { useTheme } from '../../theming';\nimport { ChatMessageActionFlyout } from './ChatMessageActionsFlyout';\nimport { ChatMessageContent } from './ChatMessageContent';\nimport { ChatMessage } from '../../types/ChatMessage';\nimport { MessageThreadStrings } from '../MessageThread';\nimport { chatMessageActionMenuProps } from './ChatMessageActionMenu';\nimport { OnRenderAvatarCallback } from '../../types';\nimport { _FileDownloadCards, FileDownloadHandler } from '../FileDownloadCards';\nimport { ComponentLocale, useLocale } from '../../localization';\n\ntype ChatMessageComponentAsMessageBubbleProps = {\n message: ChatMessage;\n messageContainerStyle?: ComponentSlotStyle;\n showDate?: boolean;\n disableEditing?: boolean;\n onEditClick: () => void;\n onRemoveClick?: () => void;\n onResendClick?: () => void;\n strings: MessageThreadStrings;\n userId: string;\n messageStatus?: string;\n /**\n * Whether the status indicator for each message is displayed or not.\n */\n showMessageStatus?: boolean;\n /**\n * Optional callback to render uploaded files in the message component.\n */\n onRenderFileDownloads?: (userId: string, message: ChatMessage) => JSX.Element;\n /**\n * Optional function called when someone clicks on the file download icon.\n */\n fileDownloadHandler?: FileDownloadHandler;\n remoteParticipantsCount?: number;\n onActionButtonClick: (\n message: ChatMessage,\n setMessageReadBy: (readBy: { id: string; displayName: string }[]) => void\n ) => void;\n /**\n * Optional callback to override render of the avatar.\n *\n * @param userId - user Id\n */\n onRenderAvatar?: OnRenderAvatarCallback;\n\n /**\n * Optional function to provide customized date format.\n * @beta\n */\n onDisplayDateTimeString?: (messageDate: Date) => string;\n};\n\nconst generateDefaultTimestamp = (\n createdOn: Date,\n showDate: boolean | undefined,\n strings: MessageThreadStrings\n): string => {\n const formattedTimestamp = showDate\n ? formatTimestampForChatMessage(createdOn, new Date(), strings)\n : formatTimeForChatMessage(createdOn);\n\n return formattedTimestamp;\n};\n\n// onDisplayDateTimeString from props overwrite onDisplayDateTimeString from locale\nconst generateCustomizedTimestamp = (\n props: ChatMessageComponentAsMessageBubbleProps,\n createdOn: Date,\n locale: ComponentLocale\n): string => {\n /* @conditional-compile-remove(date-time-customization) */\n return props.onDisplayDateTimeString\n ? props.onDisplayDateTimeString(createdOn)\n : locale.onDisplayDateTimeString\n ? locale.onDisplayDateTimeString(createdOn)\n : '';\n\n return '';\n};\n/** @private */\nconst MessageBubble = (props: ChatMessageComponentAsMessageBubbleProps): JSX.Element => {\n const ids = useIdentifiers();\n const theme = useTheme();\n const locale = useLocale();\n\n const {\n userId,\n message,\n onRemoveClick,\n onResendClick,\n disableEditing,\n showDate,\n messageContainerStyle,\n strings,\n onEditClick,\n remoteParticipantsCount = 0,\n onRenderAvatar,\n showMessageStatus,\n messageStatus,\n fileDownloadHandler\n } = props;\n\n const defaultTimeStamp = message.createdOn\n ? generateDefaultTimestamp(message.createdOn, showDate, strings)\n : undefined;\n\n const customTimestamp = message.createdOn ? generateCustomizedTimestamp(props, message.createdOn, locale) : '';\n\n const formattedTimestamp = customTimestamp || defaultTimeStamp;\n\n // Track if the action menu was opened by touch - if so we increase the touch targets for the items\n const [wasInteractionByTouch, setWasInteractionByTouch] = useState(false);\n\n // The chat message action flyout should target the Chat.Message action menu if clicked,\n // or target the chat message if opened via touch press.\n // Undefined indicates the flyout menu should not be being shown.\n const messageRef = useRef<HTMLDivElement | null>(null);\n const messageActionButtonRef = useRef<HTMLElement | null>(null);\n const [chatMessageActionFlyoutTarget, setChatMessageActionFlyoutTarget] = useState<\n React.MutableRefObject<HTMLElement | null> | undefined\n >(undefined);\n\n const chatActionsEnabled = !disableEditing && message.status !== 'sending' && !!message.mine;\n const [messageReadBy, setMessageReadBy] = useState<{ id: string; displayName: string }[]>([]);\n\n const actionMenuProps = wasInteractionByTouch\n ? undefined\n : chatMessageActionMenuProps({\n ariaLabel: strings.actionMenuMoreOptions ?? '',\n enabled: chatActionsEnabled,\n menuButtonRef: messageActionButtonRef,\n // Force show the action button while the flyout is open (otherwise this will dismiss when the pointer is hovered over the flyout)\n forceShow: chatMessageActionFlyoutTarget === messageActionButtonRef,\n onActionButtonClick: () => {\n props.onActionButtonClick(message, setMessageReadBy);\n setChatMessageActionFlyoutTarget(messageActionButtonRef);\n },\n theme\n });\n\n const onActionFlyoutDismiss = useCallback((): void => {\n // When the flyout dismiss is called, since we control if the action flyout is visible\n // or not we need to set the target to undefined here to actually hide the action flyout\n setChatMessageActionFlyoutTarget(undefined);\n }, [setChatMessageActionFlyoutTarget]);\n\n const defaultOnRenderFileDownloads = useCallback(\n () => (\n <_FileDownloadCards\n userId={userId}\n fileMetadata={message['attachedFilesMetadata'] || []}\n downloadHandler={fileDownloadHandler}\n /* @conditional-compile-remove(file-sharing) */\n strings={{ downloadFile: props.strings.downloadFile ?? locale.strings.messageThread.downloadFile }}\n />\n ),\n [\n userId,\n message,\n /* @conditional-compile-remove(file-sharing) */\n props,\n /* @conditional-compile-remove(file-sharing) */\n locale,\n fileDownloadHandler\n ]\n );\n\n const messageContentAriaText = props.message.content\n ? props.message.mine\n ? _formatString(strings.messageContentMineAriaText, {\n message: props.message.content\n })\n : _formatString(strings.messageContentAriaText, {\n author: `${props.message.senderDisplayName}`,\n message: props.message.content\n })\n : undefined;\n\n const chatMessage = (\n <>\n <div ref={messageRef}>\n <Chat.Message\n data-ui-id=\"chat-composite-message\"\n className={mergeStyles(messageContainerStyle as IStyle)}\n styles={messageContainerStyle}\n content={\n <div tabIndex={0}>\n <ChatMessageContent\n message={message}\n liveAuthorIntro={strings.liveAuthorIntro}\n messageContentAriaText={messageContentAriaText}\n />\n {props.onRenderFileDownloads\n ? props.onRenderFileDownloads(userId, message)\n : defaultOnRenderFileDownloads()}\n </div>\n }\n author={<Text className={chatMessageDateStyle}>{message.senderDisplayName}</Text>}\n mine={message.mine}\n timestamp={<Text data-ui-id={ids.messageTimestamp}>{formattedTimestamp}</Text>}\n details={\n messageStatus === 'failed' ? (\n <div className={chatMessageFailedTagStyle(theme)}>{strings.failToSendTag}</div>\n ) : message.editedOn ? (\n <div className={chatMessageEditedTagStyle(theme)}>{strings.editedTag}</div>\n ) : undefined\n }\n positionActionMenu={false}\n actionMenu={actionMenuProps}\n onTouchStart={() => setWasInteractionByTouch(true)}\n onPointerDown={() => setWasInteractionByTouch(false)}\n onKeyDown={() => setWasInteractionByTouch(false)}\n onBlur={() => setWasInteractionByTouch(false)}\n onClick={() => {\n if (!wasInteractionByTouch) {\n return;\n }\n // If the message was touched via touch we immediately open the menu\n // flyout (when using mouse the 3-dot menu that appears on hover\n // must be clicked to open the flyout).\n // In doing so here we set the target of the flyout to be the message and\n // not the 3-dot menu button to position the flyout correctly.\n setChatMessageActionFlyoutTarget(messageRef);\n props.onActionButtonClick(message, setMessageReadBy);\n }}\n />\n </div>\n {chatActionsEnabled && (\n <ChatMessageActionFlyout\n hidden={!chatMessageActionFlyoutTarget}\n target={chatMessageActionFlyoutTarget}\n increaseFlyoutItemSize={wasInteractionByTouch}\n onDismiss={onActionFlyoutDismiss}\n onEditClick={onEditClick}\n onRemoveClick={onRemoveClick}\n onResendClick={onResendClick}\n strings={strings}\n messageReadBy={messageReadBy}\n messageStatus={messageStatus ?? 'failed'}\n remoteParticipantsCount={remoteParticipantsCount}\n onRenderAvatar={onRenderAvatar}\n showMessageStatus={showMessageStatus}\n />\n )}\n </>\n );\n\n return chatMessage;\n};\n\n/** @private */\nexport const ChatMessageComponentAsMessageBubble = React.memo(MessageBubble);\n\"../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"ChatMessageComponentAsMessageBubble.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAU,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,0CAAoC;AAEzD,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,uDAAuD;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8DhE,MAAM,wBAAwB,GAAG,CAC/B,SAAe,EACf,QAA6B,EAC7B,OAA6B,EACrB,EAAE;IACV,MAAM,kBAAkB,GAAG,QAAQ;QACjC,CAAC,CAAC,6BAA6B,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC;QAC/D,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,mFAAmF;AACnF,MAAM,2BAA2B,GAAG,CAClC,KAA+C,EAC/C,SAAe,EACf,MAAuB,EACf,EAAE;IACV,0DAA0D;IAC1D,OAAO,KAAK,CAAC,uBAAuB;QAClC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AACF,eAAe;AACf,MAAM,aAAa,GAAG,CAAC,KAA+C,EAAe,EAAE;;IACrF,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,EACJ,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,uBAAuB,GAAG,CAAC,EAC3B,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACpB,GAAG,KAAK,CAAC;IAEV,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS;QACxC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;QAChE,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/G,MAAM,kBAAkB,GAAG,eAAe,IAAI,gBAAgB,CAAC;IAE/D,mGAAmG;IACnG,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1E,wFAAwF;IACxF,wDAAwD;IACxD,iEAAiE;IACjE,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,sBAAsB,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,GAAG,QAAQ,CAEhF,SAAS,CAAC,CAAC;IAEb,MAAM,kBAAkB,GACtB,CAAC,cAAc;QACf,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,uDAAuD,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;IAC5F,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAwC,EAAE,CAAC,CAAC;IAE9F,MAAM,eAAe,GAAG,qBAAqB;QAC3C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,0BAA0B,CAAC;YACzB,SAAS,EAAE,MAAA,OAAO,CAAC,qBAAqB,mCAAI,EAAE;YAC9C,OAAO,EAAE,kBAAkB;YAC3B,aAAa,EAAE,sBAAsB;YACrC,kIAAkI;YAClI,SAAS,EAAE,6BAA6B,KAAK,sBAAsB;YACnE,mBAAmB,EAAE,GAAG,EAAE;gBACxB,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;oBAClC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;oBACrD,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;iBAC1D;YACH,CAAC;YACD,KAAK;SACN,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAS,EAAE;QACnD,sFAAsF;QACtF,wFAAwF;QACxF,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAEvC,MAAM,4BAA4B,GAAG,WAAW,CAC9C,GAAG,EAAE,CAAC,CACJ,oBAAC,kBAAkB,IACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,EACpD,eAAe,EAAE,mBAAmB;QACpC,gHAAgH;QAChH,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE,GACnG,CACH,EACD;QACE,MAAM;QACN,OAAO;QACP,gHAAgH;QAChH,OAAO;QACP,mBAAmB;KACpB,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,aAAa,KAAK,QAAQ,EAAE;YAC9B,OAAO,6BAAK,SAAS,EAAE,yBAAyB,CAAC,KAAK,CAAC,IAAG,OAAO,CAAC,aAAa,CAAO,CAAC;SACxF;aAAM,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,QAAQ,EAAE;YACrD,OAAO,6BAAK,SAAS,EAAE,yBAAyB,CAAC,KAAK,CAAC,IAAG,OAAO,CAAC,SAAS,CAAO,CAAC;SACpF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpG,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,uDAAuD;QACvD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,OAAO,CACL,6BAAK,QAAQ,EAAE,CAAC;gBACd,oBAAC,qBAAqB,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACzD,CACP,CAAC;SACH;QACD,OAAO,CACL,6BAAK,QAAQ,EAAE,CAAC;YACd,oBAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;gBAChB,uEAAuE;gBACvE,iBAAiB,EAAE,KAAK,CAAC,kBAAkB;gBAC3C,uEAAuE;gBACvE,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,0CAA0C;gBAC1C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,GAClD;YACD,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,CACxG,CACP,CAAC;IACJ,CAAC,EAAE,CAAC,4BAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpE,MAAM,WAAW,GAAG,CAClB;QACE,6BAAK,GAAG,EAAE,UAAU;YAClB,oBAAC,IAAI,CAAC,OAAO,kBACA,wBAAwB,EACnC,SAAS,EAAE,WAAW,CAAC,qBAA+B,CAAC,EACvD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,oBAAC,IAAI,IAAC,SAAS,EAAE,oBAAoB,IAAG,OAAO,CAAC,iBAAiB,CAAQ,EACjF,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAE,oBAAC,IAAI,kBAAa,GAAG,CAAC,gBAAgB,IAAG,kBAAkB,CAAQ,EAC9E,OAAO,EAAE,iBAAiB,EAAE,EAC5B,kBAAkB,EAAE,KAAK,EACzB,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAClD,aAAa,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EACpD,SAAS,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAChD,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAC7C,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,qBAAqB,EAAE;wBAC1B,OAAO;qBACR;oBACD,oEAAoE;oBACpE,gEAAgE;oBAChE,uCAAuC;oBACvC,yEAAyE;oBACzE,8DAA8D;oBAC9D,gCAAgC,CAAC,UAAU,CAAC,CAAC;oBAC7C,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;wBAClC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;qBACtD;gBACH,CAAC,GACD,CACE;QACL,kBAAkB,IAAI,CACrB,oBAAC,uBAAuB,IACtB,MAAM,EAAE,CAAC,6BAA6B,EACtC,MAAM,EAAE,6BAA6B,EACrC,sBAAsB,EAAE,qBAAqB,EAC7C,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,QAAQ,EACxC,uBAAuB,EAAE,uBAAuB,EAChD,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CACA,CACJ,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { IStyle, mergeStyles } from '@fluentui/react';\nimport { Chat, Text } from '@internal/northstar-wrapper';\nimport { _formatString } from '@internal/acs-ui-common';\nimport React, { useCallback, useRef, useState } from 'react';\nimport {\n chatMessageEditedTagStyle,\n chatMessageDateStyle,\n chatMessageFailedTagStyle\n} from '../styles/ChatMessageComponent.styles';\nimport { formatTimeForChatMessage, formatTimestampForChatMessage } from '../utils/Datetime';\nimport { useIdentifiers } from '../../identifiers/IdentifierProvider';\nimport { useTheme } from '../../theming';\nimport { ChatMessageActionFlyout } from './ChatMessageActionsFlyout';\nimport { ChatMessageContent } from './ChatMessageContent';\nimport { ChatMessage } from '../../types/ChatMessage';\n/* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\nimport { FileMetadata } from '../FileDownloadCards';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { BlockedMessageContent } from './ChatMessageContent';\n/* @conditional-compile-remove(data-loss-prevention) */\nimport { BlockedMessage } from '../../types/ChatMessage';\nimport { MessageThreadStrings } from '../MessageThread';\nimport { chatMessageActionMenuProps } from './ChatMessageActionMenu';\nimport { ComponentSlotStyle, OnRenderAvatarCallback } from '../../types';\nimport { _FileDownloadCards, FileDownloadHandler } from '../FileDownloadCards';\nimport { ComponentLocale, useLocale } from '../../localization';\n/* @conditional-compile-remove(mention) */\nimport { MentionDisplayOptions } from '../MentionPopover';\n\ntype ChatMessageComponentAsMessageBubbleProps = {\n message: ChatMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage;\n messageContainerStyle?: ComponentSlotStyle;\n showDate?: boolean;\n disableEditing?: boolean;\n onEditClick: () => void;\n onRemoveClick?: () => void;\n onResendClick?: () => void;\n strings: MessageThreadStrings;\n userId: string;\n messageStatus?: string;\n /**\n * Whether the status indicator for each message is displayed or not.\n */\n showMessageStatus?: boolean;\n /**\n * Optional callback to render uploaded files in the message component.\n */\n onRenderFileDownloads?: (userId: string, message: ChatMessage) => JSX.Element;\n /**\n * Optional function called when someone clicks on the file download icon.\n */\n fileDownloadHandler?: FileDownloadHandler;\n remoteParticipantsCount?: number;\n onActionButtonClick: (\n message: ChatMessage,\n setMessageReadBy: (readBy: { id: string; displayName: string }[]) => void\n ) => void;\n /**\n * Optional callback to override render of the avatar.\n *\n * @param userId - user Id\n */\n onRenderAvatar?: OnRenderAvatarCallback;\n\n /**\n * Optional function to provide customized date format.\n * @beta\n */\n onDisplayDateTimeString?: (messageDate: Date) => string;\n /* @conditional-compile-remove(mention) */\n /**\n * Optional props needed to display suggestions in the mention scenario.\n * @internal\n */\n mentionDisplayOptions?: MentionDisplayOptions;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n /**\n * Optional function to fetch attachments.\n */\n onFetchAttachments?: (attachment: FileMetadata) => Promise<void>;\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n /**\n * Optional map of attachment ids to blob urls.\n */\n attachmentsMap?: Record<string, string>;\n};\n\nconst generateDefaultTimestamp = (\n createdOn: Date,\n showDate: boolean | undefined,\n strings: MessageThreadStrings\n): string => {\n const formattedTimestamp = showDate\n ? formatTimestampForChatMessage(createdOn, new Date(), strings)\n : formatTimeForChatMessage(createdOn);\n\n return formattedTimestamp;\n};\n\n// onDisplayDateTimeString from props overwrite onDisplayDateTimeString from locale\nconst generateCustomizedTimestamp = (\n props: ChatMessageComponentAsMessageBubbleProps,\n createdOn: Date,\n locale: ComponentLocale\n): string => {\n /* @conditional-compile-remove(date-time-customization) */\n return props.onDisplayDateTimeString\n ? props.onDisplayDateTimeString(createdOn)\n : locale.onDisplayDateTimeString\n ? locale.onDisplayDateTimeString(createdOn)\n : '';\n\n return '';\n};\n/** @private */\nconst MessageBubble = (props: ChatMessageComponentAsMessageBubbleProps): JSX.Element => {\n const ids = useIdentifiers();\n const theme = useTheme();\n const locale = useLocale();\n\n const {\n userId,\n message,\n onRemoveClick,\n onResendClick,\n disableEditing,\n showDate,\n messageContainerStyle,\n strings,\n onEditClick,\n remoteParticipantsCount = 0,\n onRenderAvatar,\n showMessageStatus,\n messageStatus,\n fileDownloadHandler\n } = props;\n\n const defaultTimeStamp = message.createdOn\n ? generateDefaultTimestamp(message.createdOn, showDate, strings)\n : undefined;\n\n const customTimestamp = message.createdOn ? generateCustomizedTimestamp(props, message.createdOn, locale) : '';\n\n const formattedTimestamp = customTimestamp || defaultTimeStamp;\n\n // Track if the action menu was opened by touch - if so we increase the touch targets for the items\n const [wasInteractionByTouch, setWasInteractionByTouch] = useState(false);\n\n // The chat message action flyout should target the Chat.Message action menu if clicked,\n // or target the chat message if opened via touch press.\n // Undefined indicates the flyout menu should not be being shown.\n const messageRef = useRef<HTMLDivElement | null>(null);\n const messageActionButtonRef = useRef<HTMLElement | null>(null);\n const [chatMessageActionFlyoutTarget, setChatMessageActionFlyoutTarget] = useState<\n React.MutableRefObject<HTMLElement | null> | undefined\n >(undefined);\n\n const chatActionsEnabled =\n !disableEditing &&\n message.status !== 'sending' &&\n !!message.mine &&\n /* @conditional-compile-remove(data-loss-prevention) */ message.messageType !== 'blocked';\n const [messageReadBy, setMessageReadBy] = useState<{ id: string; displayName: string }[]>([]);\n\n const actionMenuProps = wasInteractionByTouch\n ? undefined\n : chatMessageActionMenuProps({\n ariaLabel: strings.actionMenuMoreOptions ?? '',\n enabled: chatActionsEnabled,\n menuButtonRef: messageActionButtonRef,\n // Force show the action button while the flyout is open (otherwise this will dismiss when the pointer is hovered over the flyout)\n forceShow: chatMessageActionFlyoutTarget === messageActionButtonRef,\n onActionButtonClick: () => {\n if (message.messageType === 'chat') {\n props.onActionButtonClick(message, setMessageReadBy);\n setChatMessageActionFlyoutTarget(messageActionButtonRef);\n }\n },\n theme\n });\n\n const onActionFlyoutDismiss = useCallback((): void => {\n // When the flyout dismiss is called, since we control if the action flyout is visible\n // or not we need to set the target to undefined here to actually hide the action flyout\n setChatMessageActionFlyoutTarget(undefined);\n }, [setChatMessageActionFlyoutTarget]);\n\n const defaultOnRenderFileDownloads = useCallback(\n () => (\n <_FileDownloadCards\n userId={userId}\n fileMetadata={message['attachedFilesMetadata'] || []}\n downloadHandler={fileDownloadHandler}\n /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing)*/\n strings={{ downloadFile: strings.downloadFile, fileCardGroupMessage: strings.fileCardGroupMessage }}\n />\n ),\n [\n userId,\n message,\n /* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images-and-file-sharing)*/\n strings,\n fileDownloadHandler\n ]\n );\n\n const editedOn = 'editedOn' in message ? message.editedOn : undefined;\n const getMessageDetails = useCallback(() => {\n if (messageStatus === 'failed') {\n return <div className={chatMessageFailedTagStyle(theme)}>{strings.failToSendTag}</div>;\n } else if (message.messageType === 'chat' && editedOn) {\n return <div className={chatMessageEditedTagStyle(theme)}>{strings.editedTag}</div>;\n }\n return undefined;\n }, [editedOn, message.messageType, messageStatus, strings.editedTag, strings.failToSendTag, theme]);\n\n const getContent = useCallback(() => {\n /* @conditional-compile-remove(data-loss-prevention) */\n if (message.messageType === 'blocked') {\n return (\n <div tabIndex={0}>\n <BlockedMessageContent message={message} strings={strings} />\n </div>\n );\n }\n return (\n <div tabIndex={0}>\n <ChatMessageContent\n message={message}\n strings={strings}\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n onFetchAttachment={props.onFetchAttachments}\n /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */\n attachmentsMap={props.attachmentsMap}\n /* @conditional-compile-remove(mention) */\n mentionDisplayOptions={props.mentionDisplayOptions}\n />\n {props.onRenderFileDownloads ? props.onRenderFileDownloads(userId, message) : defaultOnRenderFileDownloads()}\n </div>\n );\n }, [defaultOnRenderFileDownloads, message, props, strings, userId]);\n\n const chatMessage = (\n <>\n <div ref={messageRef}>\n <Chat.Message\n data-ui-id=\"chat-composite-message\"\n className={mergeStyles(messageContainerStyle as IStyle)}\n styles={messageContainerStyle}\n content={getContent()}\n author={<Text className={chatMessageDateStyle}>{message.senderDisplayName}</Text>}\n mine={message.mine}\n timestamp={<Text data-ui-id={ids.messageTimestamp}>{formattedTimestamp}</Text>}\n details={getMessageDetails()}\n positionActionMenu={false}\n actionMenu={actionMenuProps}\n onTouchStart={() => setWasInteractionByTouch(true)}\n onPointerDown={() => setWasInteractionByTouch(false)}\n onKeyDown={() => setWasInteractionByTouch(false)}\n onBlur={() => setWasInteractionByTouch(false)}\n onClick={() => {\n if (!wasInteractionByTouch) {\n return;\n }\n // If the message was touched via touch we immediately open the menu\n // flyout (when using mouse the 3-dot menu that appears on hover\n // must be clicked to open the flyout).\n // In doing so here we set the target of the flyout to be the message and\n // not the 3-dot menu button to position the flyout correctly.\n setChatMessageActionFlyoutTarget(messageRef);\n if (message.messageType === 'chat') {\n props.onActionButtonClick(message, setMessageReadBy);\n }\n }}\n />\n </div>\n {chatActionsEnabled && (\n <ChatMessageActionFlyout\n hidden={!chatMessageActionFlyoutTarget}\n target={chatMessageActionFlyoutTarget}\n increaseFlyoutItemSize={wasInteractionByTouch}\n onDismiss={onActionFlyoutDismiss}\n onEditClick={onEditClick}\n onRemoveClick={onRemoveClick}\n onResendClick={onResendClick}\n strings={strings}\n messageReadBy={messageReadBy}\n messageStatus={messageStatus ?? 'failed'}\n remoteParticipantsCount={remoteParticipantsCount}\n onRenderAvatar={onRenderAvatar}\n showMessageStatus={showMessageStatus}\n />\n )}\n </>\n );\n\n return chatMessage;\n};\n\n/** @private */\nexport const ChatMessageComponentAsMessageBubble = React.memo(MessageBubble);\n\"../../../../northstar-wrapper/src\"\"../../../../acs-ui-common/src\""]}
@@ -1,11 +1,25 @@
1
1
  /// <reference types="react" />
2
2
  import { ChatMessage } from '../../types/ChatMessage';
3
+ import { BlockedMessage } from '../../types/ChatMessage';
4
+ import { MentionDisplayOptions } from '../MentionPopover';
5
+ import { MessageThreadStrings } from '../MessageThread';
6
+ import { FileMetadata } from '../FileDownloadCards';
3
7
  declare type ChatMessageContentProps = {
4
8
  message: ChatMessage;
5
- liveAuthorIntro: string;
6
- messageContentAriaText?: string;
9
+ strings: MessageThreadStrings;
10
+ mentionDisplayOptions?: MentionDisplayOptions;
11
+ attachmentsMap?: Record<string, string>;
12
+ onFetchAttachment?: (attachment: FileMetadata) => Promise<void>;
13
+ };
14
+ declare type BlockedMessageContentProps = {
15
+ message: BlockedMessage;
16
+ strings: MessageThreadStrings;
7
17
  };
8
18
  /** @private */
9
19
  export declare const ChatMessageContent: (props: ChatMessageContentProps) => JSX.Element;
20
+ /**
21
+ * @private
22
+ */
23
+ export declare const BlockedMessageContent: (props: BlockedMessageContentProps) => JSX.Element;
10
24
  export {};
11
25
  //# sourceMappingURL=ChatMessageContent.d.ts.map
@@ -1,11 +1,18 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import React from 'react';
4
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
5
+ import { useEffect } from 'react';
4
6
  import { _formatString } from "../../../../acs-ui-common/src";
5
- import { Parser } from 'html-to-react';
7
+ import { Parser, ProcessNodeDefinitions, IsValidNodeDefinitions } from 'html-to-react';
6
8
  import Linkify from 'react-linkify';
7
- import { LiveMessage } from 'react-aria-live';
8
9
  import { Link } from '@fluentui/react';
10
+ /* @conditional-compile-remove(data-loss-prevention) */
11
+ import { FontIcon, Stack } from '@fluentui/react';
12
+ import LiveMessage from '../Announcer/LiveMessage';
13
+ /* @conditional-compile-remove(mention) */
14
+ import { defaultOnMentionRender } from './MentionRenderer';
15
+ import DOMPurify from 'dompurify';
9
16
  /** @private */
10
17
  export const ChatMessageContent = (props) => {
11
18
  switch (props.message.contentType) {
@@ -20,20 +27,46 @@ export const ChatMessageContent = (props) => {
20
27
  return React.createElement(React.Fragment, null);
21
28
  }
22
29
  };
30
+ const MessageContentWithLiveAria = (props) => {
31
+ return (React.createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-label": props.ariaLabel },
32
+ React.createElement(LiveMessage, { message: props.liveMessage, ariaLive: "polite" }),
33
+ props.content));
34
+ };
23
35
  const MessageContentAsRichTextHTML = (props) => {
24
- const htmlToReactParser = new Parser();
25
- const liveAuthor = _formatString(props.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
26
- return (React.createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-label": props.messageContentAriaText },
27
- React.createElement(LiveMessage, { message: `${props.message.mine ? '' : liveAuthor} ${extractContent(props.message.content || '')}`, "aria-live": "polite" }),
28
- htmlToReactParser.parse(props.message.content)));
36
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
37
+ useEffect(() => {
38
+ var _a;
39
+ (_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.map((fileMetadata) => {
40
+ if (props.onFetchAttachment && props.attachmentsMap && props.attachmentsMap[fileMetadata.id] === undefined) {
41
+ props.onFetchAttachment(fileMetadata);
42
+ }
43
+ });
44
+ }, [props]);
45
+ return (React.createElement(MessageContentWithLiveAria, { message: props.message, liveMessage: generateLiveMessage(props), ariaLabel: messageContentAriaText(props), content: processHtmlToReact(props) }));
29
46
  };
30
47
  const MessageContentAsText = (props) => {
31
- const liveAuthor = _formatString(props.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
32
- return (React.createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-label": props.messageContentAriaText },
33
- React.createElement(LiveMessage, { message: `${props.message.mine ? '' : liveAuthor} ${props.message.content}`, "aria-live": "polite" }),
34
- React.createElement(Linkify, { componentDecorator: (decoratedHref, decoratedText, key) => {
48
+ return (React.createElement(MessageContentWithLiveAria, { message: props.message, liveMessage: generateLiveMessage(props), ariaLabel: messageContentAriaText(props), content: React.createElement(Linkify, { componentDecorator: (decoratedHref, decoratedText, key) => {
35
49
  return (React.createElement(Link, { target: "_blank", href: decoratedHref, key: key }, decoratedText));
36
- } }, props.message.content)));
50
+ } }, props.message.content) }));
51
+ };
52
+ /* @conditional-compile-remove(data-loss-prevention) */
53
+ /**
54
+ * @private
55
+ */
56
+ export const BlockedMessageContent = (props) => {
57
+ var _a;
58
+ const Icon = React.createElement(FontIcon, { iconName: 'DataLossPreventionProhibited' });
59
+ const blockedMessage = props.message.warningText === undefined ? props.strings.blockedWarningText : props.message.warningText;
60
+ const blockedMessageLink = props.message.link;
61
+ const blockedMessageLinkText = blockedMessageLink
62
+ ? (_a = props.message.linkText) !== null && _a !== void 0 ? _a : props.strings.blockedWarningLinkText
63
+ : '';
64
+ const liveAuthor = props.message.mine || props.message.senderDisplayName === undefined ? '' : props.message.senderDisplayName;
65
+ const liveBlockedWarningText = `${liveAuthor} ${blockedMessage} ${blockedMessageLinkText}`;
66
+ return (React.createElement(MessageContentWithLiveAria, { message: props.message, liveMessage: liveBlockedWarningText, ariaLabel: liveBlockedWarningText, content: React.createElement(Stack, { horizontal: true, wrap: true },
67
+ Icon,
68
+ blockedMessage && React.createElement("p", null, blockedMessage),
69
+ blockedMessageLink && (React.createElement(Link, { target: '_blank', href: blockedMessageLink }, blockedMessageLinkText))) }));
37
70
  };
38
71
  // https://stackoverflow.com/questions/28899298/extract-the-text-out-of-html-string-using-javascript
39
72
  const extractContent = (s) => {
@@ -41,4 +74,81 @@ const extractContent = (s) => {
41
74
  span.innerHTML = s;
42
75
  return span.textContent || span.innerText;
43
76
  };
77
+ const generateLiveMessage = (props) => {
78
+ const liveAuthor = _formatString(props.strings.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
79
+ return `${props.message.editedOn ? props.strings.editedTag : ''} ${props.message.mine ? '' : liveAuthor} ${extractContent(props.message.content || '')} `;
80
+ };
81
+ const messageContentAriaText = (props) => {
82
+ // Strip all html tags from the content for aria.
83
+ return props.message.content
84
+ ? props.message.mine
85
+ ? _formatString(props.strings.messageContentMineAriaText, {
86
+ message: DOMPurify.sanitize(props.message.content, { ALLOWED_TAGS: [] })
87
+ })
88
+ : _formatString(props.strings.messageContentAriaText, {
89
+ author: `${props.message.senderDisplayName}`,
90
+ message: DOMPurify.sanitize(props.message.content, { ALLOWED_TAGS: [] })
91
+ })
92
+ : undefined;
93
+ };
94
+ const processNodeDefinitions = ProcessNodeDefinitions();
95
+ const htmlToReactParser = Parser();
96
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
97
+ const processInlineImage = (props) => ({
98
+ // Custom <img> processing
99
+ shouldProcessNode: (node) => {
100
+ var _a;
101
+ // Process img node with id in attachments list
102
+ return (node.name &&
103
+ node.name === 'img' &&
104
+ node.attribs &&
105
+ node.attribs.id &&
106
+ ((_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.find((f) => f.id === node.attribs.id)));
107
+ },
108
+ processNode: (node, children, index) => {
109
+ // logic to check id in map/list
110
+ if (props.attachmentsMap && node.attribs.id in props.attachmentsMap) {
111
+ node.attribs = Object.assign(Object.assign({}, node.attribs), { src: props.attachmentsMap[node.attribs.id] });
112
+ }
113
+ return processNodeDefinitions.processDefaultNode(node, children, index);
114
+ }
115
+ });
116
+ /* @conditional-compile-remove(mention) */
117
+ const processMention = (props) => ({
118
+ shouldProcessNode: (node) => {
119
+ var _a;
120
+ if ((_a = props.mentionDisplayOptions) === null || _a === void 0 ? void 0 : _a.onRenderMention) {
121
+ // Override the handling of the <msft-mention> tag in the HTML if there's a custom renderer
122
+ return node.name === 'msft-mention';
123
+ }
124
+ return false;
125
+ },
126
+ processNode: (node) => {
127
+ var _a, _b, _c;
128
+ if ((_a = props.mentionDisplayOptions) === null || _a === void 0 ? void 0 : _a.onRenderMention) {
129
+ const { id } = node.attribs;
130
+ const mention = {
131
+ id: id,
132
+ displayText: (_c = (_b = node.children[0]) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : ''
133
+ };
134
+ return props.mentionDisplayOptions.onRenderMention(mention, defaultOnMentionRender);
135
+ }
136
+ return processNodeDefinitions.processDefaultNode;
137
+ }
138
+ });
139
+ const processHtmlToReact = (props) => {
140
+ var _a;
141
+ const steps = [
142
+ /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */
143
+ processInlineImage(props),
144
+ /* @conditional-compile-remove(mention) */
145
+ processMention(props),
146
+ {
147
+ // Process everything else in the default way
148
+ shouldProcessNode: IsValidNodeDefinitions.alwaysValid,
149
+ processNode: processNodeDefinitions.processDefaultNode
150
+ }
151
+ ];
152
+ return htmlToReactParser.parseWithInstructions((_a = props.message.content) !== null && _a !== void 0 ? _a : '', IsValidNodeDefinitions.alwaysValid, steps);
153
+ };
44
154
  //# sourceMappingURL=ChatMessageContent.js.map