@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
@@ -2,12 +2,20 @@
2
2
  // Licensed under the MIT license.
3
3
  import { Features } from '@azure/communication-calling';
4
4
  import { toFlatCommunicationIdentifier } from "../../acs-ui-common/src";
5
+ /* @conditional-compile-remove(close-captions) */
6
+ import { CaptionsSubscriber } from './CaptionsSubscriber';
5
7
  import { convertSdkLocalStreamToDeclarativeLocalStream, convertSdkParticipantToDeclarativeParticipant } from './Converter';
8
+ /* @conditional-compile-remove(video-background-effects) */
9
+ import { LocalVideoStreamVideoEffectsSubscriber } from './LocalVideoStreamVideoEffectsSubscriber';
6
10
  import { ParticipantSubscriber } from './ParticipantSubscriber';
7
11
  import { RecordingSubscriber } from './RecordingSubscriber';
8
12
  import { disposeView } from './StreamUtils';
9
13
  import { TranscriptionSubscriber } from './TranscriptionSubscriber';
14
+ /* @conditional-compile-remove(close-captions) */
15
+ import { _isTeamsMeetingCall } from './TypeGuards';
10
16
  import { UserFacingDiagnosticsSubscriber } from './UserFacingDiagnosticsSubscriber';
17
+ /* @conditional-compile-remove(optimal-video-count) */
18
+ import { OptimalVideoCountSubscriber } from './OptimalVideoCountSubscriber';
11
19
  /**
12
20
  * Keeps track of the listeners assigned to a particular call because when we get an event from SDK, it doesn't tell us
13
21
  * which call it is for. If we keep track of this then we know which call in the state that needs an update and also
@@ -17,6 +25,8 @@ export class CallSubscriber {
17
25
  constructor(call, context, internalContext) {
18
26
  this.subscribe = () => {
19
27
  this._call.on('stateChanged', this.stateChanged);
28
+ /* @conditional-compile-remove(close-captions) */
29
+ this._call.on('stateChanged', this.initCaptionSubscriber);
20
30
  this._call.on('idChanged', this.idChanged);
21
31
  this._call.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged);
22
32
  this._call.on('remoteParticipantsUpdated', this.remoteParticipantsUpdated);
