@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
@@ -13,6 +13,10 @@ import { LocalVideoStream } from '@azure/communication-calling';
13
13
  import { toFlatCommunicationIdentifier } from "../../../acs-ui-common/src";
14
14
  import memoizeOne from 'memoize-one';
15
15
  import { disposeAllLocalPreviewViews, _isInCall, _isInLobbyOrConnecting, _isPreviewOn } from '../utils/callUtils';
16
+ /* @conditional-compile-remove(video-background-effects) */
17
+ import { BackgroundBlurEffect, BackgroundReplacementEffect } from '@azure/communication-calling-effects';
18
+ /* @conditional-compile-remove(video-background-effects) */
19
+ import { Features } from '@azure/communication-calling';
16
20
  /**
17
21
  * @private
18
22
  */
@@ -52,10 +56,6 @@ export const createDefaultCommonCallingHandlers = memoizeOne((callClient, device
52
56
  }
53
57
  if (call && call.localVideoStreams.find((s) => areStreamsEqual(s, stream))) {
54
58
  yield call.stopVideo(stream);
55
- yield callClient.disposeView(callId, undefined, {
56
- source: stream.source,
57
- mediaStreamType: stream.mediaStreamType
58
- });
59
59
  }
60
60
  });
61
61
  const onToggleCamera = (options) => __awaiter(void 0, void 0, void 0, function* () {
@@ -181,8 +181,11 @@ export const createDefaultCommonCallingHandlers = memoizeOne((callClient, device
181
181
  if (!participant || !participant.videoStreams) {
182
182
  return;
183
183
  }
184
- const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');
185
- const screenShareStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing');
184
+ // Find the first available stream, if there is none, then get the first stream
185
+ const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||
186
+ Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');
187
+ const screenShareStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||
188
+ Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing');
186
189
  let createViewResult = undefined;
187
190
  if (remoteVideoStream && remoteVideoStream.isAvailable && !remoteVideoStream.view) {
188
191
  createViewResult = yield callClient.createView(call.id, participant.identifier, remoteVideoStream, options);
@@ -218,6 +221,40 @@ export const createDefaultCommonCallingHandlers = memoizeOne((callClient, device
218
221
  callClient.disposeView(call.id, participant.identifier, screenShareStream);
219
222
  }
220
223
  });
224
+ const onDisposeRemoteVideoStreamView = (userId) => __awaiter(void 0, void 0, void 0, function* () {
225
+ if (!call) {
226
+ return;
227
+ }
228
+ const callState = callClient.getState().calls[call.id];
229
+ if (!callState) {
230
+ throw new Error(`Call Not Found: ${call.id}`);
231
+ }
232
+ const participant = Object.values(callState.remoteParticipants).find((participant) => toFlatCommunicationIdentifier(participant.identifier) === userId);
233
+ if (!participant || !participant.videoStreams) {
234
+ return;
235
+ }
236
+ const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');
237
+ if (remoteVideoStream && remoteVideoStream.view) {
238
+ callClient.disposeView(call.id, participant.identifier, remoteVideoStream);
239
+ }
240
+ });
241
+ const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter(void 0, void 0, void 0, function* () {
242
+ if (!call) {
243
+ return;
244
+ }
245
+ const callState = callClient.getState().calls[call.id];
246
+ if (!callState) {
247
+ throw new Error(`Call Not Found: ${call.id}`);
248
+ }
249
+ const participant = Object.values(callState.remoteParticipants).find((participant) => toFlatCommunicationIdentifier(participant.identifier) === userId);
250
+ if (!participant || !participant.videoStreams) {
251
+ return;
252
+ }
253
+ const screenShareStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing');
254
+ if (screenShareStream && screenShareStream.view) {
255
+ callClient.disposeView(call.id, participant.identifier, screenShareStream);
256
+ }
257
+ });
221
258
  const onDisposeLocalStreamView = () => __awaiter(void 0, void 0, void 0, function* () {
222
259
  // If the user is currently in a call, dispose of the local stream view attached to that call.
223
260
  const callState = call && callClient.getState().calls[call.id];
@@ -241,6 +278,48 @@ export const createDefaultCommonCallingHandlers = memoizeOne((callClient, device
241
278
  yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
242
279
  }
243
280
  });
281
+ /* @conditional-compile-remove(video-background-effects) */
282
+ const onRemoveVideoBackgroundEffects = () => __awaiter(void 0, void 0, void 0, function* () {
283
+ const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
284
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
285
+ if (stream) {
286
+ return stream.feature(Features.VideoEffects).stopEffects();
287
+ }
288
+ });
289
+ /* @conditional-compile-remove(video-background-effects) */
290
+ const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter(void 0, void 0, void 0, function* () {
291
+ const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
292
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
293
+ if (stream) {
294
+ return stream.feature(Features.VideoEffects).startEffects(new BackgroundBlurEffect(backgroundBlurConfig));
295
+ }
296
+ });
297
+ /* @conditional-compile-remove(video-background-effects) */
298
+ const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter(void 0, void 0, void 0, function* () {
299
+ const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
300
+ (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
301
+ if (stream) {
302
+ return stream
303
+ .feature(Features.VideoEffects)
304
+ .startEffects(new BackgroundReplacementEffect(backgroundReplacementConfig));
305
+ }
306
+ });
307
+ /* @conditional-compile-remove(close-captions) */
308
+ const onStartCaptions = (options) => __awaiter(void 0, void 0, void 0, function* () {
309
+ yield (call === null || call === void 0 ? void 0 : call.feature(Features.TeamsCaptions).startCaptions(options));
310
+ });
311
+ /* @conditional-compile-remove(close-captions) */
312
+ const onStopCaptions = () => __awaiter(void 0, void 0, void 0, function* () {
313
+ yield (call === null || call === void 0 ? void 0 : call.feature(Features.TeamsCaptions).stopCaptions());
314
+ });
315
+ /* @conditional-compile-remove(close-captions) */
316
+ const onSetSpokenLanguage = (language) => __awaiter(void 0, void 0, void 0, function* () {
317
+ yield (call === null || call === void 0 ? void 0 : call.feature(Features.TeamsCaptions).setSpokenLanguage(language));
318
+ });
319
+ /* @conditional-compile-remove(close-captions) */
320
+ const onSetCaptionLanguage = (language) => __awaiter(void 0, void 0, void 0, function* () {
321
+ yield (call === null || call === void 0 ? void 0 : call.feature(Features.TeamsCaptions).setCaptionLanguage(language));
322
+ });
244
323
  return {
245
324
  onHangUp,
246
325
  /* @conditional-compile-remove(PSTN-calls) */
@@ -258,13 +337,29 @@ export const createDefaultCommonCallingHandlers = memoizeOne((callClient, device
258
337
  onStartLocalVideo,
259
338
  onDisposeRemoteStreamView,
260
339
  onDisposeLocalStreamView,
340
+ onDisposeRemoteScreenShareStreamView,
341
+ onDisposeRemoteVideoStreamView,
261
342
  /* @conditional-compile-remove(PSTN-calls) */
262
343
  onAddParticipant: notImplemented,
263
344
  onRemoveParticipant: notImplemented,
264
345
  onStartCall: notImplemented,
265
346
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone,
266
347
  /* @conditional-compile-remove(call-readiness) */
267
- askDevicePermission
348
+ askDevicePermission,
349
+ /* @conditional-compile-remove(video-background-effects) */
350
+ onRemoveVideoBackgroundEffects,
351
+ /* @conditional-compile-remove(video-background-effects) */
352
+ onBlurVideoBackground,
353
+ /* @conditional-compile-remove(video-background-effects) */
354
+ onReplaceVideoBackground,
355
+ /* @conditional-compile-remove(close-captions) */
356
+ onStartCaptions,
357
+ /* @conditional-compile-remove(close-captions) */
358
+ onStopCaptions,
359
+ /* @conditional-compile-remove(close-captions) */
360
+ onSetCaptionLanguage,
361
+ /* @conditional-compile-remove(close-captions) */
362
+ onSetSpokenLanguage
268
363
  };
269
364
  });
270
365
  //# sourceMappingURL=createCommonHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCommonHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/handlers/createCommonHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AudioDeviceInfo,\n Call,\n LocalVideoStream,\n StartCallOptions,\n VideoDeviceInfo\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { DtmfTone, AddPhoneNumberOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCall } from '@azure/communication-calling';\n/* @conditional-compile-remove(call-readiness) */\nimport { PermissionConstraints } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CreateViewResult, StatefulCallClient, StatefulDeviceManager } from '@internal/calling-stateful-client';\nimport memoizeOne from 'memoize-one';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\nimport { disposeAllLocalPreviewViews, _isInCall, _isInLobbyOrConnecting, _isPreviewOn } from '../utils/callUtils';\nimport { CommunicationUserIdentifier, PhoneNumberIdentifier, UnknownIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CommunicationIdentifier } from '@azure/communication-common';\n\n/**\n * Object containing all the handlers required for calling components.\n *\n * Calling related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport interface CommonCallingHandlers {\n onStartLocalVideo: () => Promise<void>;\n onToggleCamera: (options?: VideoStreamOptions) => Promise<void>;\n onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n onSelectCamera: (device: VideoDeviceInfo, options?: VideoStreamOptions) => Promise<void>;\n onToggleMicrophone: () => Promise<void>;\n onStartScreenShare: () => Promise<void>;\n onStopScreenShare: () => Promise<void>;\n onToggleScreenShare: () => Promise<void>;\n onHangUp: (forEveryone?: boolean) => Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onToggleHold: () => Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant(participant: CommunicationUserIdentifier): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant(participant: PhoneNumberIdentifier, options: AddPhoneNumberOptions): Promise<void>;\n onCreateLocalStreamView: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n onCreateRemoteStreamView: (\n userId: string,\n options?: VideoStreamOptions\n ) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeRemoteStreamView: (userId: string) => Promise<void>;\n onDisposeLocalStreamView: () => Promise<void>;\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n onSendDtmfTone: (dtmfTone: DtmfTone) => Promise<void>;\n onRemoveParticipant(userId: string): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onRemoveParticipant(participant: CommunicationIdentifier): Promise<void>;\n /* @conditional-compile-remove(call-readiness) */\n askDevicePermission: (constrain: PermissionConstraints) => Promise<void>;\n onStartCall: (\n participants: (CommunicationUserIdentifier | PhoneNumberIdentifier | UnknownIdentifier)[],\n options?: StartCallOptions\n ) => void;\n}\n\n/**\n * @private\n */\nexport const areStreamsEqual = (prevStream: LocalVideoStream, newStream: LocalVideoStream): boolean => {\n return !!prevStream && !!newStream && prevStream.source.id === newStream.source.id;\n};\n\n/**\n * Create the common implementation of {@link CallingHandlers} for all types of Call\n *\n * @private\n */\nexport const createDefaultCommonCallingHandlers = memoizeOne(\n (\n callClient: StatefulCallClient,\n deviceManager: StatefulDeviceManager | undefined,\n call: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall | undefined\n ): CommonCallingHandlers => {\n const onStartLocalVideo = async (): Promise<void> => {\n // Before the call object creates a stream, dispose of any local preview streams.\n // @TODO: is there any way to parent the unparented view to the call object instead\n // of disposing and creating a new stream?\n await disposeAllLocalPreviewViews(callClient);\n\n const callId = call?.id;\n let videoDeviceInfo = callClient.getState().deviceManager.selectedCamera;\n if (!videoDeviceInfo) {\n const cameras = await deviceManager?.getCameras();\n videoDeviceInfo = cameras && cameras.length > 0 ? cameras[0] : undefined;\n videoDeviceInfo && deviceManager?.selectCamera(videoDeviceInfo);\n }\n if (!callId || !videoDeviceInfo) {\n return;\n }\n const stream = new LocalVideoStream(videoDeviceInfo);\n if (call && !call.localVideoStreams.find((s) => areStreamsEqual(s, stream))) {\n await call.startVideo(stream);\n }\n };\n\n const onStopLocalVideo = async (stream: LocalVideoStream): Promise<void> => {\n const callId = call?.id;\n if (!callId) {\n return;\n }\n if (call && call.localVideoStreams.find((s) => areStreamsEqual(s, stream))) {\n await call.stopVideo(stream);\n await callClient.disposeView(callId, undefined, {\n source: stream.source,\n mediaStreamType: stream.mediaStreamType\n });\n }\n };\n\n const onToggleCamera = async (options?: VideoStreamOptions): Promise<void> => {\n const previewOn = _isPreviewOn(callClient.getState().deviceManager);\n\n if (previewOn && call && call.state === 'Connecting') {\n // This is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.\n // The root cause of the issue is caused by never transitioning the unparented view to the\n // call object when going from configuration page (disconnected call state) to connecting.\n //\n // Currently the only time the local video stream is moved from unparented view to the call\n // object is when we transition from connecting -> call state. If the camera was on,\n // inside the MediaGallery we trigger toggleCamera. This triggers onStartLocalVideo which\n // destroys the unparentedView and creates a new stream in the call - so all looks well.\n //\n // However, if someone turns off their camera during the lobbyOrConnecting screen, the\n // call.localVideoStreams will be empty (as the stream is currently stored in the unparented\n // views and was never transitioned to the call object) and thus we incorrectly try to create\n // a new video stream for the call object, instead of only stopping the unparented view.\n //\n // The correct fix for this is to ensure that callAgent.onStartCall is called with the\n // localvideostream as a videoOption. That will mean call.onLocalVideoStreamsUpdated will\n // be triggered when the call is in connecting state, which we can then transition the\n // local video stream to the stateful call client and get into a clean state.\n await onDisposeLocalStreamView();\n return;\n }\n\n if (call && (_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {\n const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n if (stream) {\n await onStopLocalVideo(stream);\n } else {\n await onStartLocalVideo();\n }\n } else {\n const selectedCamera = callClient.getState().deviceManager.selectedCamera;\n if (selectedCamera) {\n if (previewOn) {\n await onDisposeLocalStreamView();\n } else {\n await callClient.createView(\n undefined,\n undefined,\n {\n source: selectedCamera,\n mediaStreamType: 'Video'\n },\n options\n );\n }\n }\n }\n };\n\n const onSelectMicrophone = async (device: AudioDeviceInfo): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n return deviceManager.selectMicrophone(device);\n };\n\n const onSelectSpeaker = async (device: AudioDeviceInfo): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n return deviceManager.selectSpeaker(device);\n };\n\n const onSelectCamera = async (device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n if (call && _isInCall(call.state)) {\n deviceManager.selectCamera(device);\n const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return stream?.switchSource(device);\n } else {\n const previewOn = _isPreviewOn(callClient.getState().deviceManager);\n\n if (!previewOn) {\n deviceManager.selectCamera(device);\n return;\n }\n\n await onDisposeLocalStreamView();\n\n deviceManager.selectCamera(device);\n await callClient.createView(\n undefined,\n undefined,\n {\n source: device,\n mediaStreamType: 'Video'\n },\n options\n );\n }\n };\n\n const onToggleMicrophone = async (): Promise<void> => {\n if (!call || !_isInCall(call.state)) {\n throw new Error(`Please invoke onToggleMicrophone after call is started`);\n }\n return call.isMuted ? await call.unmute() : await call.mute();\n };\n\n const onStartScreenShare = async (): Promise<void> => await call?.startScreenSharing();\n\n const onStopScreenShare = async (): Promise<void> => await call?.stopScreenSharing();\n\n const onToggleScreenShare = async (): Promise<void> =>\n call?.isScreenSharingOn ? await onStopScreenShare() : await onStartScreenShare();\n\n const onHangUp = async (forEveryone?: boolean): Promise<void> =>\n await call?.hangUp({ forEveryone: forEveryone === true ? true : false });\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onToggleHold = async (): Promise<void> =>\n call?.state === 'LocalHold' ? await call?.resume() : await call?.hold();\n\n const onCreateLocalStreamView = async (\n options = { scalingMode: 'Crop', isMirrored: true } as VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> => {\n if (!call || call.localVideoStreams.length === 0) {\n return;\n }\n\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n return;\n }\n\n const localStream = callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');\n if (!localStream) {\n return;\n }\n\n const { view } = (await callClient.createView(call.id, undefined, localStream, options)) ?? {};\n return view ? { view } : undefined;\n };\n\n const onCreateRemoteStreamView = async (\n userId: string,\n options = { scalingMode: 'Crop' } as VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n\n const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');\n const screenShareStream = Object.values(participant.videoStreams).find(\n (i) => i.mediaStreamType === 'ScreenSharing'\n );\n\n let createViewResult: CreateViewResult | undefined = undefined;\n if (remoteVideoStream && remoteVideoStream.isAvailable && !remoteVideoStream.view) {\n createViewResult = await callClient.createView(call.id, participant.identifier, remoteVideoStream, options);\n }\n\n if (screenShareStream && screenShareStream.isAvailable && !screenShareStream.view) {\n // Hardcoded `scalingMode` since it is highly unlikely that CONTOSO would ever want to use a different scaling mode for screenshare.\n // Using `Crop` would crop the contents of screenshare and `Stretch` would warp it.\n // `Fit` is the only mode that maintains the integrity of the screen being shared.\n createViewResult = await callClient.createView(call.id, participant.identifier, screenShareStream, {\n scalingMode: 'Fit'\n });\n }\n\n return createViewResult?.view ? { view: createViewResult?.view } : undefined;\n };\n\n const onDisposeRemoteStreamView = async (userId: string): Promise<void> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n\n const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');\n const screenShareStream = Object.values(participant.videoStreams).find(\n (i) => i.mediaStreamType === 'ScreenSharing'\n );\n\n if (remoteVideoStream && remoteVideoStream.view) {\n callClient.disposeView(call.id, participant.identifier, remoteVideoStream);\n }\n\n if (screenShareStream && screenShareStream.view) {\n callClient.disposeView(call.id, participant.identifier, screenShareStream);\n }\n };\n\n const onDisposeLocalStreamView = async (): Promise<void> => {\n // If the user is currently in a call, dispose of the local stream view attached to that call.\n const callState = call && callClient.getState().calls[call.id];\n const localStream = callState?.localVideoStreams.find((item) => item.mediaStreamType === 'Video');\n if (call && callState && localStream) {\n callClient.disposeView(call.id, undefined, localStream);\n }\n\n // If the user is not in a call we currently assume any unparented view is a LocalPreview and stop all\n // since those are only used for LocalPreview currently.\n // TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.\n await disposeAllLocalPreviewViews(callClient);\n };\n\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n const onSendDtmfTone = async (dtmfTone: DtmfTone): Promise<void> => await call?.sendDtmf(dtmfTone);\n\n const notImplemented = (): any => {\n throw new Error('Not implemented, cannot call a method from an abstract object');\n };\n\n /* @conditional-compile-remove(call-readiness) */\n const askDevicePermission = async (constrain: PermissionConstraints): Promise<void> => {\n if (deviceManager) {\n await deviceManager?.askDevicePermission(constrain);\n }\n };\n\n return {\n onHangUp,\n /* @conditional-compile-remove(PSTN-calls) */\n onToggleHold,\n onSelectCamera,\n onSelectMicrophone,\n onSelectSpeaker,\n onStartScreenShare,\n onStopScreenShare,\n onToggleCamera,\n onToggleMicrophone,\n onToggleScreenShare,\n onCreateLocalStreamView,\n onCreateRemoteStreamView,\n onStartLocalVideo,\n onDisposeRemoteStreamView,\n onDisposeLocalStreamView,\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: notImplemented,\n onRemoveParticipant: notImplemented,\n onStartCall: notImplemented,\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone,\n /* @conditional-compile-remove(call-readiness) */\n askDevicePermission\n };\n }\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\"\"../../../react-components/src\""]}
1
+ {"version":3,"file":"createCommonHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/handlers/createCommonHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,EAGL,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,6BAA6B,EAAE,mCAAgC;AAExE,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlH,2DAA2D;AAC3D,OAAO,EAEL,oBAAoB,EAEpB,2BAA2B,EAC5B,MAAM,sCAAsC,CAAC;AAC9C,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AA2ExD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAA4B,EAAE,SAA2B,EAAW,EAAE;IACpG,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACrF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,UAAU,CAC1D,CACE,UAA8B,EAC9B,aAAgD,EAChD,IAA4F,EACrE,EAAE;IACzB,MAAM,iBAAiB,GAAG,GAAwB,EAAE;QAClD,iFAAiF;QACjF,mFAAmF;QACnF,0CAA0C;QAC1C,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC;QACxB,IAAI,eAAe,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC;QACzE,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,EAAE,CAAA,CAAC;YAClD,eAAe,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,eAAe,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,CAAC,eAAe,CAAC,CAAA,CAAC;SACjE;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE;YAC/B,OAAO;SACR;QACD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;YAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC/B;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAO,MAAwB,EAAiB,EAAE;QACzE,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;YAC1E,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAC9B;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,OAA4B,EAAiB,EAAE;QAC3E,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;QAEpE,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE;YACpD,uFAAuF;YACvF,0FAA0F;YAC1F,0FAA0F;YAC1F,EAAE;YACF,2FAA2F;YAC3F,oFAAoF;YACpF,yFAAyF;YACzF,wFAAwF;YACxF,EAAE;YACF,sFAAsF;YACtF,4FAA4F;YAC5F,6FAA6F;YAC7F,wFAAwF;YACxF,EAAE;YACF,sFAAsF;YACtF,yFAAyF;YACzF,sFAAsF;YACtF,6EAA6E;YAC7E,MAAM,wBAAwB,EAAE,CAAC;YACjC,OAAO;SACR;QAED,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;YAC3F,IAAI,MAAM,EAAE;gBACV,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;aAChC;iBAAM;gBACL,MAAM,iBAAiB,EAAE,CAAC;aAC3B;SACF;aAAM;YACL,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC;YAC1E,IAAI,cAAc,EAAE;gBAClB,IAAI,SAAS,EAAE;oBACb,MAAM,wBAAwB,EAAE,CAAC;iBAClC;qBAAM;oBACL,MAAM,UAAU,CAAC,UAAU,CACzB,SAAS,EACT,SAAS,EACT;wBACE,MAAM,EAAE,cAAc;wBACtB,eAAe,EAAE,OAAO;qBACzB,EACD,OAAO,CACR,CAAC;iBACH;aACF;SACF;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAO,MAAuB,EAAiB,EAAE;QAC1E,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QACD,OAAO,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAA,CAAC;IAEF,MAAM,eAAe,GAAG,CAAO,MAAuB,EAAiB,EAAE;QACvE,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QACD,OAAO,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAA,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,MAAuB,EAAE,OAA4B,EAAiB,EAAE;QACpG,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QACD,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;YAC3F,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,MAAM,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;YAEpE,IAAI,CAAC,SAAS,EAAE;gBACd,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACnC,OAAO;aACR;YAED,MAAM,wBAAwB,EAAE,CAAC;YAEjC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,UAAU,CAAC,UAAU,CACzB,SAAS,EACT,SAAS,EACT;gBACE,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,OAAO;aACzB,EACD,OAAO,CACR,CAAC;SACH;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAwB,EAAE;QACnD,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAC3E;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC,CAAA,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAwB,EAAE,kDAAC,OAAA,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,EAAE,CAAA,CAAA,GAAA,CAAC;IAEvF,MAAM,iBAAiB,GAAG,GAAwB,EAAE,kDAAC,OAAA,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,EAAE,CAAA,CAAA,GAAA,CAAC;IAErF,MAAM,mBAAmB,GAAG,GAAwB,EAAE,kDACpD,OAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,EAAC,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAA,GAAA,CAAC;IAEnF,MAAM,QAAQ,GAAG,CAAO,WAAqB,EAAiB,EAAE,kDAC9D,OAAA,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA,CAAA,GAAA,CAAC;IAE3E,6CAA6C;IAC7C,MAAM,YAAY,GAAG,GAAwB,EAAE,kDAC7C,OAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,CAAA,CAAC,CAAC,CAAC,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAA,CAAA,GAAA,CAAC;IAE1E,MAAM,uBAAuB,GAAG,CAC9B,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAC5B,EAAE;;QAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,OAAO;SACR;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QACjG,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAA,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC,CAAA,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAC/B,MAAc,EACd,UAAU,EAAE,WAAW,EAAE,MAAM,EAAwB,EACV,EAAE;QAC/C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/C;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAClF,CAAC;QAEF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7C,OAAO;SACR;QAED,+EAA+E;QAC/E,MAAM,iBAAiB,GACrB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;YACnG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QAErF,MAAM,iBAAiB,GACrB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,IAAI,CAAC,CAAC,WAAW,CAAC;YAC3G,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,CAAC;QAE7F,IAAI,gBAAgB,GAAiC,SAAS,CAAC;QAC/D,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACjF,gBAAgB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;SAC7G;QAED,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACjF,oIAAoI;YACpI,mFAAmF;YACnF,kFAAkF;YAClF,gBAAgB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,EAAE;gBACjG,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;SACJ;QAED,OAAO,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,CAAC,CAAA,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAAO,MAAc,EAAiB,EAAE;QACxE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/C;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAClF,CAAC;QAEF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QAC7G,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAC7C,CAAC;QAEF,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;YAC/C,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;SAC5E;QAED,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;YAC/C,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;SAC5E;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,8BAA8B,GAAG,CAAO,MAAc,EAAiB,EAAE;QAC7E,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/C;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAClF,CAAC;QAEF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QAE7G,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;YAC/C,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;SAC5E;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,oCAAoC,GAAG,CAAO,MAAc,EAAiB,EAAE;QACnF,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAClF,CAAC;QAEF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7C,OAAO;SACR;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAC7C,CAAC;QAEF,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;YAC/C,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;SAC5E;IACH,CAAC,CAAA,CAAC;IAEF,MAAM,wBAAwB,GAAG,GAAwB,EAAE;QACzD,8FAA8F;QAC9F,MAAM,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QAClG,IAAI,IAAI,IAAI,SAAS,IAAI,WAAW,EAAE;YACpC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;SACzD;QAED,sGAAsG;QACtG,wDAAwD;QACxD,mGAAmG;QACnG,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAA,CAAC;IAEF,0CAA0C,CAAC,6CAA6C;IACxF,MAAM,cAAc,GAAG,CAAO,QAAkB,EAAiB,EAAE,kDAAC,OAAA,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAA,GAAA,CAAC;IAEnG,MAAM,cAAc,GAAG,GAAQ,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC,CAAC;IAEF,iDAAiD;IACjD,MAAM,mBAAmB,GAAG,CAAO,SAAgC,EAAiB,EAAE;QACpF,IAAI,aAAa,EAAE;YACjB,MAAM,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA,CAAC;SACrD;IACH,CAAC,CAAA,CAAC;IAEF,2DAA2D;IAC3D,MAAM,8BAA8B,GAAG,GAAwB,EAAE;QAC/D,MAAM,MAAM,GACV,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC;aAC5E,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,yBAAyB,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,CAAA,CAAC;QAClG,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5D;IACH,CAAC,CAAA,CAAC;IAEF,2DAA2D;IAC3D,MAAM,qBAAqB,GAAG,CAAO,oBAA2C,EAAiB,EAAE;QACjG,MAAM,MAAM,GACV,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC;aAC5E,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,yBAAyB,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,CAAA,CAAC;QAClG,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC;SAC3G;IACH,CAAC,CAAA,CAAC;IAEF,2DAA2D;IAC3D,MAAM,wBAAwB,GAAG,CAC/B,2BAAwD,EACzC,EAAE;QACjB,MAAM,MAAM,GACV,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC;aAC5E,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,yBAAyB,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,CAAA,CAAC;QAClG,IAAI,MAAM,EAAE;YACV,OAAO,MAAM;iBACV,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAC9B,YAAY,CAAC,IAAI,2BAA2B,CAAC,2BAA2B,CAAC,CAAC,CAAC;SAC/E;IACH,CAAC,CAAA,CAAC;IACF,iDAAiD;IACjD,MAAM,eAAe,GAAG,CAAO,OAAyB,EAAiB,EAAE;QACzE,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA,CAAC;IACrE,CAAC,CAAA,CAAC;IACF,iDAAiD;IACjD,MAAM,cAAc,GAAG,GAAwB,EAAE;QAC/C,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA,CAAC;IAC7D,CAAC,CAAA,CAAC;IACF,iDAAiD;IACjD,MAAM,mBAAmB,GAAG,CAAO,QAAgB,EAAiB,EAAE;QACpE,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA,CAAC;IAC1E,CAAC,CAAA,CAAC;IACF,iDAAiD;IACjD,MAAM,oBAAoB,GAAG,CAAO,QAAgB,EAAiB,EAAE;QACrE,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA,CAAC;IAC3E,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,6CAA6C;QAC7C,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,kBAAkB;QAClB,mBAAmB;QACnB,uBAAuB;QACvB,wBAAwB;QACxB,iBAAiB;QACjB,yBAAyB;QACzB,wBAAwB;QACxB,oCAAoC;QACpC,8BAA8B;QAC9B,6CAA6C;QAC7C,gBAAgB,EAAE,cAAc;QAChC,mBAAmB,EAAE,cAAc;QACnC,WAAW,EAAE,cAAc;QAC3B,0CAA0C,CAAC,6CAA6C,CAAC,cAAc;QACvG,iDAAiD;QACjD,mBAAmB;QACnB,2DAA2D;QAC3D,8BAA8B;QAC9B,2DAA2D;QAC3D,qBAAqB;QACrB,2DAA2D;QAC3D,wBAAwB;QACxB,iDAAiD;QACjD,eAAe;QACf,iDAAiD;QACjD,cAAc;QACd,iDAAiD;QACjD,oBAAoB;QACpB,iDAAiD;QACjD,mBAAmB;KACpB,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AudioDeviceInfo,\n Call,\n LocalVideoStream,\n StartCallOptions,\n VideoDeviceInfo\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\nimport { DtmfTone, AddPhoneNumberOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(teams-identity-support) */\nimport { TeamsCall } from '@azure/communication-calling';\n/* @conditional-compile-remove(call-readiness) */\nimport { PermissionConstraints } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CreateViewResult, StatefulCallClient, StatefulDeviceManager } from '@internal/calling-stateful-client';\nimport memoizeOne from 'memoize-one';\nimport { CreateVideoStreamViewResult, VideoStreamOptions } from '@internal/react-components';\nimport { disposeAllLocalPreviewViews, _isInCall, _isInLobbyOrConnecting, _isPreviewOn } from '../utils/callUtils';\nimport { CommunicationUserIdentifier, PhoneNumberIdentifier, UnknownIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { CommunicationIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(video-background-effects) */\nimport {\n BackgroundBlurConfig,\n BackgroundBlurEffect,\n BackgroundReplacementConfig,\n BackgroundReplacementEffect\n} from '@azure/communication-calling-effects';\n/* @conditional-compile-remove(video-background-effects) */\nimport { Features } from '@azure/communication-calling';\n\n/**\n * Object containing all the handlers required for calling components.\n *\n * Calling related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport interface CommonCallingHandlers {\n onStartLocalVideo: () => Promise<void>;\n onToggleCamera: (options?: VideoStreamOptions) => Promise<void>;\n onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;\n onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;\n onSelectCamera: (device: VideoDeviceInfo, options?: VideoStreamOptions) => Promise<void>;\n onToggleMicrophone: () => Promise<void>;\n onStartScreenShare: () => Promise<void>;\n onStopScreenShare: () => Promise<void>;\n onToggleScreenShare: () => Promise<void>;\n onHangUp: (forEveryone?: boolean) => Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onToggleHold: () => Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant(participant: CommunicationUserIdentifier): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant(participant: PhoneNumberIdentifier, options: AddPhoneNumberOptions): Promise<void>;\n onCreateLocalStreamView: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n onCreateRemoteStreamView: (\n userId: string,\n options?: VideoStreamOptions\n ) => Promise<void | CreateVideoStreamViewResult>;\n /**\n * @deprecated use {@link onDisposeRemoteVideoStreamView} and {@link onDisposeRemoteScreenShareStreamView} instead.\n */\n onDisposeRemoteStreamView: (userId: string) => Promise<void>;\n onDisposeLocalStreamView: () => Promise<void>;\n onDisposeRemoteVideoStreamView: (userId: string) => Promise<void>;\n onDisposeRemoteScreenShareStreamView: (userId: string) => Promise<void>;\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n onSendDtmfTone: (dtmfTone: DtmfTone) => Promise<void>;\n onRemoveParticipant(userId: string): Promise<void>;\n /* @conditional-compile-remove(PSTN-calls) */\n onRemoveParticipant(participant: CommunicationIdentifier): Promise<void>;\n /* @conditional-compile-remove(call-readiness) */\n askDevicePermission: (constrain: PermissionConstraints) => Promise<void>;\n onStartCall: (\n participants: (CommunicationUserIdentifier | PhoneNumberIdentifier | UnknownIdentifier)[],\n options?: StartCallOptions\n ) => void;\n /* @conditional-compile-remove(video-background-effects) */\n onRemoveVideoBackgroundEffects: () => Promise<void>;\n /* @conditional-compile-remove(video-background-effects) */\n onBlurVideoBackground: (backgroundBlurConfig?: BackgroundBlurConfig) => Promise<void>;\n /* @conditional-compile-remove(video-background-effects) */\n onReplaceVideoBackground: (backgroundReplacementConfig: BackgroundReplacementConfig) => Promise<void>;\n /* @conditional-compile-remove(close-captions) */\n onStartCaptions: (options?: CaptionsOptions) => Promise<void>;\n /* @conditional-compile-remove(close-captions) */\n onStopCaptions: () => Promise<void>;\n /* @conditional-compile-remove(close-captions) */\n onSetSpokenLanguage: (language: string) => Promise<void>;\n /* @conditional-compile-remove(close-captions) */\n onSetCaptionLanguage: (language: string) => Promise<void>;\n}\n\n/**\n * options bag to start captions\n *\n * @beta\n */\nexport type CaptionsOptions = {\n spokenLanguage: string;\n};\n\n/**\n * @private\n */\nexport const areStreamsEqual = (prevStream: LocalVideoStream, newStream: LocalVideoStream): boolean => {\n return !!prevStream && !!newStream && prevStream.source.id === newStream.source.id;\n};\n\n/**\n * Create the common implementation of {@link CallingHandlers} for all types of Call\n *\n * @private\n */\nexport const createDefaultCommonCallingHandlers = memoizeOne(\n (\n callClient: StatefulCallClient,\n deviceManager: StatefulDeviceManager | undefined,\n call: Call | /* @conditional-compile-remove(teams-identity-support) */ TeamsCall | undefined\n ): CommonCallingHandlers => {\n const onStartLocalVideo = async (): Promise<void> => {\n // Before the call object creates a stream, dispose of any local preview streams.\n // @TODO: is there any way to parent the unparented view to the call object instead\n // of disposing and creating a new stream?\n await disposeAllLocalPreviewViews(callClient);\n\n const callId = call?.id;\n let videoDeviceInfo = callClient.getState().deviceManager.selectedCamera;\n if (!videoDeviceInfo) {\n const cameras = await deviceManager?.getCameras();\n videoDeviceInfo = cameras && cameras.length > 0 ? cameras[0] : undefined;\n videoDeviceInfo && deviceManager?.selectCamera(videoDeviceInfo);\n }\n if (!callId || !videoDeviceInfo) {\n return;\n }\n const stream = new LocalVideoStream(videoDeviceInfo);\n if (call && !call.localVideoStreams.find((s) => areStreamsEqual(s, stream))) {\n await call.startVideo(stream);\n }\n };\n\n const onStopLocalVideo = async (stream: LocalVideoStream): Promise<void> => {\n const callId = call?.id;\n if (!callId) {\n return;\n }\n if (call && call.localVideoStreams.find((s) => areStreamsEqual(s, stream))) {\n await call.stopVideo(stream);\n }\n };\n\n const onToggleCamera = async (options?: VideoStreamOptions): Promise<void> => {\n const previewOn = _isPreviewOn(callClient.getState().deviceManager);\n\n if (previewOn && call && call.state === 'Connecting') {\n // This is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.\n // The root cause of the issue is caused by never transitioning the unparented view to the\n // call object when going from configuration page (disconnected call state) to connecting.\n //\n // Currently the only time the local video stream is moved from unparented view to the call\n // object is when we transition from connecting -> call state. If the camera was on,\n // inside the MediaGallery we trigger toggleCamera. This triggers onStartLocalVideo which\n // destroys the unparentedView and creates a new stream in the call - so all looks well.\n //\n // However, if someone turns off their camera during the lobbyOrConnecting screen, the\n // call.localVideoStreams will be empty (as the stream is currently stored in the unparented\n // views and was never transitioned to the call object) and thus we incorrectly try to create\n // a new video stream for the call object, instead of only stopping the unparented view.\n //\n // The correct fix for this is to ensure that callAgent.onStartCall is called with the\n // localvideostream as a videoOption. That will mean call.onLocalVideoStreamsUpdated will\n // be triggered when the call is in connecting state, which we can then transition the\n // local video stream to the stateful call client and get into a clean state.\n await onDisposeLocalStreamView();\n return;\n }\n\n if (call && (_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {\n const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n if (stream) {\n await onStopLocalVideo(stream);\n } else {\n await onStartLocalVideo();\n }\n } else {\n const selectedCamera = callClient.getState().deviceManager.selectedCamera;\n if (selectedCamera) {\n if (previewOn) {\n await onDisposeLocalStreamView();\n } else {\n await callClient.createView(\n undefined,\n undefined,\n {\n source: selectedCamera,\n mediaStreamType: 'Video'\n },\n options\n );\n }\n }\n }\n };\n\n const onSelectMicrophone = async (device: AudioDeviceInfo): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n return deviceManager.selectMicrophone(device);\n };\n\n const onSelectSpeaker = async (device: AudioDeviceInfo): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n return deviceManager.selectSpeaker(device);\n };\n\n const onSelectCamera = async (device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void> => {\n if (!deviceManager) {\n return;\n }\n if (call && _isInCall(call.state)) {\n deviceManager.selectCamera(device);\n const stream = call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');\n return stream?.switchSource(device);\n } else {\n const previewOn = _isPreviewOn(callClient.getState().deviceManager);\n\n if (!previewOn) {\n deviceManager.selectCamera(device);\n return;\n }\n\n await onDisposeLocalStreamView();\n\n deviceManager.selectCamera(device);\n await callClient.createView(\n undefined,\n undefined,\n {\n source: device,\n mediaStreamType: 'Video'\n },\n options\n );\n }\n };\n\n const onToggleMicrophone = async (): Promise<void> => {\n if (!call || !_isInCall(call.state)) {\n throw new Error(`Please invoke onToggleMicrophone after call is started`);\n }\n return call.isMuted ? await call.unmute() : await call.mute();\n };\n\n const onStartScreenShare = async (): Promise<void> => await call?.startScreenSharing();\n\n const onStopScreenShare = async (): Promise<void> => await call?.stopScreenSharing();\n\n const onToggleScreenShare = async (): Promise<void> =>\n call?.isScreenSharingOn ? await onStopScreenShare() : await onStartScreenShare();\n\n const onHangUp = async (forEveryone?: boolean): Promise<void> =>\n await call?.hangUp({ forEveryone: forEveryone === true ? true : false });\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onToggleHold = async (): Promise<void> =>\n call?.state === 'LocalHold' ? await call?.resume() : await call?.hold();\n\n const onCreateLocalStreamView = async (\n options = { scalingMode: 'Crop', isMirrored: true } as VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> => {\n if (!call || call.localVideoStreams.length === 0) {\n return;\n }\n\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n return;\n }\n\n const localStream = callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');\n if (!localStream) {\n return;\n }\n\n const { view } = (await callClient.createView(call.id, undefined, localStream, options)) ?? {};\n return view ? { view } : undefined;\n };\n\n const onCreateRemoteStreamView = async (\n userId: string,\n options = { scalingMode: 'Crop' } as VideoStreamOptions\n ): Promise<void | CreateVideoStreamViewResult> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n\n // Find the first available stream, if there is none, then get the first stream\n const remoteVideoStream =\n Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||\n Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');\n\n const screenShareStream =\n Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||\n Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'ScreenSharing');\n\n let createViewResult: CreateViewResult | undefined = undefined;\n if (remoteVideoStream && remoteVideoStream.isAvailable && !remoteVideoStream.view) {\n createViewResult = await callClient.createView(call.id, participant.identifier, remoteVideoStream, options);\n }\n\n if (screenShareStream && screenShareStream.isAvailable && !screenShareStream.view) {\n // Hardcoded `scalingMode` since it is highly unlikely that CONTOSO would ever want to use a different scaling mode for screenshare.\n // Using `Crop` would crop the contents of screenshare and `Stretch` would warp it.\n // `Fit` is the only mode that maintains the integrity of the screen being shared.\n createViewResult = await callClient.createView(call.id, participant.identifier, screenShareStream, {\n scalingMode: 'Fit'\n });\n }\n\n return createViewResult?.view ? { view: createViewResult?.view } : undefined;\n };\n\n const onDisposeRemoteStreamView = async (userId: string): Promise<void> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n\n const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');\n const screenShareStream = Object.values(participant.videoStreams).find(\n (i) => i.mediaStreamType === 'ScreenSharing'\n );\n\n if (remoteVideoStream && remoteVideoStream.view) {\n callClient.disposeView(call.id, participant.identifier, remoteVideoStream);\n }\n\n if (screenShareStream && screenShareStream.view) {\n callClient.disposeView(call.id, participant.identifier, screenShareStream);\n }\n };\n\n const onDisposeRemoteVideoStreamView = async (userId: string): Promise<void> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n\n const remoteVideoStream = Object.values(participant.videoStreams).find((i) => i.mediaStreamType === 'Video');\n\n if (remoteVideoStream && remoteVideoStream.view) {\n callClient.disposeView(call.id, participant.identifier, remoteVideoStream);\n }\n };\n\n const onDisposeRemoteScreenShareStreamView = async (userId: string): Promise<void> => {\n if (!call) {\n return;\n }\n const callState = callClient.getState().calls[call.id];\n if (!callState) {\n throw new Error(`Call Not Found: ${call.id}`);\n }\n const participant = Object.values(callState.remoteParticipants).find(\n (participant) => toFlatCommunicationIdentifier(participant.identifier) === userId\n );\n\n if (!participant || !participant.videoStreams) {\n return;\n }\n const screenShareStream = Object.values(participant.videoStreams).find(\n (i) => i.mediaStreamType === 'ScreenSharing'\n );\n\n if (screenShareStream && screenShareStream.view) {\n callClient.disposeView(call.id, participant.identifier, screenShareStream);\n }\n };\n\n const onDisposeLocalStreamView = async (): Promise<void> => {\n // If the user is currently in a call, dispose of the local stream view attached to that call.\n const callState = call && callClient.getState().calls[call.id];\n const localStream = callState?.localVideoStreams.find((item) => item.mediaStreamType === 'Video');\n if (call && callState && localStream) {\n callClient.disposeView(call.id, undefined, localStream);\n }\n\n // If the user is not in a call we currently assume any unparented view is a LocalPreview and stop all\n // since those are only used for LocalPreview currently.\n // TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.\n await disposeAllLocalPreviewViews(callClient);\n };\n\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n const onSendDtmfTone = async (dtmfTone: DtmfTone): Promise<void> => await call?.sendDtmf(dtmfTone);\n\n const notImplemented = (): any => {\n throw new Error('Not implemented, cannot call a method from an abstract object');\n };\n\n /* @conditional-compile-remove(call-readiness) */\n const askDevicePermission = async (constrain: PermissionConstraints): Promise<void> => {\n if (deviceManager) {\n await deviceManager?.askDevicePermission(constrain);\n }\n };\n\n /* @conditional-compile-remove(video-background-effects) */\n const onRemoveVideoBackgroundEffects = async (): Promise<void> => {\n const stream =\n call?.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video') ||\n deviceManager?.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video');\n if (stream) {\n return stream.feature(Features.VideoEffects).stopEffects();\n }\n };\n\n /* @conditional-compile-remove(video-background-effects) */\n const onBlurVideoBackground = async (backgroundBlurConfig?: BackgroundBlurConfig): Promise<void> => {\n const stream =\n call?.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video') ||\n deviceManager?.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video');\n if (stream) {\n return stream.feature(Features.VideoEffects).startEffects(new BackgroundBlurEffect(backgroundBlurConfig));\n }\n };\n\n /* @conditional-compile-remove(video-background-effects) */\n const onReplaceVideoBackground = async (\n backgroundReplacementConfig: BackgroundReplacementConfig\n ): Promise<void> => {\n const stream =\n call?.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video') ||\n deviceManager?.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video');\n if (stream) {\n return stream\n .feature(Features.VideoEffects)\n .startEffects(new BackgroundReplacementEffect(backgroundReplacementConfig));\n }\n };\n /* @conditional-compile-remove(close-captions) */\n const onStartCaptions = async (options?: CaptionsOptions): Promise<void> => {\n await call?.feature(Features.TeamsCaptions).startCaptions(options);\n };\n /* @conditional-compile-remove(close-captions) */\n const onStopCaptions = async (): Promise<void> => {\n await call?.feature(Features.TeamsCaptions).stopCaptions();\n };\n /* @conditional-compile-remove(close-captions) */\n const onSetSpokenLanguage = async (language: string): Promise<void> => {\n await call?.feature(Features.TeamsCaptions).setSpokenLanguage(language);\n };\n /* @conditional-compile-remove(close-captions) */\n const onSetCaptionLanguage = async (language: string): Promise<void> => {\n await call?.feature(Features.TeamsCaptions).setCaptionLanguage(language);\n };\n\n return {\n onHangUp,\n /* @conditional-compile-remove(PSTN-calls) */\n onToggleHold,\n onSelectCamera,\n onSelectMicrophone,\n onSelectSpeaker,\n onStartScreenShare,\n onStopScreenShare,\n onToggleCamera,\n onToggleMicrophone,\n onToggleScreenShare,\n onCreateLocalStreamView,\n onCreateRemoteStreamView,\n onStartLocalVideo,\n onDisposeRemoteStreamView,\n onDisposeLocalStreamView,\n onDisposeRemoteScreenShareStreamView,\n onDisposeRemoteVideoStreamView,\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: notImplemented,\n onRemoveParticipant: notImplemented,\n onStartCall: notImplemented,\n /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone,\n /* @conditional-compile-remove(call-readiness) */\n askDevicePermission,\n /* @conditional-compile-remove(video-background-effects) */\n onRemoveVideoBackgroundEffects,\n /* @conditional-compile-remove(video-background-effects) */\n onBlurVideoBackground,\n /* @conditional-compile-remove(video-background-effects) */\n onReplaceVideoBackground,\n /* @conditional-compile-remove(close-captions) */\n onStartCaptions,\n /* @conditional-compile-remove(close-captions) */\n onStopCaptions,\n /* @conditional-compile-remove(close-captions) */\n onSetCaptionLanguage,\n /* @conditional-compile-remove(close-captions) */\n onSetSpokenLanguage\n };\n }\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\"\"../../../react-components/src\""]}
@@ -27,10 +27,12 @@ export const createDefaultCallingHandlers = memoizeOne((callClient, callAgent, d
27
27
  return Object.assign(Object.assign({}, createDefaultCommonCallingHandlers(callClient, deviceManager, call)), {
28
28
  // FIXME: onStartCall API should use string, not the underlying SDK types.
29
29
  onStartCall: (participants, options) => {
30
+ /* @conditional-compile-remove(teams-adhoc-call) */
31
+ return callAgent === null || callAgent === void 0 ? void 0 : callAgent.startCall(participants, options);
30
32
  if (!isACSCallParticipants(participants)) {
31
33
  throw new Error('TeamsUserIdentifier in Teams call is not supported!');
32
34
  }
33
- return callAgent ? callAgent.startCall(participants, options) : undefined;
35
+ return callAgent === null || callAgent === void 0 ? void 0 : callAgent.startCall(participants, options);
34
36
  },
35
37
  /* @conditional-compile-remove(PSTN-calls) */
36
38
  onAddParticipant: (userId, options) => __awaiter(void 0, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"createHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/handlers/createHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAMlC,6CAA6C;AAC7C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,0BAA0B,EAAE,mCAAgC;AAErE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAyB,MAAM,wBAAwB,CAAC;AAcnG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CACpD,CACE,UAA8B,EAC9B,SAAgC,EAChC,aAAgD,EAChD,IAAsB,EACL,EAAE;IACnB,uCACK,kCAAkC,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC;QACtE,0EAA0E;QAC1E,WAAW,EAAE,CAAC,YAAuC,EAAE,OAA0B,EAAoB,EAAE;YACrG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACxE;YACD,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,CAAC;QACD,6CAA6C;QAC7C,gBAAgB,EAAE,CAChB,MAAwC,EACxC,OAA+B,EAChB,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;gBACxC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;aAC5C;iBAAM,IAAI,6BAA6B,CAAC,WAAW,CAAC,IAAI,8BAA8B,CAAC,WAAW,CAAC,EAAE;gBACpG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,CAAC,CAAC;aACnC;QACH,CAAC,CAAA,EACD,mBAAmB,EAAE,CACnB,MAAsF,EACvE,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA,CAAC;QAC7C,CAAC,CAAA,IACD;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Call, CallAgent, StartCallOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport {\n isCommunicationUserIdentifier,\n isMicrosoftTeamsUserIdentifier,\n isPhoneNumberIdentifier\n} from '@azure/communication-common';\nimport { CommunicationIdentifier } from '@azure/communication-common';\n\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { StatefulCallClient, StatefulDeviceManager } from '@internal/calling-stateful-client';\nimport memoizeOne from 'memoize-one';\nimport { isACSCallParticipants } from '../utils/callUtils';\nimport { createDefaultCommonCallingHandlers, CommonCallingHandlers } from './createCommonHandlers';\n\n/**\n * Object containing all the handlers required for calling components.\n *\n * Calling related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport interface CallingHandlers extends CommonCallingHandlers {\n onStartCall: (participants: CommunicationIdentifier[], options?: StartCallOptions) => Call | undefined;\n}\n\n/**\n * Create the default implementation of {@link CallingHandlers} for teams call.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const createDefaultCallingHandlers = memoizeOne(\n (\n callClient: StatefulCallClient,\n callAgent: CallAgent | undefined,\n deviceManager: StatefulDeviceManager | undefined,\n call: Call | undefined\n ): CallingHandlers => {\n return {\n ...createDefaultCommonCallingHandlers(callClient, deviceManager, call),\n // FIXME: onStartCall API should use string, not the underlying SDK types.\n onStartCall: (participants: CommunicationIdentifier[], options?: StartCallOptions): Call | undefined => {\n if (!isACSCallParticipants(participants)) {\n throw new Error('TeamsUserIdentifier in Teams call is not supported!');\n }\n return callAgent ? callAgent.startCall(participants, options) : undefined;\n },\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: async (\n userId: string | CommunicationIdentifier,\n options?: AddPhoneNumberOptions\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n if (isPhoneNumberIdentifier(participant)) {\n call?.addParticipant(participant, options);\n } else if (isCommunicationUserIdentifier(participant) || isMicrosoftTeamsUserIdentifier(participant)) {\n call?.addParticipant(participant);\n }\n },\n onRemoveParticipant: async (\n userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n await call?.removeParticipant(participant);\n }\n };\n }\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\""]}
1
+ {"version":3,"file":"createHandlers.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/handlers/createHandlers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAMlC,6CAA6C;AAC7C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,0BAA0B,EAAE,mCAAgC;AAErE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAyB,MAAM,wBAAwB,CAAC;AAcnG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CACpD,CACE,UAA8B,EAC9B,SAAgC,EAChC,aAAgD,EAChD,IAAsB,EACL,EAAE;IACnB,uCACK,kCAAkC,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC;QACtE,0EAA0E;QAC1E,WAAW,EAAE,CAAC,YAAuC,EAAE,OAA0B,EAAoB,EAAE;YACrG,mDAAmD;YACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACxE;YACD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,6CAA6C;QAC7C,gBAAgB,EAAE,CAChB,MAAwC,EACxC,OAA+B,EAChB,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;gBACxC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;aAC5C;iBAAM,IAAI,6BAA6B,CAAC,WAAW,CAAC,IAAI,8BAA8B,CAAC,WAAW,CAAC,EAAE;gBACpG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,WAAW,CAAC,CAAC;aACnC;QACH,CAAC,CAAA,EACD,mBAAmB,EAAE,CACnB,MAAsF,EACvE,EAAE;YACjB,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA,CAAC;QAC7C,CAAC,CAAA,IACD;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Call, CallAgent, StartCallOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\n/* @conditional-compile-remove(PSTN-calls) */\nimport {\n isCommunicationUserIdentifier,\n isMicrosoftTeamsUserIdentifier,\n isPhoneNumberIdentifier\n} from '@azure/communication-common';\nimport { CommunicationIdentifier } from '@azure/communication-common';\n\nimport { _toCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { StatefulCallClient, StatefulDeviceManager } from '@internal/calling-stateful-client';\nimport memoizeOne from 'memoize-one';\nimport { isACSCallParticipants } from '../utils/callUtils';\nimport { createDefaultCommonCallingHandlers, CommonCallingHandlers } from './createCommonHandlers';\n\n/**\n * Object containing all the handlers required for calling components.\n *\n * Calling related components from this package are able to pick out relevant handlers from this object.\n * See {@link useHandlers} and {@link usePropsFor}.\n *\n * @public\n */\nexport interface CallingHandlers extends CommonCallingHandlers {\n onStartCall: (participants: CommunicationIdentifier[], options?: StartCallOptions) => Call | undefined;\n}\n\n/**\n * Create the default implementation of {@link CallingHandlers} for teams call.\n *\n * Useful when implementing a custom component that utilizes the providers\n * exported from this library.\n *\n * @public\n */\nexport const createDefaultCallingHandlers = memoizeOne(\n (\n callClient: StatefulCallClient,\n callAgent: CallAgent | undefined,\n deviceManager: StatefulDeviceManager | undefined,\n call: Call | undefined\n ): CallingHandlers => {\n return {\n ...createDefaultCommonCallingHandlers(callClient, deviceManager, call),\n // FIXME: onStartCall API should use string, not the underlying SDK types.\n onStartCall: (participants: CommunicationIdentifier[], options?: StartCallOptions): Call | undefined => {\n /* @conditional-compile-remove(teams-adhoc-call) */\n return callAgent?.startCall(participants, options);\n if (!isACSCallParticipants(participants)) {\n throw new Error('TeamsUserIdentifier in Teams call is not supported!');\n }\n return callAgent?.startCall(participants, options);\n },\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant: async (\n userId: string | CommunicationIdentifier,\n options?: AddPhoneNumberOptions\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n if (isPhoneNumberIdentifier(participant)) {\n call?.addParticipant(participant, options);\n } else if (isCommunicationUserIdentifier(participant) || isMicrosoftTeamsUserIdentifier(participant)) {\n call?.addParticipant(participant);\n }\n },\n onRemoveParticipant: async (\n userId: string | /* @conditional-compile-remove(PSTN-calls) */ CommunicationIdentifier\n ): Promise<void> => {\n const participant = _toCommunicationIdentifier(userId);\n await call?.removeParticipant(participant);\n }\n };\n }\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\""]}
@@ -7,9 +7,12 @@ export type { ParticipantsButtonSelector } from './participantsButtonSelector';
7
7
  export type { VideoGallerySelector } from './videoGallerySelector';
8
8
  export type { ErrorBarSelector } from './errorBarSelector';
9
9
  export type { HoldButtonSelector } from './callControlSelectors';
10
+ export type { _StartCaptionsButtonSelector, _ChangeSpokenLanguageSelector, _CaptionsBannerSelector } from './captionsSelector';
11
+ export { _captionsBannerSelector, _startCaptionsButtonSelector, _changeSpokenLanguageSelector } from './captionsSelector';
10
12
  export type { CallingHandlers } from './handlers/createHandlers';
11
13
  export type { TeamsCallingHandlers } from './handlers/createTeamsCallHandlers';
12
14
  export type { CommonCallingHandlers } from './handlers/createCommonHandlers';
15
+ export type { CaptionsOptions } from './handlers/createCommonHandlers';
13
16
  export { useTeamsCall, useTeamsCallAgent } from './providers';
14
17
  export { CallAgentProvider, CallClientProvider, CallProvider, useCall, useCallAgent, useCallClient, useDeviceManager } from './providers';
15
18
  export type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';
@@ -4,6 +4,8 @@ export * from './callControlSelectors';
4
4
  export { createDefaultCallingHandlers } from './handlers/createHandlers';
5
5
  /* @conditional-compile-remove(teams-identity-support) */
6
6
  export { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';
7
+ /* @conditional-compile-remove(close-captions) */
8
+ export { _captionsBannerSelector, _startCaptionsButtonSelector, _changeSpokenLanguageSelector } from './captionsSelector';
7
9
  /* @conditional-compile-remove(teams-identity-support) */
8
10
  export { useTeamsCall, useTeamsCallAgent } from './providers';
9
11
  export { CallAgentProvider, CallClientProvider, CallProvider, useCall, useCallAgent, useCallClient, useDeviceManager } from './providers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,yDAAyD;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAavF,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG3G,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpF,6CAA6C;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,sDAAsD;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport type { CallingBaseSelectorProps } from './baseSelectors';\nexport * from './callControlSelectors';\nexport { createDefaultCallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { ParticipantListSelector } from './participantListSelector';\nexport type { ParticipantsButtonSelector } from './participantsButtonSelector';\nexport type { VideoGallerySelector } from './videoGallerySelector';\nexport type { ErrorBarSelector } from './errorBarSelector';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from './callControlSelectors';\n\nexport type { CallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport type { TeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { CommonCallingHandlers } from './handlers/createCommonHandlers';\n\n/* @conditional-compile-remove(teams-identity-support) */\nexport { useTeamsCall, useTeamsCallAgent } from './providers';\n\nexport {\n CallAgentProvider,\n CallClientProvider,\n CallProvider,\n useCall,\n useCallAgent,\n useCallClient,\n useDeviceManager\n} from './providers';\nexport type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';\n\nexport { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';\nexport type { GetSelector as GetCallingSelector, EmptySelector } from './hooks/usePropsFor';\n\nexport { useSelector as useCallingSelector } from './hooks/useSelector';\nexport { useHandlers as useCallingHandlers } from './hooks/useHandlers';\n\nexport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from './utils/callUtils';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { _updateUserDisplayNames } from './utils/callUtils';\n/* @conditional-compile-remove(unsupported-browser) */\nexport { _getEnvironmentInfo } from './utils/callUtils';\n\nexport { _videoGalleryRemoteParticipantsMemo, _dominantSpeakersWithFlatId } from './utils/videoGalleryUtils';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,yDAAyD;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAevF,iDAAiD;AACjD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAQ5B,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG3G,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpF,6CAA6C;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,sDAAsD;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,mCAAmC,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport type { CallingBaseSelectorProps } from './baseSelectors';\nexport * from './callControlSelectors';\nexport { createDefaultCallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport { createDefaultTeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { ParticipantListSelector } from './participantListSelector';\nexport type { ParticipantsButtonSelector } from './participantsButtonSelector';\nexport type { VideoGallerySelector } from './videoGallerySelector';\nexport type { ErrorBarSelector } from './errorBarSelector';\n/* @conditional-compile-remove(PSTN-calls) */\nexport type { HoldButtonSelector } from './callControlSelectors';\n\n/* @conditional-compile-remove(close-captions) */\nexport type {\n _StartCaptionsButtonSelector,\n _ChangeSpokenLanguageSelector,\n _CaptionsBannerSelector\n} from './captionsSelector';\n\n/* @conditional-compile-remove(close-captions) */\nexport {\n _captionsBannerSelector,\n _startCaptionsButtonSelector,\n _changeSpokenLanguageSelector\n} from './captionsSelector';\n\nexport type { CallingHandlers } from './handlers/createHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport type { TeamsCallingHandlers } from './handlers/createTeamsCallHandlers';\nexport type { CommonCallingHandlers } from './handlers/createCommonHandlers';\n/* @conditional-compile-remove(close-captions) */\nexport type { CaptionsOptions } from './handlers/createCommonHandlers';\n/* @conditional-compile-remove(teams-identity-support) */\nexport { useTeamsCall, useTeamsCallAgent } from './providers';\n\nexport {\n CallAgentProvider,\n CallClientProvider,\n CallProvider,\n useCall,\n useCallAgent,\n useCallClient,\n useDeviceManager\n} from './providers';\nexport type { CallAgentProviderProps, CallClientProviderProps, CallProviderProps } from './providers';\n\nexport { usePropsFor as useCallingPropsFor, getSelector as getCallingSelector } from './hooks/usePropsFor';\nexport type { GetSelector as GetCallingSelector, EmptySelector } from './hooks/usePropsFor';\n\nexport { useSelector as useCallingSelector } from './hooks/useSelector';\nexport { useHandlers as useCallingHandlers } from './hooks/useHandlers';\n\nexport { _isInCall, _isPreviewOn, _isInLobbyOrConnecting } from './utils/callUtils';\n/* @conditional-compile-remove(PSTN-calls) */\nexport { _updateUserDisplayNames } from './utils/callUtils';\n/* @conditional-compile-remove(unsupported-browser) */\nexport { _getEnvironmentInfo } from './utils/callUtils';\n\nexport { _videoGalleryRemoteParticipantsMemo, _dominantSpeakersWithFlatId } from './utils/videoGalleryUtils';\n"]}
@@ -16,7 +16,7 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
16
16
  * phone users will be in the connecting state until they are connected to the call.
17
17
  */
18
18
  .filter((participant) => {
19
- return ((participant.state !== 'InLobby' && participant.state !== 'Idle' && participant.state !== 'Connecting') ||
19
+ return (!['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||
20
20
  participant.identifier.kind === 'phoneNumber');
21
21
  })
22
22
  .map((participant) => {
@@ -1 +1 @@
1
- {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[]\n): CallParticipantListParticipant[] => {\n /* eslint-disable @typescript-eslint/explicit-function-return-type */\n const conversionCallback = (memoizeFn) => {\n return (\n remoteParticipants\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n (participant.state !== 'InLobby' && participant.state !== 'Idle' && participant.state !== 'Connecting') ||\n participant.identifier.kind === 'phoneNumber'\n );\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n /**\n * We want to check the participant to see if they are a PSTN participant joining the call\n * and mapping their state to be 'Ringing'\n */\n const state = _isRingingPSTNParticipant(participant);\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.displayName,\n state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n /* @conditional-compile-remove(rooms) */ participant.role\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n };\n /* @conditional-compile-remove(rooms) */\n return memoizedConvertAllremoteParticipantsBeta(conversionCallback);\n return memoizedConvertAllremoteParticipants(conversionCallback);\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n } => {\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants))\n )\n : [];\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false\n });\n return {\n participants: participants,\n myUserId: userId\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\"../../calling-stateful-client/src\"\"../../react-components/src\"\"../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[]\n): CallParticipantListParticipant[] => {\n /* eslint-disable @typescript-eslint/explicit-function-return-type */\n const conversionCallback = (memoizeFn) => {\n return (\n remoteParticipants\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n participant.identifier.kind === 'phoneNumber'\n );\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n /**\n * We want to check the participant to see if they are a PSTN participant joining the call\n * and mapping their state to be 'Ringing'\n */\n const state = _isRingingPSTNParticipant(participant);\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.displayName,\n state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n /* @conditional-compile-remove(rooms) */ participant.role\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n };\n /* @conditional-compile-remove(rooms) */\n return memoizedConvertAllremoteParticipantsBeta(conversionCallback);\n return memoizedConvertAllremoteParticipants(conversionCallback);\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n } => {\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants))\n )\n : [];\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false\n });\n return {\n participants: participants,\n myUserId: userId\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\"../../calling-stateful-client/src\"\"../../react-components/src\"\"../../acs-ui-common/src\""]}
@@ -18,13 +18,14 @@ import { memoizeFnAll, toFlatCommunicationIdentifier } from "../../../acs-ui-com
18
18
  *
19
19
  * @internal
20
20
  */
21
- export const _isInCall = (callStatus) => !!callStatus && !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia'].includes(callStatus);
21
+ export const _isInCall = (callStatus) => !!callStatus &&
22
+ !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia', 'Disconnecting'].includes(callStatus);
22
23
  /**
23
24
  * Check if the call state represents being in the lobby or waiting to be admitted.
24
25
  *
25
26
  * @internal
26
27
  */
27
- export const _isInLobbyOrConnecting = (callStatus) => !!callStatus && ['Connecting', 'Ringing', 'InLobby'].includes(callStatus);
28
+ export const _isInLobbyOrConnecting = (callStatus) => !!callStatus && ['Connecting', 'Ringing', 'InLobby', 'EarlyMedia'].includes(callStatus);
28
29
  /**
29
30
  * Check if the device manager local video is on when not part of a call
30
31
  * i.e. do unparented views exist.
@@ -1 +1 @@
1
- {"version":3,"file":"callUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/callUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DeviceManagerState, RemoteParticipantState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallState as CallStatus } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { Features, EnvironmentInfo } from '@azure/communication-calling';\nimport {\n CommunicationIdentifier,\n CommunicationUserIdentifier,\n isCommunicationUserIdentifier,\n isMicrosoftTeamsUserIdentifier,\n isPhoneNumberIdentifier,\n MicrosoftTeamsUserIdentifier,\n PhoneNumberIdentifier,\n UnknownIdentifier\n} from '@azure/communication-common';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\ntype ParticipantConnectionState =\n | 'Idle'\n | 'Connecting'\n | 'Ringing'\n | 'Connected'\n | 'Hold'\n | 'InLobby'\n | 'EarlyMedia'\n | 'Disconnected';\n\n/**\n * Check if the call state represents being in the call\n *\n * @internal\n */\nexport const _isInCall = (callStatus?: CallStatus): boolean =>\n !!callStatus && !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia'].includes(callStatus);\n\n/**\n * Check if the call state represents being in the lobby or waiting to be admitted.\n *\n * @internal\n */\nexport const _isInLobbyOrConnecting = (callStatus: CallStatus | undefined): boolean =>\n !!callStatus && ['Connecting', 'Ringing', 'InLobby'].includes(callStatus);\n\n/**\n * Check if the device manager local video is on when not part of a call\n * i.e. do unparented views exist.\n *\n * @internal\n */\nexport const _isPreviewOn = (deviceManager: DeviceManagerState): boolean => {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n return deviceManager.unparentedViews.length > 0 && deviceManager.unparentedViews[0].view !== undefined;\n};\n\n/**\n * Dispose of all preview views\n * We assume all unparented views are local preview views.\n *\n * @private\n */\nexport const disposeAllLocalPreviewViews = async (callClient: StatefulCallClient): Promise<void> => {\n const unparentedViews = callClient.getState().deviceManager.unparentedViews;\n for (const view of unparentedViews) {\n await callClient.disposeView(undefined, undefined, view);\n }\n};\n\n/**\n * Update the users displayNames based on the type of user they are\n *\n * @internal\n */\nexport const _updateUserDisplayNames = (participants: RemoteParticipantState[]): RemoteParticipantState[] => {\n if (participants) {\n return memoizedUpdateDisplayName((memoizedFn) => {\n return Object.values(participants).map((p) => {\n const pid = toFlatCommunicationIdentifier(p.identifier);\n return memoizedFn(pid, p);\n });\n });\n } else {\n return [];\n }\n};\n\nconst memoizedUpdateDisplayName = memoizeFnAll((participantId: string, participant: RemoteParticipantState) => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n ...participant,\n displayName: participant.identifier.phoneNumber\n };\n } else {\n return participant;\n }\n});\n\n/* @conditional-compile-remove(unsupported-browser) */\n/**\n * Check whether the call is in a supported browser\n *\n * @internal\n */\nexport const _getEnvironmentInfo = async (callClient: StatefulCallClient): Promise<EnvironmentInfo> => {\n const environmentInfo = await callClient.feature(Features.DebugInfo).getEnvironmentInfo();\n return environmentInfo;\n};\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for Teams call\n */\nexport const isTeamsCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | MicrosoftTeamsUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isCommunicationUserIdentifier(p));\n};\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for ACS call\n */\nexport const isACSCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | CommunicationUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isMicrosoftTeamsUserIdentifier(p));\n};\n\n/**\n * @private\n * Checks whether the user is a 'Ringing' PSTN user.\n */\nexport const _isRingingPSTNParticipant = (participant: RemoteParticipantState): ParticipantConnectionState => {\n return participant.identifier.kind === 'phoneNumber' && participant.state === 'Connecting'\n ? 'Ringing'\n : participant.state;\n};\n\"../../../calling-stateful-client/src\"\"../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"callUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/callUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DeviceManagerState, RemoteParticipantState, StatefulCallClient } from '@internal/calling-stateful-client';\nimport { CallState as CallStatus } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { Features, EnvironmentInfo } from '@azure/communication-calling';\nimport {\n CommunicationIdentifier,\n CommunicationUserIdentifier,\n isCommunicationUserIdentifier,\n isMicrosoftTeamsUserIdentifier,\n isPhoneNumberIdentifier,\n MicrosoftTeamsUserIdentifier,\n PhoneNumberIdentifier,\n UnknownIdentifier\n} from '@azure/communication-common';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n\ntype ParticipantConnectionState =\n | 'Idle'\n | 'Connecting'\n | 'Ringing'\n | 'Connected'\n | 'Hold'\n | 'InLobby'\n | 'EarlyMedia'\n | 'Disconnected';\n\n/**\n * Check if the call state represents being in the call\n *\n * @internal\n */\nexport const _isInCall = (callStatus?: CallStatus): boolean =>\n !!callStatus &&\n !['None', 'Disconnected', 'Connecting', 'Ringing', 'EarlyMedia', 'Disconnecting'].includes(callStatus);\n\n/**\n * Check if the call state represents being in the lobby or waiting to be admitted.\n *\n * @internal\n */\nexport const _isInLobbyOrConnecting = (callStatus: CallStatus | undefined): boolean =>\n !!callStatus && ['Connecting', 'Ringing', 'InLobby', 'EarlyMedia'].includes(callStatus);\n\n/**\n * Check if the device manager local video is on when not part of a call\n * i.e. do unparented views exist.\n *\n * @internal\n */\nexport const _isPreviewOn = (deviceManager: DeviceManagerState): boolean => {\n // TODO: we should take in a LocalVideoStream that developer wants to use as their 'Preview' view. We should also\n // handle cases where 'Preview' view is in progress and not necessary completed.\n return deviceManager.unparentedViews.length > 0 && deviceManager.unparentedViews[0].view !== undefined;\n};\n\n/**\n * Dispose of all preview views\n * We assume all unparented views are local preview views.\n *\n * @private\n */\nexport const disposeAllLocalPreviewViews = async (callClient: StatefulCallClient): Promise<void> => {\n const unparentedViews = callClient.getState().deviceManager.unparentedViews;\n for (const view of unparentedViews) {\n await callClient.disposeView(undefined, undefined, view);\n }\n};\n\n/**\n * Update the users displayNames based on the type of user they are\n *\n * @internal\n */\nexport const _updateUserDisplayNames = (participants: RemoteParticipantState[]): RemoteParticipantState[] => {\n if (participants) {\n return memoizedUpdateDisplayName((memoizedFn) => {\n return Object.values(participants).map((p) => {\n const pid = toFlatCommunicationIdentifier(p.identifier);\n return memoizedFn(pid, p);\n });\n });\n } else {\n return [];\n }\n};\n\nconst memoizedUpdateDisplayName = memoizeFnAll((participantId: string, participant: RemoteParticipantState) => {\n if (isPhoneNumberIdentifier(participant.identifier)) {\n return {\n ...participant,\n displayName: participant.identifier.phoneNumber\n };\n } else {\n return participant;\n }\n});\n\n/* @conditional-compile-remove(unsupported-browser) */\n/**\n * Check whether the call is in a supported browser\n *\n * @internal\n */\nexport const _getEnvironmentInfo = async (callClient: StatefulCallClient): Promise<EnvironmentInfo> => {\n const environmentInfo = await callClient.feature(Features.DebugInfo).getEnvironmentInfo();\n return environmentInfo;\n};\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for Teams call\n */\nexport const isTeamsCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | MicrosoftTeamsUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isCommunicationUserIdentifier(p));\n};\n\n/**\n * @private\n * A type guard to ensure all participants are acceptable type for ACS call\n */\nexport const isACSCallParticipants = (\n participants: CommunicationIdentifier[]\n): participants is (PhoneNumberIdentifier | CommunicationUserIdentifier | UnknownIdentifier)[] => {\n return participants.every((p) => !isMicrosoftTeamsUserIdentifier(p));\n};\n\n/**\n * @private\n * Checks whether the user is a 'Ringing' PSTN user.\n */\nexport const _isRingingPSTNParticipant = (participant: RemoteParticipantState): ParticipantConnectionState => {\n return participant.identifier.kind === 'phoneNumber' && participant.state === 'Connecting'\n ? 'Ringing'\n : participant.state;\n};\n\"../../../calling-stateful-client/src\"\"../../../acs-ui-common/src\""]}
@@ -21,7 +21,7 @@ export const _videoGalleryRemoteParticipantsMemo = (remoteParticipants) => {
21
21
  * phone users will be in the connecting state until they are connected to the call.
22
22
  */
23
23
  .filter((participant) => {
24
- return ((participant.state !== 'InLobby' && participant.state !== 'Idle' && participant.state !== 'Connecting') ||
24
+ return (!['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||
25
25
  participant.identifier.kind === 'phoneNumber');
26
26
  })
27
27
  .map((participant) => {
@@ -38,21 +38,15 @@ export const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId,
38
38
  const rawVideoStreamsArray = Object.values(videoStreams);
39
39
  let videoStream = undefined;
40
40
  let screenShareStream = undefined;
41
- if (rawVideoStreamsArray[0]) {
42
- if (rawVideoStreamsArray[0].mediaStreamType === 'Video') {
43
- videoStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[0]);
44
- }
45
- else {
46
- screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[0]);
47
- }
41
+ const sdkRemoteVideoStream = Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||
42
+ Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video');
43
+ const sdkScreenShareStream = Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||
44
+ Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing');
45
+ if (sdkRemoteVideoStream) {
46
+ videoStream = convertRemoteVideoStreamToVideoGalleryStream(sdkRemoteVideoStream);
48
47
  }
49
- if (rawVideoStreamsArray[1]) {
50
- if (rawVideoStreamsArray[1].mediaStreamType === 'ScreenSharing') {
51
- screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[1]);
52
- }
53
- else {
54
- videoStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[1]);
55
- }
48
+ if (sdkScreenShareStream) {
49
+ screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(sdkScreenShareStream);
56
50
  }
57
51
  return {
58
52
  userId,
@@ -1 +1 @@
1
- {"version":3,"file":"videoGalleryUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/videoGalleryUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n DominantSpeakersInfo,\n RemoteParticipantState as RemoteParticipantConnectionState\n} from '@azure/communication-calling';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { RemoteParticipantState, RemoteVideoStreamState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryStream } from '@internal/react-components';\nimport memoizeOne from 'memoize-one';\nimport { _isRingingPSTNParticipant } from './callUtils';\nimport { checkIsSpeaking } from './SelectorUtils';\n\n/** @internal */\nexport const _dominantSpeakersWithFlatId = (dominantSpeakers?: DominantSpeakersInfo): undefined | string[] => {\n return dominantSpeakers?.speakersList?.map(toFlatCommunicationIdentifier);\n};\n\n/** @internal */\nexport const _videoGalleryRemoteParticipantsMemo = (\n remoteParticipants: RemoteParticipantState[] | undefined\n): VideoGalleryRemoteParticipant[] => {\n if (!remoteParticipants) {\n return [];\n }\n return memoizedAllConvertRemoteParticipant((memoizedFn) => {\n return (\n Object.values(remoteParticipants)\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n (participant.state !== 'InLobby' && participant.state !== 'Idle' && participant.state !== 'Connecting') ||\n participant.identifier.kind === 'phoneNumber'\n );\n })\n .map((participant: RemoteParticipantState) => {\n const state = _isRingingPSTNParticipant(participant);\n return memoizedFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.isMuted,\n checkIsSpeaking(participant),\n participant.videoStreams,\n state,\n participant.displayName\n );\n })\n );\n });\n};\n\nconst memoizedAllConvertRemoteParticipant = memoizeFnAll(\n (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string\n ): VideoGalleryRemoteParticipant => {\n return convertRemoteParticipantToVideoGalleryRemoteParticipant(\n userId,\n isMuted,\n isSpeaking,\n videoStreams,\n state,\n displayName\n );\n }\n);\n\n/** @private */\nexport const convertRemoteParticipantToVideoGalleryRemoteParticipant = (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string\n): VideoGalleryRemoteParticipant => {\n const rawVideoStreamsArray = Object.values(videoStreams);\n let videoStream: VideoGalleryStream | undefined = undefined;\n let screenShareStream: VideoGalleryStream | undefined = undefined;\n\n if (rawVideoStreamsArray[0]) {\n if (rawVideoStreamsArray[0].mediaStreamType === 'Video') {\n videoStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[0]);\n } else {\n screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[0]);\n }\n }\n\n if (rawVideoStreamsArray[1]) {\n if (rawVideoStreamsArray[1].mediaStreamType === 'ScreenSharing') {\n screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[1]);\n } else {\n videoStream = convertRemoteVideoStreamToVideoGalleryStream(rawVideoStreamsArray[1]);\n }\n }\n\n return {\n userId,\n displayName,\n isMuted,\n isSpeaking,\n videoStream,\n screenShareStream,\n isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n state\n };\n};\n\nconst convertRemoteVideoStreamToVideoGalleryStream = (stream: RemoteVideoStreamState): VideoGalleryStream => {\n return {\n id: stream.id,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n isMirrored: stream.view?.isMirrored,\n renderElement: stream.view?.target,\n /* @conditional-compile-remove(pinned-participants) */\n scalingMode: stream.view?.scalingMode\n };\n};\n\n/** @private */\nexport const memoizeLocalParticipant = memoizeOne(\n (identifier, displayName, isMuted, isScreenSharingOn, localVideoStream) => ({\n userId: identifier,\n displayName: displayName ?? '',\n isMuted: isMuted,\n isScreenSharingOn: isScreenSharingOn,\n videoStream: {\n isAvailable: !!localVideoStream,\n isMirrored: localVideoStream?.view?.isMirrored,\n renderElement: localVideoStream?.view?.target\n }\n })\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\"\"../../../react-components/src\""]}
1
+ {"version":3,"file":"videoGalleryUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/videoGalleryUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n DominantSpeakersInfo,\n RemoteParticipantState as RemoteParticipantConnectionState\n} from '@azure/communication-calling';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { RemoteParticipantState, RemoteVideoStreamState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryStream } from '@internal/react-components';\nimport memoizeOne from 'memoize-one';\nimport { _isRingingPSTNParticipant } from './callUtils';\nimport { checkIsSpeaking } from './SelectorUtils';\n\n/** @internal */\nexport const _dominantSpeakersWithFlatId = (dominantSpeakers?: DominantSpeakersInfo): undefined | string[] => {\n return dominantSpeakers?.speakersList?.map(toFlatCommunicationIdentifier);\n};\n\n/** @internal */\nexport const _videoGalleryRemoteParticipantsMemo = (\n remoteParticipants: RemoteParticipantState[] | undefined\n): VideoGalleryRemoteParticipant[] => {\n if (!remoteParticipants) {\n return [];\n }\n return memoizedAllConvertRemoteParticipant((memoizedFn) => {\n return (\n Object.values(remoteParticipants)\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n participant.identifier.kind === 'phoneNumber'\n );\n })\n .map((participant: RemoteParticipantState) => {\n const state = _isRingingPSTNParticipant(participant);\n return memoizedFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.isMuted,\n checkIsSpeaking(participant),\n participant.videoStreams,\n state,\n participant.displayName\n );\n })\n );\n });\n};\n\nconst memoizedAllConvertRemoteParticipant = memoizeFnAll(\n (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string\n ): VideoGalleryRemoteParticipant => {\n return convertRemoteParticipantToVideoGalleryRemoteParticipant(\n userId,\n isMuted,\n isSpeaking,\n videoStreams,\n state,\n displayName\n );\n }\n);\n\n/** @private */\nexport const convertRemoteParticipantToVideoGalleryRemoteParticipant = (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string\n): VideoGalleryRemoteParticipant => {\n const rawVideoStreamsArray = Object.values(videoStreams);\n let videoStream: VideoGalleryStream | undefined = undefined;\n let screenShareStream: VideoGalleryStream | undefined = undefined;\n\n const sdkRemoteVideoStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video');\n\n const sdkScreenShareStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing');\n\n if (sdkRemoteVideoStream) {\n videoStream = convertRemoteVideoStreamToVideoGalleryStream(sdkRemoteVideoStream);\n }\n if (sdkScreenShareStream) {\n screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(sdkScreenShareStream);\n }\n\n return {\n userId,\n displayName,\n isMuted,\n isSpeaking,\n videoStream,\n screenShareStream,\n isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n state\n };\n};\n\nconst convertRemoteVideoStreamToVideoGalleryStream = (stream: RemoteVideoStreamState): VideoGalleryStream => {\n return {\n id: stream.id,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n isMirrored: stream.view?.isMirrored,\n renderElement: stream.view?.target,\n /* @conditional-compile-remove(pinned-participants) */\n scalingMode: stream.view?.scalingMode\n };\n};\n\n/** @private */\nexport const memoizeLocalParticipant = memoizeOne(\n (identifier, displayName, isMuted, isScreenSharingOn, localVideoStream) => ({\n userId: identifier,\n displayName: displayName ?? '',\n isMuted: isMuted,\n isScreenSharingOn: isScreenSharingOn,\n videoStream: {\n isAvailable: !!localVideoStream,\n isMirrored: localVideoStream?.view?.isMirrored,\n renderElement: localVideoStream?.view?.target\n }\n })\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\"\"../../../react-components/src\""]}