@@ -25,6 +35,8 @@ export class CallSubscriber {
25
35
  /* @conditional-compile-remove(rooms) */
26
36
  this._call.on('roleChanged', this.callRoleChangedHandler);
27
37
  this._call.feature(Features.DominantSpeakers).on('dominantSpeakersChanged', this.dominantSpeakersChanged);
38
+ /* @conditional-compile-remove(total-participant-count) */
39
+ this._call.on('totalParticipantCountChanged', this.totalParticipantCountChangedHandler);
28
40
  // At time of writing only one LocalVideoStream is supported by SDK.
29
41
  if (this._call.localVideoStreams.length > 0) {
30
42
  this._internalContext.setLocalRenderInfo(this._callIdRef.callId, this._call.localVideoStreams[0], 'NotRendered', undefined);
@@ -37,7 +49,10 @@ export class CallSubscriber {
37
49
  }
38
50
  };
39
51
  this.unsubscribe = () => {
52
+ var _a;
40
53
  this._call.off('stateChanged', this.stateChanged);
54
+ /* @conditional-compile-remove(close-captions) */
55
+ this._call.off('stateChanged', this.initCaptionSubscriber);
41
56
  this._call.off('idChanged', this.idChanged);
42
57
  this._call.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged);
43
58
  this._call.off('remoteParticipantsUpdated', this.remoteParticipantsUpdated);
@@ -45,6 +60,8 @@ export class CallSubscriber {
45
60
  this._call.off('isMutedChanged', this.isMuteChanged);
46
61
  /* @conditional-compile-remove(rooms) */
47
62
  this._call.off('roleChanged', this.callRoleChangedHandler);
63
+ /* @conditional-compile-remove(total-participant-count) */
64
+ this._call.off('totalParticipantCountChanged', this.totalParticipantCountChangedHandler);
48
65
  this._participantSubscribers.forEach((participantSubscriber) => {
49
66
  participantSubscriber.unsubscribe();
50
67
  });
@@ -58,10 +75,22 @@ export class CallSubscriber {
58
75
  this._diagnosticsSubscriber.unsubscribe();
59
76
  this._recordingSubscriber.unsubscribe();
60
77
  this._transcriptionSubscriber.unsubscribe();
78
+ /* @conditional-compile-remove(optimal-video-count) */
79
+ this._optimalVideoCountSubscriber.unsubscribe();
80
+ /* @conditional-compile-remove(close-captions) */
81
+ (_a = this._captionsSubscriber) === null || _a === void 0 ? void 0 : _a.unsubscribe();
61
82
  };
62
83
  this.stateChanged = () => {
63
84
  this._context.setCallState(this._callIdRef.callId, this._call.state);
64
85
  };
86
+ /* @conditional-compile-remove(close-captions) */
87
+ this.initCaptionSubscriber = () => {
88
+ // subscribe to captions here so that we don't call captions when call is not initialized
89
+ if (_isTeamsMeetingCall(this._call) && this._call.state === 'Connected' && !this._captionsSubscriber) {
90
+ this._captionsSubscriber = new CaptionsSubscriber(this._callIdRef, this._context, this._call.feature(Features.TeamsCaptions));
91
+ this._call.off('stateChanged', this.initCaptionSubscriber);
92
+ }
93
+ };
65
94
  this.idChanged = () => {
66
95
  this._internalContext.setCallId(this._call.id, this._callIdRef.callId);
67
96
  this._context.setCallId(this._call.id, this._callIdRef.callId);
@@ -77,6 +106,10 @@ export class CallSubscriber {
77
106
  this.callRoleChangedHandler = () => {
78
107
  this._context.setRole(this._callIdRef.callId, this._call.role);
79
108
  };
109
+ /* @conditional-compile-remove(total-participant-count) */
110
+ this.totalParticipantCountChangedHandler = () => {
111
+ this._context.setTotalParticipantCount(this._callIdRef.callId, this._call.totalParticipantCount);
112
+ };
80
113
  this.remoteParticipantsUpdated = (event) => {
81
114
  event.added.forEach((participant) => {
82
115
  this.addParticipantListener(participant);
@@ -95,6 +128,7 @@ export class CallSubscriber {
95
128
  }));
96
129
  };
97
130
  this.localVideoStreamsUpdated = (event) => {
131
+ var _a, _b;
98
132
  // At time of writing only one LocalVideoStream is supported by SDK.
99
133
  if (event.added.length > 0) {
100
134
  const localVideoStreams = [convertSdkLocalStreamToDeclarativeLocalStream(this._call.localVideoStreams[0])];
@@ -102,8 +136,25 @@ export class CallSubscriber {
102
136
  // has the required data when component re-renders due to external state changes.
103
137
  this._internalContext.setLocalRenderInfo(this._callIdRef.callId, this._call.localVideoStreams[0], 'NotRendered', undefined);
104
138
  this._context.setCallLocalVideoStream(this._callIdRef.callId, [...localVideoStreams]);
139
+ /* @conditional-compile-remove(video-background-effects) */
140
+ {
141
+ // Subscribe to video effect changes
142
+ const localVideoStreamKey = event.added[0].source.id;
143
+ (_a = this._localVideoStreamVideoEffectsSubscribers.get(localVideoStreamKey)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
144
+ this._localVideoStreamVideoEffectsSubscribers.set(localVideoStreamKey, new LocalVideoStreamVideoEffectsSubscriber({
145
+ parent: this._callIdRef,
146
+ context: this._context,
147
+ localVideoStream: this._call.localVideoStreams[0],
148
+ localVideoStreamEffectsAPI: this._call.localVideoStreams[0].feature(Features.VideoEffects)
149
+ }));
150
+ }
105
151
  }
106
152
  if (event.removed.length > 0) {
153
+ /* @conditional-compile-remove(video-background-effects) */
154
+ {
155
+ const localVideoStreamKey = event.removed[0].source.id;
156
+ (_b = this._localVideoStreamVideoEffectsSubscribers.get(localVideoStreamKey)) === null || _b === void 0 ? void 0 : _b.unsubscribe();
157
+ }
107
158
  disposeView(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(event.removed[0]));
108
159
  this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId);
109
160
  this._context.setCallLocalVideoStream(this._callIdRef.callId, []);
@@ -121,6 +172,14 @@ export class CallSubscriber {
121
172
  this._participantSubscribers = new Map();
122
173
  this._recordingSubscriber = new RecordingSubscriber(this._callIdRef, this._context, this._call.feature(Features.Recording));
123
174
  this._transcriptionSubscriber = new TranscriptionSubscriber(this._callIdRef, this._context, this._call.feature(Features.Transcription));
175
+ /* @conditional-compile-remove(optimal-video-count) */
176
+ this._optimalVideoCountSubscriber = new OptimalVideoCountSubscriber({
177
+ callIdRef: this._callIdRef,
178
+ context: this._context,
179
+ localOptimalVideoCountFeature: this._call.feature(Features.OptimalVideoCount)
180
+ });
181
+ /* @conditional-compile-remove(video-background-effects) */
182
+ this._localVideoStreamVideoEffectsSubscribers = new Map();
124
183
  this.subscribe();
125
184
  }
126
185
  addParticipantListener(participant) {
@@ -1 +1 @@
1
- {"version":3,"file":"CallSubscriber.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallSubscriber.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Features, LocalVideoStream, RemoteParticipant } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallCommon } from './BetaToStableTypes';\nimport { CallContext } from './CallContext';\nimport { CallIdRef } from './CallIdRef';\nimport {\n convertSdkLocalStreamToDeclarativeLocalStream,\n convertSdkParticipantToDeclarativeParticipant\n} from './Converter';\nimport { InternalCallContext } from './InternalCallContext';\nimport { ParticipantSubscriber } from './ParticipantSubscriber';\nimport { RecordingSubscriber } from './RecordingSubscriber';\nimport { disposeView } from './StreamUtils';\nimport { TranscriptionSubscriber } from './TranscriptionSubscriber';\nimport { UserFacingDiagnosticsSubscriber } from './UserFacingDiagnosticsSubscriber';\n\n/**\n * Keeps track of the listeners assigned to a particular call because when we get an event from SDK, it doesn't tell us\n * which call it is for. If we keep track of this then we know which call in the state that needs an update and also\n * which property of that call. Also we can use this when unregistering to a call.\n */\nexport class CallSubscriber {\n private _call: CallCommon;\n private _callIdRef: CallIdRef;\n private _context: CallContext;\n private _internalContext: InternalCallContext;\n\n private _diagnosticsSubscriber: UserFacingDiagnosticsSubscriber;\n private _participantSubscribers: Map<string, ParticipantSubscriber>;\n private _recordingSubscriber: RecordingSubscriber;\n private _transcriptionSubscriber: TranscriptionSubscriber;\n\n constructor(call: CallCommon, context: CallContext, internalContext: InternalCallContext) {\n this._call = call;\n this._callIdRef = { callId: call.id };\n this._context = context;\n this._internalContext = internalContext;\n\n this._diagnosticsSubscriber = new UserFacingDiagnosticsSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.UserFacingDiagnostics)\n );\n this._participantSubscribers = new Map<string, ParticipantSubscriber>();\n this._recordingSubscriber = new RecordingSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.Recording)\n );\n this._transcriptionSubscriber = new TranscriptionSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.Transcription)\n );\n\n this.subscribe();\n }\n\n private subscribe = (): void => {\n this._call.on('stateChanged', this.stateChanged);\n this._call.on('idChanged', this.idChanged);\n this._call.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged);\n this._call.on('remoteParticipantsUpdated', this.remoteParticipantsUpdated);\n this._call.on('localVideoStreamsUpdated', this.localVideoStreamsUpdated);\n this._call.on('isMutedChanged', this.isMuteChanged);\n /* @conditional-compile-remove(rooms) */\n this._call.on('roleChanged', this.callRoleChangedHandler);\n this._call.feature(Features.DominantSpeakers).on('dominantSpeakersChanged', this.dominantSpeakersChanged);\n\n // At time of writing only one LocalVideoStream is supported by SDK.\n if (this._call.localVideoStreams.length > 0) {\n this._internalContext.setLocalRenderInfo(\n this._callIdRef.callId,\n this._call.localVideoStreams[0],\n 'NotRendered',\n undefined\n );\n }\n\n if (this._call.remoteParticipants.length > 0) {\n this._call.remoteParticipants.forEach((participant: RemoteParticipant) => {\n this.addParticipantListener(participant);\n });\n\n this._context.setCallRemoteParticipants(\n this._callIdRef.callId,\n this._call.remoteParticipants.map(convertSdkParticipantToDeclarativeParticipant),\n []\n );\n }\n };\n\n public unsubscribe = (): void => {\n this._call.off('stateChanged', this.stateChanged);\n this._call.off('idChanged', this.idChanged);\n this._call.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged);\n this._call.off('remoteParticipantsUpdated', this.remoteParticipantsUpdated);\n this._call.off('localVideoStreamsUpdated', this.localVideoStreamsUpdated);\n this._call.off('isMutedChanged', this.isMuteChanged);\n /* @conditional-compile-remove(rooms) */\n this._call.off('roleChanged', this.callRoleChangedHandler);\n\n this._participantSubscribers.forEach((participantSubscriber: ParticipantSubscriber) => {\n participantSubscriber.unsubscribe();\n });\n this._participantSubscribers.clear();\n\n // If we are unsubscribing that means we no longer want to display any video for this call (callEnded or callAgent\n // disposed) and we should not be updating it any more. So if video is rendering we stop rendering.\n if (this._call.localVideoStreams && this._call.localVideoStreams[0]) {\n disposeView(\n this._context,\n this._internalContext,\n this._callIdRef.callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(this._call.localVideoStreams[0])\n );\n }\n\n this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId);\n\n this._diagnosticsSubscriber.unsubscribe();\n this._recordingSubscriber.unsubscribe();\n this._transcriptionSubscriber.unsubscribe();\n };\n\n private addParticipantListener(participant: RemoteParticipant): void {\n const participantKey = toFlatCommunicationIdentifier(participant.identifier);\n this._participantSubscribers.get(participantKey)?.unsubscribe();\n this._participantSubscribers.set(\n participantKey,\n new ParticipantSubscriber(this._callIdRef, participant, this._context, this._internalContext)\n );\n }\n\n private removeParticipantListener(participant: RemoteParticipant): void {\n const participantKey = toFlatCommunicationIdentifier(participant.identifier);\n const participantSubscriber = this._participantSubscribers.get(participantKey);\n if (participantSubscriber) {\n participantSubscriber.unsubscribe();\n this._participantSubscribers.delete(participantKey);\n }\n }\n\n private stateChanged = (): void => {\n this._context.setCallState(this._callIdRef.callId, this._call.state);\n };\n\n private idChanged = (): void => {\n this._internalContext.setCallId(this._call.id, this._callIdRef.callId);\n this._context.setCallId(this._call.id, this._callIdRef.callId);\n this._callIdRef.callId = this._call.id;\n };\n\n private isScreenSharingOnChanged = (): void => {\n this._context.setCallIsScreenSharingOn(this._callIdRef.callId, this._call.isScreenSharingOn);\n };\n\n private isMuteChanged = (): void => {\n this._context.setCallIsMicrophoneMuted(this._callIdRef.callId, this._call.isMuted);\n };\n\n /* @conditional-compile-remove(rooms) */\n private callRoleChangedHandler = (): void => {\n this._context.setRole(this._callIdRef.callId, this._call.role);\n };\n\n private remoteParticipantsUpdated = (event: { added: RemoteParticipant[]; removed: RemoteParticipant[] }): void => {\n event.added.forEach((participant: RemoteParticipant) => {\n this.addParticipantListener(participant);\n });\n event.removed.forEach((participant: RemoteParticipant) => {\n this.removeParticipantListener(participant);\n });\n\n // Remove any added participants from remoteParticipantsEnded if they are there and add any removed participants to\n // remoteParticipantsEnded.\n this._context.setCallRemoteParticipantsEnded(\n this._callIdRef.callId,\n event.removed.map(convertSdkParticipantToDeclarativeParticipant),\n event.added.map((participant: RemoteParticipant) => {\n return toFlatCommunicationIdentifier(participant.identifier);\n })\n );\n\n // Add added participants to remoteParticipants and remove removed participants from remoteParticipants.\n this._context.setCallRemoteParticipants(\n this._callIdRef.callId,\n event.added.map(convertSdkParticipantToDeclarativeParticipant),\n event.removed.map((participant: RemoteParticipant) => {\n return toFlatCommunicationIdentifier(participant.identifier);\n })\n );\n };\n\n private localVideoStreamsUpdated = (event: { added: LocalVideoStream[]; removed: LocalVideoStream[] }): void => {\n // At time of writing only one LocalVideoStream is supported by SDK.\n if (event.added.length > 0) {\n const localVideoStreams = [convertSdkLocalStreamToDeclarativeLocalStream(this._call.localVideoStreams[0])];\n // IMPORTANT: The internalContext should be set before context. This is done to ensure that the internal context\n // has the required data when component re-renders due to external state changes.\n this._internalContext.setLocalRenderInfo(\n this._callIdRef.callId,\n this._call.localVideoStreams[0],\n 'NotRendered',\n undefined\n );\n this._context.setCallLocalVideoStream(this._callIdRef.callId, [...localVideoStreams]);\n }\n if (event.removed.length > 0) {\n disposeView(\n this._context,\n this._internalContext,\n this._callIdRef.callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(event.removed[0])\n );\n this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId);\n this._context.setCallLocalVideoStream(this._callIdRef.callId, []);\n }\n };\n\n private dominantSpeakersChanged = (): void => {\n const dominantSpeakers = this._call.feature(Features.DominantSpeakers).dominantSpeakers;\n this._context.setCallDominantSpeakers(this._callIdRef.callId, dominantSpeakers);\n };\n}\n\"../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"CallSubscriber.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CallSubscriber.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Features, LocalVideoStream, RemoteParticipant } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallCommon } from './BetaToStableTypes';\nimport { CallContext } from './CallContext';\nimport { CallIdRef } from './CallIdRef';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsSubscriber } from './CaptionsSubscriber';\nimport {\n convertSdkLocalStreamToDeclarativeLocalStream,\n convertSdkParticipantToDeclarativeParticipant\n} from './Converter';\nimport { InternalCallContext } from './InternalCallContext';\n/* @conditional-compile-remove(video-background-effects) */\nimport { LocalVideoStreamVideoEffectsSubscriber } from './LocalVideoStreamVideoEffectsSubscriber';\nimport { ParticipantSubscriber } from './ParticipantSubscriber';\nimport { RecordingSubscriber } from './RecordingSubscriber';\nimport { disposeView } from './StreamUtils';\nimport { TranscriptionSubscriber } from './TranscriptionSubscriber';\n/* @conditional-compile-remove(close-captions) */\nimport { _isTeamsMeetingCall } from './TypeGuards';\nimport { UserFacingDiagnosticsSubscriber } from './UserFacingDiagnosticsSubscriber';\n/* @conditional-compile-remove(optimal-video-count) */\nimport { OptimalVideoCountSubscriber } from './OptimalVideoCountSubscriber';\n\n/**\n * Keeps track of the listeners assigned to a particular call because when we get an event from SDK, it doesn't tell us\n * which call it is for. If we keep track of this then we know which call in the state that needs an update and also\n * which property of that call. Also we can use this when unregistering to a call.\n */\nexport class CallSubscriber {\n private _call: CallCommon;\n private _callIdRef: CallIdRef;\n private _context: CallContext;\n private _internalContext: InternalCallContext;\n\n private _diagnosticsSubscriber: UserFacingDiagnosticsSubscriber;\n private _participantSubscribers: Map<string, ParticipantSubscriber>;\n private _recordingSubscriber: RecordingSubscriber;\n private _transcriptionSubscriber: TranscriptionSubscriber;\n /* @conditional-compile-remove(optimal-video-count) */\n private _optimalVideoCountSubscriber: OptimalVideoCountSubscriber;\n /* @conditional-compile-remove(close-captions) */\n private _captionsSubscriber?: CaptionsSubscriber;\n /* @conditional-compile-remove(video-background-effects) */\n private _localVideoStreamVideoEffectsSubscribers: Map<string, LocalVideoStreamVideoEffectsSubscriber>;\n\n constructor(call: CallCommon, context: CallContext, internalContext: InternalCallContext) {\n this._call = call;\n this._callIdRef = { callId: call.id };\n this._context = context;\n this._internalContext = internalContext;\n\n this._diagnosticsSubscriber = new UserFacingDiagnosticsSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.UserFacingDiagnostics)\n );\n this._participantSubscribers = new Map<string, ParticipantSubscriber>();\n this._recordingSubscriber = new RecordingSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.Recording)\n );\n this._transcriptionSubscriber = new TranscriptionSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.Transcription)\n );\n\n /* @conditional-compile-remove(optimal-video-count) */\n this._optimalVideoCountSubscriber = new OptimalVideoCountSubscriber({\n callIdRef: this._callIdRef,\n context: this._context,\n localOptimalVideoCountFeature: this._call.feature(Features.OptimalVideoCount)\n });\n /* @conditional-compile-remove(video-background-effects) */\n this._localVideoStreamVideoEffectsSubscribers = new Map();\n\n this.subscribe();\n }\n\n private subscribe = (): void => {\n this._call.on('stateChanged', this.stateChanged);\n /* @conditional-compile-remove(close-captions) */\n this._call.on('stateChanged', this.initCaptionSubscriber);\n this._call.on('idChanged', this.idChanged);\n this._call.on('isScreenSharingOnChanged', this.isScreenSharingOnChanged);\n this._call.on('remoteParticipantsUpdated', this.remoteParticipantsUpdated);\n this._call.on('localVideoStreamsUpdated', this.localVideoStreamsUpdated);\n this._call.on('isMutedChanged', this.isMuteChanged);\n /* @conditional-compile-remove(rooms) */\n this._call.on('roleChanged', this.callRoleChangedHandler);\n this._call.feature(Features.DominantSpeakers).on('dominantSpeakersChanged', this.dominantSpeakersChanged);\n /* @conditional-compile-remove(total-participant-count) */\n this._call.on('totalParticipantCountChanged', this.totalParticipantCountChangedHandler);\n\n // At time of writing only one LocalVideoStream is supported by SDK.\n if (this._call.localVideoStreams.length > 0) {\n this._internalContext.setLocalRenderInfo(\n this._callIdRef.callId,\n this._call.localVideoStreams[0],\n 'NotRendered',\n undefined\n );\n }\n\n if (this._call.remoteParticipants.length > 0) {\n this._call.remoteParticipants.forEach((participant: RemoteParticipant) => {\n this.addParticipantListener(participant);\n });\n\n this._context.setCallRemoteParticipants(\n this._callIdRef.callId,\n this._call.remoteParticipants.map(convertSdkParticipantToDeclarativeParticipant),\n []\n );\n }\n };\n\n public unsubscribe = (): void => {\n this._call.off('stateChanged', this.stateChanged);\n /* @conditional-compile-remove(close-captions) */\n this._call.off('stateChanged', this.initCaptionSubscriber);\n this._call.off('idChanged', this.idChanged);\n this._call.off('isScreenSharingOnChanged', this.isScreenSharingOnChanged);\n this._call.off('remoteParticipantsUpdated', this.remoteParticipantsUpdated);\n this._call.off('localVideoStreamsUpdated', this.localVideoStreamsUpdated);\n this._call.off('isMutedChanged', this.isMuteChanged);\n /* @conditional-compile-remove(rooms) */\n this._call.off('roleChanged', this.callRoleChangedHandler);\n /* @conditional-compile-remove(total-participant-count) */\n this._call.off('totalParticipantCountChanged', this.totalParticipantCountChangedHandler);\n\n this._participantSubscribers.forEach((participantSubscriber: ParticipantSubscriber) => {\n participantSubscriber.unsubscribe();\n });\n this._participantSubscribers.clear();\n\n // If we are unsubscribing that means we no longer want to display any video for this call (callEnded or callAgent\n // disposed) and we should not be updating it any more. So if video is rendering we stop rendering.\n if (this._call.localVideoStreams && this._call.localVideoStreams[0]) {\n disposeView(\n this._context,\n this._internalContext,\n this._callIdRef.callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(this._call.localVideoStreams[0])\n );\n }\n\n this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId);\n\n this._diagnosticsSubscriber.unsubscribe();\n this._recordingSubscriber.unsubscribe();\n this._transcriptionSubscriber.unsubscribe();\n /* @conditional-compile-remove(optimal-video-count) */\n this._optimalVideoCountSubscriber.unsubscribe();\n /* @conditional-compile-remove(close-captions) */\n this._captionsSubscriber?.unsubscribe();\n };\n\n private addParticipantListener(participant: RemoteParticipant): void {\n const participantKey = toFlatCommunicationIdentifier(participant.identifier);\n this._participantSubscribers.get(participantKey)?.unsubscribe();\n this._participantSubscribers.set(\n participantKey,\n new ParticipantSubscriber(this._callIdRef, participant, this._context, this._internalContext)\n );\n }\n\n private removeParticipantListener(participant: RemoteParticipant): void {\n const participantKey = toFlatCommunicationIdentifier(participant.identifier);\n const participantSubscriber = this._participantSubscribers.get(participantKey);\n if (participantSubscriber) {\n participantSubscriber.unsubscribe();\n this._participantSubscribers.delete(participantKey);\n }\n }\n\n private stateChanged = (): void => {\n this._context.setCallState(this._callIdRef.callId, this._call.state);\n };\n\n /* @conditional-compile-remove(close-captions) */\n private initCaptionSubscriber = (): void => {\n // subscribe to captions here so that we don't call captions when call is not initialized\n if (_isTeamsMeetingCall(this._call) && this._call.state === 'Connected' && !this._captionsSubscriber) {\n this._captionsSubscriber = new CaptionsSubscriber(\n this._callIdRef,\n this._context,\n this._call.feature(Features.TeamsCaptions)\n );\n this._call.off('stateChanged', this.initCaptionSubscriber);\n }\n };\n\n private idChanged = (): void => {\n this._internalContext.setCallId(this._call.id, this._callIdRef.callId);\n this._context.setCallId(this._call.id, this._callIdRef.callId);\n this._callIdRef.callId = this._call.id;\n };\n\n private isScreenSharingOnChanged = (): void => {\n this._context.setCallIsScreenSharingOn(this._callIdRef.callId, this._call.isScreenSharingOn);\n };\n\n private isMuteChanged = (): void => {\n this._context.setCallIsMicrophoneMuted(this._callIdRef.callId, this._call.isMuted);\n };\n\n /* @conditional-compile-remove(rooms) */\n private callRoleChangedHandler = (): void => {\n this._context.setRole(this._callIdRef.callId, this._call.role);\n };\n\n /* @conditional-compile-remove(total-participant-count) */\n private totalParticipantCountChangedHandler = (): void => {\n this._context.setTotalParticipantCount(this._callIdRef.callId, this._call.totalParticipantCount);\n };\n\n private remoteParticipantsUpdated = (event: { added: RemoteParticipant[]; removed: RemoteParticipant[] }): void => {\n event.added.forEach((participant: RemoteParticipant) => {\n this.addParticipantListener(participant);\n });\n event.removed.forEach((participant: RemoteParticipant) => {\n this.removeParticipantListener(participant);\n });\n\n // Remove any added participants from remoteParticipantsEnded if they are there and add any removed participants to\n // remoteParticipantsEnded.\n this._context.setCallRemoteParticipantsEnded(\n this._callIdRef.callId,\n event.removed.map(convertSdkParticipantToDeclarativeParticipant),\n event.added.map((participant: RemoteParticipant) => {\n return toFlatCommunicationIdentifier(participant.identifier);\n })\n );\n\n // Add added participants to remoteParticipants and remove removed participants from remoteParticipants.\n this._context.setCallRemoteParticipants(\n this._callIdRef.callId,\n event.added.map(convertSdkParticipantToDeclarativeParticipant),\n event.removed.map((participant: RemoteParticipant) => {\n return toFlatCommunicationIdentifier(participant.identifier);\n })\n );\n };\n\n private localVideoStreamsUpdated = (event: { added: LocalVideoStream[]; removed: LocalVideoStream[] }): void => {\n // At time of writing only one LocalVideoStream is supported by SDK.\n if (event.added.length > 0) {\n const localVideoStreams = [convertSdkLocalStreamToDeclarativeLocalStream(this._call.localVideoStreams[0])];\n // IMPORTANT: The internalContext should be set before context. This is done to ensure that the internal context\n // has the required data when component re-renders due to external state changes.\n this._internalContext.setLocalRenderInfo(\n this._callIdRef.callId,\n this._call.localVideoStreams[0],\n 'NotRendered',\n undefined\n );\n this._context.setCallLocalVideoStream(this._callIdRef.callId, [...localVideoStreams]);\n\n /* @conditional-compile-remove(video-background-effects) */\n {\n // Subscribe to video effect changes\n const localVideoStreamKey = event.added[0].source.id;\n this._localVideoStreamVideoEffectsSubscribers.get(localVideoStreamKey)?.unsubscribe();\n this._localVideoStreamVideoEffectsSubscribers.set(\n localVideoStreamKey,\n new LocalVideoStreamVideoEffectsSubscriber({\n parent: this._callIdRef,\n context: this._context,\n localVideoStream: this._call.localVideoStreams[0],\n localVideoStreamEffectsAPI: this._call.localVideoStreams[0].feature(Features.VideoEffects)\n })\n );\n }\n }\n if (event.removed.length > 0) {\n /* @conditional-compile-remove(video-background-effects) */\n {\n const localVideoStreamKey = event.removed[0].source.id;\n this._localVideoStreamVideoEffectsSubscribers.get(localVideoStreamKey)?.unsubscribe();\n }\n disposeView(\n this._context,\n this._internalContext,\n this._callIdRef.callId,\n undefined,\n convertSdkLocalStreamToDeclarativeLocalStream(event.removed[0])\n );\n this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId);\n this._context.setCallLocalVideoStream(this._callIdRef.callId, []);\n }\n };\n\n private dominantSpeakersChanged = (): void => {\n const dominantSpeakers = this._call.feature(Features.DominantSpeakers).dominantSpeakers;\n this._context.setCallDominantSpeakers(this._callIdRef.callId, dominantSpeakers);\n };\n}\n\"../../acs-ui-common/src\""]}
@@ -0,0 +1,18 @@
1
+ import { CallContext } from './CallContext';
2
+ import { CallIdRef } from './CallIdRef';
3
+ import { TeamsCaptionsCallFeature } from '@azure/communication-calling';
4
+ /**
5
+ * @private
6
+ */
7
+ export declare class CaptionsSubscriber {
8
+ private _callIdRef;
9
+ private _context;
10
+ private _captions;
11
+ constructor(callIdRef: CallIdRef, context: CallContext, captions: TeamsCaptionsCallFeature);
12
+ private subscribe;
13
+ unsubscribe: () => void;
14
+ private onCaptionsReceived;
15
+ private isCaptionsActiveChanged;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=CaptionsSubscriber.d.ts.map
@@ -0,0 +1,38 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /* @conditional-compile-remove(close-captions) */
4
+ /**
5
+ * @private
6
+ */
7
+ export class CaptionsSubscriber {
8
+ constructor(callIdRef, context, captions) {
9
+ this.subscribe = () => {
10
+ this._captions.on('isCaptionsActiveChanged', this.isCaptionsActiveChanged);
11
+ this._captions.on('captionsReceived', this.onCaptionsReceived);
12
+ };
13
+ this.unsubscribe = () => {
14
+ this._captions.off('isCaptionsActiveChanged', this.isCaptionsActiveChanged);
15
+ this._captions.off('captionsReceived', this.onCaptionsReceived);
16
+ };
17
+ this.onCaptionsReceived = (caption) => {
18
+ this._context.addCaption(this._callIdRef.callId, caption);
19
+ this._context.setSelectedSpokenLanguage(this._callIdRef.callId, caption.spokenLanguage);
20
+ this._context.setSelectedCaptionLanguage(this._callIdRef.callId, caption.spokenLanguage);
21
+ };
22
+ this.isCaptionsActiveChanged = () => {
23
+ this._context.setIsCaptionActive(this._callIdRef.callId, this._captions.isCaptionsFeatureActive);
24
+ };
25
+ this._callIdRef = callIdRef;
26
+ this._context = context;
27
+ this._captions = captions;
28
+ if (this._captions.isCaptionsFeatureActive) {
29
+ this._context.setIsCaptionActive(this._callIdRef.callId, this._captions.isCaptionsFeatureActive);
30
+ }
31
+ this._context.setAvailableSpokenLanguages(this._callIdRef.callId, this._captions.supportedSpokenLanguages);
32
+ if ('availableSubtitleLanguages' in this._captions) {
33
+ this._context.setAvailableCaptionLanguages(this._callIdRef.callId, this._captions.supportedCaptionLanguages);
34
+ }
35
+ this.subscribe();
36
+ }
37
+ }
38
+ //# sourceMappingURL=CaptionsSubscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionsSubscriber.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/CaptionsSubscriber.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAWlC,iDAAiD;AACjD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAK7B,YAAY,SAAoB,EAAE,OAAoB,EAAE,QAAkC;QAelF,cAAS,GAAG,GAAS,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC;QAEK,gBAAW,GAAG,GAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;QAEM,uBAAkB,GAAyB,CAAC,OAA0B,EAAQ,EAAE;YACtF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3F,CAAC,CAAC;QAEM,4BAAuB,GAAyB,GAAS,EAAE;YACjE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnG,CAAC,CAAC;QAhCA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;SAClG;QACD,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC3G,IAAI,4BAA4B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;SAC9G;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;CAqBF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/* @conditional-compile-remove(close-captions) */\nimport { PropertyChangedEvent } from '@azure/communication-calling';\n/* @conditional-compile-remove(close-captions) */\nimport { CallContext } from './CallContext';\n/* @conditional-compile-remove(close-captions) */\nimport { CallIdRef } from './CallIdRef';\n/* @conditional-compile-remove(close-captions) */\nimport { TeamsCaptionsHandler, TeamsCaptionsInfo, TeamsCaptionsCallFeature } from '@azure/communication-calling';\n\n/* @conditional-compile-remove(close-captions) */\n/**\n * @private\n */\nexport class CaptionsSubscriber {\n private _callIdRef: CallIdRef;\n private _context: CallContext;\n private _captions: TeamsCaptionsCallFeature;\n\n constructor(callIdRef: CallIdRef, context: CallContext, captions: TeamsCaptionsCallFeature) {\n this._callIdRef = callIdRef;\n this._context = context;\n this._captions = captions;\n if (this._captions.isCaptionsFeatureActive) {\n this._context.setIsCaptionActive(this._callIdRef.callId, this._captions.isCaptionsFeatureActive);\n }\n this._context.setAvailableSpokenLanguages(this._callIdRef.callId, this._captions.supportedSpokenLanguages);\n if ('availableSubtitleLanguages' in this._captions) {\n this._context.setAvailableCaptionLanguages(this._callIdRef.callId, this._captions.supportedCaptionLanguages);\n }\n\n this.subscribe();\n }\n\n private subscribe = (): void => {\n this._captions.on('isCaptionsActiveChanged', this.isCaptionsActiveChanged);\n this._captions.on('captionsReceived', this.onCaptionsReceived);\n };\n\n public unsubscribe = (): void => {\n this._captions.off('isCaptionsActiveChanged', this.isCaptionsActiveChanged);\n this._captions.off('captionsReceived', this.onCaptionsReceived);\n };\n\n private onCaptionsReceived: TeamsCaptionsHandler = (caption: TeamsCaptionsInfo): void => {\n this._context.addCaption(this._callIdRef.callId, caption);\n this._context.setSelectedSpokenLanguage(this._callIdRef.callId, caption.spokenLanguage);\n this._context.setSelectedCaptionLanguage(this._callIdRef.callId, caption.spokenLanguage);\n };\n\n private isCaptionsActiveChanged: PropertyChangedEvent = (): void => {\n this._context.setIsCaptionActive(this._callIdRef.callId, this._captions.isCaptionsFeatureActive);\n };\n}\n\n// This is a placeholder to bypass CC of \"close-captions\", remove when move the feature to stable\nexport {};\n"]}
@@ -1,6 +1,10 @@
1
1
  import { RemoteParticipant as SdkRemoteParticipant, RemoteVideoStream as SdkRemoteVideoStream, LocalVideoStream as SdkLocalVideoStream, VideoStreamRendererView } from '@azure/communication-calling';
2
+ import { TeamsCaptionsInfo } from '@azure/communication-calling';
2
3
  import { CallState, RemoteParticipantState as DeclarativeRemoteParticipant, RemoteVideoStreamState as DeclarativeRemoteVideoStream, LocalVideoStreamState as DeclarativeLocalVideoStream, IncomingCallState as DeclarativeIncomingCall, VideoStreamRendererViewState as DeclarativeVideoStreamRendererView } from './CallClientState';
4
+ import { CaptionsInfo } from './CallClientState';
3
5
  import { CallCommon, IncomingCallCommon } from './BetaToStableTypes';
6
+ import { VideoEffectName } from '@azure/communication-calling';
7
+ import { LocalVideoStreamVideoEffectsState } from './CallClientState';
4
8
  /**
5
9
  * @private
6
10
  */
@@ -27,4 +31,10 @@ export declare function convertSdkIncomingCallToDeclarativeIncomingCall(call: In
27
31
  * @private
28
32
  */
29
33
  export declare function convertFromSDKToDeclarativeVideoStreamRendererView(view: VideoStreamRendererView): DeclarativeVideoStreamRendererView;
34
+ /**
35
+ * @private
36
+ */
37
+ export declare function convertFromSDKToCaptionInfoState(caption: TeamsCaptionsInfo): CaptionsInfo;
38
+ /** @private */
39
+ export declare function convertFromSDKToDeclarativeVideoStreamVideoEffects(videoEffects: VideoEffectName[]): LocalVideoStreamVideoEffectsState;
30
40
  //# sourceMappingURL=Converter.d.ts.map
@@ -3,14 +3,20 @@
3
3
  import { toFlatCommunicationIdentifier } from "../../acs-ui-common/src";
4
4
  /* @conditional-compile-remove(teams-identity-support) */
5
5
  import { _isACSCall } from './TypeGuards';
6
+ /* @conditional-compile-remove(video-background-effects) */
7
+ import { Features } from '@azure/communication-calling';
6
8
  /**
7
9
  * @private
8
10
  */
9
11
  export function convertSdkLocalStreamToDeclarativeLocalStream(stream) {
12
+ /* @conditional-compile-remove(video-background-effects) */
13
+ const localVideoStreamEffectsAPI = stream.feature(Features.VideoEffects);
10
14
  return {
11
15
  source: stream.source,
12
16
  mediaStreamType: stream.mediaStreamType,
13
- view: undefined
17
+ view: undefined,
18
+ /* @conditional-compile-remove(video-background-effects) */
19
+ videoEffects: convertFromSDKToDeclarativeVideoStreamVideoEffects(localVideoStreamEffectsAPI.activeEffects)
14
20
  };
15
21
  }
16
22
  /**
@@ -82,7 +88,25 @@ export function convertSdkCallToDeclarativeCall(call) {
82
88
  startTime: new Date(),
83
89
  endTime: undefined,
84
90
  /* @conditional-compile-remove(rooms) */
85
- role: call.role
91
+ role: call.role,
92
+ /* @conditional-compile-remove(close-captions) */
93
+ captionsFeature: {
94
+ captions: [],
95
+ supportedSpokenLanguages: [],
96
+ supportedCaptionLanguages: [],
97
+ currentCaptionLanguage: '',
98
+ currentSpokenLanguage: '',
99
+ isCaptionsFeatureActive: false,
100
+ startCaptionsInProgress: false
101
+ },
102
+ /* @conditional-compile-remove(call-transfer) */
103
+ transfer: {
104
+ acceptedTransfers: {}
105
+ },
106
+ /* @conditional-compile-remove(optimal-video-count) */
107
+ optimalVideoCount: {
108
+ maxRemoteVideoStreams: call.feature(Features.OptimalVideoCount).optimalVideoCount
109
+ }
86
110
  };
87
111
  }
88
112
  /**
@@ -106,4 +130,18 @@ export function convertFromSDKToDeclarativeVideoStreamRendererView(view) {
106
130
  target: view.target
107
131
  };
108
132
  }
133
+ /* @conditional-compile-remove(close-captions) */
134
+ /**
135
+ * @private
136
+ */
137
+ export function convertFromSDKToCaptionInfoState(caption) {
138
+ return Object.assign({}, caption);
139
+ }
140
+ /* @conditional-compile-remove(video-background-effects) */
141
+ /** @private */
142
+ export function convertFromSDKToDeclarativeVideoStreamVideoEffects(videoEffects) {
143
+ return {
144
+ activeEffects: videoEffects
145
+ };
146
+ }
109
147
  //# sourceMappingURL=Converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Converter.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/Converter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n RemoteParticipant as SdkRemoteParticipant,\n RemoteVideoStream as SdkRemoteVideoStream,\n LocalVideoStream as SdkLocalVideoStream,\n VideoStreamRendererView\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { CallKind } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallState,\n RemoteParticipantState as DeclarativeRemoteParticipant,\n RemoteVideoStreamState as DeclarativeRemoteVideoStream,\n LocalVideoStreamState as DeclarativeLocalVideoStream,\n IncomingCallState as DeclarativeIncomingCall,\n VideoStreamRendererViewState as DeclarativeVideoStreamRendererView\n} from './CallClientState';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { _isACSCall } from './TypeGuards';\nimport { CallCommon, IncomingCallCommon } from './BetaToStableTypes';\n\n/**\n * @private\n */\nexport function convertSdkLocalStreamToDeclarativeLocalStream(\n stream: SdkLocalVideoStream\n): DeclarativeLocalVideoStream {\n return {\n source: stream.source,\n mediaStreamType: stream.mediaStreamType,\n view: undefined\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkRemoteStreamToDeclarativeRemoteStream(\n stream: SdkRemoteVideoStream\n): DeclarativeRemoteVideoStream {\n return {\n id: stream.id,\n mediaStreamType: stream.mediaStreamType,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n view: undefined\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkParticipantToDeclarativeParticipant(\n participant: SdkRemoteParticipant\n): DeclarativeRemoteParticipant {\n const declarativeVideoStreams = {};\n for (const videoStream of participant.videoStreams) {\n declarativeVideoStreams[videoStream.id] = convertSdkRemoteStreamToDeclarativeRemoteStream(videoStream);\n }\n return {\n identifier: participant.identifier,\n displayName: participant.displayName,\n state: participant.state,\n callEndReason: participant.callEndReason,\n videoStreams: declarativeVideoStreams,\n isMuted: participant.isMuted,\n isSpeaking: participant.isSpeaking\n };\n}\n\n/**\n * @private\n *\n * Note at the time of writing only one LocalVideoStream is supported by the SDK.\n */\nexport function convertSdkCallToDeclarativeCall(call: CallCommon): CallState {\n const declarativeRemoteParticipants = {};\n call.remoteParticipants.forEach((participant: SdkRemoteParticipant) => {\n declarativeRemoteParticipants[toFlatCommunicationIdentifier(participant.identifier)] =\n convertSdkParticipantToDeclarativeParticipant(participant);\n });\n return {\n id: call.id,\n /* @conditional-compile-remove(teams-identity-support) */\n kind: _isACSCall(call) ? ('Call' as CallKind) : ('TeamsCall' as CallKind),\n callerInfo: call.callerInfo,\n state: call.state,\n callEndReason: call.callEndReason,\n diagnostics: {\n network: {\n latest: {}\n },\n media: {\n latest: {}\n }\n },\n direction: call.direction,\n isMuted: call.isMuted,\n isScreenSharingOn: call.isScreenSharingOn,\n localVideoStreams: call.localVideoStreams.map(convertSdkLocalStreamToDeclarativeLocalStream),\n remoteParticipants: declarativeRemoteParticipants,\n remoteParticipantsEnded: {},\n recording: { isRecordingActive: false },\n transcription: { isTranscriptionActive: false },\n screenShareRemoteParticipant: undefined,\n startTime: new Date(),\n endTime: undefined,\n /* @conditional-compile-remove(rooms) */\n role: call.role\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkIncomingCallToDeclarativeIncomingCall(call: IncomingCallCommon): DeclarativeIncomingCall {\n return {\n id: call.id,\n callerInfo: call.callerInfo,\n startTime: new Date(),\n endTime: undefined\n };\n}\n\n/**\n * @private\n */\nexport function convertFromSDKToDeclarativeVideoStreamRendererView(\n view: VideoStreamRendererView\n): DeclarativeVideoStreamRendererView {\n return {\n scalingMode: view.scalingMode,\n isMirrored: view.isMirrored,\n target: view.target\n };\n}\n\"../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"Converter.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/Converter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n RemoteParticipant as SdkRemoteParticipant,\n RemoteVideoStream as SdkRemoteVideoStream,\n LocalVideoStream as SdkLocalVideoStream,\n VideoStreamRendererView\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(close-captions) */\nimport { TeamsCaptionsInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { CallKind } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallState,\n RemoteParticipantState as DeclarativeRemoteParticipant,\n RemoteVideoStreamState as DeclarativeRemoteVideoStream,\n LocalVideoStreamState as DeclarativeLocalVideoStream,\n IncomingCallState as DeclarativeIncomingCall,\n VideoStreamRendererViewState as DeclarativeVideoStreamRendererView\n} from './CallClientState';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsInfo } from './CallClientState';\n\n/* @conditional-compile-remove(teams-identity-support) */\nimport { _isACSCall } from './TypeGuards';\nimport { CallCommon, IncomingCallCommon } from './BetaToStableTypes';\n\n/* @conditional-compile-remove(video-background-effects) */\nimport { Features } from '@azure/communication-calling';\n/* @conditional-compile-remove(video-background-effects) */\nimport { VideoEffectName } from '@azure/communication-calling';\n/* @conditional-compile-remove(video-background-effects) */\nimport { LocalVideoStreamVideoEffectsState } from './CallClientState';\n\n/**\n * @private\n */\nexport function convertSdkLocalStreamToDeclarativeLocalStream(\n stream: SdkLocalVideoStream\n): DeclarativeLocalVideoStream {\n /* @conditional-compile-remove(video-background-effects) */\n const localVideoStreamEffectsAPI = stream.feature(Features.VideoEffects);\n\n return {\n source: stream.source,\n mediaStreamType: stream.mediaStreamType,\n view: undefined,\n /* @conditional-compile-remove(video-background-effects) */\n videoEffects: convertFromSDKToDeclarativeVideoStreamVideoEffects(localVideoStreamEffectsAPI.activeEffects)\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkRemoteStreamToDeclarativeRemoteStream(\n stream: SdkRemoteVideoStream\n): DeclarativeRemoteVideoStream {\n return {\n id: stream.id,\n mediaStreamType: stream.mediaStreamType,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n view: undefined\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkParticipantToDeclarativeParticipant(\n participant: SdkRemoteParticipant\n): DeclarativeRemoteParticipant {\n const declarativeVideoStreams = {};\n for (const videoStream of participant.videoStreams) {\n declarativeVideoStreams[videoStream.id] = convertSdkRemoteStreamToDeclarativeRemoteStream(videoStream);\n }\n return {\n identifier: participant.identifier,\n displayName: participant.displayName,\n state: participant.state,\n callEndReason: participant.callEndReason,\n videoStreams: declarativeVideoStreams,\n isMuted: participant.isMuted,\n isSpeaking: participant.isSpeaking\n };\n}\n\n/**\n * @private\n *\n * Note at the time of writing only one LocalVideoStream is supported by the SDK.\n */\nexport function convertSdkCallToDeclarativeCall(call: CallCommon): CallState {\n const declarativeRemoteParticipants = {};\n call.remoteParticipants.forEach((participant: SdkRemoteParticipant) => {\n declarativeRemoteParticipants[toFlatCommunicationIdentifier(participant.identifier)] =\n convertSdkParticipantToDeclarativeParticipant(participant);\n });\n return {\n id: call.id,\n /* @conditional-compile-remove(teams-identity-support) */\n kind: _isACSCall(call) ? ('Call' as CallKind) : ('TeamsCall' as CallKind),\n callerInfo: call.callerInfo,\n state: call.state,\n callEndReason: call.callEndReason,\n diagnostics: {\n network: {\n latest: {}\n },\n media: {\n latest: {}\n }\n },\n direction: call.direction,\n isMuted: call.isMuted,\n isScreenSharingOn: call.isScreenSharingOn,\n localVideoStreams: call.localVideoStreams.map(convertSdkLocalStreamToDeclarativeLocalStream),\n remoteParticipants: declarativeRemoteParticipants,\n remoteParticipantsEnded: {},\n recording: { isRecordingActive: false },\n transcription: { isTranscriptionActive: false },\n screenShareRemoteParticipant: undefined,\n startTime: new Date(),\n endTime: undefined,\n /* @conditional-compile-remove(rooms) */\n role: call.role,\n /* @conditional-compile-remove(close-captions) */\n captionsFeature: {\n captions: [],\n supportedSpokenLanguages: [],\n supportedCaptionLanguages: [],\n currentCaptionLanguage: '',\n currentSpokenLanguage: '',\n isCaptionsFeatureActive: false,\n startCaptionsInProgress: false\n },\n /* @conditional-compile-remove(call-transfer) */\n transfer: {\n acceptedTransfers: {}\n },\n /* @conditional-compile-remove(optimal-video-count) */\n optimalVideoCount: {\n maxRemoteVideoStreams: call.feature(Features.OptimalVideoCount).optimalVideoCount\n }\n };\n}\n\n/**\n * @private\n */\nexport function convertSdkIncomingCallToDeclarativeIncomingCall(call: IncomingCallCommon): DeclarativeIncomingCall {\n return {\n id: call.id,\n callerInfo: call.callerInfo,\n startTime: new Date(),\n endTime: undefined\n };\n}\n\n/**\n * @private\n */\nexport function convertFromSDKToDeclarativeVideoStreamRendererView(\n view: VideoStreamRendererView\n): DeclarativeVideoStreamRendererView {\n return {\n scalingMode: view.scalingMode,\n isMirrored: view.isMirrored,\n target: view.target\n };\n}\n\n/* @conditional-compile-remove(close-captions) */\n/**\n * @private\n */\nexport function convertFromSDKToCaptionInfoState(caption: TeamsCaptionsInfo): CaptionsInfo {\n return {\n ...caption\n };\n}\n\n/* @conditional-compile-remove(video-background-effects) */\n/** @private */\nexport function convertFromSDKToDeclarativeVideoStreamVideoEffects(\n videoEffects: VideoEffectName[]\n): LocalVideoStreamVideoEffectsState {\n return {\n activeEffects: videoEffects\n };\n}\n\"../../acs-ui-common/src\""]}
@@ -1,5 +1,7 @@
1
1
  import { DeviceManager } from '@azure/communication-calling';
2
2
  import { CallContext } from './CallContext';
3
+ import { InternalCallContext } from './InternalCallContext';
4
+ import { LocalVideoStream } from '@azure/communication-calling';
3
5
  /**
4
6
  * Defines the additional methods added by the stateful on top of {@link @azure/communication-calling#DeviceManager}.
5
7
  *
@@ -12,6 +14,14 @@ export interface StatefulDeviceManager extends DeviceManager {
12
14
  * {@link StatefulDeviceManager}. See also {@link DeviceManagerState.selectedCamera}.
13
15
  */
14
16
  selectCamera: (VideoDeviceInfo: any) => void;
17
+ /**
18
+ * Gets the list of unparented video streams. This is a list of video streams that have not been added to a
19
+ * {@link @azure/communication-calling#Call}. This is useful for developers who want to interact with rendered
20
+ * video streams before they have started a call. See also {@link @azure/communication-react#CallClient.createView}.
21
+ *
22
+ * @beta
23
+ */
24
+ getUnparentedVideoStreams: () => LocalVideoStream[];
15
25
  }
16
26
  /**
17
27
  * Creates a declarative DeviceManager by proxying DeviceManager with ProxyDeviceManager. The declarative DeviceManager
@@ -19,6 +29,8 @@ export interface StatefulDeviceManager extends DeviceManager {
19
29
  *
20
30
  * @param deviceManager - DeviceManager from SDK
21
31
  * @param context - CallContext from StatefulCallClient
32
+ *
33
+ * @private
22
34
  */
23
- export declare const deviceManagerDeclaratify: (deviceManager: DeviceManager, context: CallContext) => DeviceManager;
35
+ export declare const deviceManagerDeclaratify: (deviceManager: DeviceManager, context: CallContext, internalContext: InternalCallContext) => DeviceManager;
24
36
  //# sourceMappingURL=DeviceManagerDeclarative.d.ts.map
@@ -146,8 +146,10 @@ const dedupeById = (devices) => {
146
146
  *
147
147
  * @param deviceManager - DeviceManager from SDK
148
148
  * @param context - CallContext from StatefulCallClient
149
+ *
150
+ * @private
149
151
  */
150
- export const deviceManagerDeclaratify = (deviceManager, context) => {
152
+ export const deviceManagerDeclaratify = (deviceManager, context, internalContext) => {
151
153
  const proxyDeviceManager = new ProxyDeviceManager(deviceManager, context);
152
154
  Object.defineProperty(deviceManager, 'unsubscribe', {
153
155
  configurable: false,
@@ -157,6 +159,11 @@ export const deviceManagerDeclaratify = (deviceManager, context) => {
157
159
  configurable: false,
158
160
  value: (videoDeviceInfo) => proxyDeviceManager.selectCamera(videoDeviceInfo)
159
161
  });
162
+ /* @conditional-compile-remove(video-background-effects) */
163
+ Object.defineProperty(deviceManager, 'getUnparentedVideoStreams', {
164
+ configurable: false,
165
+ value: () => internalContext.getUnparentedRenderInfos()
166
+ });
160
167
  return new Proxy(deviceManager, proxyDeviceManager);
161
168
  };
162
169
  //# sourceMappingURL=DeviceManagerDeclarative.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManagerDeclarative.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/DeviceManagerDeclarative.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAmBlC;;;;;;GAMG;AACH,MAAM,kBAAkB;IAItB,YAAY,aAA4B,EAAE,OAAoB;QAQtD,qBAAgB,GAAG,GAAS,EAAE;YACpC,mHAAmH;YACnH,4GAA4G;YAC5G,mDAAmD;YACnD,IAAI,CAAC,QAAQ,CAAC,2CAA2C,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;YAC3G,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YACzF,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACrF,CAAC,CAAC;QAEM,cAAS,GAAG,GAAS,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,2BAA2B,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACpF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,wBAAwB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAChF,CAAC,CAAC;QAEF;;WAEG;QACI,gBAAW,GAAG,GAAS,EAAE;YAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjF,CAAC,CAAC;QAEF;;;;WAIG;QACI,iBAAY,GAAG,CAAC,eAAgC,EAAQ,EAAE;YAC/D,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;QAChE,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAwB,EAAE;YACtD,iGAAiG;YACjG,wCAAwC;YACxC,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrF,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACjE,CAAC,CAAA,CAAC;QAEM,wBAAmB,GAAG,GAAwB,EAAE;YACtD,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAA,CAAC;QAEM,8BAAyB,GAAG,GAAS,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAC3F,CAAC,CAAC;QAEM,2BAAsB,GAAG,GAAS,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACrF,CAAC,CAAC;QA5DA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAyDM,GAAG,CAAgC,MAAqB,EAAE,IAAO;QACtE,QAAQ,IAAI,EAAE;YACZ,KAAK,YAAY,CAAC,CAAC;gBACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,GAA+B,EAAE;oBAC9E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,OAA0B,EAAE,EAAE;wBAC7D,iGAAiG;wBACjG,wCAAwC;wBACxC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACpD,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/D,OAAO,WAAW,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,0BAA0B,CAAC,CAAC;aAChC;YACD,KAAK,gBAAgB,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,GAA+B,EAAE;oBAC9E,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,WAA8B,EAAE,EAAE;wBACrE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;wBACnE,OAAO,WAAW,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,8BAA8B,CAAC,CAAC;aACpC;YACD,KAAK,aAAa,CAAC,CAAC;gBAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,GAA+B,EAAE;oBAC9E,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,QAA2B,EAAE,EAAE;wBAC/D,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC7D,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,2BAA2B,CAAC,CAAC;aACjC;YACD,KAAK,kBAAkB,CAAC,CAAC;gBACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAC5C,CAAC,GAAG,IAAmD,EAAiB,EAAE;oBACxE,OAAO,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChD,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBAC9E,CAAC,CAAC,CAAC;gBACL,CAAC,EACD,gCAAgC,CACjC,CAAC;aACH;YACD,KAAK,eAAe,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAC5C,CAAC,GAAG,IAAgD,EAAiB,EAAE;oBACrE,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC7C,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBACxE,CAAC,CAAC,CAAC;gBACL,CAAC,EACD,6BAA6B,CAC9B,CAAC;aACH;YACD,KAAK,qBAAqB,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAC5C,CAAC,GAAG,IAAsD,EAAyB,EAAE;oBACnF,OAAO,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAA0B,EAAE,EAAE;wBAC7E,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;wBACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,OAAO,YAAY,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,EACD,mCAAmC,CACpC,CAAC;aACH;YACD;gBACE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;IACH,CAAC;CACF;AAED,iFAAiF;AACjF,oFAAoF;AACpF,MAAM,UAAU,GAAG,CAA2B,OAAY,EAAO,EAAE;IACjE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,MAAM,aAAa,GAAQ,EAAE,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAS,EAAE,EAAE;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YACvB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACpB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAA4B,EAAE,OAAoB,EAAiB,EAAE;IAC5G,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE;QAClD,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE;QACnD,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,CAAC,eAAgC,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,eAAe,CAAC;KAC9F,CAAC,CAAC;IACH,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAA0B,CAAC;AAC/E,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AudioDeviceInfo, DeviceAccess, DeviceManager, VideoDeviceInfo } from '@azure/communication-calling';\nimport { CallContext } from './CallContext';\n\n/**\n * Defines the additional methods added by the stateful on top of {@link @azure/communication-calling#DeviceManager}.\n *\n * @public\n */\nexport interface StatefulDeviceManager extends DeviceManager {\n /**\n * Sets the selectedCamera in the {@link DeviceManagerState}. This is completely developer driven and is not tied in\n * any way to {@link @azure/communication-calling#DeviceManager}. It is entirely contained in\n * {@link StatefulDeviceManager}. See also {@link DeviceManagerState.selectedCamera}.\n */\n selectCamera: (VideoDeviceInfo) => void;\n}\n\n/**\n * ProxyDeviceManager proxies DeviceManager and subscribes to all events that affect device manager state. State updates\n * are set on the provided context. Also any queries for state are proxied and stored in state as well. Only one device\n * manager should exist for a given CallClient so if CallClient.getDeviceManager is called multiple times, either a\n * cached ProxyDeviceManager should be returned or the existing ProxyDeviceManager should be destructed via destructor()\n * and a new ProxyDeviceManager created.\n */\nclass ProxyDeviceManager implements ProxyHandler<DeviceManager> {\n private _deviceManager: DeviceManager;\n private _context: CallContext;\n\n constructor(deviceManager: DeviceManager, context: CallContext) {\n this._deviceManager = deviceManager;\n this._context = context;\n\n this.setDeviceManager();\n this.subscribe();\n }\n\n private setDeviceManager = (): void => {\n // isSpeakerSelectionAvailable, selectedMicrophone, and selectedSpeaker are properties on DeviceManager. Since they\n // are not functions we can't proxy them so we'll update whenever we think they may need updating such as at\n // construction time or when certain events happen.\n this._context.setDeviceManagerIsSpeakerSelectionAvailable(this._deviceManager.isSpeakerSelectionAvailable);\n this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);\n this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);\n };\n\n private subscribe = (): void => {\n this._deviceManager.on('videoDevicesUpdated', this.videoDevicesUpdated);\n this._deviceManager.on('audioDevicesUpdated', this.audioDevicesUpdated);\n this._deviceManager.on('selectedMicrophoneChanged', this.selectedMicrophoneChanged);\n this._deviceManager.on('selectedSpeakerChanged', this.selectedSpeakerChanged);\n };\n\n /**\n * This is used to unsubscribe DeclarativeDeviceManager from the DeviceManager events.\n */\n public unsubscribe = (): void => {\n this._deviceManager.off('videoDevicesUpdated', this.videoDevicesUpdated);\n this._deviceManager.off('audioDevicesUpdated', this.audioDevicesUpdated);\n this._deviceManager.off('selectedMicrophoneChanged', this.selectedMicrophoneChanged);\n this._deviceManager.off('selectedSpeakerChanged', this.selectedSpeakerChanged);\n };\n\n /**\n * Used to set a camera inside the proxy device manager.\n *\n * @param videoDeviceInfo VideoDeviceInfo\n */\n public selectCamera = (videoDeviceInfo: VideoDeviceInfo): void => {\n this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);\n };\n\n private videoDevicesUpdated = async (): Promise<void> => {\n // Device Manager always has a camera with '' name if there are no real camera devices available.\n // We don't want to show that in the UI.\n const realCameras = (await this._deviceManager.getCameras()).filter((c) => !!c.name);\n this._context.setDeviceManagerCameras(dedupeById(realCameras));\n };\n\n private audioDevicesUpdated = async (): Promise<void> => {\n this._context.setDeviceManagerMicrophones(dedupeById(await this._deviceManager.getMicrophones()));\n this._context.setDeviceManagerSpeakers(dedupeById(await this._deviceManager.getSpeakers()));\n };\n\n private selectedMicrophoneChanged = (): void => {\n this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);\n };\n\n private selectedSpeakerChanged = (): void => {\n this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);\n };\n\n public get<P extends keyof DeviceManager>(target: DeviceManager, prop: P): any {\n switch (prop) {\n case 'getCameras': {\n return this._context.withAsyncErrorTeedToState((): Promise<VideoDeviceInfo[]> => {\n return target.getCameras().then((cameras: VideoDeviceInfo[]) => {\n // Device Manager always has a camera with '' name if there are no real camera devices available.\n // We don't want to show that in the UI.\n const realCameras = cameras.filter((c) => !!c.name);\n this._context.setDeviceManagerCameras(dedupeById(realCameras));\n return realCameras;\n });\n }, 'DeviceManager.getCameras');\n }\n case 'getMicrophones': {\n return this._context.withAsyncErrorTeedToState((): Promise<AudioDeviceInfo[]> => {\n return target.getMicrophones().then((microphones: AudioDeviceInfo[]) => {\n this._context.setDeviceManagerMicrophones(dedupeById(microphones));\n return microphones;\n });\n }, 'DeviceManager.getMicrophones');\n }\n case 'getSpeakers': {\n return this._context.withAsyncErrorTeedToState((): Promise<AudioDeviceInfo[]> => {\n return target.getSpeakers().then((speakers: AudioDeviceInfo[]) => {\n this._context.setDeviceManagerSpeakers(dedupeById(speakers));\n return speakers;\n });\n }, 'DeviceManager.getSpeakers');\n }\n case 'selectMicrophone': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['selectMicrophone']>): Promise<void> => {\n return target.selectMicrophone(...args).then(() => {\n this._context.setDeviceManagerSelectedMicrophone(target.selectedMicrophone);\n });\n },\n 'DeviceManager.selectMicrophone'\n );\n }\n case 'selectSpeaker': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['selectSpeaker']>): Promise<void> => {\n return target.selectSpeaker(...args).then(() => {\n this._context.setDeviceManagerSelectedSpeaker(target.selectedSpeaker);\n });\n },\n 'DeviceManager.selectSpeaker'\n );\n }\n case 'askDevicePermission': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['askDevicePermission']>): Promise<DeviceAccess> => {\n return target.askDevicePermission(...args).then((deviceAccess: DeviceAccess) => {\n this._context.setDeviceManagerDeviceAccess(deviceAccess);\n this.setDeviceManager();\n return deviceAccess;\n });\n },\n 'DeviceManager.askDevicePermission'\n );\n }\n default:\n return Reflect.get(target, prop);\n }\n }\n}\n\n// TODO: Remove this when SDK no longer returns duplicate audio and video devices\n/** Helper function to dedupe duplicate audio and video devices obtained from SDK */\nconst dedupeById = <T extends { id: string }>(devices: T[]): T[] => {\n const ids = new Set();\n const uniqueDevices: T[] = [];\n devices.forEach((device: T) => {\n if (!ids.has(device.id)) {\n uniqueDevices.push(device);\n ids.add(device.id);\n }\n });\n return uniqueDevices;\n};\n\n/**\n * Creates a declarative DeviceManager by proxying DeviceManager with ProxyDeviceManager. The declarative DeviceManager\n * will put state updates in the given context.\n *\n * @param deviceManager - DeviceManager from SDK\n * @param context - CallContext from StatefulCallClient\n */\nexport const deviceManagerDeclaratify = (deviceManager: DeviceManager, context: CallContext): DeviceManager => {\n const proxyDeviceManager = new ProxyDeviceManager(deviceManager, context);\n Object.defineProperty(deviceManager, 'unsubscribe', {\n configurable: false,\n value: () => proxyDeviceManager.unsubscribe()\n });\n Object.defineProperty(deviceManager, 'selectCamera', {\n configurable: false,\n value: (videoDeviceInfo: VideoDeviceInfo) => proxyDeviceManager.selectCamera(videoDeviceInfo)\n });\n return new Proxy(deviceManager, proxyDeviceManager) as StatefulDeviceManager;\n};\n"]}
1
+ {"version":3,"file":"DeviceManagerDeclarative.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/DeviceManagerDeclarative.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AudioDeviceInfo, DeviceAccess, DeviceManager, VideoDeviceInfo } from '@azure/communication-calling';\nimport { CallContext } from './CallContext';\nimport { InternalCallContext } from './InternalCallContext';\n/* @conditional-compile-remove(video-background-effects) */\nimport { LocalVideoStream } from '@azure/communication-calling';\n\n/**\n * Defines the additional methods added by the stateful on top of {@link @azure/communication-calling#DeviceManager}.\n *\n * @public\n */\nexport interface StatefulDeviceManager extends DeviceManager {\n /**\n * Sets the selectedCamera in the {@link DeviceManagerState}. This is completely developer driven and is not tied in\n * any way to {@link @azure/communication-calling#DeviceManager}. It is entirely contained in\n * {@link StatefulDeviceManager}. See also {@link DeviceManagerState.selectedCamera}.\n */\n selectCamera: (VideoDeviceInfo) => void;\n\n /* @conditional-compile-remove(video-background-effects) */\n /**\n * Gets the list of unparented video streams. This is a list of video streams that have not been added to a\n * {@link @azure/communication-calling#Call}. This is useful for developers who want to interact with rendered\n * video streams before they have started a call. See also {@link @azure/communication-react#CallClient.createView}.\n *\n * @beta\n */\n getUnparentedVideoStreams: () => LocalVideoStream[];\n}\n\n/**\n * ProxyDeviceManager proxies DeviceManager and subscribes to all events that affect device manager state. State updates\n * are set on the provided context. Also any queries for state are proxied and stored in state as well. Only one device\n * manager should exist for a given CallClient so if CallClient.getDeviceManager is called multiple times, either a\n * cached ProxyDeviceManager should be returned or the existing ProxyDeviceManager should be destructed via destructor()\n * and a new ProxyDeviceManager created.\n */\nclass ProxyDeviceManager implements ProxyHandler<DeviceManager> {\n private _deviceManager: DeviceManager;\n private _context: CallContext;\n\n constructor(deviceManager: DeviceManager, context: CallContext) {\n this._deviceManager = deviceManager;\n this._context = context;\n\n this.setDeviceManager();\n this.subscribe();\n }\n\n private setDeviceManager = (): void => {\n // isSpeakerSelectionAvailable, selectedMicrophone, and selectedSpeaker are properties on DeviceManager. Since they\n // are not functions we can't proxy them so we'll update whenever we think they may need updating such as at\n // construction time or when certain events happen.\n this._context.setDeviceManagerIsSpeakerSelectionAvailable(this._deviceManager.isSpeakerSelectionAvailable);\n this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);\n this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);\n };\n\n private subscribe = (): void => {\n this._deviceManager.on('videoDevicesUpdated', this.videoDevicesUpdated);\n this._deviceManager.on('audioDevicesUpdated', this.audioDevicesUpdated);\n this._deviceManager.on('selectedMicrophoneChanged', this.selectedMicrophoneChanged);\n this._deviceManager.on('selectedSpeakerChanged', this.selectedSpeakerChanged);\n };\n\n /**\n * This is used to unsubscribe DeclarativeDeviceManager from the DeviceManager events.\n */\n public unsubscribe = (): void => {\n this._deviceManager.off('videoDevicesUpdated', this.videoDevicesUpdated);\n this._deviceManager.off('audioDevicesUpdated', this.audioDevicesUpdated);\n this._deviceManager.off('selectedMicrophoneChanged', this.selectedMicrophoneChanged);\n this._deviceManager.off('selectedSpeakerChanged', this.selectedSpeakerChanged);\n };\n\n /**\n * Used to set a camera inside the proxy device manager.\n *\n * @param videoDeviceInfo VideoDeviceInfo\n */\n public selectCamera = (videoDeviceInfo: VideoDeviceInfo): void => {\n this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);\n };\n\n private videoDevicesUpdated = async (): Promise<void> => {\n // Device Manager always has a camera with '' name if there are no real camera devices available.\n // We don't want to show that in the UI.\n const realCameras = (await this._deviceManager.getCameras()).filter((c) => !!c.name);\n this._context.setDeviceManagerCameras(dedupeById(realCameras));\n };\n\n private audioDevicesUpdated = async (): Promise<void> => {\n this._context.setDeviceManagerMicrophones(dedupeById(await this._deviceManager.getMicrophones()));\n this._context.setDeviceManagerSpeakers(dedupeById(await this._deviceManager.getSpeakers()));\n };\n\n private selectedMicrophoneChanged = (): void => {\n this._context.setDeviceManagerSelectedMicrophone(this._deviceManager.selectedMicrophone);\n };\n\n private selectedSpeakerChanged = (): void => {\n this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);\n };\n\n public get<P extends keyof DeviceManager>(target: DeviceManager, prop: P): any {\n switch (prop) {\n case 'getCameras': {\n return this._context.withAsyncErrorTeedToState((): Promise<VideoDeviceInfo[]> => {\n return target.getCameras().then((cameras: VideoDeviceInfo[]) => {\n // Device Manager always has a camera with '' name if there are no real camera devices available.\n // We don't want to show that in the UI.\n const realCameras = cameras.filter((c) => !!c.name);\n this._context.setDeviceManagerCameras(dedupeById(realCameras));\n return realCameras;\n });\n }, 'DeviceManager.getCameras');\n }\n case 'getMicrophones': {\n return this._context.withAsyncErrorTeedToState((): Promise<AudioDeviceInfo[]> => {\n return target.getMicrophones().then((microphones: AudioDeviceInfo[]) => {\n this._context.setDeviceManagerMicrophones(dedupeById(microphones));\n return microphones;\n });\n }, 'DeviceManager.getMicrophones');\n }\n case 'getSpeakers': {\n return this._context.withAsyncErrorTeedToState((): Promise<AudioDeviceInfo[]> => {\n return target.getSpeakers().then((speakers: AudioDeviceInfo[]) => {\n this._context.setDeviceManagerSpeakers(dedupeById(speakers));\n return speakers;\n });\n }, 'DeviceManager.getSpeakers');\n }\n case 'selectMicrophone': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['selectMicrophone']>): Promise<void> => {\n return target.selectMicrophone(...args).then(() => {\n this._context.setDeviceManagerSelectedMicrophone(target.selectedMicrophone);\n });\n },\n 'DeviceManager.selectMicrophone'\n );\n }\n case 'selectSpeaker': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['selectSpeaker']>): Promise<void> => {\n return target.selectSpeaker(...args).then(() => {\n this._context.setDeviceManagerSelectedSpeaker(target.selectedSpeaker);\n });\n },\n 'DeviceManager.selectSpeaker'\n );\n }\n case 'askDevicePermission': {\n return this._context.withAsyncErrorTeedToState(\n (...args: Parameters<DeviceManager['askDevicePermission']>): Promise<DeviceAccess> => {\n return target.askDevicePermission(...args).then((deviceAccess: DeviceAccess) => {\n this._context.setDeviceManagerDeviceAccess(deviceAccess);\n this.setDeviceManager();\n return deviceAccess;\n });\n },\n 'DeviceManager.askDevicePermission'\n );\n }\n default:\n return Reflect.get(target, prop);\n }\n }\n}\n\n// TODO: Remove this when SDK no longer returns duplicate audio and video devices\n/** Helper function to dedupe duplicate audio and video devices obtained from SDK */\nconst dedupeById = <T extends { id: string }>(devices: T[]): T[] => {\n const ids = new Set();\n const uniqueDevices: T[] = [];\n devices.forEach((device: T) => {\n if (!ids.has(device.id)) {\n uniqueDevices.push(device);\n ids.add(device.id);\n }\n });\n return uniqueDevices;\n};\n\n/**\n * Creates a declarative DeviceManager by proxying DeviceManager with ProxyDeviceManager. The declarative DeviceManager\n * will put state updates in the given context.\n *\n * @param deviceManager - DeviceManager from SDK\n * @param context - CallContext from StatefulCallClient\n *\n * @private\n */\nexport const deviceManagerDeclaratify = (\n deviceManager: DeviceManager,\n context: CallContext,\n internalContext: InternalCallContext\n): DeviceManager => {\n const proxyDeviceManager = new ProxyDeviceManager(deviceManager, context);\n Object.defineProperty(deviceManager, 'unsubscribe', {\n configurable: false,\n value: () => proxyDeviceManager.unsubscribe()\n });\n Object.defineProperty(deviceManager, 'selectCamera', {\n configurable: false,\n value: (videoDeviceInfo: VideoDeviceInfo) => proxyDeviceManager.selectCamera(videoDeviceInfo)\n });\n /* @conditional-compile-remove(video-background-effects) */\n Object.defineProperty(deviceManager, 'getUnparentedVideoStreams', {\n configurable: false,\n value: (): LocalVideoStream[] => internalContext.getUnparentedRenderInfos()\n });\n return new Proxy(deviceManager, proxyDeviceManager) as StatefulDeviceManager;\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LocalVideoStream, RemoteVideoStream, VideoStreamRenderer } from '@azure/communication-calling';
2
2
  import { LocalVideoStreamState } from './CallClientState';
3
+ import type { CallContext } from './CallContext';
3
4
  /**
4
5
  * Internally tracked render status. Stores the status of a video render of a stream as rendering could take a long
5
6
  * time.
@@ -37,6 +38,7 @@ export declare class InternalCallContext {
37
38
  private _localRenderInfos;
38
39
  private _unparentedRenderInfos;
39
40
  private _callIdHistory;
41
+ private _unparentedViewVideoEffectsSubscriber;
40
42
  setCallId(newCallId: string, oldCallId: string): void;
41
43
  getCallIds(): IterableIterator<string>;
42
44
  getRemoteRenderInfoForCall(callId: string): Map<string, Map<number, RemoteRenderInfo>> | undefined;
@@ -47,8 +49,10 @@ export declare class InternalCallContext {
47
49
  getLocalRenderInfo(callId: string): LocalRenderInfo | undefined;
48
50
  deleteLocalRenderInfo(callId: string): void;
49
51
  getUnparentedRenderInfo(localVideoStream: LocalVideoStreamState): LocalRenderInfo | undefined;
52
+ getUnparentedRenderInfos(): LocalVideoStream[];
50
53
  setUnparentedRenderInfo(statefulStream: LocalVideoStreamState, stream: LocalVideoStream, status: RenderStatus, renderer: VideoStreamRenderer | undefined): void;
51
54
  deleteUnparentedRenderInfo(localVideoStream: LocalVideoStreamState): void;
55
+ subscribeToUnparentedViewVideoEffects(localVideoStream: LocalVideoStream, callContext: CallContext): void;
52
56
  clearCallRelatedState(): void;
53
57
  }
54
58
  //# sourceMappingURL=InternalCallContext.d.ts.map